DICOM通信-PDU数据包(1)中主要分析了DICOM通信协议的连接协商请求和连接协商应答。 在7个PDU数据包中还有5个数据包,从结构上来看,他们比协议的协商过程要简单明了一些。 这篇博客就来分析下剩下的5种数据包。 博客中使用的是WireShark抓包工具获取到的通信传输数据。

1、DICOM通信过程

下图展示了一次C-Store通信所要经过的过程;

  1. 首先C-Store的SCU端(AET为GD)向SCP端(AET为ANY-SCP)发送连接请求;
  2. SCP收到请求后,检验是否支持该传输过程(传输语法,抽象语法的支持性),如果支持那么返回一个连接应答。这样SCU和SCP建立传输过程成功。
  3. 随后SCU端发送数据到SCP。
  4. 数据发送完成后由SCP端发送C-Store应答给SCU。
  5. 随后SCP发送连接释放请求。
  6. SCU接受到连接释放请求后,返回连接释放应答,然后中断连接过程。 上述步骤就完成了一次C-Store的数据传输。 通信过程

2、 P-DATA-TF PDU

P-DATA-TF用于数据传输,主要封装图像数据以及与图像数据有关的参数 也就是说是图像的像素数据和该影像相关的比如病人姓名,性别,检查医院,检查设备等等信息。

P-DATA

类型为04H,据域包含一个或多个表示数据值。例如,下图展示一个P-DATA的数据包,由于WireShark支持DICOM协议,所以在数据显示上我们可以首先浏览解析出来的数据描述。

这里写图片描述

上述PDU的二进制表示如图所示:

这里写图片描述

3、其他PDU

剩下的4个PDU的格式都是一样的,都是有10个Bytes构成,所以将他们放在一起比较说明。

  • A-RELEASE-RQ 释放请求
  • A-RELEASE-RSP 释放响应
  • A-ASSOCIATE-RJ 协商拒绝
  • A-ABORT 中断

下面用图片比较说明上述4个PDU:

PDU

为方便说明,将该博文最前面的图中的连接释放过程的两个PDU拿来说明。蓝底表示的就是PDU包的二进制数据。

这里写图片描述