【VC++开源代码栏目提醒】:网学会员,鉴于大家对VC++开源代码十分关注,论文会员在此为大家搜集整理了“DICOM网络通信协议分析以及基于DCMTK的储存服务类的实现 - 期刊论文”一文,供大家参考学习!
2009年9月 内蒙古科技大学学报 September,2009 第28卷3期 Journal of Inner Mongolia University of Science and Technology V01.28,No.3 文章编号:1004-9762(2009)03—0221-05 DICOM网络通信协议分析 以及基于DCMTK的储存服务类的实现’ 吕晓琪,刘溢淳 (内蒙古科技大学信息工程学院,内蒙古包头014010) 关键词:DICOM;通信协议;储存服务;DCMTK 中图分类号:TP391 文献标识码:A 摘要:针对DICOM(Digital Imaging and Communications in Medicine)标准的主要部分网络通信协议进行了详细的 分析.基于DCMTK(DICOM TOOL KIT)工具包的支持,采用面向对象的方法实现了符合DICOM标准的储存服务 类,并给出了该部分的程序控制流原理图. Analysis of DICOM network communication protocol and’ implementation of storage service class based on DCMTK LV Xiao-qi,LIU Yi-chun (Information Engineering School,Inner Mongolia University of Science and Technology,Baotou 014010,China)Key words:DICOM;communication protocol;storage service;DCMTKAbstract:The network communication protocol of the main part of DICOM(digital imaging and communications in medicine)standardsWa¥analyzed in details.By object-oriented programming,the storage services class defined in DICOM was implemented based on DC·MTK(DICOM TOOL KIT),and the control-flow chart of the module was presented. 在医疗行业,伴随着先进医疗设备的使用,医院 1 DICOM标准简介急需进行数字化建设.建立面向医院的数字化影像 的管理和通信系统,可以极大地提高医院影像服务 自上世纪70年代以来,随着计算机科学技术的质量和效率.DICOM(digitalimaging and communica- 迅速发展,数字化医疗设备的种类和数量不断增加,tion of medical)是该系统的一个重要的标准,目前国 使得一大批数字成像设备相继应用于临床.但是制 内外大多数先进的医疗设备,如CT(断层扫描)、MR 造商都制订了各自不同的图像格式,因而来自不同 (核磁共振)等,都要求支持这一标准.本文介绍 制造商的成像设备产生的图像不可能互换.为了统 DICOM标准,并分析其通信协议,在掌握DICOM实 一不同制造商的设备之间的接口标准,美国放射学 体间的连接建立过程的基础上,用面向对象的方法 会ACR(American college of Radiology)和美国国家 设计实现了DICOM通信模块中的储存服务类. 电气制造商协会NEMA(National Electrical Manufac· ·收稿日期..2009—05一16 基金项目:国家自然科学基金资助项目(60761002) 作者简介:吕晓其(1963一),男,山西阳商人,内蒙古科技大学教授,博士 万 方数据 222 内蒙古科技大学学报 2009年9月第28卷第3期turers ASSOCiation)在1983年成立联合委员会,旨 工程文件.用CMake打开DCMTK开发包,需要说在制订一套医学图像的通讯标准,其主要目标是: 明的是首先要选择相应的VC环境,其次就是几个 (1)提供独立于各设备制造商的数字图像及其相关 with.堆选项中需要添加的是“DCMTK 3.5.4.support信息的通讯标准,促进数字图像的网络化;(2)促进 libraries for windows”解压出来的对应的文件夹.点PACS(Picture Archiving and Commtlnication System) 击两次configure之后就可以点ok生成工程文件的发展,并扩展PACS与HIS(Hospital Information 了.System),RIS(Radiology Information System)等医学 (3)用VC2005编译DCMTK工程,并生成一些信息系统的通讯;(3)建立一个广泛的、分布式的诊 静态连接库.这些静态连接库和头文件是用来在断信息数据库,便于处理地理上分散的不同设备间 VC2005下开发需要使用的,将这些文件分别都复制的查询请求. dcmtk—lib和dcmtk—include中以便引用. ACR-NEMA委员会最早于1985年正式发表 (4)运行VC2005,点击工具菜单项的选项一ACR—NEMAI.0版(No.300—1985).在1986年和 栏,然后在vc++目录环境中作以下设置:1988年又分别发布了DICOM标准的两个修订版. 一在Include files中加入E:\dcmtk-3.5.4\dcmtkACR—NEMA委员会最终在1996年发布了一套规 ..include范,并正式命名为DICOM3.0(Digital Imaging and _在Library files中加入E:\demtk-3.5.4\dcmtkCommtlnieations in Medicine3.0),此标准被众多影像 -lib设备制造商及机构采用.ACR.NEMA委员会每年都 以上只是对于dcmtk使用的简要说明,但是编会公布一些针对DICOM3.0标准的修改和扩充,目 译过程中还有很多问题要注意,鉴于篇幅限制就不前最新发布的版本是在2007年公布的.限于篇幅, 再多做说明了,请大家参看文献〔3〕.本文对DICOM标准的具体内容及组成不作介绍,具 3 DICOM通信协议分析体内容参见文献〔1,2〕. DICOM标准的定义是医学数字成像及其通信2 DCMTK介绍和使用说明 的标准.由此可见,DICOM主要对两个方面的内容 DCMTK(DICOM TOOL KIT)是一套针对DICOM 进行规范:如何将现实世界抽象数字化;这些抽象化标准,由德国offis公司提供的开源项目.它采用的 的信息如何通过网络实现通信.对此,DICOM定义是ANSI C和C++语言混合编程,完全以开源代码 了两个模型分别实现上述内容的规范:的形式呈现,其开发包可从网上轻松下载到.该 (1)DICOM信息模型,它来源于DICOM现实世DCMTK软件可以在Windows和大部分的Unix操作 界模型,定义了医疗图像通信中所涉及信息的结构系统下编译使用,而且提供了所有必要的配置脚本 及其相互关系_1;和项目文件.它是现在主流的DICOM的开发包之 (2)DICOM网络协议模型,包括消息交换和网一,后面我们将以DCMTK为帮组来实现DICOM的 络通信支持机制.储存服务类. 第一部分实际上就是定义了如何将医学图像标 下面对DCMTK基于Windows环境在VC2005 准化,标准图像的最大优势就是图像的格式的规范中的使用进行说明: 化和满足网络互联下的相互通讯,为标准制定网络 (1)从I)CMTK官方网站http://www.dcmt k.org, 环境下医学图像通讯协议打下基础.本文着重谈论下载以下两项:DCMTK 3.5.4¥ource code and doctl· 的是DICOM协议的网络协议模型,关于DICOM信mentation和DCMTK 3.5.4-support libraries for win- 息模型的说明请参看相关文献〔1,2〕.dows. 3.1 DICO协议模型 (2)在VC2005下使用DCMTK工具包需要使 DICOM协议是应用性协议,是基于现成的网络用CMake这一编译工具来使其转化为VC2005可以 传输协议的应用,因此它的定义参照了ISO的开放识别的工程文件,CMake工具的官方网站是http:// 系统互连模型(Open system Interchange.OSI).OSI聊哪.cmake.org,下载CMake2.4并安装.解压DC- 网络模型是一个广为人知的计算机网络协议模型,MTK开发包,用CMake使用DCMTK开发包并生成 虽然不实用,但其体系完整、理论完美特点使其成为 万 方数据 吕晓琪等:DICOM网络通信协议分析以及基于DCMTK的储存服务类的实现 223一个理论模型被其他协议广为引用,用来阐明概念 比中可以清楚地看到DICOM完成的是相当于OSI成为~个理论参考依据.许多应用协议的定义都是 的IOS参考模型的应用层、表示层、会话层的部分功使用0SI协议模型的术语来定义的. 能. DICOM网络协议只定义了OSI协议模型的会 3.2 DICOM应用实体(Application Entity)话层、表示层和应用层.其中重点是应用层规范的 DICOM应用实体包括的主要内容如图2所示.定义,即协议第七章一DICOM消息交换;表示层和会话层很大程度上是对OSI协议模型的具体化和 服务类特定化,使之适应于医学影像领域的应用.DICOM 检奁管理;储存:图像管理标准定义了上层协议(DICOM Upper Layer Protoc01) 翟 结果管理;打印:查询/取回 盎来实现表示层和会话层的功能,我们要实现的DI— 蜷COM上层协议层是运行在TCP传输层之上的. 划 信息对象 DICOM标准为了使协议层次简单,在DICOM表述中,将网络协议简化为两个层次:应用层和上层 DICOM信息服务元协议层.应用层负责消息交换,上层协议层负责为 (DEVISE)消息交换提供表示和关联控制服务(AssociationControl Service Elements,ACSE),包含了应用层以下 L和传输层以上各层的功能,不论传输层使用何种连接技术都提供给应用层统一的服务.所以在DI-COM网络体系和模型示例图中,都强调一个上层服 图2 DICOM应用实体结构务边界(Upper Layer Service boundary)的概念,这样 Fig.2 DICOM appHcatlon layer structure就明确了DICOM服务功能实现在那个层次.图l给出了DICOM网络协议的模型与OSI关系的对 在图2中,虚线框内为应用实体层研究范围,它熙〔】至至巫〔〕 包括联结协商、DICOM信息服务元(DIMSE)操作与 通告以及服务类、信息对象封装等内容.它是介于 上层 网络通讯和面向用户之间的关键一层,信息的定义, 服务 编码构成,网络数据信息包的组成在该层中规范. 边界 连接控剖服务 DICOMM上层 元素(ACES】 在此层中,通讯的协商范围首先包括对称实体之间 协议(基于 请求和响应的通讯类型,即服务类说明类型的协 OSI表示层 TCP/IP) 商.其次是传输的对象,之外还包括信息服务元的 OSI会话层 选择,与本地下层建立请求服务关系. TCP OSI传输层 3.3 DICOM服务连接的建立 应用实体层通过DICOM上层协议与本地TCP OSI网络层 m 层打交道,向TCP层提出通讯服务请求,即DICOM 数据链路层 上层协议起到连接的作用,利用了TCP所提供的传 输服务.从通讯协议分层的体系结构上来看,上层 标准物理网络层 l 与下层之间是相互透明的,通讯的信息交换是在对 图l DICOM网络协议与OSI互连模型对应关系示意图 等层之间进行,所以完成DICOM通讯和实体之间数 Fig.1 Relationship between DICOM network protocol 据传输,必须依靠实体的下层即DICOM上层来为实 architecture and OSI basic refei陀nce model 体层建立连接和释放连接. TCP传输连接具有端对端的特性,通常应用程 在图l中,OSI的IOS参考模型是用来对比DI- 序是位于TCP上层的,以IP地址,端口号为标识来 COM通讯协议模型的,它明确表述了DICOM通讯 进行应用程序的通讯,因此每一个上层连接(Uppex 协议栈中各层所发出的请求和提供的服务.从此对 Layer Association)只能以一个并且是唯一的TCP传 万 方数据 224 内蒙古科技大学学报 2009年9月 第28卷第3期输连接来提供支持,每一个TCP传输连接也只能支 A-RELEASE·RQ PDU释放关联请求持一个上层连接.因此DICOM上层协议负责TCF A-RELEASE·RP PDU释放关联响应连接的建立、释放以及TCP上协议数据单元(PDu A-ABORT PDU强行释放关联ProtOCOl Data Units)的传送和接收,为DICOM上层 -P-DATA-TF PDU表示数据传输协议层提供TCP连接服务.DICOM上层服务包括 PDU承担实现上层协议的任务,而PDU本身必A—Associate,A·Release,A-Abor,A—P-Abort,P—Data 须依赖下层网络提供的服务接口.虽然DICOM标五种服务.这些上层服务允许对等的DICOM应用 准提供了基于OSI与TCWIP两种可能的实现方式,实体之间建立关联、传送报文、中断关联.DICOM应 实际中,一般都采用基于TCP/IP的4层模式,因此用实体就是利用这些上层服务来完成消息传送和信 首先必须充分了解TCP/IP提供的网络服务和获取息交换的. 这些服务的调用接口.而在这一点上,DCMTK使用 (1)A-ASSOCIATE 了Winsock套接字获取TCP服务的编程接口.套接 A-ASSOCIATE连接建立服务用来在对等应用 字锁定了网络层地址(IP地址)与传输层地址(端口实体间建立连接,它是一个确认服务.在关联建立 号),它是对一个通信端点的抽象.上层协议所有阶段,双方需要交换包括应用环境、表示环境、用户 的PDU数据交互最终需要借套接字来实现.信息等初始化信息,因此连接建立的过程也是协商 .上一篇:支持向量机融合方法的研究