廖銀萍
摘要:針對醫(yī)院各種醫(yī)療信息系統(tǒng)使用不同協(xié)議和接口導(dǎo)致的系統(tǒng)間信息不能互通、共享問題,提出了使用醫(yī)療信息集成引擎Mirth Connect對各種醫(yī)療信息系統(tǒng)進(jìn)行整合、集成的方案,以提高醫(yī)護(hù)人員工作效率,降低系統(tǒng)集成成本。簡要介紹了Mirth Connect的主要適用范圍和基本工作原理。并給出了一個在醫(yī)院實(shí)施的HL7系統(tǒng)與Web Service信息系統(tǒng)集成的項(xiàng)目實(shí)例,詳細(xì)闡述了如何通過Mirth Connect實(shí)現(xiàn)該項(xiàng)目的具體過程。
關(guān)鍵詞:mirth connect;醫(yī)療信息集成;HL7;web service;XML
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼: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
隨著醫(yī)療信息化進(jìn)程不斷推進(jìn),越來越多的醫(yī)療信息系統(tǒng)在醫(yī)院得到使用,各種系統(tǒng)之間的信息互通共享變得更加迫切。然而不同廠商的系統(tǒng)提供的信息訪問接口、協(xié)議各不相同,給醫(yī)院信息的集成與應(yīng)用帶來挑戰(zhàn)[1]。
為了應(yīng)對醫(yī)院信息碎片化、孤島化的挑戰(zhàn),需要一種支持各種接口、協(xié)議,穩(wěn)定、靈活的信息集成引擎來連接醫(yī)院不同系統(tǒng),對系統(tǒng)間的信息進(jìn)行交換、處理,以實(shí)現(xiàn)各系統(tǒng)間信息的互通與共享,使信息得到最高效的應(yīng)用,真正提高醫(yī)院工作效率[2-3]。
1 Mirth Connect簡介
1.1 Mirth Connect主要功能
Mirth Connect是一款開源、跨平臺、專門針對醫(yī)療信息領(lǐng)域的接口集成引擎。它支持HL7,DICOM,JMS,SOAP等多種協(xié)議;支持對信息進(jìn)行轉(zhuǎn)換、映射、過濾和路由等多種處理;支持讀寫數(shù)據(jù)庫,讀寫文件,生成PDF文檔,發(fā)送電子郵件等多種操作。該引擎已經(jīng)在MidState Radiology (MSMC)、Mike Nowlin、Chesapeake Medical Imaging、Cembex Care Solutions等多個成熟的醫(yī)療信息系統(tǒng)中得到應(yīng)用[4],充分證明其功能強(qiáng)大,穩(wěn)定可靠。
1.2 Mirth Connect工作原理
Mirth Connect是基于通道(Channel)模型來實(shí)現(xiàn)不同系統(tǒng)間信息處理與集成的。通道模型如圖1所示,通道由多個連接器(Connector)組成:連接消息源系統(tǒng),獲取源消息的連接器稱為源連接器(Source Connector);連接目標(biāo)系統(tǒng),發(fā)送消息到目標(biāo)系統(tǒng)的連接器稱為目的連接器(Destination Connector)。一個通道由一個唯一的源連接器和一個或多個目的連接器組成,因?yàn)閷τ谝粋€通道消息來源只有一個,但同一份消息可以同時進(jìn)行不同的處理并發(fā)送到不同系統(tǒng),比如通道通過HTTP收到消息,可以將這份消息中包含的數(shù)據(jù)寫入數(shù)據(jù)庫的同時還將數(shù)據(jù)以電子郵件的方式發(fā)送出去。
因?yàn)樾枰B接各種不同的系統(tǒng),因此Mirth Connect提供了各種不同類型的源連接器和目的連接器以匹配各種系統(tǒng)。源連接器包括以下類型:Channel Reader,DICOM Listener,Database Reader,F(xiàn)ile Reader,HTTP Listener,JMS Listener,JavaScript Reader,TCP Listener,Web Service Listener;目的連接器包括以下類型:Channel Writer,DICOM Sender,Database Writer,Document Writer,F(xiàn)ile Writer,HTTP Sender,JMS Sender,JavaScript Writer,SMTP Sender,TCP Sender,Web Service Sender。
連接器可以通過設(shè)置內(nèi)部的消息過濾器(Filter)對輸入的消息自定義過濾規(guī)則,濾掉不需要處理的消息;也可以通過設(shè)置內(nèi)部的消息轉(zhuǎn)換器(Transformer)對輸入的消息進(jìn)行修改、轉(zhuǎn)換等處理。目的連接器相比源連接器多一個回應(yīng)消息轉(zhuǎn)換器(Response),通過設(shè)置回應(yīng)消息轉(zhuǎn)換器可以對目標(biāo)系統(tǒng)的回應(yīng)消息進(jìn)行修改、轉(zhuǎn)換等處理。這些消息的過濾、修改、轉(zhuǎn)換操作都可以通過添加用戶自定義Java Script腳本實(shí)現(xiàn),具有很高的靈活性[5]。
2 實(shí)例應(yīng)用
2.1 項(xiàng)目介紹
以某醫(yī)院的項(xiàng)目實(shí)施為例。該醫(yī)院存在一個電子病歷系統(tǒng),每個病人入院時都會被分配一個唯一的病歷號,將與病歷號對應(yīng)的病人詳細(xì)信息錄入電子系統(tǒng),并生成一個帶病歷號一維碼的腕帶給病人佩戴。當(dāng)病人來到病床,護(hù)士需要在床旁的監(jiān)護(hù)儀中錄入該病人的詳細(xì)信息。床旁監(jiān)護(hù)儀支持掃描槍,可以通過掃描病人腕帶一維碼自動輸入病歷號到監(jiān)護(hù)儀。醫(yī)院希望護(hù)士在床旁掃描病人腕帶獲取病歷號后,監(jiān)護(hù)儀可以自動從醫(yī)院電子病歷系統(tǒng)中獲取對應(yīng)的病人詳細(xì)信息,以減少護(hù)士繁瑣的病人信息輸入工作,同時也避免輸入錯誤信息導(dǎo)致測量的不準(zhǔn)確。實(shí)例中所用監(jiān)護(hù)儀支持標(biāo)準(zhǔn)的HL7協(xié)議,但是醫(yī)院的電子病歷系統(tǒng)并不支持HL7協(xié)議,只提供基于Webservice的病人信息查詢接口,因此床旁監(jiān)護(hù)儀無法和醫(yī)院的電子病歷系統(tǒng)直接對接,導(dǎo)致無法通過掃描病歷號自動獲取其存儲的病人信息。
2.2 項(xiàng)目方案
此項(xiàng)目要解決的問題是需要一個中間件能夠接收并解析監(jiān)護(hù)儀發(fā)送的HL7查詢病人信息消息,然后將該消息轉(zhuǎn)換為醫(yī)院電子病歷系統(tǒng)支持的Webservice接口向電子病歷系統(tǒng)查詢病人詳細(xì)信息,最后將電子病歷系統(tǒng)回應(yīng)的以XML格式組織的病人詳細(xì)信息轉(zhuǎn)換為HL7協(xié)議發(fā)回給監(jiān)護(hù)儀。
醫(yī)療信息集成引擎Mirth Connect對HL7協(xié)議,Webservice和XML都有很好的支持,因此該項(xiàng)目通過使用Mirth Connect可以很容易地實(shí)現(xiàn)上面整個轉(zhuǎn)換過程,具體消息轉(zhuǎn)換原理和過程如圖2所示。
(1) Mirth Connect作為中間件,其源連接器作為服務(wù)端連接監(jiān)護(hù)儀,其目的連接器作為客戶端連接電子病歷系統(tǒng)。
(2) Mirth Connect的源連接器接收監(jiān)護(hù)儀發(fā)送的HL7病人查詢消息并將消息自動轉(zhuǎn)換為結(jié)構(gòu)化的HL7查詢消息對象[6],添加自定義Java Script腳本訪問該對象,獲取對象中的病歷號、查詢消息序列號以及查詢標(biāo)記這些關(guān)鍵信息。
(3) Mirth Connect的目的連接器根據(jù)獲取的病歷號將自動生成電子病歷系統(tǒng)所支持的Webservice查詢命令,發(fā)送給電子病歷系統(tǒng)。
(4) 電子病歷系統(tǒng)接收到病人查詢命令后,以XML格式返回對應(yīng)病歷號的詳細(xì)病人信息給Mirth Connect目的連接器。
(5) 目的連接器將接收的病人詳細(xì)信息自動轉(zhuǎn)換為結(jié)構(gòu)化的XML病人信息對象,并另外生成一個HL7回應(yīng)消息對象。添加自定義Java Script腳本訪問和操作這兩個對象,將XML對象中的病人姓名,性別,出生日期等信息賦值給HL7對象的相應(yīng)字段。因?yàn)榛貞?yīng)的HL7消息中查詢消息序列號和查詢標(biāo)記要與之前的查詢消息一致,所以腳本還要將前面獲取的查詢消息序列號和查詢標(biāo)記也賦值給HL7對象的對應(yīng)字段。
(6) Mirth Connect源連接器將HL7回應(yīng)消息對象轉(zhuǎn)換為HL7消息發(fā)送給監(jiān)護(hù)儀,完成一次病人信息查詢過程。
2.3 項(xiàng)目實(shí)施
根據(jù)上面的方案,創(chuàng)建一個Mirth Connect通道,首先對源連接器進(jìn)行設(shè)置:
(1) 設(shè)置源連接器的類型為TCP Listener,并設(shè)置其綁定IP和監(jiān)聽端口。
(2) 設(shè)置源連接器輸入數(shù)據(jù)格式為HL7 v2.x。
(3) 在源連接器的轉(zhuǎn)換器設(shè)置中添加Java Script腳本,分別將HL7查詢消息對象中MSH.10.1字段值賦給通道變量“SeqID”,QPD.2.1字段值賦給通道變量“QueryTag”,QPD.3.2字段值賦給通道變量“PatientID”。
接下來設(shè)置目的連接器:
(1) 設(shè)置目的連接器類型為Webservice Sender。
(2) 設(shè)置Webservice Sender連接器的WSDL地址為電子病歷系統(tǒng)提供的地址,通過該地址Mirth Connect能自動獲取該系統(tǒng)提供的所有Webservice操作接口。查詢病人操作接口。
(3) 從獲取的所有Webservice接口中選取查詢病人信息接口,并讓Mirth Connect生成對應(yīng)的請求SOAP Envelope模板[7]。
(4) 在生成的模板中將所需要填寫被查詢病人病歷號的地方用通道變量“PatientID”替代。
(5) 在回應(yīng)消息轉(zhuǎn)換器中添加Java Script腳本, 將XML消息對象中的PatientID,F(xiàn)irstName,LastName,Gender字段內(nèi)容分別賦值給回應(yīng)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 項(xiàng)目結(jié)果
將Mirth Connect部署到該醫(yī)院服務(wù)器上,按照上述實(shí)施方案中的步驟建立通道并進(jìn)行設(shè)置,快速實(shí)現(xiàn)了醫(yī)院不同信息系統(tǒng)之間的信息交互的需求,并且系統(tǒng)長期運(yùn)行穩(wěn)定??梢奙irth Connect非常適合用于集成各種醫(yī)療信息系統(tǒng)。
4 結(jié)束語
本文對醫(yī)療信息集成引擎Mirth Connect和HL7標(biāo)準(zhǔn)進(jìn)行了介紹,給出一個Mirth Connect在醫(yī)院中的典型應(yīng)用實(shí)例,對實(shí)例中Mirth Connect具體配置及消息轉(zhuǎn)換過程進(jìn)行了詳細(xì)解析,有助于醫(yī)療信息系統(tǒng)相關(guān)讀者參考應(yīng)用,降低醫(yī)療信息系統(tǒng)集成成本,改善醫(yī)院工作效率。
參考文獻(xiàn):
[1] 黎亮,張君雁.醫(yī)療數(shù)據(jù)整合模式的研究[J].中國生物醫(yī)學(xué)工程學(xué)報,2010,29(2):207-211.
[2] 陳薇薇. Mirth 平臺和HL7標(biāo)準(zhǔn)下的PACS/RIS與HIS接口設(shè)計及其應(yīng)用[J]. 醫(yī)學(xué)信息學(xué)雜志, 2012, 33(1): 25-27.
[3] 劉剛,吳翔虎,曲明成,等. HL7在HIS系統(tǒng)中的應(yīng)用研究[J]. 中國醫(yī)療設(shè)備, 2011, 26(2): 42-48.
[4] 楊余壘,張云華. Mirth Connect接口集成引擎在醫(yī)療數(shù)據(jù)傳輸中的應(yīng)用[J].工業(yè)控制計算機(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構(gòu)建[J]. 中國醫(yī)學(xué)物理學(xué)雜志,2008,25(4):65-69.
[7] 徐宏發(fā),王衛(wèi)平,鄭建煌,等.基于H L7和Web Service的區(qū)域醫(yī)療機(jī)構(gòu)間信息交換平臺研究[J].計算機(jī)應(yīng)用與軟件, 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.
【通聯(lián)編輯:唐一東】