基于Web Service 的PACS与手持移动智能设备进行通讯的解决方案
2013-12-05薛卫京王鹏程孟建王海洋
【作 者】薛卫京,王鹏程,孟建,王海洋
泰山医学院,泰安市,271016
随着数字成像及其处理技术、网络通讯技术的发展,并随着影像设备数字化及DICOM标准的颁布,医学影像存档与传输系统(Picture Archiving and Communication System,PACS)的应用越来越广泛。医学影像资料(图像和文字)能够方便地进行采集、存储、处理及传输等,医学影像资源达到充分共享[1]。
随着3G网络的使用、移动业务的发展和移动通信速率的提升、资费的下调以及手持移动设备(如智能手机、Ipad等)计算性能与存储能力的增强,手持移动设备以其特有的便捷性成为了即时获取和分享信息的新型网络工具,同时传统Web网络应用也实现了信息融合和数据共享,因此医务人员利用手持移动智能设备与医院的PACS进行信息交流,跨越时间和空间的约束进行掌上阅片,掌上书写诊断报告成为可能[2]。
但是如何实现传统的PACS与手持移动智能设备进行信息交流则成为需要解决的关键技术。笔者经过实践探索了一种基于Web Service技术的PACS与手持移动终端进行通信的解决方案,该方案简单、易实现、开发周期短,有很强的实用性。
1 Web Service简介
Web Service是基于SOA理念的数据传输技术,是在分布式计算、XML等技术相互融合的基础上,利用HTTP 和 SOAP 协议使数据在 Web 上传输。SOAP通过 HTTP 调用对象执行远程功能调用,Web 用户能够使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象,远程对象的差异由Web Service来屏蔽,不需要用户考虑。
利用Web Service技术就可以将一个个的“信息孤岛”有机地融合起来,达到信息共享。例如在一个医院中,分别建立了门诊挂号系统、PACS系统、住院系统等,这些系统最初都是由不同的科室建立起来的,它们可能也工作在不同的操作系统平台上,实现的开发语言也不尽相同。怎样将他们融合为一体呢?建立基于Web Service技术的HIS就可以很好地将这些“信息孤岛”有机地融合起来[3]。
Web Service技术目前已得到广泛应用,其中与我们生活最密切相关的银联跨行存取款业务就是利用Web Service技术实现的。其他如手机微博、手机天气预报、电脑桌面天气预报等均是利用Web Service技术实现的。
2 基于Web Service 的PACS与手持移动智能设备进行通讯的解决方案
Web Service技术虽然体系庞大、底层通讯复杂,但要具体应用,并不困难。目前许多开发工具如VS2008,Eclipse等,都实现了Web Service技术的封装,要应用其技术,只需按向导进行简单的开发即可。因此要实现手持移动智能设备利用Web Service技术与医院里的PACS进行通讯,只需要进行“服务器端Web Service服务创建、服务器端Web Service服务发布、手持移动智能设备调用”三个步骤,即可实现。下面以实现移动智能设备调用笔者参与开发的某医院PACS中的病人图像信息来说明这三个步骤的实现。
2.1 工作原理
该方案工作原理如图1所示:
图1 方案的工作原理图Fig.1 The working principle of the solution
在服务器端,首先获得Web应用程序拥有者提供的类文件,及其对外发布的方法。然后对其进行Web Service封装,形成了对外发布的接口文件asmx,在远程客户端,利用Web Service调用程序,通过RPC通道以SOAP对象的方式,进行调用,然后再在客户端解析,获得所需信息,完成通讯。
2.2 材料准备
(1)电脑一台,安装了PACS,做为PACS服务器;因该PACS是用.NET开发的,因此安装了.NET 开发环境VS2008,因需远程访问,因此配置了IP地址(192.168.0.1);
(2)基于android操作系统的智能手机一台;
(3)电脑一台,作为模拟手持移动智能设备客户端,并做为客户端程序的开发调式机器。因为实验用的移动智能终端设备为android操作系统,因此在该电脑上安装了java运行环境以及java、android开发工具eclipse,又因为需要远程访问,配置了IP地址(192.168.0.2)。
2.3 服务器端Web Service服务创建
(1)获得需要开发的相关类文件。
笔者参与开发的PACS系统,是基于.NET平台的开发的,它装在服务器上。其中一个处理DICOM文件格式的类DicomProcess,在PACS应用程序中已生成在DicomProcess.DLL 文件中,该类的说明如图2所示:
图2 DicomProcess类说明Fig.2 Illustration of class DicomProcess
Web Service开发者只需获得该DLL文件,了解类的名称、命名空间、类所含方法、参数和返回值等即可,而不必关心这个类是如何实现的。如上图类的名称为DicomProcess,即处理DICOM图像的类,其命名空间为WebApplication1,此类有一个方法getImagebyPatientID方法,该方法有一个参数pid,pid代表病人ID号,该方法的功能是通过传入病人的ID号,获得该病人的所有图像信息。该方法的返回值为一个jpg图像类型的数组。
(2)创建Web Service 服务
在VS2008开发环境中,利用向导建立ASP.NET Web服务应用程序。例如我们命名为PACSWebService,则开发环境自动会为我们生成一个Web Service应用程序框架,其关键代码如下:
其中[WebMethod]是对外发布的标记,在它下面写的方法,就可以发布为Web Service 服务。
在PACSWebService应用程序中,引入DicomProcess.DLL(利用VS2008向导可以方便地引入),这样就可以在PACSWebService中使用DICOMProcess类所含方法。
在上面的类中的[WebMethod]标记下,建立一个获取病人图像的方法,假如为:getPatientImgByID,其关键代码如下:
上述代码中,首先用引入的DicomProcess类,定义了一个对象dicomprocess;其次定义了一个获得病人图像的方法,在该方法中只写了一行代码,即调用对象dicomproces中的获得病人图像的方法。这样就完成了Web Servcice的创建。
2.4 发布Web Service服务
将上面写好的PACS Web Service应用程序发布为IIS服务(发布方法可利用VS2008向导完成)。发布后,将在服务器中生成一个Service1.asmx文件。远程输入http://192.168.0.1/PACSWebService/Service1.asmx网址,就可访问Web Service服务。
2.5 在客户端调用Web Service 服务
在模拟手持移动智能设备客户端电脑上,利用eclipse开发工具建立android 项目,例如叫做PACSClient,在此项目中建立一个利用Web Service获取病人图像信息的类GetImagebyWebService。在此类中建立一个方法getImageWebService 来获得服务器端的病人图像信息[4]。其关键代码如下所示:
上述代码的意思为:首先创建一个SOAP对象,并将PACS服务器的地址,服务器对外开放的方法、所需参数进行了封装及序列化。然后在客户端访问http://192.168.0.1/PACSWebService/Service1.asmx,获得SOAP类型的数据,并将其解析获得病人的图像信息,放入客户端的一个图像数组中。这样就很方便地完成了客户端与服务器的通信。
将此应用程序编译好后,拷入android手机中,就可以应用。
3 讨论
通过上面的解决方案可以看出,利用Web Service技术,具有以下优点:
(1)平台无关性 在上面的例子中,服务器用的是.NET技术和Windows操作系统,而客户端用的是java技术和android操作系统, 但这并不影响二者的通讯。Web Service技术屏蔽了平台的差异,使开发者不需要考虑。同样,对于iphone,ipad所用的IOS操作系统,其Object-c开发环境一样提供了调用Web Service的方法,利用该方法照样可以简单地调用上述服务器端发布的Web Service应用。
(2)开发简单 首先Web Service开发者只需和原Web应用程序版权拥有者协商开放哪些功能,就很容易地实现这些功能的开发接口。例如上述例子中,只是利用VS2008向导建立了一个ASP.NET Web服务应用程序,然后简单地添加了几行代码,就完成了Web Service对外服务接口的实现。
其次,对于Web Service服务使用者来说,只要得到相关的asmx文件地址就可以调用Web Service服务,而不必关心发布者所用的技术。
(3)扩展性好 如上述的例子,如需发布新的服务,只需增加一个[WebMethod]标记,并在其下面添加一个方法,调用相关类的方法即可。如想去除一个服务,只需将[WebMethod]标记删除即可。
4 总结
综合上述,Web Service 提供了一个开放的、支持“即插即用 ”的、不依赖于任何语言和平台的应用,同时也简化了开发与维护,降低了开发与维护的成本,为建立医院全局化、跨越时间和空间的约束的信息管理服务平台提供了先进、实用的技术支持,进一步提高了医院的管理和服务水平[5]。
[1]薛卫京,王海洋,鲁文,等.基于Hibernate的医学信息异构数据库整合的研究[J].中国医学装备,2008,5(4): 11-13.
[2]王鹏程,翟晓娟,刘伟.应用智能手机实现医学影像无线发布与远程诊断的初步研究[J]. 中国医疗器械杂志,2008,32(3): 212-214.
[3]孟建,侯琳琳,薛卫京,等.一种基于Web Service技术的医学信息整合平台构建方案实现[J].中国医疗器械杂志,2011,35(4): 304-306.
[4]梁爱虎.精通SOA: 基于服务总线的Struts+EJB+Web Service整合应用开发[M].北京: 电子工业出版社,2007: 119-188.
[5]薛卫京,孟建,王海洋.基于SOA理念的医学信息整合平台构建方案[J].中国医学装备,2010,7(5): 16-18.