DICOM协议新手入门资料-DICOM协议详细解释
DICOM, HL7, 协议
数字影像传输标准协议的初衷,是为了在不同厂商生产的数字影像设备之间实现影像及其附属信息的调用。这个标准的最初版本是所谓ACR(美国放射学会)-NEMA(全国电器设备制造商协会)标准,这个标准定义了点对点的连接协议。但是计算机网络技术的日新月异和PACS(影像传输及归档系统)的发展,很快就让这个协议显得捉襟见肘。其结果是以后的工作目标变成了对ACR-NEMA标准的升级,以使此标准能够支持复杂网络系统的信息处理需要。DICOM(医用数字影像和传输)标准应运而生。目前这个标准在数字影像系统的采购和评介过程中,已经得到广泛的应用。
DICOM标准有很强的适应性。在设计初期,就充分考虑到了DICOM标准对放射以外的影像支持(比如:病理、内窥镜和牙科影像)。医疗影像设备的制造商往往都是大型跨国企业,他们的对DICOM标准的关注,对此标准的推广起到推波助澜的作用。欧洲标准化组织(the Comita Europaen de Normalisation)在制定MEDICOM标准时完全基于并且兼容了DICOM标准。在日本,放射设备及医疗信息系统行业协会发展中心已经采用了DICOM标准中可擦写媒介影像交换标准部分,并且考虑将DIOCM标准纳入其未来的医疗影像处理标准。目前,DICOM标准已经在全球范围内得到不同领域组织的广泛认同。
在医疗影像通讯领域DICOM标准已经成为主导标准。然而,尽管DICOM标准在厂商那里唾手可得、应用
广泛,并且在迅速扩展进入包括非放射影像在内的新领域,仍然有很多放射专家仍然对DICOM认识不足。这种情况出现的部分原因是DICOM的“学习曲线过于陡峭”,现有的DICOM介绍材料不是写给工程人员的对于放射专家来说太过技术性,就是写给高层管理人员对于放射专家来说太肤浅了。
为什么我们要对这样一个看上去很简单的东西大费周章呢?答案是,事情并不想它看上去那么简单。通常放射专家都对胶片影像了如指掌,胶片影像在任何有光源的地方都可以观看。当我们把传统胶片影像转化为数字影像的时候需要面对一系列的问题,传输、显示、存储等等,这时候DICOM的出现就很必要了。在胶片时代,曝光、处理流程和读片工作中的细微变化对工作影响不大。而在数字影像时代,几个字节的差异就足以中断影像在系统之间的传送。
DICOM标准由一组文档组成,现今的版本就包括了13个发行部分。每一个DICOM文档通过标题和标准编码来识别,看上去的样子就像这样“PS 3.X-YYYY”,其中‘X”就是常说的标号,“YYYY”是发行的年份。举例来说,DICOM 标准第二部分的标题是“顺应性”
文件标号是PS3.2-1996. 在正式场合,年份经常被省略。
DICOM标准的核心就是设置了一套统一的易于理解的数字影像通讯规则。在本文中,“通讯”是指系统中信息的交换。这个动作听上去很简单实际上,通讯就是我们日常生活中的一部分。然而,我们之所以能够良好的沟通是因为我们遵循了一套良好的规则。这套规则是我们在孩提时代就掌握了的。
电子通讯通常被划分为不同的层次,每一个层面上完成相应的功能。这种将通讯标准划分成不同层面的模型实际上是一个国际通讯标准的一部分,此标准就是ISO-SOI(国际标准组织开发系统互联)参考模型。这个模型可以类比为一个生产加工厂的结构。在这个模型的最高层面是用户应用程序的界面(比如在一个计算机终端上用户可以通过应用程序跨越网络访问数据)。这个层面相当于工厂的决策者他们决定工厂生产什么样的产品,运输什么样的货物。在模型的最低层面是物理层,这个层面为电子通讯提供物理介质( 比如:线缆)。这个层面相当于运输部门的货车。模型中的“高层”和“低层”并不是表示不同层面的重要程度,实际上高低的区别只是因为不同层面象一个堆栈,物理层在最下面,应用层在最上面。
在最高层和最低层之间,还有其他层面负责解决类似下列问题:用什么样的字符集来显示信息;用什么样的规则在物理层上建立连接;如何处理通讯过程中出现的错误等等。这些中间层面类似于我们假象工厂中不同的职能部门,每个都承担着特定的功能(比如:零件选择、制造装配、质量控制、规划运输路线等等)。在电子通讯模型和假象工厂中发生着同样的情况,每个层面(部门)从上一个层面(部门)获得信息,按照预定功能工作,将结果输出到下一个层面(下游部门)。
任何两个层面之间的交换都是无往不复的,因为所有通讯(正如同货物在不同公司之间的交流)都是双向的。在通讯术语中,信息在不同层面之间的流动被称之为层面提供的服务。然而, 通讯意味着信息的交换,因此,还需要对方设备上有相对应的层面并且有物理媒介的连接。
我们的假想工厂加工并且运输自己的产品到另外一个公司,在那里经过组装产生新的产品。后面这个公司并不把产品原封不动地送回到去我们的假想公司(除非他们收到劣质产品要退货),不过他们要把货款发送回来。两个公司的物流部门需要为双方货运制定计划和规则(比如,不要在在长假期间发运保鲜货物)。同理,两个电器设备之间的的通讯也需要事先设定的规则或者协议,这样设备间相对应通讯层面才能连接。在电子通讯
中,两个设备之间真正的数据流动只存在于物理层。然而,由于建立了机遇层面的通讯模型,每一个层面可以看作和对方设备的对应层面基于已有协议的直接通讯。在提供本层面的服务时,一个层面在所接收到的数据上加入一些信息然后发送给下游层面,下游层面接收到数据后也作相同的工作。在接收端,数据在向上穿行过各个层面的时候,每个层面提取从数据中出自己所需要的信息实现层面功能。在我们的假想公司中,质控部门会在产品的包装上贴合格标签再将其送到物流部门发货,而在收货的公司,产品接收后会开包验货, 公司的质控部门会检查产品的合格标签并且确认产品没有任何运输损坏。只有产品通过检查后,才会被发送到别的部门接受进一步处理,最后财务部门会得到签收通知安排付款。在上述过程中的协议保证了发货人在产品上粘贴了正确的质控标签,而收货人可以根据发票检查产品数量和质量。如果过程中有人违反协议(比如发货人没有检查产品,或者忘记了贴标签),产品将被拒绝接收(收货人拒绝收货或者扣留货物直到问题解决)。
电子通讯的层面模型优势之一是当一个层面被新层面替代时其他层面不受到影响。举例来说:如果我们
能到一种物理媒介其速度是现有物理媒介的10倍,而且能够提供现有物理层提供的所有服务,我们就能立刻用新的物理层替换掉现有系统。在我们的假想公司中到一个新的物流公司,新公司运货速度提高一倍,使用原有的集装箱,提供和现有公司一样的货物保险,那么我们可以不对其他部门作任何调整直接转换到新的物流公司。
不同层面的集合通常被称为栈或者协议栈。 DIOCM标准使用了层面通讯结构,实际上它并没有新建一个标准通讯栈而是直接使用了一个已有标准。可能有人会问,如果DICOM仅仅是使用了一个已有的通讯标准,它还有什么意义?为什么不直接用那些现有的通讯协议标准呢?
DICOM标准的意义和其功能的重要性,可以用个假想制造厂之间的交易来解释。
交易时间字符串是什么
假想你是产品开发部的经理,现在需要一些零件来组装一个原形产品。于是你要求你的采购经理贝蒂从埃克美零件公司采购一些零件。贝蒂知道最快捷的办法就是打电话给埃克美公司订货,但同时她也知道你需要的零件非常抢手很可能已经销售一空。她拿起电话拨号,听到了熟悉的声音:“你好,这里是埃克美公司,请问你要哪位?”贝蒂回答道:“请转销售部鲍勃罗伯茨。”
贝蒂刚才所做的工作非常类似于一台设备使用DICOM协议与另外一台设备通讯。当她拿起电话,她首先要求线路畅通。她听到
的拨号音告诉她线路正常(如果没有拨号音则说明线路有问题)。同理,DICOM标准通过服务请求与网络上的另一台设备通讯。网络协议会首先探测网络是否可用。如果可用,DICOM协议就将发起一系列的活动,由此产生一个对另一台设备的连接。
拿起电话拨入需要接通的号码然后倾听回应,你就遵循了一系列通讯协议。首先,你遵从一定的规则拨号。如果你在办公室里拨号,可能还要先拨一个外线号码,如果对方不在本地,你还要拨对方的区号。然后你听到对方的振铃声,你知道对方没有占线,否则你的“协议”会引导你挂上电话等会儿再拨。
电话那一端的人所说的头两个字就很有意义。它告诉你两件重要的事情,首先对方所说的语言是你能够听懂的,其次你没有拨错号码。如果你听到的回答是“Moshi moshi, Fujiyama Denki desu”,你可能会马上挂断电话或者寻问对方是不是你要的人。在这种情况下,会发生某种谈判,你会询问对方的电话号码,对方也会改说一种你能够听懂的语言。你假设对方能够听懂你说的话,而对方此时的反应决定了你下一个问题是什么。
DICOM协议也是用过发起某种谈判来建立连接的。这些谈判的主要内容是判断发起通讯的设备希望完成什么工作,以及接受设备能够完成什么工作。实际上,在DICOM协议中并不是设备本身完成这些谈判,而是其上运行的软件完成这一功能。DIOCM协议作为设备所支持的一个应用实体而存在,因为发起建立通讯是应用层(通讯栈中最上面的一个层面)的功能。
正如同你在电话中的谈判确定了通讯双方的基础能力(比如,使用的语言,对方的身份等),DIOCM中的连接建立也需要谈判来确定能力。应用实例的连接发起方将希望完成的工作编成一个列表发给对方。而接收方回应一个能够完成工作的列表。后续的交流是在两个列表的交集范围内进行的。举个例子,对于大于8位的数字像素值不同系统的处理就不同。有些计算机系统先发送最小有效字节,而有些系统则恰恰相反。如果两个系统用相反的表示方法传送数据,将导致错误数值出现。解决办法是设备能够发现这个问题,并且自动转换数值。DICOM协议对两种表示方法都支持,因而在信息交换前的谈判中有一个内容就是检测设备使用哪种方法。
另外一个影像设备之间的差异是对数值的表示方法。正如后面将要详述的,DICOM标准将所要发送的信息分解为一系列的数据元素。对于数据元素中所包含的数值,不同的应用程序会有不用的表示方法。DICOM对所支持的数据类型有着非常明确的定义,被称之为数值表现方法(VR)。其中包括了不等长
混合字符串(像一个句子那样包含了开头、结尾和一连串顺序字符的文字串)、二进制数据、时间和日期数据以及人员姓名数据等等。在早期的ACR-NEMA标准中,这些VR被定义在所谓数据字典的一组标准中。如果你需要编写能够接收ACR-NEMA标准数据的应用程序,为了解释接收到的数据,你需要在数据字典查询ACR-NEMA元素标签才能了解数据元素中包含什么样的数据以及如何表示这些数据。DICOM标准需要扩充新的VR标准,未来的进一步扩展将增加数据字典的大小和复杂性。这也就是为什么在DICOM标准中同时支持ACR-NEMA方法和在数据元素中定义VR的新方法。 DICOM新定义的方法V
R被定义在数据元素中,这样就不免了可能的混淆。对于软件设计人员来说,新方法减少了查阅数据字典的负担。在数据字典中定义VR的ACR-NEMA方法被称做内部VR;而DICOM所使用的在数据元素中定义VR的方法被称为外部VR。DICOM同时支持这两种方法,在通讯能力谈判时知道这一点很重要。
不论是VR方法还是字节顺序都是谈判信息的一部分,这些信息对成功建立信息交换至关重要。这些信息被称做传输语法,被定义在DICOM标准中。在建立连接的最早期阶段,使用何种传输语法进行信息交换是主要的谈判内容。
贝蒂呼叫埃克美公司销售部鲍勃的电话叫通了,双方寒暄几句后,鲍勃问贝蒂需要什么帮助。贝蒂说:“我需要15个零件”。鲍勃查了一下库存量回答说:“没错,我们正好有库存。”他接着说:“你知道,贝蒂,我们刚刚发布了马克二型零件,它的价格和马克一型一样速度提高了10% 。” 贝蒂问道:“新零件的界面怎么样?”“马克二型向前兼容马克一型,一旦清空马克一型的库存,我们将停止销售老产品。”贝蒂说:“听上去不错,这样我定15个马克二型的零件。”
这次交易简捷高效,主要是因为双方都对流程非常熟悉。假如贝蒂不认识销售部的鲍勃,她也会和销售部的其他人员要求相同的东西。
在上述场景中发生的事情,也发生在我们每天的日常生活中。这些交易如此频繁以至于除非出了什么茬子,否则很少有人会注意到它们的存在。在这个例子中不论是术语的定义还是工作的模式都是你、贝蒂
和鲍勃所熟知的。现实生活中的沟通交流就是这个样子:我们基于人所共知的术语词汇和交流模式,一旦出现我们不熟悉的词汇或者交流模式,我们或者停下来明确它们的准确定义或者冒着出问题的风险继续交流下去。在这个例子中你(产品开发经理)要求购买一打零件,但是贝蒂(工程采购经理)定购了15个。因为贝蒂根据和你共事的历史经验数据判断,你总是忘记需要为安全

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。