【转】DICOM通讯(ACSE->DIMSE->Worklist)

转自:DICOM通讯(ACSE->DIMSE->Worklist) - 知乎

1 DICOM通讯概要介绍

DICOM通讯和TCP IP的设计原理别无二致。从用户数据到网络上传输数据的过程中,要经历多层协议处理,每经一层,就会加入用来描述当前层含义的数据字段,例如,我们熟悉的TCP层,会在用户的数据流前,加入目标端口,源端口,TCP层用来模拟链接通道的Sequence Number和Acknowlegment Number等的字段。

TCP IP协议栈示意图

在DICOM通讯中,当数据通过TCP层后,数据流就进入了DICOM的会话层(ACSE),详细介绍可在标准第8章中。ACSE(Association Control Service Element),包含了7种类型的协议数据单元,分别是A-ASSOCIATE-RQ PDU(Protocol Data Units),A-ASSOCIATE-AC PDU,A-ASSOCIATE-RJ PDU,P-DATA-TF PDU,A-RELEASE-RQ PDU,A-RELEASE-RP PDU,A-ABORT PDU。这些服务数据单元构成了ACSE服务组。解析数据流时,当第一个字节的值是4的时候,就代表PDU是一个P-DATA类型,应当由DIMSE层来处理;相反,如果是其他值,就属于a-associate-rq, a-associate-rj, a-associate-ac, a-release-rq, a-release-rsp, a-abort6种类型PDU中的一种,直接在ACSE层内进行处理。具体的解析过程,第二章节中,以一个Modality Worklist(C-Find)的例子来介绍。

ACSE层数据流示意图

当会话层接收到PDU,并且PDU的Type是4的时候,ACSE层协议,擦掉PDU头信息,将信息流变为PDVs(Presentation Data Values )后,将数据流交给表示层来解析。详细介绍,可参考第七章。在表示层DIMSE层中,提供了C-Find, C-Store, C-Move, C-Get, C-Echo, N-EVENT-REPORT, N-GET,N-SET, N-CREATE, N-DELETE, N-ACTION 11种类型的服务,这些服务成为了DIMSE服务组。​

DIMSE层数据流示意图

可以标识PDV是什么类型,在PDV的头信息中,有一个Flags标识,具体的含义见下图。DIMSE中消息由指令集(Command)和数据集(Data Set)构成。​

PDV类型含义

2 Modality Worklist通讯

Worklist 消息交互过程

2.1 A-ASSOCIATE-req​​

A-ASSOCIATE-rq

首先,由SCU向SCP发起建立连接建立连接请求,此过程主要是要协商是否能够提供此服务,以及在实际通讯中所使用的传输语法,传输语法主要是指显式或者隐式VR以及大小尾编码方式;从上图中可以看出,在1标记处,能看到PDU的Type是0x01,是A-ASSOCIATE-req类型的PDU;SCU的AE Title是WLY(占用16个字节),SCP的AE Title是CONQUESTSRV1(占用16个字节);之后有32个字节的保留区域不存放任何信息;​​

A-ASSOCIATE-rq 字节流占位

具体的字节占位,请看下图中所示: ​​

A-ASSOCIATE-rq 二进制流占位

2.1.1 应用上下文

应用上下文,大家可以不必关注,这个只是标识DICOM通讯类型的标识,所有通讯都是一致的;下图是应用上下文的二进制的占位​​

应用上下文二进制流占位

具体的二级制流如下​

应用上下文二进制流

2.1.2 表示上下文​

表示上下文二进制流占位

表示上下文二进制流

2.1.3 User Info​

User Info 二进制流

通过对request的分析后,后续的PDU将只针对内部关键的信息进行说明。

2.2 A-ASSOCIATE-ac

A-ASSOCIATE-ac 二进制流

2.3 P-DATA-TF PDU (C-FIND-RQ)

SCU发送端WLY向SCP服务端CONQUESTSRV1发送C-FIND的DIMSE消息,服务端解析当前的PDU,发现其类型是0x04。那么,后续的解析工作,就将PDU的头信息去掉后,交给DIMSE层来进行处理,详细的解释见下图,其中,橘黄色2位置,表示当前的PDV是一个命令集。在命令集中,请求的Message ID是1,注意,服务方要对当前的请求进行应答,必须也要携带此Message ID,来表示应答信息是对此请求进行的响应。​​

Worklist请求信息组成的PDU二进制流

2.4 P-DATA-TF PDU (C-FIND-RSP)

C-FIND-RQ的命令集二级制流

服务端接收到C-FIND-RQ后,将回复请求端信息。在回复命令信息中,Status是一个重要的概念,如果是Pending,表示对应客户端请求(回复数据流的Message ID Being Responsed To的值和请求端的Message ID的值相同)的回复数据流还未结束。具体的含义,可以在第4章中进行查询。下边给出Status的可能的值

C-FIND Response中的Status的值

2.5 P-DATA-TF PDU 服务端返回相关查询信息​​

服务端回复客户端查询信息的数据集二级制信息流

2.6 P-DATA-TF PDU ,PDV是命令集,标识对应MessageID=1的查询已结束

回复命令集二进制流

2.7 A-RELEASE request和 A-RELEASE response

A-RELEASE request

A-RELEASE response

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Silverlight]16进制颜色转ARGB及Color转Int32

16进制色字符串转ARGB做Web的都喜欢用16进制字符串标识颜色,比如“#F5F5F5”这类的,自然这个到了Silverlight/WPF中就要用ARGB表示:“#FFF5F5F5”(前两位标识Alpha,即透明度)。这在XAML中没有任何问题&…

【转】DICOM通信 - PDU数据包(1)

转自:DICOM通信 - PDU数据包(1)_翼遥君的博客-CSDN博客 DICOM上层协议为DIMSE提供透明的网络数据传输服务,即以上层协议规定的协议数据单元传送接收DIMSE的命令流与数据流。上层协议中制定了上层服务以及协议数据单元(Protocol Data Unit,PD…

【转】DICOM通信 - PDU数据包(2)

转自:DICOM通信 - PDU数据包(2)_翼遥君的博客-CSDN博客 DICOM通信-PDU数据包(1)博客中主要分析了DICOM通信协议的连接协商请求和连接协商应答。 在7个PDU数据包中还有5个数据包,从结构上来看,他们比协议的协商过程要简单明了一些。 这篇博客…

“启动Word时提示出错,只能用安全模式才能打开”的解决方法

启动Word时提示出错,只能用安全模式才能打开,在这种模式下,一些功能将被禁用。而且,每次启动都会出现这样的提示信息,同事们很多向我求助。提示窗口如下: 于是我采取了以下一些措施: 1、用Offic…

DotNET内存管理与垃圾回收[转]

1. Stack(栈)和Heap(堆)每个线程对应一个stack,线程创建的时候CLR为其创建这个stack,stack主要作用是记录函数的执行情况。值类型变量(函数的参数、局部变量等非成员变量)都分配在st…

【转】WPF XAML X名称空间详解

转自:WPF XAML X名称空间详解_郎涯技术-CSDN博客 X名称空间里面的成员(如X:Name,X:Class)都是写给XAML编译器看的、用来引导XAML编译器将XAML代码编译为CLR代码。 【X名称空间里面到底都有些什么】 x名称空间映射的是:http://schemas.microsoft.com/winfx/2006/xam…

【转】DICOM医学图像处理:DICOM网络传输

背景: 专栏取名为DICOM医学图像处理原因是:博主是从医学图像处理算法研究时开始接触DICOM协议的。当初认识有局限性,认为DICOM只是一个简单的文件格式约定,简而言之,我当时认为DICOM协议就是扩展名为DCM文件的格式说明…

symbian c++ 开发环境Carbide.c++搭建

需要的东东:JDK1.3.1以上(自带了,不用安装),SDK 2.0 以上(CW版本),perl5.8.x carbide.c 免费版本 所以的东西都默认安装,下一步-->下一步,^_^! 现在开发用的最多的可能就是VC6了,听说以…

【转】9、XAML名称空间详解

转自&#xff1a;9、XAML名称空间详解 - 种花生的读书人 - 博客园 XAML命名空间 <Window xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"> </Window> xmlnshttp:…

wince使用自定义字体

在wince中使用自定义字体其实很简单&#xff0c;只要将自已的字体加到你的程序中就可以使用了&#xff0c;在使用完后再将其清除掉。以wince中加使用"Georgia”字体为例&#xff1a; 在程序初始化的时候将你的字体加载进程序 AddFontResource(L"NandFlash\\Font\\Geo…

【转】ubuntu 开机sudo启动应用程序

转自&#xff1a;ubuntu 开机sudo启动应用程序_Honhy的博客-CSDN博客_sudo 启动应用 第一步&#xff1a;创建一个脚本(run.sh)&#xff0c;我是放在桌面&#xff0c;脚本内容为: echo "hon123"|sudo -S /home/python/qt/Tools/QtCreator/bin/qtcreator exit 0 橙色的…

WinCE Emulator使用介绍

最近用了一下WinCE的模拟器&#xff0c;我做WinCE有几年了&#xff0c;从来没有用过WinCE的模拟器&#xff0c;第一次接触WinCE的时候就是一块S3C2410的板子和PB4.2的开发平台&#xff0c;然后就开始折腾&#xff0c;后来各种开发板都用过&#xff0c;WinCE也从4.2版本用到了6.…

【转】Ubuntu Desktop下自动启动终端并运行脚本

转自&#xff1a;Ubuntu Desktop下自动启动终端并运行脚本 - 简书 alexubuntu19:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 19.04 Release: 19.04 Codename: disco alexubuntu19:~# uname -a Linux ubunt…

【转】DICOM简述!!!!

转自&#xff1a;DICOM简述 - 简书 视频教程&#xff1a;https://www.bilibili.com/video/av66144772 DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;即医学数字成像和通信&#xff0c;是医学图像和相关信息的国际标准&#xff08;ISO 12052&…

【转】xilinx usb下载器 速度高速极限设置 JTAG-SMT2 JTAG-HS2 JTAG-HS3和Platform Cable USB DLC9 DLC10速度测试

xilinx usb下载器 下载速度极限设置以及高速JTAG-SMT2(HS1 HS2 HS3)和DLC9 DLC10 速度测试 对于一款xilinx的下载器&#xff0c;研发和烧录以及boss都最关心下载速度的极限值。因为速度快可以在短时间内完成下载和仿真采集数据等任务。时间就是金钱&#xff0c;能节约时间大家…

【转】vivado18.3的安装 安装教程

原装性能 Xilinx下载器 赛灵思下载线 Platform Cable USB仿真器 Xilinx下载器 CPLD FPGA digilent usb JTAG SMT2 高速 赛灵思线 转自&#xff1a;Vivado18.3的安装 安装教程_Daniel_Banana的博客-CSDN博客 本文内容学习自【ALINX】FPGA ZYNQ视频教程——AX7010/AX7020教程—…

【转】5分钟了解FPGA之Xilinx 7系列

转自&#xff1a;http://xilinx.eetrend.com/content/2019/100042384.html xilinx7系列FPGA主要包括&#xff1a;Spartan-7、Artix-7、Kintex-7、Virtex-7。其性能/密度/价格也随着系列的不同而提升。 Spartan7系列是7系列中的屌丝青年&#xff0c;拥有最低的价格、最低的功耗…

【转】FPGA到底是啥?

转自&#xff1a;FPGA到底是啥&#xff1f; - 知乎 怎么才叫学会了FPGA&#xff0c;怎么才叫学好了FPGA&#xff1f;我相信有很多朋友有类似的问题&#xff0c;因为在多数人的潜意识里&#xff0c;FPGA是非常高深莫测的技术&#xff0c;能够玩转FPGA的都是大神级的人物。 其实…

【转】重新打包DebianISO实现无人应答安装(UEFI+BIOS)

转自&#xff1a;重新打包DebianISO实现无人应答安装&#xff08;UEFIBIOS&#xff09; - 全部 - 真不是你的 之前我写过打包DebianISO的文章&#xff0c;但是那种打包的方法只能用在引导是BIOS的机器上&#xff0c;按照正常的情况&#xff0c;应该是UEFIBIOS同时支持。 正好前…

Copying to tmp table Problem Solving

Labels: MySQL, MySQL_Problem_Solving 今天一早突然系统突然报慢&#xff0c;查了一下是以下语句&#xff1a; 6177700 username ip db——name Query 549 Copying to tmp table SELECT ....................原因如下&#xff1a;Copying to tmp table on disk The tempora…