DICOMファイル

提供:メディカルウェア
2012年11月27日 (火) 11:03時点における60.45.160.142 (トーク)による版 (→‎VR)
ナビゲーションに移動 検索に移動

DICOMファイル(だいこむふぃある)とは、DICOM規格で定められた医用画像ファイルのフォーマットのことである。 非常に稀であるが画像以外のデータが格納されていることもある。

なお、「DICOMデータ」という場合は、DICOMファイルのみならず、DICOM通信で内部的にもちいるパケットのフォーマットなども含まれるが、会話などにおいてはDICOMファイルを指していることも多いので前後の文脈から読み取る必要がある。

ファイル構造

DICOMファイルの基本構造は以下のようになっている

プリアンブル

DICOMファイルの先頭にある固定128バイト(0~128バイト)。

通常は全部0x00で埋め尽くすことになっているで、プログラムを作る時は問答無用で読み飛ばすこと。正確には「好きに使ってよし」という領域なのでプログラマの遊びメッセージなんかを書いておいても良い。

プリフィックス

プリアンブルに続く固定4バイト(129~132バイト)。 中身は「DICM」(0x44, 0x49, 0x43, 0x4D)という文字列。 DICOMファイルかどうかを判断するのに使用する。

ちなみにDICOMファイルのファイル名は「半角の大文字英字および数字で最大8文字」で「拡張子なし」という事になっていた。最近では長いファイル名だったり、アンダーバーなどの記号を含んだり、拡張子が.dcmだったりするが、間違っても拡張子で判断してはいけない。たとえファイルの拡張子が.jpgとなっていても、DICOMビューアたるものDICOMファイルである可能性を捨てず、問答無用でまずプリフィックスを調べにいけ。

メタ情報

以降はメタ情報と呼ばれる可変長の要素がファイルの終わりまで繰り返し登場する。 1個のメタ情報は基本的に、タグ、VR(データの型)、データ長、データ本体の4つで構成される。必ずしもこの4つで構成されるとは限らないので注意。

タグ

タグとは、データ本体に何の情報が入っているかを示す4バイトである。 タグはグループ(上位2バイト)とエレメント(下位2バイト)で構成される。

グループの値が偶数の場合は標準タグといい、それぞれのタグの値が何を意味するかはDICOM規格に記載された膨大な辞書で決まっている。例えばタグが(0010,0010)であれば患者名といった感じで決まっている。

グループの値が奇数の場合はプライベートタグといい、勝手に独自の値を突っ込んでいいことになっている。標準タグでカバーしきれない情報を書いておきたい場合に使う。基本的に第三者には意味不明な情報となってしまうので極力使うな。

詳細は「DICOMタグ」の項目を参照。

VR

VRとは、Value Representationの略で、データ本体の「型」を表す2バイトの値であり、データ本体が文字列なのか数値なのかという情報である。

なお、DICOMでは暗黙的VR(Implicit VR)と明示的VR(Explicit VR)という規定があり、暗黙的VRの場合はVRが存在しない。 その場合は前述のタグからVRを判断する(患者名なら文字列など)。 つまりタグから判断できる項目なので不要。 親切丁寧に書いても良いが不要。 ぶっちゃけ書いてあっても信用ならんので無視してタグから推定するくらいが丁度良い。

詳細は「DICOM/Value Representation」を参照。

データ長

データ長とは、データ本体のバイト数のこと。 2バイトまたは4バイトまたは6バイト。 なお6バイトの場合、上位2バイトはゴミで、有効なのは下位4バイトのみであり、実質的に4バイトである。

データ長が何バイトなのかはVRから推定する。例外的に明示的VRで特定タグの場合はタグから推定する。

4バイト(6バイト含む)かつ、値が0xFFFFFFFFの場合は「データ本体の長さ未定」を意味する。

データ本体

目的のデータはここに入っている。

その他

関連項目

参考文献