【转】DICOM医学图像处理:浅析SWF、MWL、SPS、MPPS

转自:https://blog.csdn.net/zssureqh/article/details/40151107

背景:

        最近重新花时间阅读了DICOM标准,顺带着看了一下HL7标准和IHE,对标题中提到的SWF、MWL、SPS和MPPS有了更进一步的认识,现将自己的理解整理出来,算作读书笔记吧。通过对比学习DICOM、HL7和IHE,从而更全面、更清晰的了解医疗信息行业。

IHE、HL7与DICOM

DICOM

        IHE、HL7与DICOM,先介绍DICOM,即Digital Imaging and Communications in Medicine,是1983年美国放射学会(ACR)和美国电气制造商协会(NEMA)成立了ACR-NEMA数字成像及通信标准委员会,为了实现医学图像及相关数据的存档管理以及远程医疗系统数据的网络共享,起初最早于1985年发布的与设备无关的标准叫做ACR/NEMA1.0,DICOM是改版后的名称。DICOM主要解决了PACS标准化问题,另一个重要意义是为医院的其他医疗信息系统互联提供了统一的接口标准。

        医院除了存储影像的PACS系统以外,与信息和流程管理相关的还有HIS和RIS系统,HIS系统是全院级的信息登记系统,覆盖了医院全业务流程,甚至涵盖了像财务管理、人事管理、住院病人管理、药品库管理等,为医院所属各部门提供病人诊疗信息、行政管理信息的收集、存储、处理、提取和数据交换。从HP公司的HIS系统解决方案就足以看出HIS系统的复杂,

 

 

        

        HIS数字化医院解决方案根据医院的业务特征,满足四个面向的目标,即面向医疗,面向管理,面向患者,面对员工,它是最终实现医院数字化建设目标的有效工具。HIS数字化医院解决方案建设整体框架可以概括为:一个中心(数据中心和集成平台HAI);两卡(即外部就诊卡,医保卡和内部工作卡);两网(即内网和外网);五大业务平台(医疗业务平台,客户关系管理平台,供应链管理平台,知识协作平台,管理业务和决策支持平台);两大体系(管理信息和临床信息);十大核心系统(HRP,PACS,LIS,EMR,SCM,(OA,Tele-Medicine,无线应用)。

        HIS系统需要处理如此多样化的数据,就需要一种通用的数据交换标准接口——HL7(Health Level Seven),HL7标准是目前医疗数据交换标准中应用最广泛的一个基于文本的国际标准,主要应用领域就是HIS、RIS,用于规范HIS、RIS系统及其设备间的文本数据通信,HL7最早是在1987年提出的。

HL7

        HL7规范了医院的HIS、RIS及内部设备之间的通信,而DICOM则涵盖了数字医学图像采集、归档、通信、显示及查询等信息交换的所有范畴,用于实现PACS系统与RIS、HIS的集成。那么是不是有了这两个标准就万事大吉了呢?当然不是。HL7和DICOM标准虽然为信息共享提供了基础,但是两者由于分属不同机构、设计目的,发布时间等都不同导致彼此之间存在着差异,更糟糕的是HL7和DICOM标准处理的数据对象不同,HL7偏重于文本数据管理,而DICOM标准在数字图像的通信和管理方面擅长。那么如何让HL7能够顺利的提取DICOM系统中的图像相关信息,DICOM系统顺利提取HL7中的管理信息呢?此刻就该IHE出马了。

IHE

        IHE是1998年,北美放射学会(RSNA)和美国医疗信息与管理协会(HIMSS)联合发起的医疗机构集成(Integrating Healthcare Enterprise)项目。目的是为了强化已有的DICOM和HL7通讯标准的协同工作。IHE并非一种新的标准,而是提供DICOM和HL7的集成方案,IHE集成方案不对医疗体系内各系统功能的具体实现进行定义,而只关心系统内部各部分之间以及系统与外部环境交互的方式。目前最新的IHE文档中给出了20种集成方案,如下图:

image

        IHE中对集成方案的描述采用用例图(Use Case Diagram)的方式,用Actors表示医疗领域信息系统及其子系统,用Transactions表示Actors之间标准信息的交互。对于后续SWF、MWL、SPS、MPPS等概念的介绍会借鉴IHE文档中的方式。

SWF+MWL+MPPS+SPS

        DICOM标准起初主要是为了实现医疗设备之间影像数据的通讯和管理,经过几次完善也很好的完成了该功能,并成为了行业的统一标准。随着医疗系统的逐步丰富,DICOM标准也进行了许多方面的扩展,新增加了多种IOD(Information Object Definitions),例如MWL(Modality Worklist)、MPPS(Modality Performed Procedure Step)。先前的专栏文章中鲜有提到MWL和MPPS,因为严格来说MWL和MPPS偏向于HIS系统范畴,而DICOM起初的设计目的并不是为了HIS开发,所以至今未曾提到。借着上一篇模拟PACS系统测试的余温,来介绍一下MWL和MPPS概念,使得PACS系统更加接近于医院实际环境中的系统(PACS系统也是可以提供WML和MPPS服务的,相当于嵌入了一个迷你的HIS系统,这种miniHIS在小诊所比较常见)。先借用IHE官网的一个截图来描述一下患者进入医院后的整个就诊流程,从宏观上对医院的整个系统有一个初步认识,如下图所示:

1)SWF

        上述流程图是IHE众多集成方案中最基础、应用最广泛的一个,叫做Scheduled Workflow Integrated Profile(简称SWF集成方案)。该集成方案是整个IHE信息框架的基础,依托于DICOM3.0标准,顺利解决了HIS、RIS、PACS和数字化影像设备(Digital Imaging Modality)之间的信息传输。为了更清晰说明各个标准的应用场景,将DICOM、HL7、IHE等标准嵌入到上述工作流示意图中,如下所示(原始出处未找到,有知道的请告知我):

 

18155915-c838c158cf914da197706a9f066c36ae

        上述截图中箭头所示的整个流程就是IHE中的SWF集成方案,该集成方案规定了患者从登记(registration)、医嘱下达(Orders Placed)、医嘱执行(Orders Filled)、图像采集(Image Acquisition)、图像归档(Image Archive)、查看诊断(Image Viewing/Diagnose)的所有过程中信息交互的一致性。SWF集成方案有以下几大优点:1)减少由于人工输入导致的信息错误,对患者信息掌握更全面,为患者提供更佳的服务;2)提高就诊效率,减少数据的手动输入;3)减少了系统开发和部署成本,各系统可按照SWF集成方案来设计彼此通信的接口。参照IHE文档,给出SWF集成方案的结构图:

image

        图中详细描述了各个Actors之间的Transactions,下表中标记为R的是实现SWF集成方案必须的,而O表示的是可选,我在图中分别标注了Department System Scheduler和Acquisition Modality中的Query Modality Worklist服务,该服务是我后续要详细介绍的基于DICOM标准的MWL服务,从IHE集成方案的图中就可以看出MWL服务层级以及交互双方。

image

        SWF集成方案中主要有三个概念:Order,一次影像服务请求;Request Procedure,“Unit of work resulting in one report with associated codified, billable acts”简单的理解为一次请求操作;Scheduled and Performed Procedure Step,工作流程中预约(Scheduled)和完成(Performed)操作的最小单位。关于SWF的详细介绍参照IHE文档Vol1中的第3章。

2)MWL

        Modality Worklist服务,简称MWL。Modality Worklist Management服务也是DICOM标准后期为了与HIS系统整合所做的扩展,如下图所示,当患者达到医院或诊所后,DICOM标准中的Patient Management SOP Class开始构建并工作,登记预约检查后生成Study Management SOP Class,如此同时HIS系统会与影像设备(Image Acquisition Modality)发生通讯,Modality利用MWL Management SOP Class来获取影像检查的预约信息和患者相关信息(姓名、年龄、身高、体重等),准备将该信息整合到采集后的图像中。如下图所示,Modality worklist Management服务在设备采集图像开始时(即Acquisition Started)结束,提取的信息在设备中暂存。

image

        同样在IHE文档vol2中也可以找到关于Worklist服务的相关定义。IHE中依然之规定流程,而不做具体实现的定义。IHE文档VOL2中4.5.1对worklist的使用场景进行了描述,即当患者达到预订流程处(scheduled procedure)时,具体实施人员需要核对相关信息,例如预约的流程是什么?医生或放射医师填写的评论是什么?等。此时实施人员操作采集设备(Acquisition Modality)利用DICOM的Modality Worklist 查询服务从Department System Scheduler/Order Filler下载与预约流程(Scheduled Procedure Step)相关的信息并进行核对,待确定后开启图像检查操作。随后待图像采集完毕会将下载的信息写入到DCM文件头中。

3)MPPS

        MWL服务时从DICOM标准相关系统外(如Department System Scheduler )传输信息到影像设备(Acquisition Modality),而MPPS是从影响设备端向外部信息系统中传送消息。MPPS是Modality Performed Procedure Step的简称,从全称中我们可以看出关键是多了一个Performed单词,言外之意就是当采集设备(Acquisition Modality)在接收到采集任务并开始扫描后(如上图B),设备可以通过MPPS来实现与信息系统的交互,向系统通知设备扫描的状态直到扫描结束。打个比方,在Windows环境下读取一个磁盘文件,当读取指令(Read)发送后直到实际完成读取操作这段时间里,对于操作系统来说是不清楚磁盘具体的运行状况的,而是通过与磁盘驱动程序之间的消息交互来了解具体的读取进度,待读取操作完成后驱动程序会发送完成指令给操作系统,再由操作系统返回给用户。MPPS操作就像操作系统与磁盘驱动程序之间的信息交互过程一样,用于使得医院信息系统(通常是RIS,或者HIS)能够随时掌握成像设备(Acquisition Modality)的进度,了解图像采集是否有异常?如果有异常就需要更新流程消息提示操作者扫描失败;如果运行成功需要更新预约流程标志为完成。MPPS具体的流程示意图如下:

image

4)SPS

        SPS与MPPS类似,唯一的区别是一个是预期的操作(Scheduled),一个是具体的操作(Performed)。SPS是在医院信息系统中登记的、由医生开具的检查操作,SPS的预约流程只有在MPPS返回成功后才算一次真实的检查结束,具体的流程模型如下图所示。

image

        从上图中红色方框标记的Scheduled Procedure Step(SPS)与Modality Performed Procedure Step(MPPS)的对应关系就可以看出,预约的流程(SPS)未必会被执行,即未必会产生实际的检查(MPPS)。以IHE文档VOL1中3.4.2的“肺栓塞”病人检查为例,对SPS和MPPS的流程进行一下讲解:第一步,到医院进行挂号登记(此处插一句,挂号是整个就医流程的入口,所以腾讯大笔投资挂号网的目的就是想抢占未来医疗领域的入口,如同在PC端的QQ和手机端的微信一样,腾讯希望垄断医疗领域)预约了两项检查X-ray和NM(如下图中1所示);第二步,患者到指定的科室(此处是放射科X-ray和NM)进行检查,即完成预约流程(如下图中2所示),此时SPS后会记录一条MPPS完成后的扫描结果;倘若患者在做完X-ray检查后未继续到做NM检查,例如此例中的3,那么与NM对应的SPS服务后不会添加MPPS记录。随后关于NM的SPS预约记录会取消。

image

        至此对于SWF、MWL、MPPS和SPS等概念的讲解告一段落,短时间内通过简单对比查看IHE、HL7和DICOM标准文档,对诸多概念的理解可能还不是很清晰,如果上述描述有错误会做出及时的更改。

        最后补充一点关于PACS系统方面的知识,详情见下节。

PACS系统

        PACS,全称为Picture Archiving and Communication Systems,主要负责医学图像的存储,如CT、US等放射图像,甚至可以用来存储心电等wave类型数据。对于PACS系统此处不做详细介绍,想深入了解的可自行搜索资料,关于PACS介绍的资料很多。该部分想着重介绍一下PACS作为存储医学图像的系统时常见的几种存储方案,并简单的分析各方案的利弊。

        在存储之前首先要指定存储的逻辑,也就是如何合理安排归档大量的医学图像,方便快速查找。在PACS系统中,通常采用关系模型数据库(如SQL、DB2、Cache、Oracle等)存储数据,关系数据库是通过具有关联关系的表格来归档数据,通常为了表示DICOM数据的层级关系,PACS系统依据DICOM标准采用Patient、Study、Series、Image四级表格来存储,各表之间的关系如DICOM标准第三部分所述:Patient与Study、Study与Series、Series与Image都是1对n的关系。另外除了核心的四级表格以外,PACS系统中也会添加其他与系统相关的表格,例如用户表User,设备表AE等。

        在设计完存储逻辑后,就需要选择存储影像数据的具体实施方案,PACS领域中常见的方案主要有以下几种:

基于文件系统的存储方案

        这种是最简单,也是最容易理解的。我们常见的文件系统,如windows的FAT、NTFS,Linux的Ext等,简单的可以理解为操作系统下的目录式存储,即将需要保存的医学图像以原本的dcm格式存储到指定的目录下。存储目录参照上述四级目录,当客户端需要查询/提取dcm图像时,通过PatientID、StudyID、SeriesID和文件名在PACS四级数据表中检索,最终在image表中找到dcm图像对应的本地存储的全路径,从而获取到图像。

        基于文件系统的存储方案首要的优点是实现简单,可以直接借助于操作系统的文件存储子系统。第二个优点是医学图像数据以原本的dcm格式存储在磁盘中,与PACS系统耦合性小。当需要升级或更换PACS系统时,利用常见的文件剪切和拷贝操作就能顺利实现数据的转移。具体的实现思路可参照我早期的一篇博文(http://blog.csdn.net/zssureqh/article/details/8846337)。当然此种方式的缺点也很明显——数据安全性差,任何任何用户或程序都有权限操作dcm图像存储目录,容易导致数据的误删除,即使利用操作系统提供的API接口也只能简单的设置目录的读写权限,数据稳定性和安全性得不到很好的保证。

基于blob的数据库存储方案

        数据库除了能够存储上述我们提到的患者信息、设备信息等文字信息外,还可以直接存储二进制块,即BLOG(binary large object),数据库在处理BLOB时的思路是不考虑文件的具体类型,只关心如何处理它。在PACS系统中可以将医学影像当做blob数据直接写入到数据库中,就像上述写入Patient Name、PatientID一样。该种方式的优点较多,首先以统一的方式在数据库中存储患者信息、设备信息和影像信息,使得我们可以使用数据库领域提供的众多工具,而不必考虑我们处理的是DICOM数据。其次可以利用数据库的压缩技术,较DICOM标准中的JPEG无损压缩和JPEG2000压缩节省更多的空间,另外可以使用数据库技术对数据进行加密。完全依赖于数据库技术自然也就带来了缺点,即PACS系统的搭建需要安装相应的数据库支持,PACS操作软件与数据耦合性大,在进行数据迁移时很麻烦。(目前Oracle数据库已经能够直接支持DICOM格式的blob数据存储和数据操作,详情参见http://www.oracle.com/technetwork/cn/server-storage/linux/dicom-082566.html)

混合存储方案

        有一种混合方案是采用切割DCM原始文件+数据库的方法,即将一个dcm文件切割成多个碎片存储在系统中,同时将碎片之间的链接关系记录在数据库中,该类型的方案在具体的实施中比较少见,也没有查到相关的详细资料。

        

        经过此篇博文的梳理,突发奇想——想利用web服务来搭建一个MWL服务器——想法来源于DCMTK官网wiki中的实例(http://support.dcmtk.org/docs/file_wwwapp.html),希望尽快完善该想法,待实现后再将代码贴出来。

 

后续博文介绍:

利用DCMTK搭建WML服务器

C#的异步编程模式在fo-dicom中的应用

VMWare三种网络连接模式的实际测试

PS1:感谢博友的细心,已更新WML为MWL,即Modality Worklist 2017.04.27

作者:zssure@163.com时间:2014-10-16

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

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

相关文章

Php点击更换封面,JavaScript_js实现点击图片改变页面背景图的方法,本文实例讲述了js实现点击图 - phpStudy...

js实现点击图片改变页面背景图的方法本文实例讲述了js实现点击图片改变页面背景图的方法。分享给大家供大家参考。具体实现方法如下:点击图片即改变页面的背景图片希望本文所述对大家的javascript程序设计有所帮助。相关阅读:C语言编程中统计输入的行数以及单词个数…

串口通讯基础及S3C2410 UART控制器

数据通信的基本方式可分为并行通信与串行通信两种: 并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。 串行通信:是指利用一条传输线…

几个实用的Servlet应用例子-入门、cookie、session及上传文件

1Servlet可以被认为是服务端的applet,它被WEB服务器加载和执行,前端可以显示页面和获得页面数据,后台可以操纵数据库,能完成JavaBean的很多功能。在这里我较为详细的说说Servlet在Cookie,Session和上传文件上的应用&am…

【转】DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM

转自:https://my.oschina.net/zssure/blog/354816 背景: 从DICOM网络传输一文开始,相继介绍了C-ECHO、C-FIND、C-STORE、C-MOVE等DIMSE-C服务的简单实现,博文中的代码给出的实例都是基于fo-dicom库来实现的,原因只有一…

公司间交易学习笔记---概述

本系列笔记是我在学习公司间交易的过程中的随笔,有些是我自己的想法,内容可能跟教程有所出入,由于对AX的应用部分理解得很浅,所以如果错误还请多多指教。 为了处理集团公司中各个分公司之间的交易,AX采用了InterCompan…

用VS2005开发WinCE程序调试图文教程

一、WinCE 模拟器通过ActiveSync 6.1(即Windows Mobile设备中心)连接PC ActiveSync 6.1:http://www.cr173.com/soft/26994.html 1.启动WinCE模拟器 命令行: start .\DeviceEmulator.exe WINCE镜像\Wince5.bin /memsize 256 /video 480x272x16 /sharedf…

【转】 ADO.NET最佳实践

本文转自:http://blog.csdn.net/spidertan/archive/2003/12/13/17110.aspx 概述: 本文在微软站点资源的基础上加工整理而成,意在介绍在你的ADO.NET应用程序中执行和完成性能优化、稳定性和功能性方面提供最佳的解决方案;同…

php 变量文件间传递,同一文件的两个JS函数之间如何传变量?

满意答案ed_ch2013.11.06采纳率:44% 等级:12已帮助:8801人定义成全局变量就可以了var style_key;function change_mystyle(my){style_keymy.options[my.selectedIndex].value;if(style_key 114la){document.getElementById(shoostyleicon…

获取 Web 设计的免费资源

Web 开发人员可以找到很多免费资源,尽管其中一些资源会比另外一些资源更加自由。如果您正在设计网站或 Web 应用程序,那么不管是静态的还是所有可以想到的动态 Ajax 内容,都能找到减轻您的劳动强度并为网站增色的资源。本文从免费图标到 Web …

设计模式C++实现(1)——工厂模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

java对象间的转型,详细讲述Java中的对象转型

向上转型:子类对象转为父类,父类可以是接口。公式:Father f new Son();Father是父类或接口,son是子类。向下转型:父类对象转为子类。公式:Son s (Son)f;我们将形参设为父类Animal类型,当执行t…

C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)

今天开始这个系列之前,心里有些恐慌,毕竟园子里的高手关于设计模式的经典文章很多很多,特别是大侠李会军、吕震宇 老师的文章更是堪称经典。他们的文笔如行云流水,例子活泼生动,讲解深入浅出。好在他们都是用C#描述&am…

【转】Windows消息传递机制详解

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka Windows是一个消息(Message)驱动系统。Windows的消息提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消…

设计模式C++实现(2)——单例模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

设计模式C++实现(3)——建造者模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

宽字符串忽略大小写比较的实现(原)

宽字符串忽略大小写比较的实现(原) 孙文涛 2008-07-24 在Mac机器平台上没有wcsicmp 或 wcscasecmp之类的函数实现对宽字符忽略大小写的比较,所以实现了好几种方法。 一个自然的思路是: (1) wcscpy 原字符串到tmp字符串; (2) tolower tmp字符串; (3) 然后调用仅存的w…

有关JAVA考试中数据库的题,javaee期末考试题库,用javaEE编写一个题库系统,要怎么做...

javaEE数据库简单问题。你插入2113数据库的时候是把5261它封装为一4102个对象插入的吗?1653如果封装为一个User对象版的权话(User对象有ID和LEVEL两个属性)ResultSet rs ps.executeQuery();User user new User();if(rs.hasNext()){user rs.next();}关于javaee 中j…

oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南

Oracle 12c PL/SQL程序设计终极指南作者:孙风栋;王澜;郭晓惠出版日期:2015年06月文件大小:11.73M支持设备:¥60.00在线试读适用客户端:言商书局iPad/iPhone客户端:下载 Android客户端&#xff1a…

oracle 存储同步,Oracle数据库知识——存储过程篇

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件存储过程是一组用于完成特定功能的SQL语句,该语句已编译并存储在数据库中。用户通过指定存储过程的名称并提供参数(如果存储过程具有参数)来执行它。存储过程是数据库中的重要对象。任何设计良好…

使用MvcContrib的FormHelper

MvcContrib的FormHelper提供了三大Helper Html辅助 验证HelperGrid表格Helper下载 下载后将MvcContrib.dll与MvcContrib.Samples.FormHelper.dll引用到Asp.net MVC工程 在Web.Config pages.namespaces加入以下节点 <add namespace"MvcContrib.UI.Tags"/><ad…