DICOM3.0标准梳理

DICOM3.0标准梳理:

自1993年DICOM3.0首次发布后,DICOM标准不断的发展,每年都会进行多次扩充和修改。目前,DICOM标准共有22个章节,但是随着网络技术的发展,第9章和第13章节关于点对点连接传输的部分已被淘汰删除。

一、DICOM标准范畴:

Part 1: 引言与概述(Introduction and Overview):

定义了文档中使用的属于并且对标准其他章节的概述。

Part 2: 兼容性(Conformance):

定义了要求制造商精确描述其产品兼容性声明。

Part 3: 信息对象定义(Information Object Definitions):

定义了若干个信息对象类,包括普通型和复杂型,作为医疗现实中实体的抽象定义。

Part 4: 服务类规范(Service Class Specifications):

定义多个服务类,所有DICOM功能都通过服务类的使用来实现。

Part 5: 数据结构及编码(Data Structures and Encoding):

定义了构造DICOM消息中传递的数据集的编码规则。

Part 6: 数据字典(Data Dictionary):

列出了DICOM标准中所有的数据元 素定义。

Part 7: 信息交换(Message Exchange):

定义了用于应用实体交换消息的服务和协议。

Part 8: 消息交换的网络通讯支持(Network Communication Support for Message Exchange):

说明了DICOM实体之间在网络环境中通信服务和必要的上层协议的支持。这些服务和协议保证了应用实体之间有效地和正确地通过网络进行通信。DICOM中的网络环境包括OSI和TCP/IP两种参考模型,DICOM只是使用而不 是实现这两类协议,因而具有通用性。

Part 10: 用于介质交换的介质存储和文件格式(Media Storage and File Format for Media Interchange ):

详细说明了在可移除介质上存储医学成像信息的通用模型。

Part 11: 介质存储应用概要(Media Storage Application Profiles):

规定了介质存储中应用选择机制和策略。

Part 12: 用于介质交换的物理介质和介质格式(Media Formats and Physical Media for Media Interchange):

介绍存储过程中数据和目录的格式以及管理规范要求。其中较为关键的是DICOMDIR文件,它在图像的目录分类中起着重要作用。

Part 14: 灰度图像的标准显示功能(Grayscale Standard Display Function):

详细规范了胶片打印及各种图像显示器材的显示参数。

Part 15: 安全和系统管理概要(Security and System Management Profiles):

DICOM标准医疗图像中包含了病人非常详细的个人资料,因此为了保障在存储传输过程中数据的安全性,有必要对信 息实施加密传输。

Part 16: 内容映射资源(Content Mapping Resource):

定义了DICOM信息对象的结构化文档模板和信息对象中使用的代码术语集。

Part 17: 解释信息(Explanatory Information):

此部分包含解释信息的附录。

Part 18: Web服务(Web Services):

此部分定义了通过使用HTTP URL/URI请求来访问DICOM对象的方式以及返回结果的格式。

Part 19: 应用托管(Application Hosting):

定义了通过插件化程序的API访问格式。

Part 20: 使用HL7l临床文档架构的成像报告(Imaging Reports using HL7 Clinical Document Architecture):

指定使用HL7的第二版CDA生成成像报告模板。

Part 21: DICOM与其他格式之间的转换(Transformations between DICOM and other Representations):

说明了图像标注格式与NCI注释的转换。

Part 22: 实时通讯(Real-Time Communication):

定义了视频流或音频流关联的DICOM元数据的实时传输服务。

DICOM3.0标准规定了医学影像格式和传输的众多细节,但是整个标准大致可分为两部分:

  • DICOM文件格式

  • DICOM网络通讯协议

二、DICOM文件格式:

我们在医院拍片检查的大致流程是通过医学设备生成DICOM文件,然后医生使用DICOM阅读器来阅读并对图像中发现的问题进行诊断,所有患者的医学图像信息都是以DICOM文件格式进行存储的,其中包括患者的个人信息、生成图像的设备信息等。在现实世界中,dicom模型可对应为:Patient、Study、Series、Instance。通常一个病人在医院可进行多个检查,每项检查可能会对我们人体多个部位进行扫描,每个部位的扫面会产生多张图像,病人我们可以理解为Patient,检查可以理解为Study,每个部位可以理解为序列Series,每张图像可以是实例Instance,每个Instance实例可以是一个DICOM文件,一般情况下,我们可以理解为一个DICOM文件就是一张包含病人信息的图像,但是一个DICOM文件有时也可包含多帧图像,此时一个DICOM文件就应该是对应多张图像了。具体的实体关系,如下图所示:

image-20220116224332462.png

1. DICOM文件的主要结构:

DICOM文件主要包括文件头和像素数据两部分,文件头包括文件引言(Meta Information)和数据集(Data set)

8_爱奇艺.jpg

典型的DICOM文件结构又如下图所示:

9.PNG

引言:用于存放文件的有关说明,共128个字节

前缀:为DICM,4个字符,共4个字节,说明是DICOM文件

文件头的最开始是引言,紧接着是前缀,然后是文件头,最后才是像素数据,像素数据对应得标签为(7fe0,0010),其他标签对应得信息详情可查询DICOM标准Part 6中得标准数据字典。

2. 数据元素的组成规则:

标签(Tag): 信息的唯一性编码,两个十六进制的数的组合(Group, Element) ,如(0002 0001)。

值表示法(VR): DICOM定义得的数据类型 。

数据长度: 所有的数据元素都应该为偶数长度,若为奇数,需要加空格或空。

数据值: 数据值,长度必须是偶数 。

3. MetaInfo文件引言:

该部分主要用于存放一些常用的信息,在标签为0002的组中:

(Group Element) Tag Description 中文解释 VR VM
0002 0000 File Meta Information Group Length Meta Info的长度 UL 1 180
0002 0001 File Meta Information Version Meta Info的版本 OB 1
0002 0002 Media Storage SOP Class UID SOP Class UID 同Data Set里的SOP class UID UI 1
0002 0003 Media Storage SOP Instance UID SOP Instance UID 同Data Set里的SOP Instance UID UI 1 算出
0002 0010 Transfer Syntax UID DataSet的编码方式 UI 1
0002 0012 Implementation Class UID Implementation Class UID UI 1 实现类库决定
0002 0013 Implementation Version Name Implementation版本名 SH 1
0002 0016 Source Application Entity Title 最后一个编辑该文件的实体 AE 1
0002 0017 Sending Application Entity Title 网络上发送该文件的实体 AE 1
0002 0018 Receiving Application Entity Title 网络上接收该文件的实体 AE 1
0002 0100 Private Information Creator UID 私有信息的Creator的UID UI 1
0002 0102 Private Information Meta里面的私有信息 OB 1
10_爱奇艺.jpg

4. 数据集DataSet:

该部分用于存储图像相关信息,如病人Patient信息,检查Study信息、序列Series信息、实例Instance信息。

11_爱奇艺.jpg

在检查信息、序列信息、实例信息中都有对应的一个唯一标识uid,并且形成层级关系:

UID 含义
第一级:StudyInstanceUID 标识同一患者的一次检查
第二级:SeriesInstanceUID 标识一次检查下的一次序列
第三级:SOPInstanceUID 标识一次序列下的产生的其中一个图像

5. 编码方式

编码方式可以理解为传输语法。

  1. 显式( explicit VR )和隐式( implicit VR)编码,区别是当DICOM为显示编码时数据元素会给出值表示法(VR),而隐式编码则不会给出。

    显式编码:

    12.PNG
隐式编码:
13.PNG
  1. 大端(big endian)/小端(little endian),

    little endian:低位字节存放在低位,高位字节存放在高位。

    big endian:低位字节存放在高位,高位字节存放在低位。

默认的DICOM传输语法使用低价先存的编码方式,例如十六进制数据68AF482CH将被编码成2C4BAF68H。特别地,组号为 0000H的所有命令集数据元素必须使用低价先存和隐式VR的格式进行传输。

三、DICOM网络传输协议:

在DICOM应用进行通信时,需要给应用命名也叫作AE(Application Entity),以便其他应用识别。 DICOM采用C/S模式来描述网络传输:客户端(Client)连接到服务端(Server),然后使用服务端提供的各项服务(Services)。不同于传统网络连接中的Server和Client,DICOM中的Server叫做Service Class Provider(SCP),Client叫做Service Class User(SCU)。想要建立DICOM连接(Association),客户端会向服务端发送连接请求消息,该消息主要描述客户端此次连接所期望的DICOM服务及相关设置;随后服务端会查看客户端发送过来的请求信息,确认自己是否支持客户端请求的相关服务并给出反馈信息(DICOM中叫做响应信息Response Message)。一旦网络连接建立,客户端(SCU)和服务端(SCP)就可以进行信息交互。

14.jpg

从上图看出,SCU与SCP之间的数据通信主要包括图像数据的传输以及与图像相关的病人信息的传输等。这些信息的传输主要是利用DIMSE消息服务层中的各种服务原语实现的,包括C-STORE、C-FIND、C-MOVE、N-SET等。 DIMSE消息服务层的主要功能就是将SCU/SCP层的通信需求转换成DICOM中规定的各种消息服务原语,然后将消息服务原语传给下一层。在收到该消息服务原语后,DICOM上层协议层首先通过协议关联单元实现两个对等的应用实体的关联,商讨抽象句法以及传输语法。完成关联后,DICOM上层协议层将消息服务原语以及附加的信息组织成协议数据单元,并实现数据交换。

1.DICOM上层协议层(ULP):

ULP的作用主要包括两方面:①提供应用层的公共服 务元素ACSE,具体包括在对等应用实体间通信连接的建立协商,连接正常释放协 商,异常中止协商等功能;②为DIMSE提供网络数据传输支持,也就是以ULP规定的协议数据包格式传送或接收DIMSE的命令流与数据流。

DICOM标准中,ULP定义了四种类型服务:

15.PNG

对应七个协议数据单元 :

协议 作用
A-ASSOCIATE-RQ PDU 用于发起链接时,并带有协商信息
A-ASSOCIATE-AC PDU 接受协商信息,DUL建立成功
A-ASSOCIATE-RJ PDU 拒绝协商信息,DUL建立失败
P-DATA-TF PDU 携带数据,主要服务于上层DIMSE
A-RELEASE-RQ PDU 释放请求
A-RELEASE-RP PDU 释放确认
A-ABORT PDU 中断操作,发生于异常和错误情况

2. DIMSE层:

DICOM消息服务元素(DIMSE)为DICOM应用实体提供服务,其服务主要指加在信息对象定义(IOD)上的操作(Operation)或通告(Notification)。DIMSE层需要在关联已经建立的前提下工作,根据上层的指令调用相关的服务类,并结合信息实体形成服务对象对(SOP)。该层通过SOP完成应用实体支持的某项功能,例如C-STORE操作可完成一个IOD的传输和存储。DICOM3.0标准中一共定义了11种DIMSE服务:

(1)C-STORE服务:由DIMSE服务用户发起,请求对等的DIMSE服务用户完成复合SOP实例信息的存储。

(2)C-GET服务:由DIMSE服务用户发起,请求根据指定的属性,从对等的DIMSE服务用户取得一个或多个复合SOP实例的信息。

(3)C-MOVE服务:由DIMSE服务用户发起,要求另一个对等的DIMSE用户根据它提供的某些属性信息,将某个或某些SOP实例信息提供给第三个DIMSE用户。

(4)C-IND服务:由DIMSE服务用户发起,请求找到和一系列指定属性字符串相匹配的由对等的DIMSE服务用户管理的SOP实例的属性。C.FIND服务返回相配的属性和属性值的列表。如果没有或出错则返回相应信息。

(5)C-ECHO服务:由DIMSE服务用户发起,用于和对等的DIMSE服务用户确认端到端的通信。

(6)N-EVENT-REPORT服务:唯一的一个通告服务,由DIMSE服务用户发起,报告给对等的DIMSE服务用户一个关于某个SOP实例的事件。

(7)N-GET服务:由DIMSE服务用户发起,从对等的DIMSE服务用户取得信息。

(8)N-SET服务:由DIMSE服务用户发起,请求对等的DIMSE服务用户设置相关信息。

(9)N-ACTION服务:由DIMSE服务用户发起,请求对等的DIMSE服务用户执行某个动作。

(10)N-CI垣ATE服务:由DIMSE服务用户发起,请求对等的DIMSE服务用户创建某个SOP类的实例。

(11)N-DELETE服务:由DIMSE服务用户发起,请求对等的DIMSE服务用户删 除某个SOP类的实例。

3. SCU / SCP管理层:

DICOM 分别定义为服务类使用者(SCU)/N务类提供者(SCP)。作为客户的SCU使用DIMSE 服务构建、发送请求消息,并接收SCP的响应消息;作为服务器的SCP将接收来自SCU的请求消息,执行消息所要求的操作和通告,并将产生的结果构建为响应消息发送给SCU。这里SCU/SCP必须首先声明支持何种DICOM服务类。服务类是一组相关的SOP类的集合,完成某一具体的DICOM功能,每个SOP类由IOD以及施 加于该IOD的DIMSE操作组成。

通过上述DICOM网络通讯的介绍,可知DIMSE从起源上,是面向局域网应用设计的,它往往要求通讯双方具有固定且已知的IP,并且在开始正式传输数据前,通讯双方要先完成一套稍显复杂的“握手互认”过程,其并不适用于互联网。DICOM Web服务标准则是一套基于RESTful进行设计的适用于互联网的通讯方式。

四、DICOM Web Service:

DICOM Web Service为dicom标准第18章内容。主要服务有:WADO-URI、WADO-RS、STOW- RS、QIDO-RS和UPS-RS。 定义了在互联网上基于RESTful接口,如何进行DICOM影像的查询、获取、存储和工作流程协同,以及如何查询一台服务对外提供哪些接口。

1. WADO-URI:

URI服务也叫做WADO-URI,即使用HTTP协议中的GET请求来获取DICOM文件实例或者DICOM渲染后的Image实例的一种解决方案,规定了客户端的请求规范以及服务端的响应规范。

从客户端的角度分析,除了指定请求头和请求体内容,还指定了我们用于查询目标实例的查询条件参数。查询参数有强制性参数、普通可选性参数、其他可选性参数。

强制性查询参数:每个请求中必须携带

参数字段 备注
requestType “WADO” 本次请求类型
studyUID uid 检查UID
seriesUID uid 序列UID
objectUID uid 实例UID

普通可选性参数:

参数字段 备注
contentType ”application/dicom“ 当该值存在时,响应对象时一个DICOM文件
charset charset 字符集类型

当请求获取的目标资源是一个DICOM数据文件时,还可以有下列可选性参数:

参数字段 备注
anonymize "yes" 数据匿名化,该参数有值时,服务端响应的DICOM文件需抹去文件中的病人信息
transferSyntax uid 响应的DICOM文件的编码格式

当请求获取的目标资源是DICOM渲染过后的Image图像,还支持下列可选性参数:

参数字段 备注
frameNumber uint 当前渲染的实例在其所在序列中的帧数
annotation "patient" "technique" ①"patient":渲染后的图片需标注用户个人信息; ②”technique“:渲染后的图片标注病人检查的完成情况信息。
imageQuality uint 图像质量,可以设置1-100来表示图像质量
rows uint 图像的行数
columns uint 图像的列数
region decimal 图像区域,其左上角像素点的x/y坐标和右下角像素点的x/y坐标,范围是0.0-1.0
windowCenter decimal 窗位
windowWidth decimal 窗宽
presentationSeriesUID uid 渲染DICOM的序列ID
presentationUID uid 渲染DICOM的实例ID

请求url实例:

<pre spellcheck="false" class="md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded" lang="java" cid="n368" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px 0px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"> // 请求一个DICOM文件,并进行匿名化处理
http://www.linkingmed.com?requestType=WADO
&studyUID=1.2.250.1.59.40211.12345678.678910
&seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
&objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
&contentType=application/dicom
&anonymize=yes
&transferSyntax=1.2.840.10008.1.2.4.50</pre>

2. Studies Service and Resources:

Studies 服务主要负责对Study相关资源进行存储、检索、更新和搜索。包括以下三个子服务:

  • WADO-RS:指提供通过web获取DICOM资源的RESTful服务, 可以指定获取某个Study,某个Series,某个Image,甚至是某一个Frame 。此外,请求的发起方还可以指定自己能够或希望接受的图像类型:
1.png
2.png
3.png
  • STOW- RS:指提供通过web存储DICOM资源的RESTful服务, 影像的上传存储除了影像数据本身,还需要提供与影像相关的其他信息,用于生成符合条件的DICOM头文件信息:
4.png
  • QIDO-RS:指通过RESTful接口查询服务器上是否有自己符合指定条件的影像 。指定的条件可以是患者ID,也可以检查编号等。
5.png

3. Worklist Service and Resources:

  • UPS-RS:dicom的工作协同服务,又叫工作清单服务,指通过RESTful接口来创建、声明和更新工作任务的状态 。
6.png

4. Capabilities

服务能力查询, 于支持访问者去查询一台DICOMweb服务器都对外提供哪些服务。

16.PNG

总结:目前有许多开源的DICOM标准库,如C++实现的dcmtk,java实现的dcm4che,C#实现的fo-dicom,Python实现的pydicom等。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容