区域医疗SOA解决方案第4部分:ESB在医疗行业中的应用-健康服务总线健康服务总线是企业服务总线在医疗行业的实现,它使用SOA架构和医疗行业标准为基础,将医疗卫生机构的业务流程、应用系统和相关数据整合起来,提供统一的访问总线。本文给出了IBMWebSphereMessageBroker为实现平台的参考架构,并详细介绍了与IBM其他产品进行集成以提供健康服务总线的相关功能。背景介绍区域医疗信息网络内多系统的整合在区域医疗卫生信息网络(RegionalHealthcareInformationNetwork,RHIN)内医疗卫生机构之间共享临床与医疗健康信息的能力是当今医疗行业内面临的主要挑战之一,现有的医疗机构应用系统由于采用了不同标准、数据模型或者实现平台,在需要数据共享时候,常常根据某些特定需求实现了特定方式的连接,由于系统的异构性以及集成需求的变化和增加,这种点对点的信息交换模式越来越复杂而且难以维护,逐渐不能满足日益复杂的数据共享和交换要求,现有的系统整合和集成需要一种统一的应用架构来解决上述挑战,从而形成一个互联互通的医疗卫生业务协作网络,实现市民在各医疗机构间(例如医院与医院之间,医院与社区中心之间,社区中心与社区中心之间)的诊疗资料的共享和交换。健康服务总线概念在面向服务的体系架构(SOA)中,企业服务总线(EnterpriseServiceBus,ESB)是一个实现系统间集成和互联互通的重要技术架构,它提供一个基于企业总线的先进应用整合理念,最大限度地减少应用系统互联所面临的复杂性,降低集成和维护成本。在区域医疗卫生信息整合环境下,构建统一的企业服务总线是实现区域医疗信息网络内多系统整合的重要实现手段,在这里,我们把企业服务总线在医疗卫生行业内特定的实现称之为健康服务总线(HealthServiceBus,HSB)。健康服务总线在实现企业服务总线基本特点的同时,例如消息转换、路由、协议接入等,还需要满足医疗卫生行业内的特定需求,例如病人隐私保护、医疗卫生行业标准支持等。回页首健康服务总线总体架构结合ESB的技术特定、IBM相关的软件支持以及医疗卫生行业的业务需求,图1给出了健康服务总线HSB的参考架构图,中间部分是以IBMWebSphereMessageBroker为核心的总线实现平台,在该架构图中,在HSB上面的部分包括医疗卫生提供者应用:也称之为业务信息系统POS(PointOfService),包括HIS,EMR,CIS,LIS等,这些应用可以直接接入到HSB,也可以在适配器的帮助下接入到HSB。访问渠道整合:医疗从业者、患者、管理人员等可以多种渠道访问后台系统,例如Portal、移动设备等。应用平台:医疗业务应用平台,例如双向转诊、远程会诊、流程和协作应用等,都可以接入到HSB。图1.HSB总体架构图在HSB下面的部分包括居民主索引,EHR数据服务,和EHR分析服务,在该系列的文章中有详细解释,在此不做解释。IBMWebSphereMessageBroker(WMB)产品提供了实现企业服务总线的平台,结合WMB提供的强大集成功能,HSB可以提供路由:请求的消息可以根据消息内容自动路由到相应的后台服务,而不需要专门指定端点地址,通过集成WSRR(WebSphereServiceRegistryandRepository)可以实现WMB的动态路由功能。转换:消息的转换功能是HSB提供的重要能力,如果请求消息不符合目标服务的格式要求,HSB可以使用WMB提供的内置节点例如Compute、XSLTransform、Mapping实现消息的格式转换;医疗卫生行业常见的消息交换标准是HL7消息,通过集成转换引擎WTX(WebSphereTransformationExtender)和WTXHL7Pack,HSB可以实现对HL7的解析和转换的支持,特别是HL7V2.X格式的消息。协议绑定:HL7通常是以MLLP(MinimalLowerLayerProtocol)协议进行传输的,HSB通过内置的TCPIP进行配置可以支持MLLP协议的接入,同时也支持常见的传输协议和数据协议如SOAP,XML,HTTP等。发布/订阅功能:发布/订阅是一种异步消息传输机制,它定义的应用程序模型以松耦合的方式把消息的发布者(Publisher)与消息的订阅者(Subscriber)联系在一起。参与发布订阅模式的医疗卫生机构可以定义主题(Topic),把患者的医疗事件发布到HSB,而HSB可以将医疗事件发布给订阅了该主题的订阅者。例如,患者在医院出院后,出院事件可以发布到HSB,而订阅了该事件的社区中心在接受到该事件后,可以安排社区医生对病人进行随访。服务组合:服务的请求可能会涉及到多个服务提供者,HSB可以将多个服务提供者进行组合,实现一个短流程,从而满足一些更复杂的需求。安全网关:使用SSL等技术保证通道的安全性传输,通过集成TDS(TivoliDirectoryServer)和TSPM(TivoliSecurityPolicyManager)实现了对请求用户的身份认证和隐私保护。在下面的章节中,将详细介绍对其他产品的集成来实现HSB的一些特定功能。回页首集成WTX转换HL7消息HL7是医疗卫生行业内常用的交换标准,包括HL7V2.X和V3几个版本,由于HL7V.2X推出较早,在目前应用更加广泛。HL7V3是标准的XML格式,WMB可以非常容易地支持。在2.X版本中,HL7的数据以消息(Message)为基本构成单位,一个消息由多个段(Segments)组成,一个段由多个字段(Fields)组成,字段是由一个或多个数据元组成的字符串。由于HL7V2.X是一种特殊的线性格式,对于其解析和转换不像XML一样方便。而IBM的WebSphereTransformationExtender(WTX)以及HL7Pack提供了HL7消息处理的全面支持,WMB也提供了内置的WTXMap节点和WTX进行直接的集成,这样使得HSB对HL7消息的处理变得非常容易。如何在WMB中集成WTX和WTXPack支持HL7消息处理,请参考在WebSphereMessageBroker中集成WebSphereTransformationExtender转换行业标准消息一文。回页首集成TDS和TSPM提供安全网关IBMTivoliDirectoryServer(TDS)提供了一个功能强大的轻量级目录访问协议(LightweightDirectoryAccessProtocol,LDAP)身份基础设施,接入到HSB的应用系统可以将患者和医生的用户身份注册到TDS进行统一管理,在运行时候WMB和TDS进行集成实现对请求用户的身份验证,认证方式可以采用简单的用户名/密码方式,也可以采用更安全的基于数字证书的身份验证结构,具体的验证过程可以由WMB自己执行,而HSB开发者仅仅需要在WMB配置一下连接参数即可。图2给出了如何在WMBToolkit中配置与TDS连接的一个示例。图2.在WMB配置SecurityProfile集成TDS对请求用户的认证的典型例子是,医生使用医院的应用系统访问某个病人的病历文档,应用系统使用IHE定义的标准消息XDSQueryDocument(SOAP格式)通过HSB请求EHR数据服务,WMB在接受到SOAP请求后,将SOAP头部的请求用户名和密码取出,并使用LDAP进行验证,只有验证通过才允许调用EHR提供的服务。HSB验证用户的身份仅仅是安全网关的第一步,在用户身份验证之后,还需要确定该用户是否有权限调用该服务以及访问某些特定的资源。对于诊疗文档的浏览、提交或者修改需要支持更复杂的授权规则,例如授权某用户仅仅有权限查看病人的某个文档甚至是某个文档的某部分特定内容,从而更好地保护病人隐私。XACML(ExtensibleAccessControlMarkupLanguage)是OASIS组织制定的基于XML的开放标准语言,它提出了一种通用访问控制策略语言和执行授权策略的框架。IBM的TSPM(TivoliSecurityPolicyManager)产品支持XACML语言来定义授权策略模型,实现对不同角色的权限管理。在HSB中,我们通过WMB集成TSPM实现运行时决策权限的支持,从而保证在共享病人电子健康信息的同时维护病人的隐私权。具体请参考该系列的基于TivoliSecurityPolicyManager开发权限管理服务一文。回页首使用适配器集成医疗服务提供者应用医疗服务提供者应用由各个供应商开发,不同的供应商的开发平台、采用的技术和接口都不尽相同。为了方便医疗服务提供者应用接入到HSB而尽量地减少改造现有系统的代价,开发相应的适配器并部署到各医疗机构是一个较好的实现方式,适配器可以传入提供者应用传入的特定请求而将其转换为HSB要求的消息类型,例如HL7、IHEXDS等,适配器根据要适配的原数据和目标数据可以有多种类型:MLLP(MinimalLowerLayerProtocol)是传输HL7消息最常用的传输消息,MLLP适配器可以将应用传入的消息封装成MLLP报文并以MLLP传输通道接入到HSB。File适配器支持CDA文件的提交,CDA文件可以放在文件夹下,由File适配器进行定时侦测并构造成IHEProvider&RegisterDocument请求通过HSB发送到EHR数据服务。IHE适配器是以开源工具OHT(OpenHealthTooling)IHE为基础开发的适配器,它提供API和WebService接口两种方式,帮助提供者应用系统以IHE客户端的方式构造IHE请求消息。例如,如果调用EMPI系统,IHE适配器可以将应用系统的请求数据构造成符合IHEPIX/PDQ的标准消息格式;如果调用EHR数据服务,IHE适配器可以将应用系统的请求数据构造成符合IHEXDS的标准消息格式。使用适配器可以降低因开发架构不同导致的业务应用侧编程复杂性,允许医疗服务提供者应用快速接入HSB,实现消息的安全、可靠传递,并可以支持流量控制、日志纪录、本地化定制等功能。回页首集成WSRR提供服务管理在区域医疗卫生解决方案中,接入HSB实现电子健康信息共享的系统有各医疗机构的应用系统、EHR系统、EMPI等,这些系统都是以服务的方式提供对外接口,最常见的WSDL方式的描述接口。作为服务元数据的注册中心和存储库,WSRR(WebSphereServiceRegistryandRepository)建立了一个中心位置,用于查找和管理从多种来源获取的服务元数据,例如服务端点地址、服务描述、策略生命等。WSRR可以帮助业务分析人员、解决方案架构师和开发人员更好地管理维护这些服务,充分挖掘SOA的业务价值,实现SOA治理功能。在HSB的运行过程中,WMB可以和WSRR进行集成,根据服务的元数据动态选择服务端点地址,从而提高了企业服务总线整合的应用灵活性。如果目标服务端点地址发生变化,WSRR允许管理人员更新服务元数据来动态控制WMB消息流的路由和转换。WMB从V6.1起提供了两个与WSRR集成的新节点RegistryLookup和EndpointLookup来支持服务端点地址的检索。回页首总结本文首先介绍了区域医疗信息网络内系统集成的需求,并给出了健康服务总线HSB的介绍,然后具体地介绍了健康服务总线的总体参考架构以及各功能组件,并重点描述了WMB与其他产品的集成来实现健康服务总线的相关功能。参考资料参考WebSphereMessageBrokerInformationCenter,学习掌握更多的WMB知识。参考WebSphereTransformationExtenderInformationCenter,学习和掌握更多的WTX产品知识参考在WebSphereMessageBroker中集成WebSphereTransformationExtender转换行业标准消息一文学习如何使用WMB和WTX转换HL7消息参考WebSphe