基本的DICOM文件结构
DICOM文件格式是由美国放射学会(ACR)和美国电气制造商协会(NEMA)在PS3.10规范“媒体交换中的媒体存储与文件格式”中描述的DICOM标准。其基本文件结构的图示如下。
文件标题
标题首先包括一个128字节的文件前言,接着是4字节的DICOM前缀。标题可以被包括,也可以不被包括在该文件中(虽然,为了符合DICOM标准,应该被包括)。
前言 |
前缀 |
128 bytes = ??? ??? |
4 bytes = 'D', 'I', 'C', 'M' |
DICOM标准固定大小的前言不需要任何结构。从来不要求它被构造为一个包含一个标签和一个长度DICOM数据元素。它的主要目的是通过与多个计算机常用的图像文件格式兼容的方式来方便地访问DICOM文件中的图像和其它数据。
a)如果一个应用程序配置文件或具体实施中并没有使用文件前言,那么所有的128个字节应设置为00H。这是为了达成这样的认识:当所有的128个字节没有按照上述规定进行设置时,该前言被使用。
b)例如,文件前言可能包含这样的信息,该信息可以启用一个多媒体应用程序来随机访问存储于一个DICOM数据集中的图像。您可以通过两种方式对相同的文件进行访问:通过使用了前言的多媒体应用程序,或通过一个忽略了前言的DICOM应用程序。
4个字节的DICOM前缀应包含编码为ISO8859 G0字符集的大写字符的字符串“DICM”。这个4字节的前缀不需要被构造为包含一个标签与一个长度的DICOM数据元素。
数据集
每个文件应包含一个代表与单个SOP类(以及相应的IOD)相关的单个SOP实例的、单个的数据集。
注意:文件可能包含不止一个作为特定IOD的2D图像帧,也可以被定义为包括多个帧。
用于对数据集进行编码的传输语法应该是由DICOM文件元信息的传输语法UID确定的那个。
注意:一个DICOM数据集不包括其总长度。由DICOM文件服务程序所提供的文件指征的结束(参阅DICOM标准中PS3.10的第8.4节)是数据集结束的唯一指征。
如果对一个文件进行编码时期望填充一个数据集,那么该数据集的最后一个数据元素可能是数据元素(FFFC,FFFC)。该数据集的尾随填充数据元素(FFFC,FFFC)的值已经没有意义,且在读取数据集时应当被所有的DICOM实现方式忽略。
无论是在元信息后的数据集中,还是在嵌套于一个序列的数据集中,文件集的阅读程序或更新程序都应当能够处理该数据集的尾随填充(FFFC,FFFC)(参阅DICOM标准的PS3.5)。
一个数据集代表的是一个现实世界信息对象的实例。数据集由数据元素构建而成。而数据元素包含该对象各个属性的编码值。这些属性的具体内容以及语义都在信息对象定义中有具体的规定(参阅DICOM标准的PS3.3)。有关数据集的结构、特性、编码,以及其数据元素,都已经在DICOM标准的PS3.5中进行了讨论。而象素数据、覆盖图和曲线图都是些其解释取决于其他相关因素的数据元素。
数据元素
每一个数据元素都有一个唯一的标识,即数据元素标签。一个数据集中的数据元素应当通过增加数据元素标签号码进行排序,且在同一个数据集中最多只能出现一次。
注意:在嵌套的数据集中可能会再次出现同一个数据元素标签(参阅DICOM标准PS3.5的第7.5节)。
数据元素的两种类型定义如下:
a)标准的数据元素具有一个偶数的组号码,以下这些(0000,EEEE),(0002,EEEE),(0004,EEEE),或(0006,EEEE)除外。
注意:这些组是预留给DIMSE命令和DICOM文件格式使用的(参阅DICOM标准的PS3.7)。
B)专属的数据元素具有一个奇数的组号码,以下这些(0001,EEEE),(0003,EEEE),(0005,EEEE),(0007,EEEE),或(FFFF,EEEE)除外。有关专属的数据元素,会在DICOM标准PS 3.5的第7.8节中做出进一步讨论。
注意:虽然相似或相关的数据元素通常具有一个相同的组号码,但是,从DICOM 3.0版本开始,数据组不表达任何语义性的含义。
数据元素应至少具有以下三个结构之一。这些结构中的两个包含数据元素的VR(即,显性VR),但又与它们长度的表达方式有所区别;而另一个结构不包含VR(即,隐性VR)。所有这三种结构包括,该数据元素的数据元素标签、值的长度和值本身。如果您想了解更多的相关信息,请参阅数据元素结构。
隐性和显性VR数据元素不可以在一个数据集和其中所嵌套的数据集中共存(参阅DICOM标准PS3.5的第7.5节)。无论一个数据集是采用显性的或是隐性的VR,或者其他特性,这都需要由协商的传输语法来决定(参阅PS3.5的第10节和附录A)。
注意:在使用DICOM的默认传输语法(DICOM的隐性VR Little Endian传输语法)时,任何VR都不包含于数据元素中。
支持
关于其他产品的更多信息,请访问我们的官方网站,
欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。
同时欢迎您使用评估版期间的免费技术支持。
© 1991-2015