辛小霞① 吴汝明① 郭清顺① 邹赛德② 周毅②
①中山大学网络与信息技术中心,510275,广州市新港西路 135 号
②中山大学中山医学院计算中心, 510080,广州市中山二路 74 号
摘 要 阐述了 SOA 在构建区域医疗信息共享方面的方法和优势。在国家卫生部制定的相关
标准框架指导下,结合中山大学医疗信息共享平台项目建设实践,提出了基于 SOA 的区域医
疗信息共享平台体系架构模型,对框架内的各个技术层面进行了深入的探讨,并通过服务组
合实例来说明该框架模型和方法的可用性、有效性。
关键词 医疗信息共享平台 SOA 技术架构 企业服务总线 临床数据存储模型
1 研究背景
中山大学下属八家附属医院,有着良好的医疗品牌和丰富的医疗资源。如何
配合国家医改方案建设要点,有效地整合和利用这些优质医疗资源,更好地服务
于社会大众,是学校领导一直思考和关心的问题。在这样的背景下,我校于 2008
年 11 月正式启动实施中山大学医疗信息共享平台工程项目。目标是,建设以中
山大学附属医院为核心的区域医疗卫生服务信息平台,实现院际之间医疗资源的
共享和协作发展;在此基础上,逐步辐射华南地区,通过与各地医疗卫生信息平
台的互连与协同,提高医疗服务的可及性和连续性,为广东省各地,尤其是省内
边远地区群众,提供中山大学“中山医”品牌的优质医疗服务。
如今,中山大学医疗信息共享平台项目建设,在国家卫生部《电子病历基本
规范》及《基于健康档案的区域卫生信息平台建设指南》等标准框架指导下,在
国际标准 HL7 的支持下,在“标准、共享、服务、研究、创新”项目建设方针的
指引下,以标准化建设作为平台建设的基石,以电子病历为平台共享核心,以共
享服务为平台的核心价值,在管理创新、服务创新、技术应用创新三个方面展开
了开拓性探索。通过构建中山大学医疗信息服务网络,建立了各附属医院共享的
电子病历库和医疗资源库;通过建设医患互动服务平台、临床协同工作平台、科
研教学辅助平台、管理创新工作平台,实现下述四个方面的服务:一是面向临床
的中大电子病历服务、会诊与远程医疗服务、转诊与转检服务;二是面向社会的
个人电子健康档案服务、门诊预约挂号服务、医院资源信息服务、健康教育和咨
询服务;三是面向临床科研和教学的病历库与影象库支持服务,以及专科疾病和
专题研究为主题的数据仓库;四是面向医疗管理的 BI 服务,通过对数据进行集
中分析和挖掘,为高端决策提供辅助支持。
由于医疗信息共享平台建设是一项极为复杂的系统工程,涉及到管理、技术、
病人隐私保护、以及人的心理适应等多方面因素,平台建设是一个渐进的过程;
因此,如何构建一个技术上具有良好的弹性,可适应业务需求的高度动态性和不确定性,实现服务的敏捷性,以及跨多个业务域服务间的协调性,具可持续发展
的医疗信息共享平台基础技术体系架构;在这个体系架构上,横向能够有效地承
载不断增加的多个医院异构系统在同一平台上的信息交换与共享;纵向能够承载
共享业务的不断深化和提升;是系统建设的首要核心技术问题。
针对上述挑战,本项目采用了基于 SOA(Service-Oriented Architecture)
的设计思想,希望在下述几个关键点能够诠释 SOA 思想给平台带来的优势。
1.1 系统功能组件化 抽象平台所涉及的各项业务,并封装为各类基本服务组件;
每个服务相对独立并可重用,当某个服务的内部结构和实现发生改变时,这种变
化仅被隔离在服务内部,并不影响其他服务。
1.2 以应用适配器方式屏蔽外部接入系统的技术异构性和消息传递底层通讯协
议的复杂性;通过适配器服务的泛化标准,灵活实现各种医院信息系统的应用整
合服务。
1.3 采用企业服务总线作为各应用的聚合平台,由服务总线完成消息的接收、转
换、以及数据路由;由服务总线根据规则引擎调度垂直业务的服务,使得服务的
请求者和提供者之间高度解耦。
1.4 在企业服务总线基础上,建立流程管理平台,对服务进行编排管理,并在需
求和服务编排之间建立用户视图,根据需求动态生成工作流程图,支持需求到服
务编排的平滑映射。
1.5 基于流程管理平台,将流程逻辑与驱动流程的规则剥离,使得规则引擎与工
作流程可以灵活的独立配置,规则的变更无需修改或重新构建基于规则的工作
流。
1.6 建立一整套基于 HL7 RIM 的医疗信息描述方法和临床数据存储模型,去管理
不断发展变化的临床数据,避免随着存储内容的变化需要修改底层数据结构的传
统弊端。
通过上述手段,形成一个分层服务组合框架,降低应用层拓扑关系的复杂度,
实现业务架构和技术架构的清晰性和松耦合性,提高对需求的动态适应性、服务
的敏捷性,以及提供一种用最低成本开拓新业务的能力。
2 关于 SOA
SOA 是一种面向服务的架构,它是包括运行环境、编程模型、架构风格、工
程方法、以及相关技术在内的一整套新的分布式软件系统构造方法和环境。[3]
SOA 的架构风格表现为,服务是最核心的抽象手段,业务被划分为一系列粗
粒度的业务服务和业务流程。业务服务相对独立、自包含、可重用,由一个或多
个分布的系统所实现,业务流程由服务组装而成。一个“服务”定义了一个与业
务功能或业务数据相关的接口,以及约束这个接口的契约,如服务质量要求、业
务规则、安全性要求等。接口和契约采用中立、基于标准的方式进行定义,独立于实现服务的硬件平台、操作系统和编程语言,使得构建在不同系统中的服务可
以统一和通用的方式进行交互和理解。并通过服务注册库和企业服务总线
(Enterprise Service Bus)来支持动态查询、定位、路由和服务之间的协调中
介,使得服务的请求者和提供者之间高度解耦。其优点是,适应变化的灵活性,
当某个服务的内部结构和实现发生改变时,不影响其他服务。
综上所述笔者认为,SOA 的核心价值主要体现在:提供了一个与服务为中心、
端到端的整合环境,使得业务变化可以在业务元素这个层面上沟通,业务模型与
IT 实现能够紧密地对齐,支持业务的快速变化、灵活重构和优化;同时,由于
松耦合的 IT 架构,使得服务的变化仅被隔离在需要变化的局部,不会扩散到系
统其他部分;并能够以服务的方式共享和复用企业现有应用资产,保护用户的
IT 投资。
3 基于 SOA 的医疗信息共享平台体系架构研究
3.1 系统框架模型 基于 SOA 理念,中山大学医疗信息共享平台其技术架构为一
个五层的分层服务组合框架,包括:基于 HL7 RIM 的临床数据存储模型与医院信
息访问网关、企业服务总线、工作流引擎、公用基础服务组件和业务服务组件、
应用服务项目和信息访问门户组成。每个服务都是相对独立的应用,并采用基于
消息的松耦合技术,通过服务总线实现应用之间的业务协作。系统架构模型如图
1 所示。
图 1 医疗信息共享平台技术架构模型
最底层:一是,采用基于HL7 RIM的HTB临床数据存储模型,管理和存储不断
发展变化的临床数据。整体模型分为三部分,每一部分自成体系,通过每次医疗
卫生活动进行关联。核心部分为临床医疗活动,一方面,HL7 V3 RIM模型对医疗
业务做了高度抽象,可以对任何一个具体的RMIM模型连接与加入新的属性;另一
方面,由MPI 模块完成对患者与病历的关联关系管理;再一方面,如果今后的医
疗活动种类若有增加,可以方便的在医疗活动中加入新的活动,以适应临床数据
的复杂性和不确定性。 二是,由部署在各家医院的前置机作为医院信息访问网关,灵活实现各种医
院信息系统的应用整合服务。基于适配器技术的医院信息访问网关由应用适配
器、前置服务代理、消息传递服务三部分核心模块组成。应用适配器是通过业务
对象来描述系统的交互接口模型,其服务可以是普通的Java对象,亦可以是远程
同步服务Web Services、或者异步服务JMS消息数据、以及关系数据库、文本数
据、ODS数据仓库等。这些接口均具有与程序语言、平台无关性的特点,适用于
各医院不同环境下的接口适配。由适配器方式采集后的数据,通过前置服务代理
模块实施数据的清洗,封装为XML消息格式;然后通过MQ传输链路,实现前置机
至中心端的消息传递服务,完成数据上传工作。
第二层企业服务总线作为整个架构的核心,负责聚合应用接口接入的整合
点,进行服务之间的协调中介。本项目采用MB作为共享平台的企业服务总线解决
方案,其主要功能:一是提供消息转换功能,对MQ上传的数据作语义和格式上的
转换;二是路由,对转换的数据指定输出,决定每一个具体的业务操作或数据究
竟连接到哪里,如何配置到指定的数据库或应用服务等;三是内嵌对Web Service
的支持,支持访问已有服务(Web Service)的交互,支持把消息处理流程暴露
成Web Service,并且内嵌对服务注册和管理中间件交互和访问的支持:四是支
持服务的热插拔,面向服务的最大特点是需要对业务变化有很好的适应力,通过
热插拔,可以将各种资源在任何需要的时候上线或者下线,从而实现医疗信息共
享平台对业务变化的弹性和响应能力;五是将适配器服务、信息服务、安全服务、
业务服务、流程服务等各类服务管理起来。
第三层流程整合层,通过基于 Workflow 的工作流引擎设计,负责提供整合
应用程序的方法,以及提供将应用程序封装为更大粒度服务的方法。业务需求的
变化无非两个方面,一是业务本身发生变化,二是业务流程发生变化,将这些变
化管理起来,管理可持续优化的业务模型,是工作流引擎的关注点。具体功能:
一是在数据总线服务基础上,将服务编排到业务流程中,并建立可视化的流程组
合映射机制,以每个具体的业务操作作为流程的一个节点,描述服务组合需求,
并在需求和服务编排之间建立用户视图,根据需求动态生成工作流程图,支持需
求到服务编排的平滑映射,支持业务流程的动态重构和自动化;二是将流程逻辑
与驱动流程的规则剥离,使得规则引擎与工作流程可以灵活的独立配置,规则的
变更无需修改或重新构建基于规则的工作流;三是提供基于整个流程的生命周期
管理,包括从流程的开发、部署,到运行监控、优化调整,至形成新的流程。
第四层服务组件层,负责对医疗信息共享平台涉及的业务进行分析和抽象,
形成服务组件。一是公共基础服务组件,包括:系统日志、任务调度、报表引擎、
组织管理、用户管理、角色管理、安全控制等;二是业务服务组件,包括:患者
基本信息调度服务、患者就诊记录调度服务等。
最顶层是在服务组件之上提供基于Portal技术的门户功能,实现信息发布调
阅服务及用户管理认证服务。
3.2 服务组合过程实例 图 2 为病人转检的业务流程中增加审计环节时,系统框
架中的企业服务总线与工作流引擎的服务组合过程实例。图 2 企业服务总线与工作流引擎服务组合过程
病人转检的业务流程中需要增加审计环节时,企业服务总线可配置一个对
审计数据库的整合模式,连接到相应的审计数据库后,可按标准数据格式进行交
互式操作(读取或插入数据);交互过程中,直接在基于工作流引擎的流程管理
平台上配置一个节点去映射这个动作即可。显然,通过这种服务组合方式,可轻
松应对业务需求的变化,直接实施 IT 系统的转向支撑。
4 总结
本文提出了一个基于 SOA 的医疗卫生信息共享平台分层服务组合框架模型,
用以实现共享平台在复杂环境下灵活、高效的服务组合。通过引入企业服务总线,
管理服务间复杂的交互关系,实现按需服务组合;通过流程管理平台,建立可视
化的流程组合映射机制,支持需求到服务编排的平滑映射,实现业务域间的按需
协作;通过基于 HL7 RIM 的临床数据存储模型,管理可持续发展的业务数据;通
过适配器技术,灵活实现各医院信息系统的应用整合服务。上述方法可提高系统
架构的灵活性、扩展性、以及服务的敏捷性。
我们进一步的工作包括,对已完成技术实现的基于 SOA 的中大医疗信息共
享平台,进行系统投产上线前的综合测试。首先是技术架构性能测试以及相应的
调优迭代;在此基础上,进行用户功能接受测试和业务方面的典型交易性能测试,
以及系统管理的可靠性与安全性测试,包括 MPI 后台管理、基于 RBAC 模型的授
权体系角色分级管理机制、病人隐私管理等;而后,在生产环境下完成平台负载
能力和应用性能压力测试,确保系统投产上线运行的可靠性和稳定性。并在此过
程中,对系统框架模型作进一步的分析与研究,以更好地满足面向服务的需要,
进一步提升中山大学医疗卫生信息共享平台的应用价值和基础架构的承载能力。
参考文献
[1] 曹荣桂,李包罗.医院管理学.人民卫生出版社,2004.
[2] 吴汝明.医改背景下的中大医疗共享平台建设. 中山大学 2009 信息化建设年会报告
[3] 毛新生.SOA原理.方法.实践. 电子工业出版社,2007.
[4] 周毅,邹赛德,刘燕. 可交互性标准框架的评估和选择[J]. 中国数字医学,2007,2(6):
24-26.