◆陈航白铁吕冰马民
门诊医生工作站系统以门诊电子病历为中心,支持医院建立门诊电子病历库。它为医生提供了高效的电子病历和电子处方管理平台,方便统计分析和数据挖掘,能够提高医院管理水平和医生诊疗水平。同时其支持在院内使用一卡通或医保卡,为患者建立连续的就诊资料,提高诊疗与服务水平以及患者的忠诚度。
在实施门诊医生工作站系统后,医生可以方便地获取患者的诊断史、病史、用药史、过敏史、检查检验情况等,并通过计算机开具电子处方和电子检查检验单,记录病人病情变化情况,建立医疗诊断知识库。如在诊断时遇到疑难杂症,可利用计算机进行辅助分析。同时可方便获取相关医疗知识,查阅各种疾病的诊疗常规、药物信息、检验信息等医学数据。
但是,医院信息化发展是一个循序渐进的过程,可能门诊医生工作站、挂号系统、门诊收费系统、处方发药系统、LIS系统、PACS系统、合理用药系统、门诊药房系统、检查/检验系统等并不是同一厂商开发的,它们的运行环境、所使用的数据库、开发语言等并不相同,这就产生了“信息孤岛”。主要表现在系统间信息交流不顺畅,存在大量冗余信息,系统间无法实现信息共享和协同工作。为了解决这些问题,本文基于 SOA(Service-Oriented Architecture)架构,采用 Web服务技术构建门诊医生协同工作系统,以使门诊医生工作站系统可以与挂号系统、门诊收费系统、处方发药系统、LIS系统、PACS系统、合理用药系统、门诊药房系统、检查/检验系统等协同工作。
(1)动态生成候诊、就诊信息;(2)提供辅助诊断分析;(3)下达检查单;(4)下达处方、注射单;(5)生成病历;(6)医生个人使用的常用处方模板;(7)医生公用处方模板;(8)常用病历管理;(9)检查检验预约,并把检查检验结果传送给门诊医生工作站系统;(10)病人档案信息查询,包括完整的处方、费用、病历、检验结果、检查报告、图像报告等;(11)病历统计分析表,根据需求自定义统计表;(12)系统属性设置,包括工作站类型、应诊科室、挂号类别、领药区、病历处方打印方式、默认打印机等。
SOA是一个面向服务架构的组件模型[1]。在这个模型中,松耦合的应用被描述、发布和调用。在SOA模型中,主要有3种角色:服务消费者(Services Consumer)、服务提供者(Services Provider)和服务代理(Services Registry)。工作原理为:服务提供者发布所提供服务的信息及访问接口到服务代理;服务消费者在服务代理中查找所需服务的信息,找到后通过绑定和调用与服务提供者建立关系并使用其提供的服务。
Web服务(Web Services)是一种面向服务架构的技术,通过标准的Web协议提供服务。Web服务可被理解为一个软件系统,它能够被描述并通过网络发现、发布和调用。Web服务的核心规格由XML、SOAP、WSDL和 UDDI4部 分 组成[2]。 XML(eXtensible Markup Language,可扩展标记语言)是Web服务实现的技术基础,它消除了不同平台和不同语言编写系统之间的数据结构和消息交换模式差异,使得数据交换方式在XML技术的支持下统一起来[3]。SOAP(Simple Object Access Protocol,简单对象访问协议)是一种基于XML的不依赖传输协议的表示层协议,用来在应用程序之间以对象的形式交换数据。WSDL(Web Services Description Language,Web服务描述语言)定义了一套基于XML的语法,将Web服务描述为能够进行消息交换的服务访问点集合。UDDI(UniversalDescription,Discoveryand Integration,统一描述、发现和集成)是一套面向Web服务的信息注册中心实现标准和规范,创建UDDI注册中心的目的就是实现Web服务的发布和发现[4]。
门诊医生工作站系统、挂号系统、门诊收费系统、处方发药系统、LIS系统、PACS系统、合理用药系统等既可以作为服务的提供者,也可以作为服务的消费者。首先,基于SOA架构的门诊医生协同工作系统将它们提供的服务描述成XML,封装成 SOAP包,加载在 HTTP上,并在不同的应用系统之间传递。其次,生成 WSDL文件,在 UDDI服务注册中心发布,其它系统可以作为服务的消费者,查询UDDI服务注册中心,发现服务,调用服务。系统、门诊收费系统、门诊药房系统、检查/检验系统等是基于局域网的C/S模式,门诊医生协同工作系统是基于多层架构的B/S模式。系统保持现有的模式,将它们提供Web服务的数据打包成SOAP包,在门诊医生工作站与门诊挂号系统、门诊收费系统、门诊药房系统、检查/检验系统之间传递信息,达到数据层的集成[5]。
系统分为数据访问层、数据实体层、业务规则层、Web服务层、客户端,使用户能够在浏览器界面上使用门诊医生工作站、门诊挂号系统、门诊收费系统、门诊药房系统、检查/检验系统提供的 Web服务。系统技术架构如图1所示。
基于Web服务的门诊医生协同工作站系统是采用多层架构的B/S和C/S混合技术架构。各医疗机构的门诊医生工作站、门诊挂号
数据层集成是门诊医生协同工作系统的基础。具体设计过程:使用IBM DB2数据库,作为统一的数据集成中心。DB2可以直接存储XML数据,可以将搜索结果以XML格式输出,实现了异构系统的互操作性,奠定了基于Web服务的门诊医生协同工作系统的基石。
图1 门诊医生协同工作系统技术架构
根据异构数据库的表结构进行数据对照,从门诊挂号系统、检查/检验系统中提取数据给门诊医生工作站。门诊挂号系统提供的数据包括:候诊病人信息、已挂号病人分类排队信息等;检查/检验系统提供的数据包括:检查/检验的预约安排、报告信息等。从门诊医生工作站系统提取数据提供给门诊收费系统、门诊药房系统、检查/检验系统等。门诊医生工作站开出的电子处方自动发往门诊收费和门诊药房。处方收费确定后可将摆药标志自动发往门诊药房。后台门诊药师可根据处方信息进行药品调配。此外,门诊医生站可以向检查/检验科室发出申请[6]。
本系统设计通过Xm lSerializer类实现 XML序列化,把实体类序列化成 XML文件;向 XML序列化的输出内容添加 SOAP封套、题头和主体,打包成 SOAP包,加载在HTTP协议头,通过互联网在不同系统之间传递。门诊医生工作站、门诊挂号系统、门诊收费系统、门诊药房系统、检查/检验系统接收到SOAP包后进行拆包,把XML对象反序列化为实体类的对象,并传送给相应模块[7-8]。
数据访问层主要用来连接数据库,向数据库表中添加记录,从数据表中查询、修改记录等,也可以把记录的查询结果逐字段的赋予与数据实体层相对应的属性。
数据实体层用于数据访问层和业务规则层调用,主要表示数据库的表结构,便于进行XML序列化,可以把实体类对象序列化成XML Schema。本系统用C#设计实体类,用类的相关属性表示数据表中的字段属性。每一个实体类都包括相应的属性、构造方法、获得相应属性(Get)和设置相应属性(Set)的方法。
业务规则层包含一些类,这些类可实现应用程序的业务逻辑,被客户端调用。如本系统的门诊医生工作站开出的电子化验申请单、PACS申请单、电子用药处方等。业务规则层调用数据访问层的对象可实现上述业务逻辑。
Web服务层具体实现门诊医生工作站、门诊挂号系统、门诊收费系统、门诊药房系统、检查/检验等系统的Web服务。如患者到检查科室及影像、B超等辅助诊断科室前,医生已经在影像工作站、B超工作站上查看到门诊医生申请时对患者的病情描述,对患者进行检查后,可形成带有图像的检查报告。这时门诊医生工作站提供给检查/检验系统的检查/检验申请单,以及检查/检验系统提供给门诊医生工作站系统的检查/检验报告等功能,就需要在.NET XML Web Services的Web Method方法中实现。Web服务层的设计过程如图2所示。
系统通过Web语言描述门诊医生工作站、门诊挂号系统、门诊收费系统、门诊药房系统、检查/检验系统的服务功能,生成描述该系统功能和调用的Web服务描述语言文件,然后生成简单对象访问协议的基于SOAP的服务框架,在此基础上开发Web服务的业务逻辑。最后,使用 SOAP服务器将 WSDL发布在微软的UDDI注册服务器中[9]。系统构建 Web服务客户端来调用 Web Services。Web服务客户端可以是多种形式,如可以设计W indows Form窗体访问Web服务,也可以设计HTML页面调用Web服务。
通过对门诊医生工作站系统的功能说明,结合对SOA架构和Web服务技术的解释,提出了基于Web服务的门诊医生协同工作系统,并详细说明了系统的技术架构和功能,可实现门诊医生工作站、门诊挂号系统、门诊收费系统、处方发药系统、LIS系统、PACS系统、合理用药系统、门诊药房系统、检查/检验系统的应用集成。通过这种应用集成实现了信息整合,有效地消除了“信息孤岛”,提高了门诊医生的工作效率,优化了门诊就医流程。今后可在数据集成的基础上,实现业务过程的集成,不仅使门诊医生工作站、门诊挂号系统、处方发药系统、LIS系统、PACS系统、合理用药系统、门诊收费系统、门诊药房系统、检查/检验系统相互传递,更重要的是使这些系统可以在业务层面进行交互和协同工作。
图2 Web服务层的设计过程
[1] 张海川,王盼卿,陈家文.基于SOA的装备保障领域信息系统集成研究[J].微计算机信息,2006,22(6):57 -59.
[2] 徐宏发,王卫平,郑建煌,等.基于HL7和Web Services的区域医疗机构间信息交换平台研究[J].计算机应用与软件,2007,24(3):88 -89.
[3] IBM公司.Web服务 -Web的下一次革命[EB/OL].http:∥www -900.ibm.com/developerWorks/xml/indx.shtml,2005 -08-20.
[4] 郭少友.Web服务与企业信息系统集成[J].情 报 科 学,2003(3):306-309.
[5] 袁占亭,张秋余.基于 Web Services的企业应用集成解决方案研究[J].计算机集成制造系统-CIMS,2004,10(4):394-398.
[6] 杨汝超.门诊医生工作站在医院的应用分析与设计[D].云南大学,2010.18-26.
[7] 郭荷清,王增勋.XML数据绑定及对象序列化的应用研究[J].计算机应用与软件,2006(5):65-67.
[8] 黄 芳,孙建伶.基于模式的XML文档元素的序列化标识[J].计算机工程与应用,2004(17):181-183.
[9] Narayanan,Srini,Mellraith,et al.A-nalysis and simulation ofWebservices[J].Computer Networks Volume,2003,42(5):675 -693.