第三讲 DICOM消息交换和网络通信

第三讲 DICOM消息交换和网络通信
正如DICOM标准  本身的命名那样,DICOM标准  要解决的一个主要问题就是  网络传输,也就是  在各种各样的网络硬件和软件的环境下,如何能够实现  医学图像  可靠地高效地传送到  期望的目的计算机中。为此,DICOM标准采取的策略是   在成熟的标准化的网络环境基础上  增加对医学图像的支持,而不是从最低层开始定义,这样就可以直接利用   现有的网络硬件和软件资源,促进DICOM标准的开发和应用。
一 DICOM网络的层次模型
在DICOM标准的制定中,主要采用了  在实际中广泛使用的  TCP/IP协议和影响较大的OSI网络协议,作为  对DICOM网络  支持的基础。在这两个协议之上  分别定义了DICOM自己的  基于消息的信息交换的  上层协议DIMSE (Dicom Message Service Element)。为保持 与以前版本的兼容,仍保留了  对点对点打印的支持。DICOM网络的层次模型  如图1所示。
在这个模型中,圆角框部分  是DICOM标准中所定义的部分,虚线框  表示具体的应用程序,由用户根据需求自行定义。方框部分   则是在其它标准中所定义的,DICOM标准只不过直接使用。
应用程序  与  DICOM应用实体  之间的应用程序接口(API)  并不是在DICOM标准中说明,而决定于实现。一般这个API提供了  对其它应用的连接,构造和处理SOP实例  并传送到远方应用等  这类函数。
对应用层,对  应用实体  提供了两组服务: 联系控制协议(ACSE)  和  DICOM消息协议(DIMSE),它们都必须对DICOM实现有效。ACSE是一个标准的OSI协议。DIMSE的DICOM服务,是应用实体中提供的服务的一部分。
在ACSE和DIMSE应用之间的接口是   DICOM标准中说明的  DICOM接口。这个说明描述了  对ACSE和DIMSE请求的  每一个功能  所要求的每一个参数,是  DICOM应用上下文  的一部分。
TCP/IP栈  和   OSI应用服务扩展  的组合  广泛地应用在  通过网络来实现DICOM。由于TCP/IP没有定义高层,DICOM所要求的应用、表现和会话层功能  在DICOM标准中  组合为  一个层,称为  DICOM高层或DUL。
DUL  对TCP/IP协议栈  使用了相同的DICOM接口。在低层DUL  具有与TCP层的接口。在应用实体之间的DICOM联系   映射到   一个TCP连接。表现地址  映射到  一个TCP端口号,与IP号或主机名  相结合。这个IP号  和  TCP端口的组合称 套接地址。在网络中这个组合是唯一的。
在DICOM 3.0版本中,点对点环境是为保持与以前版本的兼容而保留的。

二 工作过程
对于一次DICOM的通信,具体过程为:
● 应用程序   通过API  发出DICOM功能服务要求
● DICOM服务器   构造  应用实体,将  API参数  放入  应用实体上下文
● 应用实体   根据 上下文功能要求   调用对应的  DICOM上层服务  功能
● DICOM上层服务  将相关参数  组成TCP包   传递给  TCP Socket
● 操作系统的   TCP/IP服务   通过   物理网络   将数据传送到目标计算机
● 目标计算机  在接收到信息后,回送  应答信息
上面的通信过程只是一个非常示意性的概要说明。由于在网络中  出现的情况  非常复杂,实际的通信联络的过程  和  内容  是繁琐而具体的。举个最简单的例子,我们在上一讲中介绍过传输语法,它规定了   传送内容的编码方式、字节发送的次序、图像的封装形式等等。  在两台计算机(网络中称主机)之间  进行DICOM通信时,DICOM需要   就传输语法   进行协商,首先由通信的  请求方  使用默认的传输语法  给出自己可以用的  传输语法清单  由对方选择,通信的另一方则 根据自身的硬件和操作系统等软件情况 选择合适的传输语法,并回答对方。这样就   确定了在其后通信中   所采用的传输语法。
传输语法的协商  只是DICOM网络通信中的  一小部分,还有很多其它方面内容  必须在通信的联系过程中确定。具体可以查阅标准。

三 数据结构
在DICOM的各个网络层次上,使用了多种数据结构,下面介绍主要的两个数据结构。
1. 消息 (Message)
在DICOM的网络接口中,信息是  通过DICOM消息  通信的。一个消息是由命令集与后面有条件的数据集复合而成的。命令集用来指明   待完成的  在数据集上的  操作和通告。
命令集由若干个命令元素构成,命令元素  包含有  DIMSE协议指定语义的命令集中每个独立域中的编码值(见9.2和10.2)。每个命令元素由一个显式标记、值长度和值域复合而成。数据集我们已经在第二讲中介绍过,这里不再重复。DICOM消息的总的结构见图2。
2. 协议数据单元(Protocol Data Unit,PDU)
协议数据单元(PDUs)是在  对等实体   间交换的信息格式,它用于将  DICOM消息   经  DIMSE协议  发送到  对方。一个PDU  将由  协议控制信息  和  用户数据组成。PDUs由  强制固定字段  和紧随其后的可选值字段构成,可选值字段包含一个或多个条目或子条目。
DICOM  (D)UL协议  由P-DATA-TF PDU、A-ASSO-CIATION-RQ PDU、A-RELEASE-RQ PDU、A-ABORT PDU等七种协议数据单元PDUs组成。A-ASSOCIATION-RQ PDU的结构可用图3表示

四 DIMSE联系协议
与其它通信协议一样,DICOM也使用了对等的观点对协议进行解释和说明。所谓对等的观点是指通信双方的操作  是在同一个层次上   进行,例如,在说明  数据链路层  的操作,就认为  发送的数据  是传送到  对方的数据链路层,对方的回应信息   也来自  数据链路层,而不考虑接收方数据链路层再向上层的信息交换。
两个   应用实体   之间的用于信息交换的  连接   称为联系 (Association)。对一个联系,许多通信内容都是作为上下文(Context)被确定的,其中的内容可以发生变化,这种变化实际上体现了信息的交换。在DICOM标准中  定义了  这个上下文(称应用上下文),双方必须根据这个上下文的定义协调动作。
一个应用上下文用UID标识,并在  联系  初始化中  传递到对方。通过比较  应用上下文的UID,对方能够决定  是否能够处理这个联系的请求。  它可以为  联系  接受建立或拒绝它。
一个应用上下文覆盖了信息交换的全局功能。通过联系,哪一种类的信息交换能够发生  是由SOP类和  这些SOP类的服务类定义。联系的启动方建议的SOP将使用的类型、每个SOP类的SCU/SCP(服务类用户 /服务类提供者)角色和信息的表示方式,取决于  另一方的能力,它可以接受或拒绝每一个单独的SOP类。
经过这个协商过程,双方都知道对方的能力和限制。实际的信息交换   能够根据  服务类和SOP类角色(为这些类定义的)进行。当联系不再需要时,联系被终止。
在联系的初始化过程中,协商的每一个SOP类,必须在两个进程之间达成协议,涉及到两个进程之间使用的传输语法。启动方建议所有的特定SOP类能够处理的传输语法,另一方选择其中一个传输语法。经过协商双方SOP类都接受的表现上下文被确定。
一个表现层上下文通过双方都同意的数标识,称表现上下文ID。在一个联系的上下文中可能存在许多表现上下文。表现上下文ID标识了发生信息交换的SOP类。
以上联系中的信息都是封装在PDU中   经过TCP/IP及物理层    传送到对方的。
五 结束语
DICOM的网络功能,采用了标准化的低层结构,有很好的应用基础,受硬件技术发展的影响小,能够在网络性能提高的同时直接受益。这使得支持DICOM功能的设备有较长的生存期,是医疗信息网络化的基础。
posted @ 2008-09-12 17:45  zqblog007  阅读(571)  评论(0编辑  收藏  举报