用SOA解决医疗数据集成
在绝大多数医疗组织内,护士使用多个系统和设备给患者提供护理。护士可能会从一个患者管理应用(检查患者特征和入院信息)切换到一个或者多个电子病历(electronic medical record ,EMR)应用(观察患者早期和目前症状临床记录),或切换到一个收费应用(确保计费正常),或者切换到多个辅助系统(请求一个订单)。如果护士不能访问那些联系患者主治医生或者查看另一个组织临床记录的系统,护士就不得不用电话或者传真完成这些事情。在完成整个护理服务的过程中,这些系统以及行为支持功能都是必需的。但是,在这个例子中,编排各系统完成工作的是护士,不是系统。提供互操作的是护士。
传统上来说,医疗组织通过同步不同系统间(在某些组织中,系统数目大约是100或者更多)的数据来支持互操作。所有这些系统几乎都会管理患者信息。系统数据库使用数据接口进行同步,对于少数关键系统,则是复制数据条目。起初,系统间数据接口是点对点的,每个系统都有自己的消息格式。随着系统数目增加,更大的医疗组织开始采用类似Health Level 7(HL7)的标准接口格式和中央数据接口引擎。另外,基于Internet的通信使医疗组织可以与外部组织(例如支付者)交换数据。图4 展示了一个公共医疗数据集成架构。这个环境包括了各种不同类型的服务器、老式点对点接口、以及很多通过一个数据接口引擎处理的接口。

图4 公共遗留医疗数据集成架构
尽管组织内外系统和系统数据库之间的数据已经同步,但这种数据接口方式不能支持数据互操作。流程之间的数据处理和通信涉及多个系统和冗余处理过程。为了支持整个工作流,用户必须要在几个应用程序之间切换才能完成一个过程。系统还必须清除冗余数据。利用SOA,可以使用现有系统功能开发服务,如图5所示。

图5 医疗行业的SOA集成架构
在SOA环境中,系统流程被组织成和表现为一组服务。整个组织通过标准接口使用每个服务。所有维护或访问相同信息的部门使用相同服务,任何数据和冗余处理对用户来说都是透明的。应用支持一个引用一个或者多个服务的特殊工作流,每个服务与其相关的系统进行通信。为完成一个工作流,用户再也不需要在几个系统之间进行切换,整个流程和支持系统间的数据会自然同步。编排好的服务与用户工作流的一致真正实现了医疗组织流程与人之间的互操作。为了符合健康保险携带和责任法案(Health Insurance Portability and Accountability Act,HIPAA),各个组织正在增进与支付者的标准数据通信。另一个频繁的需求是与其它医疗组织进行集成,以支持临床工作流和参与医疗信息网络(healthcare information network,HIN)。一个组织还可能会在它的SOA解决方案中集成外部服务以提供完整的流程互操作。例如,如果一个患者已在一个组织中挂过号,那么这个服务就可以使用一个由HIN提供的外部服务将这个病人在整个护理社区内挂号。这不仅同步了患者的挂号信息,而且这个外部通信也在几乎没有人工干预的情况下被部署到了相关工作流中,在组织系统边界之外创建了互操作。
SOA是系统发展的下一步。它构建在以前的架构方法之上,同时更好地解决了组织内外机动性和有效重用的问题。SOA提供了真正的互操作性。绝大多数医疗组织都有一个庞大的包含冗余处理和数据的系统集合。SOA将系统功能选出并包装成服务,使之能在整个企业中得到更好地关注和使用。组织可以将他们的工作重心从维护一个复杂的数据接口策略转移到面向服务应用的创建上来,这样可以在支持互操作性的同时更紧密地与医疗流程保持一致。本章的整个剩余部分,我们将探讨这些主题:在医疗领域,通过SOA实现的真正医疗数据互操作是如何产生产业转型的。