DICOMDIRのファイル構造:
フォーマット:
DICOMDIR DICOMファイルに準拠したファイルの格納フォーマット、無意味プリアンブルの128バイトを必要とする(特別な要件場合、これらのバイトは00Hである)、(4バイトの長さ「DICOM」の文字列が続くDICOMプリフィックスDICOMファイルかどうかを決定するための、唯一の基準)、及び、グループラベルが続く:0×0002 elemntする、必須の[0002,0000]は[0002,0001] [0002,0002] [0002,0003] [0002,0010 ] [0002,0012]。
ディレクトリ情報(0x0004はの要素のグループ)の後、前記入口と入口コレクタと第一成分の相対パス(ファイル名必要DICOMDIR、「DICOMDIR」の最後の構成要素の画像と同じフォルダ内の画像に設定する必要がありますディレクトリ内)(PS10、P.20)
物理的構造:
論理構造:
DICOMDIRは4層を持って順番にツリー構造を展開します。
1。患者
2。調査
3。シリーズ
4。画像
データ構造の設計では、各レイヤのエンティティのツリーの各ノードを表すために使用することができます。次のように:
クラス患者
{
パブリック:
情報名前;
情報ID;
int型のsonnum。
患者(無効)。
〜患者(無効)。
}。
クラス研究
{
パブリック:
インフォ日。
情報時間;
情報の説明。
インフォインスタンス;
情報ID;
情報AccNum;
int型のsonnum。
研究(無効)。
〜研究(無効)。
}。
クラスシリーズ
{
パブリック:
情報モダリティ;
インフォインスタンス;
情報番号;
int型のsonnum。
シリーズ(無効)。
~Series(void);
};
class Image
{
public:
Info Instance;
Image(void);
~Image(void);
};
class Root
{
public :
int sonnum;
char *Version;
char *Path;
};
每一层由多个实体组成,每个实体包含2个内容:目录信息和实体信息。
目录信息必须具备以下元素:下一个实体入口地址(0x0004,0x1400)、下一层(第一个)实体入口地址(0x0004,0x1420)、目录使用标记组成(0x0004,0x1410)和实体类型(0x0004,0x1430),另外Image实体还需要包含对应影像文件的相对路径。
不同层的实体要求包含不同的元素,详见PS3.3 P.1217。
DICOMDIR或者DICOM的实体,从逻辑上的上至下遍历可以直接通过入口地址进行索引,也可以通过一种比较方便的结构来进行组织和索引,就是通过嵌套的形式(Sequence)。在DICOM标准中,一共有3种嵌套格式,如下:
(ps5.7 p.44)
嵌套结构(也即串)格式如下:
一个VR为SQ的元素起头,接下去的ITEM(也即元素)以(FFFE,E000为TAG的元素起头)。SQ元素记录整个(不包括SQ元素)数据集(dataset)的大小。FFFE,E000元素记录其下内容的大小。
Dataset则是由1个或多个ITEM组成。
元素(ITEM)格式:
显式时:
隐式时:
TAG由2字节16进制的group tag 和 element tag 组成。
VR有显式和隐式2种方式,当显式传输时,VR有值,当隐式传输时,VR无值;另外,组号是0002的元素都是显式的。
当VR值是OB,OW,OF,SQ,UT或者UN的时候,VR的长度为4字节,由2字节的字符串和2字节的00H组成。当VR值是其他值的时候,VR的长度为2字节,即2字节的字符串。
ValueLength的长度是根据VR可变的,共有2种长度,当VR为OB,OW,OF,SQ,UT或者UN的时候长度为4字节。当VR为其他值时,长度为2字节。ValueLength表示的是Value的长度,另外,当DataLength的长度不为偶数时,则根据需要添加前缀或者后缀补齐。
Value区则是具体的值,长度根据ValueLength。
Item的数据格式可以定义如下:
Class Item
{
short Group;
short Element;
char VR[4];
int ValLen;
char *Value;
};
转载于:https://www.cnblogs.com/zhangchenliang/p/3418243.html