DICOM通信|PDU数据包(2)
DICOM通信-PDU数据包(1)中主要分析了DICOM通信协议的连接协商请求和连接协商应答。 在7个PDU数据包中还有5个数据包,从结构上来看,他们比协议的协商过程要简单明了一些。 这篇博客就来分析下剩下的5种数据包。 博客中使用的是WireShark抓包工具获取到的通信传输数据。
1、DICOM通信过程
下图展示了一次C-Store通信所要经过的过程;
- 首先C-Store的SCU端(AET为GD)向SCP端(AET为ANY-SCP)发送连接请求;
- SCP收到请求后,检验是否支持该传输过程(传输语法,抽象语法的支持性),如果支持那么返回一个连接应答。这样SCU和SCP建立传输过程成功。
- 随后SCU端发送数据到SCP。
- 数据发送完成后由SCP端发送C-Store应答给SCU。
- 随后SCP发送连接释放请求。
- 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包的二进制数据。
- 原文作者:Binean
- 原文链接:https://bzhou830.github.io/post/20161008DICOM%E9%80%9A%E4%BF%A1PDU%E6%95%B0%E6%8D%AE%E5%8C%852/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。