转自:DICOM通信 - PDU数据包(2)_翼遥君的博客-CSDN博客
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用于数据传输,主要封装图像数据以及与图像数据有关的参数 也就是说是图像的像素数据和该影像相关的比如病人姓名,性别,检查医院,检查设备等等信息。
类型为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包的二进制数据。