見出し画像

DICOMファイルについて詳しく

DICOMデータ、あるいはDICOMデータを出力したDICOMファイルについて、もう少し丁寧に解説します。

先に用語の意味を整理しておきましょう。

一般に、DICOMデータ=DICOMファイルです。特に画像に関しては、DICOMファイルのことをDICOM画像とも呼びます。

しかし、DICOMデータオブジェクト≠DICOMデータです。

DICOMデータオブジェクトは、ある目的のために、IODを基に集められた属性の集合体です(例えば、CT画像)。

また、DICOMデータに含まれる属性の総称を広義にDICOMヘッダーと呼ぶこともありますが、厳密にはこれは間違いです。

その理由は、DICOMデータは、正確には、DICOMデータオブジェクトと、(狭義の)DICOMヘッダーを組み合わせたデータの総称であるためです。

DICOMファイルの構造

ここで狭義のDICOMヘッダーがいくつかの構成要素から成っていることがわかります。このDICOMヘッダーについて詳しく見ていきます。

DICOMヘッダー

DICOMヘッダーは、DICOM通信のアソシエーション確立のための情報を提供します。DICOMファイルを読もうとしているアプリケーションに、そのファイルがどのSOPタイプ(DICOMデータの種類)であるかを、転送構文(Transfer Syntax)で明示するためです。

DICOMヘッダーは、DICOMファイルのプリアンブル、DICMプレフィックス、およびDICOMファイル属性の最初の属性の束(File Meta Information要素)から構成されます。

プリアンブルとDICMプレフィックス

プリアンブルは 128 バイトの文字列で、DICOMファイルを開くためのものです。プリアンブルは、多くのデジタル画像フォーマット(例えば TIFF 画像)でに用いられている方法で、DICOMも同じスタイルを採用しています。

しかし、DICOM規格は、特定のプリアンブルの構造や内容を定義していません。

128 バイトのプリアンブルをどのように使うかは、それぞれのDICOMアプリケーションの設計に委ねられています。このため、プリアンブルの内容はアプリケーションに依存し、アプリケーションによって異なる使い方ができるのです。ほとんどの場合、DICOMのプリアンブルは無視され、0 バイトで埋められます。0 バイトのみで表現されたプリアンブルは、DICOMでは「未使用のプリアンブル」を意味します。

DICMプレフィックス(DICOM ファイル形式であることを示す)は、128 バイトのプリアンブルにそのまま続くもので、129~132 バイトに書かれた 4 つの大文字(DICM)から構成されます。これは、フォーマットプレフィックス(マジックナンバーと呼ばれることもある)と呼ばれるもので、多くのファイルフォーマットで一般的に利用されているものです。DICOMも慣例に従っています。

DICOM画像をワードパッドで開くと、このプリアンブルとDICMプレフィックスを確認できます。

DICOM CT 画像をワードパッドで開いた画面の一部抜粋(一行目にプリアンブルとDICMプレフィックスが含まれている)

プリアンブルとDICMプレフィクスともに、DICOM VRの符号化規則を使用しません。これらは単に最初の128+4=132バイトに格納されるのみです(実際にワードパッドで開いて、数えて確かめることもできます)。

DICOMファイルを識別するプログラムを作成する場合は、最初の128バイトをスキップさせ、DICMプレフィックスを確認することで、読み込んだファイルがDICOMファイルかどうかが分かります。

DICOM File Meta Information(DICOMファイルメタ情報)

DICMプレフィックスの直後、133バイト目には、DICOMファイルのメタ情報が記録されます。このメタ情報は、プリアンブルやDICMプレフィックスとは異なり、DICOM属性の集合として、明示的なVRで符号化されます。

File Meta Information(ファイルメタ情報)に含まれるすべての属性は、DICOMグループ0002に属しています。

PS 3.10 Table 7.1-1. DICOM File Meta Information

0002 グループ全体で最も重要な要素は、転送構文UID (0002,0010)です。この属性は、DICOMデータオブジェクトがどのようにエンコードされるかを定義しています。繰り返しになりますが、DICOMネットワークでは、転送構文が、DICOMアソシエーション確立時にやりとりされます。これがないと、アプリケーションは、このファイルをどう扱えばよいかがわからなくなります。

DICOMデータオブジェクト(CT画像など、DICOMデータの実体部分)は、0002グループの直後に記録されます。

DICOMデータオブジェクトのグループ番号は0008です。ファイルメタ情報(0002グループ)が終わり、データオブジェクト(0008グループ)が始まる場所を特定することは、DICOMファイルを処理するアプリケーションにとって重要なプロセスになります。

例えば、ファイルメタ情報(0002グループ)は明示的に VR 構文でエンコードされる必要がありますが、DICOM データ(0008 グループ以上)については、必ずしもそうではありません。

DICOM アプリケーションがデータオブジェクトのエンコードに使用した VR 構文(転送構文(0002,0010)で示される)に切り替えなければ、データの読み込みに失敗してしまいます。

このため、DICOMでは、DICOMファイル全体、つまり、DICOMデータ部分にも明示的な VR エンコーディングを使用することを推奨しています。

最後に、DICOM ファイルの末尾に Data Set Trailing Padding (FFFC,FFFC) 属性を使ってパディングして、ある任意の長さに調整することができます。

これが本当に必要なのかということについては、DICOM規格はそうではないと述べています。もし、アプリケーションがこのパディング要素に遭遇したら、DICOMファイルの最後に到達している証なので、無視してその処理を終了してOKです。ほとんどの DICOMファイルとソフトウェアでは、(FFFC,FFFC) 属性は全く使用されません。

以上で、DICOMファイルについての解説を終了します。


Stay Visionary

この記事が気に入ったらサポートをしてみませんか?