基于面向对象的医院数字化影像信息模块的设计与实现_第1页
基于面向对象的医院数字化影像信息模块的设计与实现_第2页
基于面向对象的医院数字化影像信息模块的设计与实现_第3页
基于面向对象的医院数字化影像信息模块的设计与实现_第4页
基于面向对象的医院数字化影像信息模块的设计与实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于面向对象的医院数字化影像信息模块的设计与实现

0数字影像管理和通信先进医疗设备的使用随着信息的变化而不可避免。在医疗行业,医院也迫切需要进行数字建设。PACS(picturearchvingandcommunicationsystem)系统面向医院的数字化影像的管理和通信,极大地提高了医院影像服务质量和效率。DICOM(digitalimagingandcommunicationofmedical)是PACS系统里的一个重要的标准,目前国内外大多数先进的医疗设备,如CT(断层扫描),MR(核磁共振)等,都支持这一标准。本文介绍面向对象的方法及DICOM标准,进而描述用面向对象的方法设计实现DICOM通信模块。1类类—面向对象的软件开发方法面向对象的程序开发首先要建立和具体问题中的主要元素相对应的软件对象,通过对这些对象的组合来创建具体的应用。这些对象反映了不同的抽象层次,在C++中这种抽象被称为类。类在程序运行时被实例化为对象。面向对象程序开发的另一个重要原则是概念逐步细化,这样就可以使用继承机制,形成层次结构。子类既重用了父类的代码,又产生了新的功能。面向对象的程序设计方法通过增加软件可扩充性和可重用性,能够控制维护软件的复杂性和软件维护的开销,使软件的设计更紧密地影响着它的实现。面向对象的程序开发既与传统的面向过程的程序开发有相似之处,又有它自己的规律性。概括起来,有以下几点:1了解医院工作流程,建立概念对问题域进行功能分析,提出待解决问题。对于PACS系统来说,在这一阶段要深入了解医生工作习惯、医院工作流程,设备环境等,并建立相关的概念模型(概念及概念间的联系)。面向对象的分析结果将直接约束设计过程及产品功能。2程序的框架设计这一阶段从整体的角度,对一个应用程序的框架进行设计。在明确了要解决的问题后,对将要开发的应用系统进行类的划分,确定所需要的各个类模块。3生存期在整个类上的应用这一阶段具体化每个类。应用程序的设计主要就是类的设计,这个阶段贯穿于整个类的生存期。DICOM标准中对所需要的类已经进行了较详细的划分,如信息对象的定义,服务类的说明,通信原语的定义等(这些将在稍后介绍),但仍需针对具体应用进一步细化。4块的主要工作这一阶段是对问题的最后解决,要作DICOM通信模块的主要工作。在已经建立了的类的基础上,用代码实现对象实例,实例之间的通信可以通过把引用从一个对象传递到另一个对象来建立。这一部分和类的设计是交叉的。5影响测试阶段的因素本阶段把系统组装成一个完整的应用来进行测试,前几个阶段的结果会影响到这一阶段调试所花费的时间和精力。应尽量隔离单个操作,直到系统已较完整时,再组装调试。6dico通信系统的研究面向对象的继承机制使得维护工作相对容易,如果结构设计合理,对于大部分的维护工作,一般都发生在类级。使用面向对象方法开发DICOM通信系统,分析和设计结果很自然地同DICOM标准对信息对象和通信服务的定义一致。因此分析和设计得到的模型在以后的设计和实现中没有质的变化,只有补充和完善,是一个稳定的模型。这种模型的稳定性,对于一个开放性的PACS系统很重要,它便于以后系统的扩充或集成。2促进了医疗数字影像信息的传输PACS系统的基本任务是在设备之间传输影像等信息,美国放射学会和国际电子制造商协会专门为此制定了DICOM标准,现已为国际所承认。标准的建立极大地推动了不同厂商的医疗数字影像信息的传输与交换,实现了异地、异构诊断资料库的共享。支持DICOM协议已成为今后PACS系统的基本特征。以下介绍DICOM标准里的主要部分。2.1dico信息模型DICOM标准将要传输的信息抽象为信息对象定义,它包括了与实际医学影像相关的所有必要信息,并建立了信息实体之间的关系模型。同时定义了可以为这些信息实体进行何种服务——服务类别。因此,DICOM标准能够方便地描述医学实践中的事物如病人、报告、图像及它们之间的关系。在信息模型中,DICOM协议定义的最高层次是服务类,每个服务类可包含多个服务对象对(SOP),信息实体定义包含了大量的相关属性。图1清晰地给出了SOP、IOD之间的关系(信息实体定义和服务类之间的关系)。2.2服务实体概念DICOM对可以为信息对象提供的服务进行了分类定义,这些服务可以用下层的服务原语和信息对象共同实现。服务类涉及到一些重要的概念,如应用实体。应用实体是指一个具体的DICOM应用程序;服务类,服务类是对现实中要执行的任务的抽象概括,它包括作用于信息对象的命令及结果,如存储、打印、查询等。DICOM服务类提供客户/服务角色,通过网络要求DICOM服务的应用实体称为服务类使用者(SCU)。提供DICOM服务的应用实体称为服务类提供者(SCP)。2.3信息交换以上的定义为信息交换做了准备,下面介绍信息交换是怎样进行的。1di机构通信osi首先介绍一下DICOM标准中应用实体及相互间通信的整体结构。服务类作为应用实体的最高级别,被应用于信息对象,和信息对象一起组成服务对象对类(SOP)。然后通过DICOM消息服务元素(DIMSE),将SOP传送到下层,下层的网络环境对DIMSE提供支持,使用P-DATA服务(将在下面介绍)将消息发送给网络中的另一个应用实体。另一个实体中再通过相反的过程最终将消息传达给用户。这是DICOM通信的主要部分。另外,在进行消息传输之前,还需要一个建立联结的过程。应用实体首先进行联系商议,为下一步数据传输选择合适的参数,再通过网络环境的上层联系服务(ACSE),将联系参数发送给另一个实体,该实体对其响应并发送响应,收到响应后就建立了联系,可以在该联系上进行消息传输。OSI上层服务边界允许对等应用实体确立联系,传送消息并终止联系。在这一边界上,DICOM采用了OSI标准(表示服务由联系控制服务元素ACSE扩大)。这是一个简单的服务,它将DICOM应用层和通信支持层使用的一些专门协议分隔开。DICOM提供了三个通信选择:——一个OSI协议的最小集合,包括全双工会话内核、表示内核和ACSE。这减少了维持与OSI协议标准完全一致时的上层开销。——一个扩大了TCP/IP的上层协议。当它提供与OSI协议族所提供的相同的服务和功能时,它结合了OSI的上层协议成为一个易于执行的单独协议。——与前面版本的标准兼容的点到点协议族。现通常选择基于TCP/IP的上层协议。2icp服务类使用者在DICOM中,应用实体是一个DIMSE服务用户,它可以作为一个SCU(服务类用户)或SCP(服务类提供者)角色。它们之间发送消息,SCU接收通知或提出请求,SCP发出通知或接受请求,执行后发出响应。一个消息由一个命令集后跟一个可选的数据集组成,DICOM规定了这些消息的结构,一个命令集由命令元素构成,命令元素由标签,数值长度和数值字段构成。3dimseDIMSE通信服务的输入是SOP类,输出是下层P-DATA服务的输入,DIMSE相当于一个中间层。每种服务都有原语:请求原语、指示原语、响应原语和证实原语。可以是这四种之一,由图2所示。有的服务原语可能会带有几个子操作原语,在多个联结上完成整个服务过程。2.4网络支持信息交换以下简要介绍为实现上述DIMSE服务而必须首先执行的A-联系服务,由此建立ASSOCIATION联结。1实体间表达促进释放的编码是什么?联系确立是在任意DICOM应用实体间建立通信实例的第一步。应用实体使用联系确立商议数据如何被编码以及交换什么数据类型。和上图类似,它具有四个原语:联系请求、联系指示、联系响应和联系证实。实体间可以正常断开联结也可以单方面终止,正常释放通过4个原语:A-释放请求、A-释放指示、A-释放响应和A-释放证实。在联系确立后,DIMSE服务仍然要使用联系服务的P-DATA服务传送消息。2提取信息的抽象语法由来联系商议的内容主要有三个:应用上下文、表示上下文和用户信息项。一个应用上下文是一个由“.”分隔的字符串,两个应用实体通过同意一个应用上下文,确立一个联系。表示上下文定义了一个联系上的数据的表示。它提供了一个较低层的商议,每个联系可以提供或接受一个或更多表示上下文。一个表示上下文由三部分组成:表示上下文ID,抽象语法名称和一系列一个或更多传送语法名称。当有多个表示上下文ID时,它是从1开始递增的奇数。在一个具体的联系上通过表示上下文ID识别表示上下文。为每个表示上下文只应提供一个抽象语法。然而,每个表示上下文可以提供多个传输语法,但只应有一个被接受。DICOM应用实体使用抽象语法名称以识别和商议一个具体的联系上支持哪个SOP类和相关选项。抽象语法名称是一个以“.”分隔的字符串。每个被SOP类UID识别的SOP类,被一个信息对象定义(IOD)和具体的一系列一个或更多被称为DIMSE服务组(DSG)的DIMSE服务的联合所定义。这是因为:——IOD定义了数据结构;——DSG定义了能在这数据结构上执行的操作或通知。传输语法定义了一系列用于明确表示一个或更多抽象语法的编码规则,每个表示上下文可以提供多个传送语法,但只应有一个被接受。传输语法是一系列编码规则,它能明确地表达一个或多个抽象语法定义的数据元素。传输语法的商议允许通信应用实体为它们所能支持的编码技术(例如:字节顺序,压缩等)达成一致。通过使用ACSE用户信息项,对等的DICOM应用实体商议许多与DIMSE协议有关的因素。如应用协议数据单元的最大长度,执行身份识别,异步操作的商议,SCP/SCU角色商议,SOP类扩展商议等参数,这些是ASSOCIATE服务中的可选项,更细内容可察看DICOM标准,这里就不再详述。3dico通信模块的设计可以看出,DICOM标准本身就是一种开放性的,面向对象的标准。所以使用面向对象的程序开发思想实现PACS系统符合编程者的思维模式,也符合问题域的结构形式。这里主要阐述DICOM通信模块的高层设计和类的设计。通信模块涉及到DIMSE服务,ASSOCIATE联结和要传输的数据对象这三类概念,它们相对独立,因此通信部分可以划分以下三类。3.1客户机+平台dimseCDICMMSGTRANS的基本功能是在网络上发送请求,接受请求,发送响应和接受响应。每个DIMSE服务都应有这四种功能,即函数,它们分别对应DIMSE服务的四种原语。根据SOCKET编程的原理,这里以面向连接的方式进行通信。客户机需要Connect函数,服务器需要Listen函数和Accept函数,前者用于侦听,后者要返回一个新的CDICMMSGTRANS对象,以处理接收到的数据。任何一端可以提出释放请求,得到对方响应后,释放连接。程序中使用该类的过程是这样的:先建立CDICMMSGTRANS对象,然后服务器开始侦听,客户机发生连接请求,服务器接受请求后,建立新的CDICMMSGTRANS对象。这时,底层的SOCKET连接已建立起来,但尚未进行联系商议,也不能发送DIMSE消息。所以在这个对象中,先进行联系商议,然后进行实体间的DIMSE消息通信,这都要用函数实现四种原语。关闭连接时调用释放请求函数,对等实体对此响应,收到响应后连接被释放。3.2cdicmassociate实现在进行联系商议时,可以将商议的内容作为一个类来处理,即ASSOCIATE类。该类将商议的内容作为数据成员进行封装。还应附加上访问这些数据成员的函数。在SOCKET连接建立后,应进行联系商议,建立CDICMASSOCIATE对象,并设置该对象数据,初始化完成后,以指向该对象的指针作为参数,通过已经建立的SOCKET连接,客户端用AssociateSend()函数将对象发出,服务器端用AssociateRecieve()函数接收该对象,并发回响应ResponseSend(),客户端接收响应RespnseRecieve()。成功后,联系就确立下来,可以在此基础上继续使用CDICMMSGTRANS类的函数发送和接收DIMSE消息。3.3cdicmdatbwell发送DICOM消息时,一般都是对一定的SOP类和SOP实例进行操作。所以它们必然会作为参数被发送和接收。和实现ASSOCIATE连接的思想类似,这里也把DICOM文件按一定格式封装到一个类的对象中,然后以该对象的指针作为参数收发DICOM文件,标记此类为CDICMDATABLOCK。封装时,为了能更方便的处理信息,应有成员函数能对指定的参数进行访问。在服务器端,保存数据时,就能把这些参数取出放到数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论