第三讲 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功能的设备有较长的生存期,是医疗信息网络化的基础。
转载于:https://www.cnblogs.com/zqblog007/archive/2008/09/12/1290120.html