見出し画像

PythonでDICOMタグを取得する方法


今回はPydicomを使ってDICOMタグの取得をやってみたいと思います。

下準備

ある程度分かっている方は下準備は飛ばしてください

まずDICOM画像が手元にない場合は、Image-JのHPからサンプル画像がダウンロードできます。

拡張子(ファイル名の最後の文字)がdcmの画像がDICOM画像です。


ダウンロードした画像は、 デスクトップに「pydicom」というフォルダを作って入れておいてください。


(フォルダ名は何でも構いませんが、日本語のフォルダ名はプログラム実行時に問題が発生することがあるので、半角英数のフォルダ名を使用することをおすすめします。)


続いて、コマンドプロンプトを立ち上げます。

そこに

jupyter notebook


と打ち込みます。コマンドを実行すると、数秒間何も表示されないことがありますが、正常に実行されると、自動的にブラウザが開き、Jupyter Notebookの画面が表示されます。



デスクトップをクリックし、pydicomのフォルダに移動します。

先ほど、ダウンロードした画像が入っていることが確認できます。


次に、このフォルダにコードを書いていくファイルを作成したいと思います。

画面右側上方に『New』というボタンがありますので

そちらをクリックし、『Python3』を選択します。


pythonコードのファイル名を決めます。

jupyterと書いてあるわきのUntitleをクリックします。

新しくい開いたダイアログに名前を付けて『Rename』をクリックします。

そうするとデスクトップにある『pydicom』のフォルダに

『先ほど付けた名前.ipynb』

のファイルが作成されていると思います。

ここまでできましたら、とりあえず下準備は完了です。


DICOMタグの表示

まず、簡単なところからDICOMタグを表示させてみましょう。

import pydicom

# DICOM画像の読み込み
ds = pydicom.dcmread('CT2.dcm')

# DICOMタグを表示
print(ds)

コードを入力後、Shift + Enterを押すと、結果がノートブック内に表示されます。

いかがでしょうか?

下図のようにDICOMタグが表示できたと思います。



例えば、他のファイルのタグを見たい場合は上記コードの

ds = pydicom.dcmread('CT2.dcm')

カッコ内にシングルコーテーションもしくは、ダブルコーテーション内に、ファイル名を指定すればOKです。

また、他のフォルダにあるファイルを指定したい場合はフルパスを指定することで表示することができます。

また、DICOMタグは項目ごとに表示することもできます。


例えば、モダリティーを見たい場合は

import pydicom

ds = pydicom.dcmread('CT2.dcm')
md = ds.Modality

print(md)

で『CT』と表示させることもできます。

また、タグコードで指定することもできます。

コードは16進数に変換してあげる必要があるので、

16進数に変換する『0x』とコードの下2桁4桁を合わせて指定、それらコードを [ ] で囲み ます。

なので

モダリティーの場合は     ds[0x0008,0x0060]

患者名の場合は        ds[0x0010,0x0010]

を指定します。また、値だけ取得したい場合は

『.value』


を追加してあげます。指定しない場合はタグコードとタグ名、タグの値が返されます。


import pydicom


ds = pydicom.dcmread('CT2.dcm')


md = ds[0x08,0x60].value
print('ds[0x08,0x60].value   ⇒ '+   str(md))

nm=ds[0x10,0x10].value
print('ds[0x10,0x10].value   ⇒ '+   str(nm))

md = ds[0x08,0x60]
print('ds[0x08,0x60]         ⇒ '+   str(md))

nm=ds[0x10,0x10]
print('ds[0x10,0x10]         ⇒ '+   str(nm))



タグコードで指定する場合は、4桁で指定することができます!!

DICOMタグの取得は、 解像度を調べたり、撮影条件を調べたりといろいろと便利です。


検査の画像をシリーズで取得した場合、ファイル名がUIDでの表記になっていることがあり、その場合にファイル名を画像番号で名前変更したりと思った以上に使えますよ。

これ出来るだけでも、結構できた感が出てきてテンション上がりますよね。




いいなと思ったら応援しよう!