医疗技术之DICOM3.0

DICOM

医学数字成像和通信(Digital Imaging and Communications in Medicine, DICOM)是医学图像和相关信息的国际标准。DICOM3.0组成如下图。
医疗技术之DICOM3.0_第1张图片

DICOM文件

当然,我们关心的重点是DICOM文件。DICOM文件是指按照DICOM标准而存储的医学文件,一般由一个DICOM文件头和一个DICOM数据集合组成,结构图如下图:
医疗技术之DICOM3.0_第2张图片
DICOM头文件(DICOM File Meta Information)包含了标识数据集合的相关信息。每个DICOM文件都必须包括一个文件头。

  • 文件导言,由128个字节组成。
  • DICOM前缀,一个长度为四个字节的字符串“DICM”,可以根据其值来判断文件是不是DICOM文件。
  • 文件元信息元素
    DICOM文件主要组成部分是数据集合,它是由DICOM数据元素按照指定的顺序依次排列组成的。对于DICOM文件,一般采用显式传输,数据元素按照标签Tag从小到大顺序排列。最基本的单元是数据元素(Data Element)。数据元素主要由四个部分组成:
  • 标签Tag:一个16位的无符合整数的有序对,前8位表示组号,后8位表示元素号。
  • 值表示VR:指明该数据元素中的数据是哪种数据类型。
  • 数据长度:一个16或32位的无符合整数,表明了准确的数据域的长度,按字节数目(为偶数)记录。
  • 数据域:含有数据元素的值,它的存储长度为偶数个字节。存在在这个字段的值的数据类型由这个数据元素的值表示(VR)决定。

标签Tag

每个数据元素从前到后可以简单分段:文件元tag,普通tag,像素tag。

  • 文件元tag(组号+0000):不受传输语法影响,总是以显示VR方式表示,因为它里面就定义了传输语法;文件元tag的dataElement,并没有多大的意义,它的VF数值是整个组所有dataElement的字节长度,一个dicom中可以只有一个文件元tag,也可以有多个文件元tag。
  • 普通tag:除了文件元tag和像素tag,其余的都是普tag数据。包括:图像宽,高,数据传输格式,病人姓名,病人生日,病历医院,病历科室,病情的描述等等数据;
  • 像素tag(7fe0,0010):表示dataElement存储的是病历的图像数据。
    比如tag(0002,0010)决定普通tag的读取方式 little字节序还是big字节序,隐式VR还是显示VR。由它的值决定。tag(7fe0,0010)像素数据开始处。其他部分重要tag如下图。
    医疗技术之DICOM3.0_第3张图片
    医疗技术之DICOM3.0_第4张图片
    医疗技术之DICOM3.0_第5张图片

使用Sante DICOM Viewer查看DICOM数据,截图DICOMTag信息。
医疗技术之DICOM3.0_第6张图片

DCM文件

符合DICOM标准的文件通常后缀为.dcm。当选择一个DICOM文件进行显示时,DICOM文件的后缀名是DCM或dcm,对文件名的后缀名检查后就可以初步判定文件是否为DICOM文件,但是后缀名满足要求并不代表是标准的DICOM文件,需要打开文件,跳过128字节的文件导言,然后读取四个字节,检查这四个字节的数据是否为“DICM”。当满足要求时,可以判断该文件时一个DICOM文件。

解析DICOM文件

  1. 跳过128字节的文件导言,读取“DICM“四个字节,确认是DICOM格式的文件
  2. 读取重要的数据元素,如传输语法等。0010组号描述患者信息,0008组号描述特征参数。
  3. 读取普通的tag,直到ttag(7fe0,0010),即像素数据开始处。像素数据的存储顺序,从左到右,从上到下。
    医疗技术之DICOM3.0_第7张图片
    备注:DICOM文件的所有数据元素必须按照tag编号来排序,帮助校验数据完整性。在DICOM文件中一个接一个地读取元素时,如果发现读取的下个数据元素tag标签编号比前一个还小,那么说明DICOM文件损坏了。

参考资料

DICOM文件tag详解
DICOM学习笔记

你可能感兴趣的:(医学图像处理)