分享

整理:DICOM文件解析

 pppsss 2020-03-13

dicom文件tag详解

Dicom全称是医学数字图像与通讯,这里讲diocm格式文件的tag标记做详细解读。
dicom中文协议文档:http://download.csdn.net/download/wenzhi20102321/9897014

dicom文件结构:

1

dicom文件,整体结构先是128字节所谓的导言部分,跳过就是了,然后是dataElement元素依次排列的方式, 就是一个dataElement接一个dataElement的方式排到文件结尾.我们要读取dicom里面的各种数据就是在各个数据元素中。通俗的讲dataElement就是指tag,就是破Dicom标准里定义的数据字典,每个dataElement中的tag决定自身或整个文件的某些数据类型或自身dataElement内容类别。

标记tag(2字节UInt16分组号和2字节UInt16元素号);

tag是4个字节表示的 前两字节是组号后两字节是元素号 比如0008(组号) 0018(元素号)。
我们获取dicom里面的数据,就是根据tag,来知道这个dataElement里面是否是我们需要的数据,然后读取该dataElement里面的数据。

一般我们获取dataElement中的数据的主要组号

0002组描述设备通讯,0008组描述特征参数,0010组描述患者信息,0028组描述图像信息参数
根据这些组号,我们大概就知道这个组的tag里面存放什么数据了吧!
还是有很多其他组号的,但是里面的数据不常用到,tag总共大约有2000个,但是我们常用的数据就那么几个!

dicom文件数据中所有dataElement从前到后按tag又可简单分段:文件元tag,普通tag,像素tag。

1.文件元tag(组号+0000):不受传输语法影响,总是以显示VR方式表示,因为它里面就定义了传输语法;文件元tag的dataElement,并没有多大的意义,它的VF数值是整个组所有dataElement的字节长度,一个dicom中可以只有一个文件元tag,也可以有多个文件元tag。

2.普通tag:除了文件元tag和像素tag,其余的都是普tag数据。包括:图像宽,高,数据传输格式,病人姓名,病人生日,病历医院,病历科室,病情的描述等等数据;

3.像素tag(7fe0,0010):表示dataElement存储的是病历的图像数据。

上面这段话,信息量其实是很多的,比如什么是显示VR、隐式VR,传输语法又是怎么回事?

tag的dataElement结构,分为下面三种:

1.显示VR:VR为OB OW OF UT SQ UN的元素结构

组号元素号VR预留值长度数据元素值
2222(0x00,0x00)4由数据长度决定

组号和元素号组成tag,上面的数组表示给类型占有的字节长度

2.显示VR:VR为普通类型时元素结构(少了预留那一行)

组号元素号VR值长度数据元素值
2224由数据长度决定

3.隐式VR时元素结构(也就是dataElement中没有VR这个值)

组号元素号值长度数据元素值
224由数据长度决定

最关键的两个tag:

1.tag:0002,0010,决定普通tag的读取方式 little字节序还是big字节序,隐式VR还是显示VR。由它的值决定

2.tag:7fe0,0010,像素数据开始处

上面三个表格是从网上获取来的,我在dicom协议中没有看到具体的介绍,也不知怎么验证正确性!
暂时先按照上面的理解,有问题再去思考吧。

使用工具snate DICOM打开dicom文件,查看数据效果:

2
工具下载地址,下载后直接用:http://download.csdn.net/download/wenzhi20102321/9895616
上面图片每一行数据就是一个dataElement数据,可以看到tag值,VR值,VL值,VF值。
但是一般工具也是看不到图像的tag数据,因为他的VF数据有几万个字节,怎么显示!
上面可以看到tag的组号和元素号,都是按照顺序从小到大的顺序排列的,dicom中dataElement也是这样排列的。
所以dicom文件都是前面先读取到很多数据,最后面再读取图像的字节数据。

下面是一部分重要的tag展示:

Patient Tag

Group(组号)Element(元素号)Tag Description中文解释VR
00100010Patient’s Name患者姓名PN
00100020P1atientID患者IDLO
00100030Patient’s Birth Date患者出生日期DA
00100032Patient’s Birth Time患者出生时间TM
00100040Patient’s Sex患者性别CS
00101030Patient’s Weight患者体重DS
001021C0Pregnancy Status怀孕状态US

Study Tag

GroupElemenTag Description中文解释VR
00080050Accession Number:A RIS generated number that identifies the order for the Study.检查号:RIS的生成序号,用以标识做检查的次序.SH
00200010Study ID检查ID.SH
0020000DStudy Instance UID: Unique identifier for the Study.检查实例号:唯一标记不同检查的号码.UI
00080020Study Date: Date the Study started.检查日期:检查开始的日期.DA
00080030Study Time:Time the Study started.检查时间:检查开始的时间.TM
00080061Modalities in Study一个检查中含有的不同检查类型.CS
00080015Body Part Examined检查的部位.CS
00081030Study Description检查的描述.LO
00101010Patient’s Age做检查时刻的患者年龄,而不是此刻患者的真实年龄.AS

Series Tag

GroupElementTag Description中文解释VR
00200011Series Number:A number that identifies this Series.序列号:识别不同检查的号.IS
0020000ESeries Instance UID:Unique identifier for the Series.序列实例号:唯一标记不同序列的号码.UI
00080060Modality检查模态(MRI/CT/CR/DR)CS
0008103ESeries Description检查描述和说明LO
00080021Series Date检查日期DA
00080031Series Time检查时间TM
00200032Image Position (Patient):The x, y and z coordinates of the upper left hand corner of the image, in mm.图像位置:图像的左上角在空间坐标系中的x,y,z坐标,单位是毫米.如果在检查中,则指该序列中第一张影像左上角的坐标.DS
00200037Image Orientation (Patient):The direction cosines of the first row and the first column with respect to the patient.图像方位DS
00180050Slice Thickness:Nominal slice thickness, in mm.层厚.DS
00180088Spacing Between Slices层与层之间的间距,单位为mmDS
00201041Slice Location:Relative position of exposure expressed in mm.实际的相对位置,单位为mm.DS
00180023MR Acquisition收购者CS
00180015Body Part Examined身体部位.CS

Image Tag

GroupElementTag Description中文解释VR
00080008Image Type:Image identification characteristics.CS
00080018SOP Instance UIDSOP实例UID.
00080023Content Date:The date the image pixel data creation started.影像拍摄的日期.DA
00080033Content Time影像拍摄的时间.TM
00200013Image/Instance Number:A number that identifies this image.图像码:辨识图像的号码.IS
00280002Samples Per Pixel:Number of samples (planes) in this image.图像上的采样率.US
00280004Photometric Interpretation:Specifies the intended interpretation of the pixel data.光度计的解释,对于CT图像,用两个枚举值MONOCHROME1,MONOCHROME2.用来判断图像是否是彩色的,MONOCHROME1/2是灰度图, RGB则是真彩色图,还有其他.CS
00280010Rows: Number of rows in the image.图像的总行数,行分辨率.US
00280011Columns: Number of columns in the image.图像的总列数,列分辨率.US
00280030Pixel Spacing:Physical distance in the patient between the center of each pixel.像素间距.像素中心之间的物理间距.DS
00280100Bits Allocated:Number of bits allocated for each pixel sample. Each sample shall have the same number of bits allocated.分配的位数:存储每一个像素值时分配的位数,每一个样本应该拥有相同的这个值.US
00280101Bits Stored:Number of bits stored for each pixel sample. Each sample shall have the same number of bits stored存储的位数:有12到16列举值.存储每一个像素用的位数.每一个样本应该有相同值.US
00280102High Bit:Most significant bit for pixel sample data. Each sample shall have the same high bit.高位.US
00280103Pixel Representation:Data representation of the pixel samples. Each sample shall have the same pixel representation.Enum: 0000H=unsigned integer,0001H=2’s omplement.像素数据的表现类型:这是一个枚举值,分别为十六进制数0000和0001.0000H = 无符号整数,0001H = 2的补码.US
00281050Window Center窗位.DS
00281051Window Width窗宽.DS
00281052Rescale 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
00281053Rescale Slope:m in the equation specified by Rescale Intercept (0028,1052).Required if Rescale Intercept is present.斜率.这个值为表达式中的m。DS
00281054Rescale 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

所有dicom的tag列表(英文版):http://www.sno.phy./~phil/exiftool/TagNames/DICOM.html
看了这些tag,应该对dicom文件有了更多了了解吧。
关于VR的详细知识,可以看我详细介绍VR的博客页面。
其实这些数据用得并不多,一般就用到病人的姓名,病人ID,医院,科室,还有设置图像要用到图形的窗位和窗宽。

dicom传输的相关知识也只能介绍到这里,很多知识还没有理解透彻,只是把这些知识罗列出来,给大家参考一下!

dicom文件解析知识的其他地址:

1.dicom文件详解

http://blog.csdn.net/wenzhi20102321/article/details/75127362

2.dicom文件的值类型VR详解

http://blog.csdn.net/wenzhi20102321/article/details/75127140

3.dicom文件tag详解

http://blog.csdn.net/wenzhi20102321/article/details/75127101

4.android 解析并显示dicom文件的数据和图像

http://blog.csdn.net/wenzhi20102321/article/details/75040225

5.java代码使用ImageJ解析dicom文件成图片

http://blog.csdn.net/wenzhi20102321/article/details/74995084

前面5个是我自己写的,后面是一些我自己看过的相关资料:

6.Dicom文件解析

http://blog.csdn.net/leaf6094189/article/details/8510325

7.使用dcm4che3获取Dicom的bmp格式缩略图

http://blog.csdn.net/Kerrigeng/article/details/60866656

8.使用dcm4che3解析DICOM中,中文乱码问题

http://blog.csdn.net/Kerrigeng/article/details/53942846

9.使用dcm4che3对jpeg压缩的dcm文件进行解压

http://blog.csdn.net/Kerrigeng/article/details/62215647

10.DICOM的常用Tag分类和说明

http://www.cnblogs.com/stephen2014/p/4579443.html

11.dicom的大牛zssure的博客,几十篇文章

http://blog.csdn.net/zssureqh/article/category/1389985

12.dicom协议中文文档下载

http://download.csdn.net/detail/wenzhi20102321/9897014

13.Sante DICOM Editor 4,查看dicom文件的工具,直接打开用

http://download.csdn.net/detail/wenzhi20102321/9895616

共勉:其实我们都可以认为,世界都是“我”的!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多