文章目录

一、医学影像学介绍二、DICOM文件简介三、DICOM内部信息详解(DICOM Tag与VR)1.常见的TAG(1) Patient Tag(2) Study Tag(3) Series Tag(4) Image Tag

2.VR数据类型27种数据类型

一、医学影像学介绍

   医学影像学Medical Imaging,是研究借助于某种介质(如X射线、电磁场、超声波等)与人体相互作用,把人体内部组织器官结构、密度以影像方式表现出来,供诊断医师根据影像提供的信息进行判断,从而对人体健康状况进行评价的一门科学,包括医学成像系统和医学图像处理两方面相对独立的研究方向。    仪器主要包括X光成像仪器、CT(普通CT、螺旋CT)、正子扫描(PET)、超声(分B超、彩色多普勒超声、心脏彩超、三维彩超)、核磁共振成像(MRI)、心电图仪器、脑电图仪器等。

二、DICOM文件简介

  DICOM(Digital Imaging and Communications in Medicine) 即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用。所有患者的医学图像都以 DICOM 文件格式进行存储。这个格式包含关于患者的PHI(protected health information)信息,例如姓名,性别,年龄,以及其他图像相关信息比如捕获并生成图像的设备信息,医疗的一些上下文相关信息等。医学图像设备生成 DICOM 文件,医生使用 DICOM 阅读器(能够显示 DICOM 图像的计算机软件)阅读并对图像中发现的问题进行诊断。

  目前采用的标准是DICOM3.0,每一张图像中都携带着大量的信息,这些信息具体可以分为以下四类:(a)Patient(b)Study(c)Series(d)Image。每一个DICOM Tag都是由两个十六进制数的组合来确定的,分别为Group和Element。如(0010,0010)这个Tag表示的是Patient’s Name,它存储着这张DICOM图像的患者姓名。

  基于C++的DCMTK、基于Java的dcm4che以及基于python的pydicom,都是非常优秀的解释DICOM标准的第三方库,通过在工程中引入它们可以避免软件开发人员去进行底层的解析工作,可为项目开发提高效率。

  目前例如CT,核磁共振,超声等利用精确准直的X线束、γ射线、超声波等,与灵敏度极高的探测器一同围绕人体的某一部位作一个接一个的断面扫描,所以扫描后得到的图像是多层的图像,而我们把一层层的图像在z轴上堆叠起来就可以形成三维图像(这就涉及到三维重建的问题),这时,每一层的图像我们都可以存在dicom文件中(当然,dicom文件不是单纯的像素信息,它还有很多的数据头部信息),如下图,我们的目的就是要把在这些数据头部信息和像素信息从一系列dicom文件中读取出来。    DICOM文件是指按照DICOM标准而存储的医学文件,一般由一个DICOM文件头和一个DICOM数据集合组成,结构图如下图: DICOM文件头包含了标识数据集合的相关信息,每个DICOM文件都必须包括一个文件头:

文件前言,由128个字节组成;DICOM前缀,可根据这长为4个字节的字符串是否等于“DICM”来判断该文件是不是DICOM文件;文件信息元素

三、DICOM内部信息详解(DICOM Tag与VR)

   DICOM数据集是DICOM文件的主要组成部分,其由DICOM数据元素按照指定的顺序排列。数据元素最基本的数据单元是数据元,按照TAG从小到大顺序排列,即一个数据元表示一个TAG。数据元主要由4个部分组成:

TAG号:由4个字节组成,包括2字节的组号和2字节的元素号(例如:0010 0040 表示患者性别,其中的组号:0002描述设备通讯信息、0008描述特征参数、0010描述患者信息、0028描述图像信息参数)。需要的DICOM文件相关数据时,就是根据TAG来获取。值表示(VR,value representation):由两个字节的字符组成,存储描述该项数据元信息的数据类型,包含例如:LO(Long String,长字符串)、IS(Interger String,整型字符串),DA(data,日期)等等共27种数据类型。值长度(value length):存储描述该项信息的数据长度。值域(value):存储描述该项信息的数据值。

   其中数据元信息可以根据信息的不同,分为4类:-Patient-Study-Series-Image-。可以理解为一个患者(patient)可以做多次检查(study),一次检查包含多个检查部位(series),而每个检查部位都有一张或多张相应的影像图像(image)。

1.常见的TAG

(1) Patient Tag

GroupElementTag Description中文解释数据类型(VR)00100010Patient’s Name患者姓名PN00100020Patient ID患者IDLO00100030Patient’s Birth Date患者出生日期DA00100032Patient’s Birth Time患者出生时间TM00100040Patient’s Sex患者性别CS00101030Patient’s Weight患者体重DS001021C0Pregnancy Status怀孕状态US

(2) Study Tag

GroupElement

Tag Description

中文解释

数据类型(VR)00080050Accession Number:A RIS generated number that identifies order for the Study.检查号:RIS的生成序号,用以标识做检查的次序SH00200010Study ID检查IDSH0020000DStudy Instance UID:Unique identifier for the Study.检查实例号:不同检查的唯一标识号UI00080020Study Date:Date the Study started.检查日期:检查开始的日期DA00080030Study Time:Time the Study started.检查时间:检查开始的时间TM00080061Modalities in Study一个检查中含有的不同检查类型CS00080015Body Part Examined检查的部位CS00081030Study Description检查的描述LO00101010Patient’s Age做检查时刻的患者年龄,而不是此刻患者的真实年龄AS

(3) Series Tag

GroupElement

Tag Description

中文解释

数据类型(VR)00200011Series Number:A number that identifies this Series.序列号:识别不同检查的号码IS0020000ESeries Instance UID:Unique identifier for the Series.序列实例号:不同序列的唯一标识号UI00080060Modality检查模态(MRI/CT/CR/DR)CS0008103ESeries Description检查描述和说明LO00080021Series Date检查日期DA00080031Series Time检查时间TM00200032Image Position (Patient):The x,y and z coordinates of the upper left hand corner of the image,in mm.图像位置:图像的左上角在空间坐标系中的x.y.z坐标,单位是毫米。如果在检查中,则指该序列中第一张影像左上角的坐标。DS00200037Image Orientation (Patient):The direction cosines of the first row and the first column with respect to the patient.图像方位DS00180050Slice Thickness:Nominal slice thickness,in mm.层厚DS00180088Spacing Between Slices层与层之间的间距,单位为mmDS00201041Slice Location:Relative position of exposure expressed in mm.实际的相对位置,单位为mmDS00180023MR AcquisitionCS00180015Body Part Examined身体部位CS

(4) Image Tag

GroupElement

Tag Description

中文解释

数据类型(VR)00080008Image Type:Image identification characteristics.CS00080018SOP Instance UIDSOP实例UID00080023Content Date:The date the image pixel data creation started.影像拍摄日期DA00080033Content Time影像拍摄时间TM00200013Image/Instance Number:A number that identifies this image.图像码:识别图像的号码IS00280002Samples Per Pixel:Number of samples (planes) in this image.图像采样率US00280004Photometric Interpretation:Specifies the intended interpretation of the pixel data.光度计解释:对于CT图像,用两个枚举值MONOCHROME1,MONOCHROME2 用来判断图像是否是彩色的;MONOCHROME 1/2是灰度图,RGB则是真彩色图CS00280010Rows : Number of rows in the image.图像的总行数,行分辨率US00280011Columns : Number of columns in the image.图像的总列数,列分辨率US00280030Pixel Spacing:Physical distance in the patient between the center of each pixel.像素间距:像素中心之间的物理间距DS00280100Bits Allocated:Number of bits allocated for each pixel sample.Each sample shall have the same number of bits allocated.分配的位数:存储每一个像素值时分配的位数,每一个样本该值相同US00280101Bits Stored:Number of bits stored for each pixel sample.Each sample shall have the same number of bits stored.存储的位数:有12到16列举值存储每一个像素用的位数,每一个样本该值相同US00280102High Bit:Most significant bit for pixel sample data.Each sample shall have the same high bit.高位US00280103Pixel 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的补码US00281050Window Center窗位DS00281051Window Width窗宽DS00281052Rescale 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,计算真实的像素值到呈现像素值,其中截距为表达式中的bDS00281053Rescale Slope:m in the equation specified by Rescale Intercept(0028, 1052).Required if Rescale Intercept is present.斜率:该值为表达式中的mDS00281054Rescale 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

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-98个字符TM - Time时间格式为 HHMMSS.FRAC 的字符串。HH 表示小时(范围"00"-“23”); MM 表示分钟 (范围"00"-“59”);而 FRAC 包含秒的小数部分,即百万分之一秒, 比如 “183200.00” 表示下午 6:320-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,Y4个字符IS - Integer String整型字符串表示一个整型数字的字符串,比如 “-1234567”0-9,加号 (+),减号 (-)最多12个字符DS - Decimal String小数字符串表示定点小数和浮点小数,比如 “12345.67”, “-5.0e3”0-9, 加号 (+), 减号 (-), 最多16个字符 E, e 和半角句号(.)最多16个字符SS - Signed Short有符号短型符号型二进制整数,长度 16 bits2个字符US - Unsigned Short无符号短型无符号二进制整数,长度 16 bits2个字符SL - Signed Long有符号长型有符号二进制整数4个字符UL - Unsigned Long无符号长型无符号二进制长整数,长度 32 bits4个字符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的TagsDICOM文件格式The DICOM StandradDICOM Standard BrowserDICOM-standaardversie 2019e

查看原文