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

转自:DICOM通信 - PDU数据包(1)_翼遥君的博客-CSDN博客

DICOM上层协议为DIMSE提供透明的网络数据传输服务,即以上层协议规定的协议数据单元传送接收DIMSE的命令流与数据流。上层协议中制定了上层服务以及协议数据单元(Protocol Data Unit,PDU)。
PDU是处在同一层的对等体用来交换的信息格式,DICOM根据上层服务定义了以下七种PDU:

  • ASSOCIATE-RQ PDU:连接建立请求PDU
  • A-ASSOCIATE-AC PDU:连接建立接受PDU
  • A-ASSOCIATE-RJ PDU:连接建立拒绝PDU
  • P-DATA-TF PDU:数据传输PDU
  • A-RELEASE-RQ PDU:连接释放请求PDU
  • A-RELEASE-RP PDU:连接释放响应PDU
  • A-ABORT PDU:异常终止PDU

一个PDU应该由PDU头和PDU数据组成。PDU头一共6个字节:第一个字节用来标识PDU类型;第二个字节保留作为协议将来发展用,一般置为零;第三到第六个字节用来表示PDU数据的长度,这四字节的长度应是按网络字节序来排序。
PDU数据的格式由不同的PDU类型决定。

1、 A-ASSOCIATE-RQ PDU

A-ASSOCIATE-RQ(AC) PDU中包含协议版本、应用环境条目、表达环境条目、抽象语法子条目、传输语法子条目以及用户信息条目等需要双方协商的重要信息,它的结构如下:
A-ASSOCIATE-RQ结构
 

  • 1、类型标识
    A-ASSOCIATE-RQ PDU的PDU类型标识为01H
    A-ASSOCIATE-AC PDU的PDU类型标识为02H
  • 2、协议版本
    用来标识当前所使用的DICOM协议版本。
  • 3、被调用实体名称
    标识与本地应用程序进行通信的应用程序,它的主要作用是当有多个远端应用程序与本地同时进行通信时,区分有相同端口号的不同应用程序。
  • 4、调用实体名称
    标识本地应用程序AET。
  • 5、应用环境条目
    A-ASSOCIATE-RQ和A-ASSOCIATE-AC中,均标识为10H。应用环境表示DICOM协议特有的使用环境,它的值在DICOM中规定为:1.2.840.10008.3.1.1.1。
  • 6、表示环境条目
    在A-ASSOCIATE-RQ此条目类型标识为20H;
    在A-ASSOCIATE-AC中为21H。
    一个字节的表示环境ID,用于标识一个特定的表达环境。它的值为1到255之间的奇数,在同一个A-ASSOCIATE-RQ(AC) PDU中如果有多个表示环境条目,那么它们的表示环境ID应该不同,即是说在一个A-ASSOCIATE-RQ(AC) PDU中最多可有(255-1)/2+1=128个表示环境条目。
    一个字节的结果/原因,只用在A-ASSCIATE-AC PDU中,通信程序客户端可通过检验此参数的值来判断连接协商成功与否,在A-ASSOCIATE-RQ PDU中这个值设为零。这个条目包含若干抽象语法子条目和传输语法子条目。其中,抽象语法子条目:在A-ASSOCIATE-RQ此条目类型标识为30H,这个条目不出现在在A-ASSOCIATE-AC中。
    抽象语法表示整个应用程序要使用的服务对象对SOP,比如患者根查询/找回信息模块SOP类的UID值为:1.2.840.10008.5.1.4.1.2.1.1。每个SOP类对应的UID值在DICOM标准第六章数据词典的附录A中的DICOM唯一标识符(UID)注册表中有详细规定。
    传输语法子条目:在A.ASSOCIATE-RQ和A-ASSOCIATE-AC中,此条目类型均标识为40H。通信程序双方协商好传输语法之后,也就规定了双方以后的PDU中DICOM消息信息服务元(DIMSE)的封装格式。
    最常用的传输语法有:明确小Endian、模糊小Endian和明确大Endian,小Endian、大Endian就是常说的两种字节排列顺序:本地字节序和网络字节序。明确与模糊的区别在于有没有VR(值表示域)。
  • 7、用户信息条目
    在A-ASSOCIATE-RQ和A-ASSOCIATE-AC中,此条目类型均标识为50H。这个条目一般包含最大长度子条目,还可包含实行体类UID子条目以及实行体版本子条目。其中,最大长度子条目包含在A-ASSOCIATE-RQ和A-ASSOCIATE-AC中,其类型均标识为51H。用于协商在连接建立以后,客户端在P-DATA.TF PDU变量域中最多能够封装的字节数。

2、A-Associate-RQ传输数据实例

按照上述描述,标注传输数据:
数据传输实例


C-Store应用中Associate实例:

这里写图片描述

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

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

相关文章

windows mobile 编译(生成镜像)提速

windows mobile 编译镜像总是让人难以忍受的耗时,当然我们不能每次修改一点东西就build All一次。 下面是自己工作中积累的【不同情况下使用的编译命令】来加速生成镜像的过程,不排除有错的可能,欢迎指正。 对于修改,一般可以分…

ASP.NET MVC + ADO.NET EF 项目实战(二):设计过程与设计工具

工欲善其事,必先利其器。好的工具能够成倍提升工作效率。ASP.NET MVC和ADO.NET EF也是因为其工具出色而受到欢迎。例如: MVC所提供的View模板工具; MVC所提供的View切换、向导工具; ADO.NET EF提供的模型设计工具; ADO…

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

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

Win CE下编译选项介绍

在WinCE中,在"Build OS”菜单中,我们会看到不同的编译选项: "Sysgen","Build and Sysgen"和"Build and Sysgen current BSP" Sysgen:不用多说,当你在"Catalog&quo…

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

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

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

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

WinCE中,环境变量的添加,删除和查询

在WinCE中有很多的环境变量,那么如何设置/删除/查询这些环境变量呢:1. 查询环境变量:当我们在PB里打开或者创建一个工程以后,我们可以在菜单中点 “build”->“Open Release Directory in Build Window”,然后会弹出…

【转】DICOM命令集和数据集解析!!

转自:DICOM命令集和数据集解析 - 微笑的艾米 - 博客园 摘 要:本文通过分析一个典型的DICOM消息,详细地解析了DICOM命令集和数据集的构成方式和其含义。并在此基础上,提出了一种实现DICOM命令集和数据集解析的实施方案&#xff0…

【转】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…

C++编绎器编绎C语言的问题

由于应用的需要,要在原来的C语言中加入C类,这时就会出现很多类型转换的错误,因为在C语言中默认的是强制转换的,而在C中不会自动强制转换,只能手工强制转化。所以出现错误了,只有一个错误一个错误的改了。我…

关于mult-xip bin的一些资料整理

一.实现multbin 1.首先修改config.bib 比如:#elif defined IMGMULTIBIN; NAME START ADDR SIZE TYPE; ----------------------------------------------------------------NK 80220000 007DE000 RAMIMAGE SHELL 809FE000 001…

x210-II WinCE启动10s,还可继续优化

为提高boot引导速度,,需支持multibin。方法如下: 1.D:\WINCE600\PLATFORM\SMDKV210\SMDKV210.bat REM For Multiple XIP (using demand paging on BINFS) set IMGMULTIXIP1 2.调整config.bib镜像大小 由于系统生成的XIPKERNEL约为3M。大于默认设置。所…

【转】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:…

ASP.NET中使用非托管DLL

在ASP.NET窗体页面中使用非托管的DLL&#xff0c;则该DLL的部署则成了一大麻烦事&#xff0c;你把他放在bin目录下不管用&#xff0c;网上介绍了几种解决办法&#xff0c;貌似有点繁琐&#xff0c;其实只要新建一个程序集项目来封装这个DLL中被调用的函数&#xff0c;然后在Web…

【转】Linux的.a、.so和.o文件

转自&#xff1a;Linux的.a、.so和.o文件_chlele0105的专栏-CSDN博客 在说明Linux的.a、.so和.o文件关系之前&#xff0c;先来看看windows下obj,lib,dll,exe的关系 windows下obj,lib,dll,exe的关系 lib是和dll对应的。lib是静态链接库的库文件&#xff0c;dll是动态链接库的库…

wince使用自定义字体

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

Visual Studio 2008 十大新功能

VS2005还没有最终稳定的版本&#xff0c;但是我想在微软的某个办公室&#xff0c;一个项目组正在研究发展Visual Studio 2008这个版本。我看了一下表&#xff0c;现在的时间是公元2006-3-9日&#xff0c;离微软发布VS2008版的α版还有整整18个月&#xff0c;我不知道它最终会是…

【转】linx 设备名字来由 sd sr sg st

转自&#xff1a;/dev/sr0 与/dev/cdrom_luoweifeng1989的博客-CSDN博客_/dev/sr0 一直不知道 sda sdb sr0 这些名字的前两两个字母是什么意思 > > On Tue, Nov 3, 2009 at 9:34 AM, Derek Broughton > > <derekpointerstop.ca>wrote: > > Transla…