DICOM 协议中DIMSE-C 和 DIMSE‑N 功能
DICOM 协议中最主要的两种命令类别:DIMSE-C (Composite Commands) 和 DIMSE-N (Normalized Commands)。它们涵盖了 DICOM 设备之间大部分的交互和数据交换功能。
DIMSE-C 和 DIMSE-N 命令概述
DICOM 协议的核心通信机制是基于 DIMSE (DICOM Message Service Element)。DIMSE 定义了应用程序实体 (AE) 如何通过网络交换消息。这些消息中包含了命令(Command)和可选的数据集(Data Set)。
DIMSE-C (Composite Commands)
DIMSE-C 命令主要用于操作 复合 SOP 实例 (Composite SOP Instances)。复合 SOP 实例通常代表了医疗影像数据本身,例如 CT 图像、MR 图像、超声图像等。这些命令设计之初是为了与早期 ACR-NEMA 标准兼容,因此在 DICOM 协议中非常基础且常用。
常见的 DIMSE-C 命令包括:
- C-STORE: 存储服务。这是最常用的命令,用于将 DICOM 图像、结构化报告等复合实例从一个设备(SCU)发送到另一个设备(SCP),例如从成像设备发送到 PACS。
- C-FIND: 查询服务。用于在 DICOM 数据库中查找符合特定条件的复合实例信息,例如查询 PACS 中某个患者的所有检查列表。
- C-GET: 获取服务。由 SCU 请求 SCP 直接将复合实例传输给自己。SCP 会直接将数据 “推” 给 SCU。
- C-MOVE: 移动服务。由 SCU 请求 SCP 将复合实例移动(通过 C-STORE)到另一个指定的 Application Entity Title (AET)。通常用于 PACS 将图像发送到诊断工作站,或者从一个 PACS 转移到另一个 PACS。
- C-ECHO: 验证服务。用于测试两个 DICOM 设备之间的网络连通性和 DICOM 服务是否可用,类似于网络中的 ping 命令。
- C-CANCEL: 取消服务。用于取消之前发出的 C-FIND、C-GET 或 C-MOVE 等操作。
DIMSE-N (Normalized Commands)
DIMSE-N 命令主要用于操作 规范化 SOP 实例 (Normalized SOP Instances)。规范化 SOP 实例通常不代表图像数据本身,而是更抽象、面向对象的概念,例如打印队列、设备配置、MWM (Modality Worklist Management) 条目、MPPS (Modality Performed Procedure Step) 状态等。它们提供了更丰富的管理和通知功能。
常见的 DIMSE-N 命令包括:
- N-CREATE: 创建服务。用于在 SCP 上创建一个新的规范化 SOP 实例,例如创建一个新的打印任务。
- N-GET: 获取服务。用于从 SCP 获取某个规范化 SOP 实例的属性信息,例如获取打印机状态或工作列表条目的详细信息。
- N-SET: 设置服务。用于修改 SCP 上某个规范化 SOP 实例的属性,例如修改一个打印任务的参数。
- N-ACTION: 执行动作服务。用于请求 SCP 执行某个特定的、与规范化 SOP 实例相关的动作,例如请求打印机开始打印。
- N-DELETE: 删除服务。用于删除 SCP 上的一个规范化 SOP 实例,例如删除一个已完成的打印任务。
- N-EVENT-REPORT: 事件报告服务。这是唯一一个由 SCP 主动发送给 SCU 的命令,用于通知 SCU 某个规范化 SOP 实例发生了特定的事件或状态变化,例如打印任务完成或发生错误。
其他命令
严格来说,在 DICOM 的消息交换服务元素 (DIMSE) 层面,DIMSE-C 和 DIMSE-N 就是所有主要的命令大类了。它们涵盖了 DICOM 应用程序之间在应用层进行数据交换和操作的所有核心功能。
然而,在整个 DICOM 协议的层次结构中,除了这些数据交换和操作命令之外,还有一些其他重要的“命令”或“协议”类别,它们发生在更低的层次,负责建立和管理 DICOM 通信会话:
1. A-ASSOCIATE (Association Establishment)
这不是一个 DIMSE 命令,而是 DICOM 应用层服务元素 (ACSE - Association Control Service Element) 的一部分。在任何 DIMSE 命令(C-XXX 或 N-XXX)可以被发送之前,两个 DICOM 应用程序实体 (AE) 必须首先建立一个 关联 (Association)。
- A-ASSOCIATE-RQ (Request): SCU 发送的请求,用于协商和建立 DICOM 关联。它会声明 SCU 想要支持的 SOP Class、Transfer Syntax 等信息。
- A-ASSOCIATE-AC (Accept): SCP 对 A-ASSOCIATE-RQ 的接受。
- A-ASSOCIATE-RJ (Reject): SCP 对 A-ASSOCIATE-RQ 的拒绝。
2. A-RELEASE (Association Release)
同样是 ACSE 的一部分,用于正常终止一个已建立的 DICOM 关联。
- A-RELEASE-RQ (Request): 一方请求释放关联。
- A-RELEASE-RP (Response): 另一方确认释放关联。
3. A-ABORT (Association Abort)
当发生不可恢复的错误时,用于突然终止一个 DICOM 关联。这通常发生在非正常情况下,例如网络中断或协议错误。
所以,虽然 DIMSE-C 和 DIMSE-N 是你在处理 DICOM 数据和特定服务时最常接触到的命令,但 ACSE 相关的 A-ASSOCIATE、A-RELEASE 和 A-ABORT 命令在 DICOM 通信的建立、管理和终止方面也扮演着至关重要的角色。它们是 DICOM 协议栈中实现可靠通信的基础。