皆さん、こんにちは。 エクストリームデザインの遠藤と申します。

前回の記事では、Pythonで簡単にDICOMを扱えるパッケージPydicomをインストールする方法を書きました。

→ [Pydicom] Pythonで医用画像(DICOM)を簡単に扱う(1) インストール編

今回はDICOMタグの読み込みや書き換えなど、基本的な使い方を見ていきたいと思います。

 

まずは、中身を確認したいタグが決まっている場合です。

その場合、タグの名前や、グループ番号とエレメント番号の組を指定することで、内容を取得可能です。

>>> import dicom
>>> ds = dicom.read_file("test.dcm")
>>> ds.PatientsName
'Last^First^mid^pre'
>>> ds[0x10,0x10].value
'Last^First^mid^pre'

タグの内容を書き換える場合、以下のようにすればOKです。

>>> ds.PatientID = "12345"

 

上記のように修正した内容をファイルを書き込む場合は、以下のようにします。

>>> dicom.write_file(filepath_write, ds)

 

ここまでは、確認したいタグが決まっている場合の使い方を書いてきました。

次は、中にどんなタグがあるか分からない場合の使い方をみていきたいと思います。

import dicom

ds = dicom.read_file(filepath_read)

#表示しないタグを指定
dont_print = ['Pixel Data', 'File Meta Information Version']

for data_element in ds:
    if data_element.name not in dont_print:
        print "%04X_,_%04X_,_%s_,_%s" % (data_element.tag.group, 
                                         data_element.tag.elem, 
                                         data_element.name,
                                         data_element.value)

まず、

for data_element in ds:

でタグを1つずつみていくことが出来ます

if data_element.name not in dont_print:

を入れることにより、

dont_print = ['Pixel Data', 'File Meta Information Version']

で指定したタグをスキップすることができます。

data_element.name

がタグ名を返します。

同様に、

data_element.tag.group

はグループNo

data_element.tag.elem

はエレメントNo

data_element.value

はタグの値を返すので、簡単にプログラムに組み込むことが可能です。

 

Pydicomは公式のドキュメントがあまり整備されていないので、細かい使い方は自分で試行錯誤する必要があります。

その際参考にできるものとして、公式のサンプルプログラムがあります。

https://code.google.com/archive/p/pydicom/source/default/source

からダウンロード可能で、

source/dicom/examples

から確認できます。

上記のプログラムもこれらを参考にしています。

 

Pydicmは便利なのですがマニュアルがないのが残念なので、今後も使い方のTipsなど共有していけたらと考えています。

Comments are closed.