廖银萍
摘要:针对医院各种医疗信息系统使用不同协议和接口导致的系统间信息不能互通、共享问题,提出了使用医疗信息集成引擎Mirth Connect对各种医疗信息系统进行整合、集成的方案,以提高医护人员工作效率,降低系统集成成本。简要介绍了Mirth Connect的主要适用范围和基本工作原理。并给出了一个在医院实施的HL7系统与Web Service信息系统集成的项目实例,详细阐述了如何通过Mirth Connect实现该项目的具体过程。
关键词:mirth connect;医疗信息集成;HL7;web service;XML
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)25-0004-03
Application of Mirth Connect in Medical Information Integration
LIAO Yin-ping
(Department of Electronics Information Technology,Shenzhen Institute of Technology,Shenzhen 518116, China)
Abstract: Because of different protocol and interface used by various medical information systems in hospital, the medical information can not be shared between these systems. Using the medical information integration engine “Mirth Connect” to integrate various medical information systems in hospital can improve the working efficiency of hospital staffs and reduce the costs of system integration. Simplely introduces the base functions and working principle of “Mirth Connect”. Illustrates the details of the project which integrated the HL7 system and Web Service information system by “Mirth Connect” in hospital.
Key words: mirth connect; medical information integration; HL7; web service; XML
隨着医疗信息化进程不断推进,越来越多的医疗信息系统在医院得到使用,各种系统之间的信息互通共享变得更加迫切。然而不同厂商的系统提供的信息访问接口、协议各不相同,给医院信息的集成与应用带来挑战[1]。
为了应对医院信息碎片化、孤岛化的挑战,需要一种支持各种接口、协议,稳定、灵活的信息集成引擎来连接医院不同系统,对系统间的信息进行交换、处理,以实现各系统间信息的互通与共享,使信息得到最高效的应用,真正提高医院工作效率[2-3]。
1 Mirth Connect简介
1.1 Mirth Connect主要功能
Mirth Connect是一款开源、跨平台、专门针对医疗信息领域的接口集成引擎。它支持HL7,DICOM,JMS,SOAP等多种协议;支持对信息进行转换、映射、过滤和路由等多种处理;支持读写数据库,读写文件,生成PDF文档,发送电子邮件等多种操作。该引擎已经在MidState Radiology (MSMC)、Mike Nowlin、Chesapeake Medical Imaging、Cembex Care Solutions等多个成熟的医疗信息系统中得到应用[4],充分证明其功能强大,稳定可靠。
1.2 Mirth Connect工作原理
Mirth Connect是基于通道(Channel)模型来实现不同系统间信息处理与集成的。通道模型如图1所示,通道由多个连接器(Connector)组成:连接消息源系统,获取源消息的连接器称为源连接器(Source Connector);连接目标系统,发送消息到目标系统的连接器称为目的连接器(Destination Connector)。一个通道由一个唯一的源连接器和一个或多个目的连接器组成,因为对于一个通道消息来源只有一个,但同一份消息可以同时进行不同的处理并发送到不同系统,比如通道通过HTTP收到消息,可以将这份消息中包含的数据写入数据库的同时还将数据以电子邮件的方式发送出去。
因为需要连接各种不同的系统,因此Mirth Connect提供了各种不同类型的源连接器和目的连接器以匹配各种系统。源连接器包括以下类型:Channel Reader,DICOM Listener,Database Reader,File Reader,HTTP Listener,JMS Listener,JavaScript Reader,TCP Listener,Web Service Listener;目的连接器包括以下类型:Channel Writer,DICOM Sender,Database Writer,Document Writer,File Writer,HTTP Sender,JMS Sender,JavaScript Writer,SMTP Sender,TCP Sender,Web Service Sender。
连接器可以通过设置内部的消息过滤器(Filter)对输入的消息自定义过滤规则,滤掉不需要处理的消息;也可以通过设置内部的消息转换器(Transformer)对输入的消息进行修改、转换等处理。目的连接器相比源连接器多一个回应消息转换器(Response),通过设置回应消息转换器可以对目标系统的回应消息进行修改、转换等处理。这些消息的过滤、修改、转换操作都可以通过添加用户自定义Java Script脚本实现,具有很高的灵活性[5]。
2 实例应用
2.1 项目介绍
以某医院的项目实施为例。该医院存在一个电子病历系统,每个病人入院时都会被分配一个唯一的病历号,将与病历号对应的病人详细信息录入电子系统,并生成一个带病历号一维码的腕带给病人佩戴。当病人来到病床,护士需要在床旁的监护仪中录入该病人的详细信息。床旁监护仪支持扫描枪,可以通过扫描病人腕带一维码自动输入病历号到监护仪。医院希望护士在床旁扫描病人腕带获取病历号后,监护仪可以自动从医院电子病历系统中获取对应的病人详细信息,以减少护士繁琐的病人信息输入工作,同时也避免输入错误信息导致测量的不准确。实例中所用监护仪支持标准的HL7协议,但是医院的电子病历系统并不支持HL7协议,只提供基于Webservice的病人信息查询接口,因此床旁监护仪无法和医院的电子病历系统直接对接,导致无法通过扫描病历号自动获取其存储的病人信息。
2.2 项目方案
此项目要解决的问题是需要一个中间件能够接收并解析监护仪发送的HL7查询病人信息消息,然后将该消息转换为医院电子病历系统支持的Webservice接口向电子病历系统查询病人详细信息,最后将电子病历系统回应的以XML格式组织的病人详细信息转换为HL7协议发回给监护仪。
医疗信息集成引擎Mirth Connect对HL7协议,Webservice和XML都有很好的支持,因此该项目通过使用Mirth Connect可以很容易地实现上面整个转换过程,具体消息转换原理和过程如图2所示。
(1) Mirth Connect作为中间件,其源连接器作为服务端连接监护仪,其目的连接器作为客户端连接电子病历系统。
(2) Mirth Connect的源连接器接收监护仪发送的HL7病人查询消息并将消息自动转换为结构化的HL7查询消息对象[6],添加自定义Java Script脚本访问该对象,获取对象中的病历号、查询消息序列号以及查询标记这些关键信息。
(3) Mirth Connect的目的连接器根据获取的病历号将自动生成电子病历系统所支持的Webservice查询命令,发送给电子病历系统。
(4) 电子病历系统接收到病人查询命令后,以XML格式返回对应病历号的详细病人信息给Mirth Connect目的连接器。
(5) 目的连接器将接收的病人详细信息自动转换为结构化的XML病人信息对象,并另外生成一个HL7回应消息对象。添加自定义Java Script脚本访问和操作这两个对象,将XML对象中的病人姓名,性别,出生日期等信息赋值给HL7对象的相应字段。因为回应的HL7消息中查询消息序列号和查询标记要与之前的查询消息一致,所以脚本还要将前面获取的查询消息序列号和查询标记也赋值给HL7对象的对应字段。
(6) Mirth Connect源连接器将HL7回应消息对象转换为HL7消息发送给监护仪,完成一次病人信息查询过程。
2.3 项目实施
根据上面的方案,创建一个Mirth Connect通道,首先对源连接器进行设置:
(1) 设置源连接器的类型为TCP Listener,并设置其绑定IP和监听端口。
(2) 设置源连接器输入数据格式为HL7 v2.x。
(3) 在源連接器的转换器设置中添加Java Script脚本,分别将HL7查询消息对象中MSH.10.1字段值赋给通道变量“SeqID”,QPD.2.1字段值赋给通道变量“QueryTag”,QPD.3.2字段值赋给通道变量“PatientID”。
接下来设置目的连接器:
(1) 设置目的连接器类型为Webservice Sender。
(2) 设置Webservice Sender连接器的WSDL地址为电子病历系统提供的地址,通过该地址Mirth Connect能自动获取该系统提供的所有Webservice操作接口。查询病人操作接口。
(3) 从获取的所有Webservice接口中选取查询病人信息接口,并让Mirth Connect生成对应的请求SOAP Envelope模板[7]。
(4) 在生成的模板中将所需要填写被查询病人病历号的地方用通道变量“PatientID”替代。
(5) 在回应消息转换器中添加Java Script脚本, 将XML消息对象中的PatientID,FirstName,LastName,Gender字段内容分别赋值给回应HL7消息对象的PID.3.1,PID.5.1,PID.5.2,PID.8.1字段,另外还将之前记录的通道变量“SeqID”,“QueryTag”值也分别赋给HL7对象的MSA.2.1和QAK.1.1字段[8],如图5所示。
3.4 项目结果
将Mirth Connect部署到该医院服务器上,按照上述实施方案中的步骤建立通道并进行设置,快速实现了医院不同信息系统之间的信息交互的需求,并且系统长期运行稳定。可见Mirth Connect非常适合用于集成各种医疗信息系统。
4 结束语
本文对医疗信息集成引擎Mirth Connect和HL7标准进行了介绍,给出一个Mirth Connect在医院中的典型应用实例,对实例中Mirth Connect具体配置及消息转换过程进行了详细解析,有助于医疗信息系统相关读者参考应用,降低医疗信息系统集成成本,改善医院工作效率。
参考文献:
[1] 黎亮,张君雁.医疗数据整合模式的研究[J].中国生物医学工程学报,2010,29(2):207-211.
[2] 陈薇薇. Mirth 平台和HL7标准下的PACS/RIS与HIS接口设计及其应用[J]. 医学信息学杂志, 2012, 33(1): 25-27.
[3] 刘刚,吴翔虎,曲明成,等. HL7在HIS系统中的应用研究[J]. 中国医疗设备, 2011, 26(2): 42-48.
[4] 杨余垒,张云华. Mirth Connect接口集成引擎在医疗数据传输中的应用[J].工业控制计算机, 2016, 29(12): 112-113.
[5] NEXTGEN. Mirth Connect 3.5 User Guide[EB/OL]. https://info.mirth.com/Connect_Documentation_Download.html.
[6] 贾伟,李伟鹏.HL7之ORU消息的XML Schema构建[J]. 中国医学物理学杂志,2008,25(4):65-69.
[7] 徐宏发,王卫平,郑建煌,等.基于H L7和Web Service的区域医疗机构间信息交换平台研究[J].计算机应用与软件, 2007,24(3): 88-90.
[8] Health Level Seven Inc. Health Level Seven: An Application Protocol for Electronic Data Exchange Environments[S], Version 2.3,1996.
【通联编辑:唐一东】