基于HL7标准的负载均衡网关池

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于HL7标准的负载均衡网关池蒲立新①曲建明②童振①摘要随着医院信息化程度的提高,实现各医疗系统的互联已成为紧迫的任务。要实现医疗系统的互联就要用到HL7标准,因为它是医疗领域中实现通讯的国际标准。本文首先介绍了HL7标准中的相关内容,然后根据HL7标准设计了支持负载均衡和动态配置的网关池以整合医院中各个系统的通讯框架,并且提出了相应的实现方法。关键词HL7HISPACSRIS网关负载均衡动态配置LoadBalanceGatewayPoolbasedonHL7Standard/PULi-xin,QUJian-ming,TONGZhen//ChinaDigitalMedicine.AbstractAlongwiththedevelopmentoftheinformationprocessinginthehospitals,theinterconnectionofdifferenthealthcaresystemshasbecomeanurgenttarget.Torealizetheinterconnection,HL7(HealthLevelSeven)Standardmustbeused,becauseit’saninternationalstandardforcommunicationbetweenhealthcaresystems.FirstlythisthesisshowsthecorrelativeconceptsofHL7Standard.Secondly,thethesisdesignstheframeofacommunicationsystemthatunifiestheinformationtransactioninhospitalandisbasedonHL7Standard.Thecoreisagatewaypoolwhichsupportsloadbalancedtechnologyanddynamicconfiguration.Also,itnarratesthecorrespondingmethodsandstepstorealizethefame.KeywordsHL7,HIS,PACS,RIS,gateway,LoadBalance,DynamicAllocation1引言实现各个医疗系统互连,达到资源共享,提高医院工作效率,节约医院成本的目的,这是不可阻挡的历史潮流。HL7标准是实现医疗系统互联的国际标准。中国医院的信息化建设也必定以HL7标准为基础。本文试图按照HL7标准,设计出整合医院各个信息系统的结构以及实现方法。2HL7标准简介2.1HL7标准的目的与背景HL7是医疗领域不同应用系统之间电子数据传输的协议,是由HL7组织制定并由ANSI批准实施的一个行业标准。它主要的目的是要发展各类医疗信息系统之间,如临床、保险、管理、行政及检验等,各项电子资料的标准。2.2HL7消息消息是HL7标准传递数据的单位,它由一组按序排列的段组成,每一个消息都有消息类型表明它的目的。消息类型由一个三字符长的代码表示。HL7标准采用消息触发机制,即由触发事件来触发消息的产生。触发事件(triggerevents):当现实世界中发生的事件产生系统间数据流动的需求,则称其为触发事件。HL7标准包含256个事件、116个消息类型,消息类型与触发事件之间有一对多的关系。HL7标准从功能上将消息分为两大类:(1)未请求更新与确认①电子科技大学自动化工程学院,611731,成都市高新西区西源大道2006号②成都金盘电子科大多媒体技术有限公司,610054,成都市高新西区天辰路88号未请求更新:当处理触发事件的应用系统启动了信息传递,这样的信息传递就叫做未请求更新。收到未请求更新的系统要对收到的消息做出确认,进行确认的原因有两点:a)低层的通信系统不能保证完成消息的投递;b)有必要知道接收方在本地应用层成功完成了数据处理。确认分为原始确认和增强确认。增强确认又进一步细分成接收确认和应用确认。采用原始确认还是增强确认是由消息头MSH段中的接收确认类型和应用确认类型两个字段来决定。(2)查询与回复请求的处理过程叫做查询。系统间传递的消息包含在回复中。回复本身不需要第三个消息来确认。3利用HL7标准整合医院各信息系统3.1设计构思按照HL7标准实现的基本原理,基于HL7的数据交换也存在两种方式。第一种方式是开发外挂通用的中间件,提供一定的接口,使得现有的异构医疗信息系统通过中间件能够很方便的实现消息的构建,传输和解析,实现系统之间的数据交换。它的主要目的是使得用户原有正在运行的不能替换的系统具有HL7的通讯能力。这种方式主要应用于系统之间较为简单的数据交换,参与数据交换的系统明确,交换的数据信息量少。这种方式可以不对原有系统的各个应用终端,如各种工作站等进行HL7改造,而只是相当于在整个系统中增加了一个新的通讯处理模块来支持HL7的处理。第二种方式是基于HL7标准重新开发整个医疗信息交换系统,从医院各个子信息系统的设计到数据库的设计再到信息的交换,系统内,外部的信息流都遵循HL7标准。在整个系统中,在各个应用终端已经对HL7的接口协议进行了设计和处理,各个终端都应当可以处理HL7消息。这两种方法都能实现医疗信息的交换,但也各有利弊。第一种方法对现有医院信息系统的改动非常小,投入人力、财力、时间成本相对低,对那些产品已经较成熟并且拥有广泛客户群的厂商比较合适。事实上,在美国,德国等国家地区主要应用的是这一类产品。第二种方法工作量比较大,需要重新设计整个医院信息系统,以及信息交换流程。但从另一个角度看,这也真是它的优势所在。HL7标准对医疗活动进行了分类定义,按照它的分类方法划分软件的功能模块,具有操作灵活,模块易拆分易整合的优势。我们的设计采用第一种方法来实现系统通讯,本设计是依照HL7标准的2.3.1版本进行的。设计思路如下:分别在HIS、PACS、LIS等医院信息系统中的应用终端安装支持HL7通讯的软件客户端模块,并把各系统的应用终端接到一个支持HL7通讯的网关池。网关池是多个服务器的集群,服务器上安装有软件的服务器模块,由网关池负责协调各系统间和系统内部的通讯。如下图所示:HIS网关池LIS电子病历PACSRIS图1系统结构框图网关池采用了负载均衡工作原理。负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过检查网关池中各服务器的服务线程数目来判断出负载较轻或空闲的服务器,将外部发送来的消息均匀分配到对称结构中的某一台服务器上,而接收到消息的服务器独立地回应客户端。网关池各服务器的连接信息,异地数据库的连接信息以及格式信息,所支持的HL7消息格式等都采用配置文件的形式,在程序运行中动态读取。可以根据医院的需要自由添加配置文件内容,而不会影响网关池的正常工作。实现连接客户端数目以及网关池功能的动态扩展,通过修改HL7消息配置文件,可以升级网关池所支持的HL7标准的版本。3.2支持HL7通讯的模块设计在各系统的应用终端和网关池里的服务器上都需要能支持HL7通讯的组件,该组件由以下几个模块组成:⑴网络接口模块实现网络监听,接收消息,发送消息。采用基于套接字的网络编程技术,不用直接访问发送和接收的网络接口设备而是建立一个中间文件描述符来处理编程接口到网络。网络监听采用多线程结构,对每一个连接请求都分配一个新线程来进行接收以及随后的相应处理;网络发送采用单线程结构,由管理线程在消息构建模块完成构建后直接发送。⑵加密和解密模块根据算法加密要发送的消息,并且解密接收的消息。在实际应用中,消息本身用DES对称加密,而对对称加密的密钥采用RSA非对称加密,这样既保证了数据的安全,还能保证效率。⑶验证模块根据HL7标准验证发送或收到的消息是否符合标准格式。依据HL7的应用层处理规则(分为基本处理和增强处理)发送应用层的确认消息(ACK)。⑷消息解析模块解析收到的消息中的元数据,将收到的消息按是否需要人工处理分为两类:需要人工处理的则按要求写入数据库,不需要人工处理的则提供一个触发机制,传送到消息构建模块。⑸消息构建模块按照HL7标准构建消息,它主要接收两个方面的触发:一是来自于消息解析模块的触发机制,自动按对方需求访问数据库生成相应的消息;另一个是来自于系统定时的主动更新。⑹数据库操作模块负责将解析消息后得到的数据生成结构化查询语句,利用解析消息得到的数据表中的键值从配置文件中获得消息服务类型(表明消息目的服务端)、消息字段内容对应的数据库表名、列名、数据库操作类型等信息,再将获取的信息添入结构化查询语句的模版中,特点是能根据消息内容自动生成任意长度的SQL语句。进行数据库的刷新、查询、插入、修改和删除。目前在网关池的服务器上以Access文件存放各系统数据库的配置信息,以识别数据库的结构用于数据库的操作。未来还可以考虑以XML文件形式存放配置信息。组件结构图如下:终端应用程序网络网络接口模块加密与解密模块数据库操作模块验证模块数据库消息解析模块消息构建模块图2HL7通讯模块框图对于服务器来说,数据库是各个应用终端的远程数据库。对于各应用终端来说,数据库则是本地数据库。3.3通讯过程说明下面以HIS-PACS通讯为例子,说明基于以上结构的通讯过程如何按照HL7的规定运作。HIS向PACS发送HL7未请求更新消息:⑴HIS系统向PACS系统发送病人的资料信息,如病人姓名、性别、年龄、ID号、住址、电话等;以及病人的检查申请和医嘱信息,如检查项目,检查部位等。HIS端数据库操作模块定时检查数据库中添加的新信息,由消息构建模块生成HL7未请求更新消息,通过验证,加密以后,由网络接口模块发送到网关池。⑵网关池的客户端程序能够在各服务器之间进行负载均衡,把收到的消息分配给空闲或负载相对较轻的服务器。⑶服务器对收到的消息解密,验证之后,交给消息解析模块解析消息,并且触发消息构建模块生成一条ACK消息返回给发送方,说明消息是否通过了验证。由于收到的是未请求更新消息,所以进一步把解析得到的数据传递给数据库操作模块。该模块判断出这是给PACS系统中某一个终端的消息,然后从Access文件获取目的数据库的连接信息和数据库的结构。根据消息数据内容自动生成SQL语句,把信息写入目的数据库中。⑷PACS系统依据收到的请求消息,对病人进行相应的检查并把结果信息写入本地数据库中。本地系统会检查数据库的更新,由消息构建模块生成另一条ACK消息把结果返回给HIS系统,过程与上面类似。HIS向PACS发送HL7查询消息:⑴HIS端消息构建模块根据系统要求生成HL7查询消息,通过验证,加密以后,由网络接口模块发送到网关池。⑵网关池的客户端程序能够在各服务器之间进行负载均衡,把收到的消息分配给空闲或负载相对较轻的服务器。⑶服务器对收到的消息解密,验证之后,交给消息解析模块解析消息。由于收到的是查询消息,解析模块会调用数据库操作模块从Access文件获取目的数据库的连接信息和数据库的结构以后,根据消息数据内容自动生成SQL语句,访问目的数据库获得被查询的数据。然后由消息构建模块生成HL7的回复消息返回给HIS端。⑷HIS端对收到的回复进行解密、验证、解析之后把数据写入本地数据库中完成查询操作。4结语HL7作为目前应用最广泛、最有发展前景的国际医学电子信息交换标准,是医疗机构之间以及医疗机构内部各子系统之间数据交换遵循的数据结构标准。本文通过对HL7标准的学习结合中国医院的实际提出了一套整合各个信息系统的解决方案,其核心是以支持负载均衡和动态配置的网关池作为整合各个信息系统的中枢,目前已完成Beta1.0版本。希望本文能起到抛砖引玉的作用,为推动中国医院的信息化建设起到有益的作用。参考文献[1]HL7Organization.HealthLevel7.HL7Version2.3.1,1999.[2]金霞.医疗信息交换中HL7消息的构建/解析和传输关键技术研究[D].大连理工大学,2003.[

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功