基于HL7中间件的区域医疗异构数据共享实现

2017-02-16 09:27陆宇宏
中国医疗器械杂志 2017年1期
关键词:中间件异构消息

【作 者】陆宇宏

南通大学附属医院信息中心,南通市,226001

基于HL7中间件的区域医疗异构数据共享实现

【作 者】陆宇宏

南通大学附属医院信息中心,南通市,226001

该文介绍了目前我国区域医疗信息化的发展现状,详细分析了目前该领域异构数据共享的难题,并尝试采用基于HL7标准和XML数据传输技术的中间件,实现区域医疗异构系统之间的信息读取和交换。

HL7;中间件;区域医疗

1 区域医疗发展概况

1.1 区域医疗国内外进展

发达国家的区域医疗信息化的建设早于我国,美、日等国家医疗信息化已进入区域卫生信息化发展阶段。2004年开始, 美国共建立了150个左右州、区域或地方性的区域卫生信息组织(Regional Health Information Organization,RHIO)[1-3]。欧盟 “数字欧洲” 计划有效推动了欧洲信息一体化建设,目前欧洲HIS已经实现了一些区域信息系统,如丹麦的“Red System”,管理76所医院和诊所,并利用局域网和微机连接形成了一套功能完善的医院信息系统。

我国在该领域的起步较晚,先驱有国家“十一五”科技计划支持的厦门市军民协同共建医疗服务示范工程,该工程以居民电子健康档案为核心,涵盖公共卫生信息系统、数字化医院、社区卫生服务信息系统、卫生决策等信息系统[2,4-5]。 上海的医联工程,联网范围覆盖到23家市级医院及其6家分院,并逐渐完成与长宁、闵行、卢湾三区互联,实现了跨医院的信息共享、病人单据的网上便捷查询、医患信息互通等功能,成为我国联网范围最大的临床医疗信息共享系统[2,6]。

1.2 我国区域医疗发展的数据异构问题

从国外和上海、厦门的实践经验来看,区域医疗的信息化建设是利用现代化信息网络和通信技术,通过使一定区域内各种卫生相关信息系统的互联互通实现卫生信息资源的交换、存储和共享,区域医疗信息化建设在技术层面上的实质是对医疗数据的存储、传输、分析处理和挖掘。

我国目前对于区域医疗信息化的研究主要包括数据标准、医疗业务流程的规范和数据存储模式的设计等,数据体系结构仍然是围绕最初的单个医疗单位内部数据共享的模式构建的,而多个医疗机构之间存在着数据库异构、数据格式不兼容等问题,网络带宽的限制、多个机构共享医疗信息的机制等问题都影响了区域医疗信息化的展开。

本文就区域医疗信息化过程中,医疗的异构数据的共享问题展开讨论,尝试采用基于HL7标准和XML数据传输技术的中间件,实现区域医疗异构系统之间的信息读取和交换。

2 区域医疗的应用程序模型设计

2.1 传统的三层分布式应用程序模型设计

本文在实施医疗信息化系统的过程中采用基于.NET的四层分布式应用程序模型,其由传统的三层模型发展而来。基于.NET的三层分布式应用程序模型分为表示层( Presentation Layer)、业务逻辑层(Business Logic Layer)、数据服务层(Data Layer)。

三层应用模型的表示层负责与客户端的通信工作。客户端一般通过Web浏览器向表示层发送HTTP请求,表示层向客户端返回HTML页面。组成表示层的主要有客户端的软件组件和应用程序,基于B/S架构的情况下是Web浏览器。

业务逻辑层实现大量的商务逻辑表示,通过SOAP实现了表示层与业务逻辑层的通信,将业务逻辑打包成组件,通过详细定义的接口进行交互。

数据服务层,采用SQL Server、Sybase和Oracle等数据库实现对实际数据的存储。

2.2 区域医疗平台的四层分布式程序模型设计

区域医疗信息化平台的程序实现采用四层分布式模型,见图1。与传统的三层模型结构相比,四层模型中业务逻辑层与提供数据服务的层次完全分离;数据服务层被拆分为数据访问层(Data Access Layer)和数据实体层( Data Entity Layer)[7]。四层分布式模型的优点在于:① 业务逻辑层与数据访问层的分离,使得当系统数据对象发生变化时,只需维护数据访问层的访问逻辑。系统业务发生变化时,只需维护业务逻辑层的业务逻辑,而无需修改数据访问[8]。② 清晰的层次架构有利于分隔代码,实现可扩展性。③ 业务逻辑和数据逻辑的区分,降低了层次间的耦合度,使系统得以扩充,系统的可维护性提高,增强了代码和资源的复用、重用能力,对提高软件开发效率和软件质量具有非常重要的作用[9]。

图1 基于.NET的四层分布式应用模型Fig.1 Four layer distributed application model based on .NET

3 基于HL7的中间件设计

区域医疗信息化平台的实现,其关键是要解决异构数据的读取和传输。通过对医疗信息化数据存储和管理、网络环境下异构数据的集成方法和存储模式的广泛调研,本文选择采用基于HL7标准和XML数据交换标准的中间件实现区域医疗信息化平台中异构数据的集成。

3.1 HL7标准

HL7参考开发系统互联标准OSI(Open System Interconnection)模式,将其规则对应OSI第七层应用层。HL7标准提供关联性的分类、结构性资料交换的机制等,功能上实现用户身份审查、安全性检测、资料交换流程构建等。HL7依据应用程序到接口的概念来定义,但HL7标准并不完全遵守OSI定义的数据元素,只依据OSI标准构成本身的抽象数据类型和编码规则。

3.2 中间件结构设计

本系统讨论的中间件,是一个系统接口,在实现系统间数据共享时,不会对现有的系统和数据存储模型进行改造,保证原有系统的正常运行。

图2是区域医疗信息系统平台的基于HL7的中间件结构设计图。平台提供直接面向用户的应用程序,为用户提供访问中间件的查询接口。基于B/S的架构使得用户可以直接通过浏览器调用中间件,中间件接到用户请求,经过处理后返回给用户所需要的XML文档,并将结果集成显示给用户。

图2 基于HL7的中间件结构Fig.2 Middleware structure based on HL7

中间件处于平台与异构数据源系统之间,为平台的应用程序提供全局模式,完成数据交换和统一,与异构数据源直接产生关联。中间件的结构包括了由基于HL7的消息解析和映射、消息构造、数据库接口和XML包装器。

3.3 基于HL7的消息结构

以HL7 对消息段的定义,用预先规定的唯一的3字符码标识,如MSH(Message header segment)表示消息头,EVN(Event type segment)事件类型消息段,PID(Patient ID segment)病人ID消息段等。

图3是HL7 ADT input对病人注册(register a patient(event))这一消息的规则定义,其中MSH、EVN、PID、PV1等为必选消息段。

HL7对消息段对每个三个字符所代表的消息段进行了详细的规则定义,图4为PV1(patient visit segment)的消息规则定义。

3.4 HL7消息解析流程设计

基于HL7的中间件接口,可以将基于HL7的信息转换为用户理解的数据结构,对于HL7的消息解析是将HL7信息转换为平台应用程序需要数据的必经过程。消息解析的基本思想:首先以消息的分隔符为标志符,分析出消息中的segment、field,构造消息的多指针链表数据结构,通过对链表的遍历可以实现任意一个节点元素,最后形成完整的消息树。

图3 ADT^A04消息规则Fig.3 Message rule of ADT^A04

图4 消息段PVI语法规则Fig.4 Grammar Message segment PVI

这一过程中,最关键的是对字符串的解析,包括两个方面:① 解析消息头MSH。以消息分隔符为标志,将MSH消息段中的字符串分级到子组件层次,构造对象数据结构,并将该节点作为头节点插入到消息链表中;② 从上面那步读取消息类型的代码,对应到消息规则库中找到相应类型所定义的规则,按顺序读取消息段,按一定算法构造消息。

对中间件设计的基于HL7信息的解析过程如下:① 基于MSH消息头查询版本信息;② 根据版本信息,查询对应消息字典;③ 依据消息字典,构建消息语义树,树的节点对应消息属性值。

本系统采用XML树状结构来表示,XML语言可以描述数据的层次结构,也可以展示整个HL7消息。

3.5 消息字典设计

对于HL7消息的解析,需构建基于HL7的消息字典,便于用户来理解基于HL7标准而设计的医疗信息。我们采用HL7来组织区域医疗信息化平台的消息字典,编写消息字典主要有两个目的:

(1)HL7的消息字典是一个比较大的数据表,对于区域医疗信息化平台的开发,各个开发人员面对的可能是不同的功能模块,但涉及到的医疗信息可能是交叉的,所以需要编写编码层面的消息字典,统一规则。

(2)编写消息字典,可以方便系统使用者,能使用户能在短时间内从庞大的消息库中,理解他所需的消息段的解释说明书。

HL7消息中,MSH消息头不仅存储着消息的HL7版本,还存储了该消息的类型。确定了消息类型,也就指定了该消息类型下消息段的排列和种类。我们对消息字典的设计正是基于对HL7消息本身的结构解析,图5为消息字典的结构模型。消息字典的三层次结构正是基于消息模型本身的结构,这种形式的消息字典提供给平台开发人员,而平台为用户提供的信息系统说明书,正是基于消息字典编制而来。

图5 消息字典结构Fig.5 Message dictionary structure

4 XML数据库接口设计

4.1 XML数据库接口模型设计

中间件通过数据接口与各种异构数据源进行连接,进而获取数据库中的数据。区域医疗信息化系统平台需要协调的系统比较多,因此开发一种完全统一的接口即实现各个系统间的通讯是不太可能的,需要为每个接入平台的系统开发数据接口,但每个接口的整体的设计理念、方法是一致的。

中间件使用的数据库接口,从根本上来说是对各个医院、医疗信息系统实现企业应用集成(Enterprise Application Integration,EAI)。EAI通过建立底层结构,来联系横贯整个企业的异构系统、应用、数据源等,完成在企业内部的 ERP、CRM、SCM、数据库、数据仓库,以及其他重要的内部系统之间无缝地共享和交换数据的需要[10]。基于HL7的中间件,其数据库的接口主要采用基于XML的技术来实现,图6是数据库接口模型图。

图6 XML数据库接口模型Fig.6 XML database interface model

4.2 XML文档与数据库之间的转换设计

XML文档与关系型数据库之间的数据转换是区域医疗信息化平台实现数据共享的核心。数据的转换,包括了数据表中的数据、数据表定义的结构、实体的完整性约束、参照完整性约束等内容。在数据的转换过程中,针对不同的内容进行分类,形成不同层次的转换。

图7是XML文档与关系型数据库之间的对应关系,由图7可知这两者的对应关系包含了数据和数据模式这两个层次。数据的对应关系指的是关系型数据表的记录被读取后生成关系数据,嵌入到XML文档中。模型的对应主要分为两个部分,第一部分是指关系型数据表里数据类型、精度、默认值等信息,这些信息被读取后需对应成关系型的结构信息,再转换成XML模式中的数据结构。第二部分指的是约束模型,也是关系型约束要转换为XML模式下的约束。

图7 XML文档与关系型数据库对应关系Fig.7 Correspondence between XML documents and relational databases

5 基于HL7的中间件实现

区域医疗信息化平台实现对各个异构数据库的数据共享,其基本的原理是通过对各个医疗单位HIS系统内病人数据的读取,基于XML接口转换成本地视图,通过平台提供的应用程序提供给用户。基于HL7中间件的实现,我们以某地区某医院提供的病人就诊病历为实例来说明。

基于对该地区需接入医疗信息化平台的各个医院、医疗机构的数据分析,我们首先构造基于这些数据的本地视图表,并构建与之对应的HL7消息模型,以病人电子病历为例子,见表1。

视图表构建了原信息系统数据与基于HL7标准的XML文档之间的对应关系,通过中间件的映射,原数据库系统的数据信息被转换为基于XML文档的数据格式。

6 展望

区域医疗异构数据中间件的设计与实现,使得区域内医院、医疗单位之间的数据共享成为可能,系统开发技术、数据库接口等功能全面、完善都为平台的运行提高了效率。但随着社会的发展,人们对于区域医疗的服务要求越来越高,区域医疗信息化的实现不仅仅是技术上的难题,类似于“看病难,看病贵”的问题也是社会公共管理需要关注的领域。未来区域医疗信息化的发展还要很多需要突破的研究:① 医疗数据流通的效率,区域医疗信息化平台实现的是各个异构数据库系统之间数据的传输问题,因此效率相对较低;② 区域医疗信息化平台最大的用户是区域内的居民,区域医疗信息化平台实现了对这些居民医疗信息的共享,这就涉及到居民个人隐私的问题,这也是未来需要关注的一个领域。

表1 病人住院信息表Tab.1 Patient information sheet

[1] 中国医院协会信息管理专业委员会.中国医院信息化发展研究报告(白皮书)[M]. 北京: 人民卫生出版社, 2008.

[2] 王帅, 苏维. 我国区域医疗信息化发展现状、存在问题及对策研究[J]. 现代预防医学, 2010, 37(22): 4241-4243.

[3] 许怀湘.美国区域卫生信息组织的发展和启示[J]. 电子政务, 2008(8): 119-125.

[4] 厦门区域卫生信息平台建设研究[EB/OL].(2010-04-13)[2012-04-10]. http://wenku.baidu.com/view/447d4bfafab069dc50220116. html

[5] 孙喜琢, 王伟. 区域卫生信息化建设概述与实施策略[J]. 现代医院管理, 2012(SN.46): 27-30.

[6] 高解春, 于广军, 杨佳泓, 等. 上海市级医院医联工程项目的建设成效与深化前景[J]. 中国医院. 2012, 14(10): 12-14.

[7] Spenser K, Eberhard T, Alexander J. Microsoft Visual Basic.NET面向对象可重用组件开发[M]. 北京: 清华大学出版社, 2003.

[8] 邱云飞, 邵良彬. 基于ADO.NET的通用数据访问层设计方法研究[J]. 计算机系统应用, 2007(7): 54-56.

[9] 张远鹏, 董建成, 耿兴云, 等. 区域电子健康档案系统的分布式应用程序框架模型研究[J]. 医学信息学杂志, 2011, 32(2): 22-25.

[10] EAI. [EB/OL]. (2015-05-30)[2016-07-27]. http://baike.baidu.com/ view/23710.htm.

lmplementation of Heterogeneous Data Sharing in Regional Medical Treatment Based on HL7 Middleware

【Writer】LU Yuhong

Information Office, the Affiliated Hospital of Nantong University, Nantong, 226001

This paper introduces the current situation of the development of regional medical information in our country, analyzes the problem of heterogeneous data sharing, and tries to realize the heterogeneous information sharing by middleware based on HL7.

HL7, middleware, regional medical treatment

TP311.13;R197.1

A

1671-7104(2017)01-0066-04

10.3969/j.issn.1671-7104.2017.01.018

2016-05-31

南通大学人文社会科学研究项目(13W67,13W68)

陆宇宏,E-mail:23408452@qq.com

猜你喜欢
中间件异构消息
ETC拓展应用场景下的多源异构交易系统
试论同课异构之“同”与“异”
一张图看5G消息
多源异构数据整合系统在医疗大数据中的研究
吴健:多元异构的数字敦煌
RFID中间件技术及其应用研究
晚步见道旁花开
基于Android 平台的OSGi 架构中间件的研究与应用
云计算环境下中间件的负载均衡机制研究
金蝶 引领中间件2.0新时代