DICOM(Digital Imaging and Communications in Medicine)标准是医学图像和相关信息的数字图像通信的国际标准。以下是DICOM标准的详细内容:
一、概述
DICOM标准由医学图像处理和通信的专业组织DICOM标准委员会(DICOM Standards Committee)负责维护和更新。它定义了医学影像设备(如X射线、CT扫描、MRI等)生成、存储、传输和显示的规范,以确保不同设备和系统之间的互操作性。DICOM标准的设计目标是确保医学影像和相关数据的一致性、可靠性、可扩展性和安全性,以促进医疗信息技术的应用和发展。
二、数据格式
DICOM数据格式主要用于存储、传输和交换医学图像和相关数据,如X射线、CT扫描、MRI、超声等。DICOM数据格式采用了一种结构化的、层次化的数据存储方式,以确保数据的完整性和可读性。
- 数据结构:每个DICOM文件由一个文件头(File Meta Information)和一个数据集(Data Set)组成。文件头包含用于描述文件和数据集的信息,而数据集包含实际的图像和相关数据。在DICOM文件中,信息是由许多数据单元(Data Element)的集合所表示,每个数据单元表示一个属性,如病人姓名、图像类型等。这些数据单元按照Tag值从小到大依次连接。
- 数据元素:每个数据元素由一个标签(Tag)、一个值的VR(Value Representation,即值的表达方式,类似于数据类型)和一个值的长度(Value Length)组成。数据元素可以包含图像像素数据、患者信息、图像采集参数、设备信息等。其中,Tag是标识图像信息参数或属性的唯一编码,如(0008,0020)代表Study Date(研究日期)。VR在实际存储编码中不一定会有,这取决于采用的传输语法。
- 图像像素数据:DICOM数据格式中的图像像素数据是以二进制形式存储的,并且具有灵活性,可以支持不同的图像压缩和编码方式。
此外,DICOM数据格式还允许存储多个图像序列(Image Sequences)和相关的文本信息,以提供更全面的医学影像数据。
三、通信协议
DICOM通信协议是用于医学影像设备之间传输图像和相关数据的通信规范。它规定了数据的传输方式和通信协议,以确保设备之间的互操作性和数据的安全传输。DICOM通信协议主要涉及以下两个方面:
- 数据传输:DICOM支持多种数据传输方式,包括基于TCP/IP的传输、用于局域网和广域网的DICOM网络传输(DICOM Network Communication)以及用于点对点传输的DICOM文件传输(DICOM File Transfer)等。对于DICOM网络传输,使用TCP/IP协议栈,通常采用基于DICOM Upper Layer Protocol的通信。该协议指定了消息的格式和数据的组织方式,确保设备之间可以理解和解释传输的数据。DICOM通信还支持TLS/SSL等安全协议,用于加密和保护传输的数据。
- 服务和操作:DICOM通信协议定义了一系列服务和操作,用于设备之间的通信和数据交换。这些服务和操作包括C-FIND(用于查询特定条件下的图像和数据)、C-STORE(用于将图像和数据存储在目标设备上)、C-MOVE(用于将图像和数据从一个设备移动到另一个设备)、C-GET(用于获取特定条件下的图像和数据)以及C-ECHO(用于测试设备之间的连接和可用性)。
四、DICOM标准解读
DICOM(Digital Imaging and Communications in Medicine)作为国际公认的医学数字成像与通信标准(ISO 12052),在放射医学、心血管造影及多种放射诊疗设备(如X光、CT、PET、超声、MRI等)领域中广泛应用,并逐步渗透到眼科、牙科等其他医疗分支。DICOM格式文件是存储患者受保护健康信息(PHI)的重要载体,涵盖了姓名、性别、年龄等个人数据,以及图像采集设备信息、医疗背景资料等重要参数。目前采用的标准版本为DICOM3.0,每一张图像都蕴含丰富信息,主要分为四个类别:患者信息、检查研究信息、序列信息和图像信息,每一个信息单元通过独特的双字节十六进制标签(Group, Element)标识,如(0010,0010)即代表患者的姓名。
为了方便开发人员高效地处理DICOM数据,业界涌现了一批优秀的第三方库,如基于C++的DCMTK、基于Java的dcm4che以及Python语言环境下的pydicom。它们为开发者屏蔽了底层解析复杂性,极大地提高了项目开发效率。
当前,CT、MRI、超声等先进成像技术通过精准聚焦的射线束、探测器围绕人体特定区域进行连续断层扫描,从而生成多层面图像,经由三维重建技术可叠加成三维图像,而每一层面图像及其相关头部信息均可储存在DICOM文件中。DICOM文件的结构严谨,通常由文件头和数据集合两部分构成,其中文件头包含了识别文件属性的关键信息,且每个DICOM文件必备一个文件头。
五、深入剖析DICOM内部信息(DICOM Tag与VR)
DICOM数据集构成了DICOM文件的核心部分,其由一系列按特定顺序排列的DICOM数据元素组成。每个数据元素最小单位称为数据元,根据TAG值从小至大排序。数据元由四部分构成:
-
TAG编号: 由4个字节表示,包含2字节组号和2字节元素号,例如"0010 0040"对应患者性别信息,不同组号分别指示设备通讯信息、特性参数、患者信息和图像信息参数等内容。
-
值表示(VR, Value Representation): 两个字节定义了该数据元的数据类型,如LO(长字符串)、IS(整型字符串)、DA(日期)等共27种不同类型。
-
值长度(Value Length): 记录该数据项的具体长度。
-
值域(Value): 实际存储的数据值。
数据元素按照信息类别可分为四大类:患者、检查研究、序列和图像 ,形成一种患者可进行多次检查,每次检查涉及多个部位系列,每个部位系列关联一张或多张影像图像的层级结构。
5.1.常见的TAG
(1) Patient Tag(患者)
Group | Element | Tag Description | 中文解释 | 数据类型(VR) |
---|---|---|---|---|
10 | 10 | Patient’s Name | 患者姓名 | PN |
10 | 20 | Patient ID | 患者ID | LO |
10 | 30 | Patient’s Birth Date | 患者出生日期 | DA |
10 | 32 | Patient’s Birth Time | 患者出生时间 | TM |
10 | 40 | Patient’s Sex | 患者性别 | CS |
10 | 1030 | Patient’s Weight | 患者体重 | DS |
10 | 21C0 | Pregnancy Status | 怀孕状态 | US |
(2) Study Tag(患者)
Group | Element | Tag Description | 中文解释 | 数据类型(VR) |
8 | 50 | Accession Number:A RIS generated number that identifies order for the Study. | 检查号:RIS的生成序号,用以标识做检查的次序 | SH |
20 | 10 | Study ID | 检查ID | SH |
20 | 000D | Study Instance UID:Unique identifier for the Study. | 检查实例号:不同检查的唯一标识号 | UI |
8 | 20 | Study Date:Date the Study started. | 检查日期:检查开始的日期 | DA |
8 | 30 | Study Time:Time the Study started. | 检查时间:检查开始的时间 | TM |
8 | 61 | Modalities in Study | 一个检查中含有的不同检查类型 | CS |
8 | 15 | Body Part Examined | 检查的部位 | CS |
8 | 1030 | Study Description | 检查的描述 | LO |
10 | 1010 | Patient’s Age | 做检查时刻的患者年龄,而不是此刻患者的真实年龄 | AS |
(3) Series Tag(序列)
Group | Element | Tag Description | 中文解释 | 数据类型(VR) |
20 | 11 | Series Number:A number that identifies this Series. | 序列号:识别不同检查的号码 | IS |
20 | 000E | Series Instance UID:Unique identifier for the Series. | 序列实例号:不同序列的唯一标识号 | UI |
8 | 60 | Modality | 检查模态(MRI/CT/CR/DR) | CS |
8 | 103E | Series Description | 检查描述和说明 | LO |
8 | 21 | Series Date | 检查日期 | DA |
8 | 31 | Series Time | 检查时间 | TM |
20 | 32 | Image Position (Patient): The x,y and z coordinates of the upper left hand corner of the image,in mm. | 图像位置: 图像的左上角在空间坐标系中的x.y.z坐标,单位是毫米。如果在检查中,则指该序列中第一张影像左上角的坐标。 | DS |
20 | 37 | Image Orientation (Patient):The direction cosines of the first row and the first column with respect to the patient. | 图像方位 | DS |
18 | 50 | Slice Thickness:Nominal slice thickness,in mm. | 层厚 | DS |
20 | 1041 | Slice Location:Relative position of exposure expressed in mm. | 实际的相对位置,单位为mm | DS |
18 | 23 | MR Acquisition | CS | |
18 | 15 | Body Part Examined | 身体部位 | CS |
(4) Image Tag(图像)
Group | Element | Tag Description | 中文解释 | 数据类型(VR) |
---|---|---|---|---|
8 | 8 | Image Type:Image identification characteristics. | CS | |
8 | 18 | SOP Instance UID | SOP实例UID | |
8 | 23 | Content Date: The date the image pixel data creation started. | 影像拍摄日期 | DA |
8 | 33 | Content Time | 影像拍摄时间 | TM |
20 | 13 | Image/Instance Number:A number that identifies this image. | 图像码:识别图像的号码 | IS |
28 | 2 | Samples Per Pixel:Number of samples (planes) in this image. | 图像采样率 | US |
28 | 4 | Photometric Interpretation: Specifies the intended interpretation of the pixel data. | 光度计解释: 对于CT图像,用两个枚举值MONOCHROME1,MONOCHROME2 用来判断图像是否是彩色的; MONOCHROME 1/2是灰度图,RGB则是真彩色图 | CS |
28 | 10 | Rows : Number of rows in the image. | 图像的总行数,行分辨率 | US |
28 | 11 | Columns : Number of columns in the image. | 图像的总列数,列分辨率 | US |
28 | 30 | Pixel Spacing: Physical distance in the patient between the center of each pixel. | 像素间距: 像素中心之间的物理间距 | DS |
28 | 100 | Bits Allocated: Number of bits allocated for each pixel sample.Each sample shall have the same number of bits allocated. | 分配的位数: 存储每一个像素值时分配的位数,每一个样本该值相同 | US |
28 | 101 | Bits Stored: Number of bits stored for each pixel sample.Each sample shall have the same number of bits stored. | 存储的位数:有12到16列举值 存储每一个像素用的位数,每一个样本该值相同 | US |
28 | 102 | High Bit: Most significant bit for pixel sample data. Each sample shall have the same high bit. | 高位 | US |
28 | 103 | Pixel Representation: Data representation of the pixel samples. Each sample shall have the same pixel representation. Enum:0000H=unsigned integer,0001H=2’ s complement. | 像素数据的表现类型: 一个枚举值,分别为十六进制数0000和0001. 0000H = 无符号整型, 0001H = 2的补码 | US |
28 | 1050 | Window Center | 窗位 | DS |
28 | 1051 | Window Width | 窗宽 | DS |
28 | 1052 | Rescale Intercept: The value b in relationship between stored values(SV) and the output units. Output units = m*SV + b. Required if Modality LUT Sequence(0028, 0030) is not present. | 截距: 如果表明不同模态的LUT颜色对应表不存在时,则使用方程: Units = m*SV + b,计算真实的像素值到呈现像素值,其中截距为表达式中的b | DS |
28 | 1053 | Rescale Slope: m in the equation specified by Rescale Intercept(0028, 1052). Required if Rescale Intercept is present. | 斜率: 该值为表达式中的m | DS |
28 | 1054 | Rescale Type: Specifies the output units of Rescale Slope (0028,1053) and Rescale Intercept (0028,1052). Enum: US=Unspecified Requried if Photometric Interpretation is MONOCHROME2, and Bits Stored is greater than 1. This specifies an identity Modality LUT transformation. | 输出值的单位: 该值是一个枚举值 | LO |
5.2.VR数据类型
VR是DICOM标准中用来描述数据类型的,总共有27个值。
27种数据类型
数据类型(VR) | 含义 | 允许字符 | 数据长度 |
---|---|---|---|
CS - Code String代码字符串 | 开头结尾可以有没有意义的空格的字符串,比如 “CD123_4" | 大写字母,0-9,空格以及下划线字符 | 最多16个字符 |
SH - Short String短字符串 | 短字符串,比如:电话号码, ID 等 | 最多16个字符 | |
LO - Long String长字符串 | 一个字符串,可能在开头、结尾填有空格。比如 “Introduction to DICOM” | 最多64个字符 | |
ST - Short Text短文本 | 可能包含一个或多个段落的字符串 | 最多1024个字符 | |
LT - Long Text长文本 | 可能包含一个或多个段落的字符串,与 LO 相同,但可以更长 | 最多10240个字符 | |
UT - Unlimited Text无限制文本 | 包含一个或多个段落的字符串,与 LT 类似 | 最多(232 -2)个字符 | |
AE - Application Entity应用实体 | 标识一个设备的名称的字符串,开头和结尾可以有无意义的字符。比如 “MyPCO 1” | 最多16个字符 | |
PN - Person Name病人姓名 | 有插入符号 (^) 作为姓名分隔符的病人姓名。比如“SMITH^JOHN” “Morrison Jones Susan^^^Ph.D,Chief Executive Officer” | 最多64个字符 | |
UI - Unique Identifier(UID)唯一标识符 | 一个用作唯一标识各类项目的包含UID的字符串。比如 “1.2.840.10008.1.1” | 0-9和半角句号 (.) | 最多64个字符 |
DA - Date日期 | 格式为 YYYYMMDD 的字符串;YYYY 代表年;MM 代表月;DD 代表日。比如 “20050822” 表示 2005 年 8 月 22 日 | 0-9 | 8个字符 |
TM - Time 时间 | 格式为 HHMMSS.FRAC 的字符串。 HH 表示小时(范围"00"-“23”); MM 表示分钟 (范围"00"-“59”); 而 FRAC 包含秒的小数部分,即百万分之一秒, 比如 “183200.00” 表示下午 6:32 | 0-9和半角句号 (.) | 最多16个字符 |
DT - Date Time 日期时间 | 格式为 YYYYMMDDHHMMSS.FFFFFF,串联的日期时间字符串。 字符串的各部分从左至右是:年-YYYY;月-MM;日-DD;小时-HH;分钟-MM;秒-SS;秒的小数-FFFFFF。 比如 “20050812183000.00” 表示 2005 年 8 月 12 日 下午 18 点 30 分 00 秒 | 0-9,加号,减号和半角句号 | 最多26个字符 |
AS - Age String 年龄字符串 | 符合以下格式的字符串:nnnD,nnnW,nnnM,nnnY;其中 nnn 对于 D 来说表示天数,对于 W 来说表示周数,对于 M 来说表示月数,对于 Y 来说表示岁数。比如 “018M” 表示他的年龄是 18 个月 | 0-9,D,W,M,Y | 4个字符 |
IS - Integer String整型字符串 | 表示一个整型数字的字符串,比如 “-1234567” | 0-9,加号 (+),减号 (-) | 最多12个字符 |
DS - Decimal String小数字符串 | 表示定点小数和浮点小数,比如 “12345.67”, “-5.0e3” | 0-9, 加号 (+), 减号 (-), 最多16个字符 E, e 和半角句号(.) | 最多16个字符 |
SS - Signed Short有符号短型 | 符号型二进制整数,长度 16 bits | 2个字符 | |
US - Unsigned Short无符号短型 | 无符号二进制整数,长度 16 bits | 2个字符 | |
SL - Signed Long有符号长型 | 有符号二进制整数 | 4个字符 | |
UL - Unsigned Long无符号长型 | 无符号二进制长整数,长度 32 bits | 4个字符 | |
AT - Attribute Tag属性标签 | 16 bits 无符号整数的有序对,数据元素的标签 | 4个字符 | |
FL - Floating Single单精度浮点型 | 单精度二进制浮点数 | 4个字符 | |
FD - Floating Point Double双精度二进制浮点型 | 双精度二进制浮点数 | 8个字符 | |
OB - Other Byte String其它字节字符串 | 字节的字符串("其它"表示没有在VR中定义的内容) | ||
OW - Other Word String其它单词字符串 | 16 bits(2字节) 单词字符串 | ||
OF - Other Float String其它浮点字符串 | 32 bits(4个字节) 浮点单词字符串 | ||
SQ - Sequence Items条目序列 | 条目的序列 | ||
UN - Unknown未知 | 字节的字符串,其中内容的编码方式是未知的 |
六、应用与重要性
DICOM标准的重要性在于提供了一个通用的框架,使得不同厂商生产的医学影像设备和信息系统能够相互交流和共享数据。这为医疗机构和医疗专业人员提供了更大的灵活性和选择性,同时也为医疗诊断、治疗和研究带来了更多的可能性。DICOM标准已被广泛应用于放射、超声、核医学等多个医学影像领域,成为医院影像管理和通信系统(PACS)及其他医疗影像应用的核心标准。
七、技术架构与协议细节
- 数据结构与存储格式:DICOM不仅规范了医学影像数据的存储格式,还详细定义了如何将元数据与影像本身绑定。每个DICOM文件包含影像数据及相关的病人信息、设备参数、影像采集的时间和操作员信息。
- 传输协议:DICOM的通信协议基于应用层标准,能够确保数据传输的效率和安全性。
- 数据压缩与传输效率优化:DICOM支持多种图像压缩方式,这些压缩技术能够有效减少数据量,提高传输效率。
八、挑战与未来展望
尽管DICOM已经在全球范围内广泛应用,但它依然面临诸多挑战,如影像数据体积庞大导致的数据存储和传输压力大、不同厂商在DICOM标准的实现上可能存在差异导致的互操作性问题等。展望未来,DICOM与AI、云计算等新兴技术的结合将成为趋势。随着远程医疗和智慧医疗的不断推进,DICOM在数据互联互通、智能诊断和数据安全领域的作用将愈加重要。
综上所述,DICOM标准是医学影像数据交换与管理的基石,它通过定义统一的数据格式和通信协议,实现了不同医学影像设备和信息系统之间的互操作性。随着医疗技术的不断进步和应用需求的不断变化,DICOM标准也将持续更新和完善。
参考: