張貝貝,李成偉,張方
武漢大學(xué)中南醫(yī)院 信息中心,湖北武漢 430071
基于SOA架構(gòu)的醫(yī)療服務(wù)管理平臺的設(shè)計與實現(xiàn)
張貝貝,李成偉,張方
武漢大學(xué)中南醫(yī)院 信息中心,湖北武漢 430071
目的 通過SOA服務(wù)管理平臺,實現(xiàn)臨床信息系統(tǒng)的數(shù)據(jù)交互與共享。方法 分析醫(yī)療信息系統(tǒng)之間數(shù)據(jù)共享與交互的現(xiàn)狀,提出基于JBOSS ESB的SOA架構(gòu)醫(yī)療服務(wù)管理平臺解決方案。平臺主要包括服務(wù)注冊中心、服務(wù)控制中心、服務(wù)統(tǒng)一調(diào)度中心、服務(wù)異常監(jiān)聽等功能。結(jié)果 基于SOA架構(gòu)的服務(wù)管理平臺為上述服務(wù)提供了統(tǒng)一接口,實現(xiàn)了醫(yī)院各信息系統(tǒng)間服務(wù)的規(guī)范化統(tǒng)一管理,避免了各系統(tǒng)重復(fù)開發(fā)接口。結(jié)論 該平臺提供統(tǒng)一的服務(wù)訪問接口,屏蔽了不同技術(shù)不同協(xié)議系統(tǒng)之間的數(shù)據(jù)不能共享及不能交互問題,同時也提升了醫(yī)院各信息系統(tǒng)運(yùn)維及管理水平。
醫(yī)院信息系統(tǒng);醫(yī)療服務(wù)管理平臺;SOA架構(gòu);服務(wù)注冊
隨著醫(yī)療信息化的發(fā)展,在醫(yī)療衛(wèi)生服務(wù)過程中,大家迫切希望建立適用的共享衛(wèi)生信息系統(tǒng),使醫(yī)療服務(wù)人員能及時獲取必要的信息,提升醫(yī)療服務(wù)質(zhì)量。醫(yī)院信息系統(tǒng)是分階段由不同廠商建設(shè)的,并采用不同技術(shù)實現(xiàn),普遍存在“信息孤島”現(xiàn)象。楊宏橋等[1]通過Web Service和XML技術(shù)建立了一種基于SOA的醫(yī)療信息系統(tǒng)集成基礎(chǔ)架構(gòu),實現(xiàn)了全局一致的醫(yī)療信息共享模式。辛小霞等[2]提出SOA區(qū)域醫(yī)療信息共享平臺框架,說明了框架的可用性及有效性。孫萬駒等[3]研究了Web Service技術(shù)框架構(gòu)建SOA應(yīng)用軟件,優(yōu)化臨床路徑。張麗等[4]采用Web Service技術(shù)實現(xiàn)SOA架構(gòu),實現(xiàn)了遠(yuǎn)程掛號、遠(yuǎn)程開單、遠(yuǎn)程診斷結(jié)果獲取等功能。
目前大多采用Web Service技術(shù)實現(xiàn)SOA架構(gòu),ESB即企業(yè)服務(wù)總線,它彌補(bǔ)了傳統(tǒng)的基于Web Service集成技術(shù)點對點連接的缺陷[5]。本文提出的SOA醫(yī)療服務(wù)平臺是基于JBOSS ESB開源產(chǎn)品,實現(xiàn)了SOAP(簡單對象訪問協(xié)議)、JMS(Java消息服務(wù))、HTTP(超文本傳輸協(xié)議)三種協(xié)議服務(wù)的注冊、審核、管理。服務(wù)使用申請及審核、調(diào)度、異常監(jiān)聽等動能,即提供統(tǒng)一的服務(wù)訪問接口。
SOA(Service Oriented Architecture,面向服務(wù)的架構(gòu))是一個組件模型,它將應(yīng)用程序的不同功能單元服務(wù)通過定義服務(wù)間良好的接口和協(xié)議聯(lián)系起來[6]。其接口是采用中立的形式進(jìn)行定義的,獨立于實現(xiàn)服務(wù)的軟硬件平臺,這樣使得系統(tǒng)中的服務(wù)可以以一種統(tǒng)一、通用的方式進(jìn)行交互。SOA作為一個技術(shù)架構(gòu),決定了不依賴某個特定的技術(shù)和平臺環(huán)境來實現(xiàn)。我國SOA應(yīng)用目前主要是幫助人們解決“信息孤島”,以系統(tǒng)集成的途徑整合已有系統(tǒng)實現(xiàn)信息共享[7-8]。
ESB(企業(yè)服務(wù)總線)從SOA發(fā)展而來,是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)結(jié)合的產(chǎn)物。ESB是在SOA架構(gòu)中實現(xiàn)服務(wù)間智能化集成與管理的基礎(chǔ)架構(gòu)。
JBOSS ESB是JBOSS推出的ESB的實現(xiàn),也是JBOSS的SOA產(chǎn)品的基礎(chǔ),JBOSS ESB是一個基于消息的中間件,且是面向服務(wù)的。服務(wù)是指具有實現(xiàn)業(yè)務(wù)邏輯的服務(wù),也可以是一個實現(xiàn)路由,或者數(shù)據(jù)轉(zhuǎn)化的服務(wù)。
基于SOA的醫(yī)院服務(wù)管理平臺,可統(tǒng)一規(guī)劃管理服務(wù)、建立SOA資源庫,進(jìn)而整合醫(yī)院業(yè)務(wù)系統(tǒng)服務(wù),最終形成醫(yī)院信息服務(wù)庫,供各信息系統(tǒng)使用。通過服務(wù)的重用,提高系統(tǒng)資源的利用率?;赟OA的醫(yī)院服務(wù)管理平臺框架設(shè)計,見圖1。
圖1 SOA服務(wù)平臺架構(gòu)
SOA服務(wù)平臺包括服務(wù)注冊中心、ESB服務(wù)總線、服務(wù)控制器、服務(wù)調(diào)度器、異常監(jiān)聽器、服務(wù)訪問接口。其中ESB服務(wù)總線、服務(wù)調(diào)度器、服務(wù)控制器、異常監(jiān)聽器基于JBOSS ESB改造,而SOA服務(wù)平臺服務(wù)注冊、服務(wù)訪問是基于Web和ESB服務(wù)總線,以接口的方式進(jìn)行開發(fā)的。
2.1 服務(wù)注冊中心
服務(wù)注冊中心用來存儲管理服務(wù)平臺下的所有服務(wù)及服務(wù)描述。服務(wù)注冊中心提供服務(wù)分類、服務(wù)注冊、服務(wù)存儲、服務(wù)發(fā)布、服務(wù)開啟、服務(wù)停止、服務(wù)檢索等功能。服務(wù)注冊中心是基于Javaweb與Tomcat開發(fā)部署的Web項目,支持SOAP、JMS、HTML三種協(xié)議的注冊,這三種協(xié)議是最常用的協(xié)議服務(wù),能滿足醫(yī)院服務(wù)平臺實現(xiàn)臨床信息系統(tǒng)數(shù)據(jù)共享與交互的目的。Web Sevice接口可發(fā)布為SOAP服務(wù),如醫(yī)院信息系統(tǒng)(HIS)提供給其他系統(tǒng)的基本信息類(如醫(yī)院信息、患者信息、科室信息等)接口,不用針對每個系統(tǒng)做一個接口。消息類服務(wù)可發(fā)布為JMS服務(wù),如檢驗科向臨床科室發(fā)送危機(jī)值、CT室向臨床發(fā)送患者檢查預(yù)約消息等。Web頁面可發(fā)布為HTTP服務(wù),HTTP服務(wù)真實URL是不可見的,如Web病歷查詢服務(wù)。
SOA服務(wù)注冊中心包括普通用戶、管理員、審核員三類角色。① 普通用戶:具有查詢服務(wù)、注冊服務(wù)、修改服務(wù)、升級服務(wù)、注銷服務(wù)、查看發(fā)布服務(wù)、訂閱JMS消息、取消訂閱、查詢訂閱、修改訂閱的權(quán)限;② 審核員:具有查詢服務(wù)、審核服務(wù)、審核訂閱權(quán)限;③ 管理員:具有服務(wù)管理權(quán)限,服務(wù)管理包括查詢服務(wù)、發(fā)布服務(wù)、取消發(fā)布,啟動服務(wù)、停止服務(wù)等。
2.1.1 服務(wù)注冊
服務(wù)注冊包括服務(wù)編號、服務(wù)分類、服務(wù)名、服務(wù)版本、服務(wù)提供商、服務(wù)描述等基本信息,及服務(wù)的元數(shù)據(jù)信息(如訪問地址、配置文件等),服務(wù)注冊成功后,服務(wù)數(shù)據(jù)存儲于數(shù)據(jù)庫中。
2.1.2 服務(wù)審核
審核員對注冊的服務(wù)進(jìn)行審核,包括通過和不通過審核,并填寫審核意見。
2.1.3 服務(wù)發(fā)布
審核通過后由管理員發(fā)布,服務(wù)發(fā)布時系統(tǒng)將存儲于數(shù)據(jù)庫的服務(wù)元數(shù)據(jù)取出并生成ESB服務(wù)發(fā)布到JBOSS ESB服務(wù)器中。ESB服務(wù)以名稱為服務(wù)編號.esb的文件夾存在于JBOSS ESB服務(wù)器中。取消發(fā)布,將ESB服務(wù)從JBOSS ESB服務(wù)器中移除。
2.1.4 服務(wù)啟動
服務(wù)發(fā)布成功后,才能啟動服務(wù);啟動狀態(tài)的服務(wù)才可以被使用。
2.1.5 服務(wù)檢索
服務(wù)使用者可登錄SOA注冊中心,查詢發(fā)布的有效服務(wù),可訂閱需要的服務(wù),訂閱通過審核后,可查詢到服務(wù)編號,及調(diào)用服務(wù)所需參數(shù)。
2.2 ESB服務(wù)總線
ESB服務(wù)總線主要包含轉(zhuǎn)換器、消息路由器、消息過濾器、連接器。
ESB服務(wù)總線的主要功能:客戶端通過服務(wù)調(diào)用接口與ESB管道連接;監(jiān)聽器通過監(jiān)聽管道獲取客戶端消息、消息過濾、消息轉(zhuǎn)換、消息路由,交由服務(wù)端消息處理;獲取服務(wù)端返回消息,將消息轉(zhuǎn)換并通過管道返回給客戶端。
ESB功能的實現(xiàn)由SOA服務(wù)實例(或者叫SOA服務(wù))來完成。一個SOA服務(wù)實例對應(yīng)一個SOA服務(wù)配置文件。消息的接收、轉(zhuǎn)發(fā),消息格式的轉(zhuǎn)換,消息的路由等功能都寫在SOA服務(wù)配置文件里。SOA服務(wù)配置文件包括兩部分:管道(Providers)和服務(wù)(Services),Providers包含各種類型的Provider,Provider節(jié)點下可配置多個管道,用于消息的傳輸。Services由多個Service組成,一個Service對應(yīng)一個ESB服務(wù),Service節(jié)點下包括Listeners和Actions。Listeners下監(jiān)聽器用于監(jiān)聽對應(yīng)的管道,Actions下的Action用于處理相應(yīng)接口請求,可以實現(xiàn)過濾器、轉(zhuǎn)換器、路由器功能。
2.3 服務(wù)調(diào)度器
服務(wù)調(diào)度器是服務(wù)平臺的核心,它負(fù)責(zé)接收服務(wù)訪問接口的服務(wù)請求,由它來負(fù)責(zé)調(diào)用相應(yīng)的服務(wù),再將調(diào)用結(jié)果返回給服務(wù)訪問接口。服務(wù)調(diào)度器的功能包括接收服務(wù)請求、查詢服務(wù)注冊中心、動態(tài)路由服務(wù)請求消息、傳輸服務(wù)處理結(jié)果。服務(wù)調(diào)度器是基于JBOSS ESB開發(fā)的服務(wù)項目,服務(wù)調(diào)度器支持HTTP協(xié)議和SOAP協(xié)議兩種方式調(diào)用SOA服務(wù)。服務(wù)調(diào)度器功能示意圖,見圖2。
圖2 服務(wù)調(diào)度器功能示意圖
2.4 服務(wù)控制器
服務(wù)控制器是基于Javaweb與JBOSS開發(fā)的Web項目。服務(wù)控制器由Web Service技術(shù)實現(xiàn),對外不可見。它實現(xiàn)服務(wù)的實際發(fā)布(發(fā)布服務(wù)時配置文件修改、統(tǒng)一分配端口),以及取消發(fā)布、啟動、停止等,并提供接口供服務(wù)注冊中心調(diào)用。所有操作在服務(wù)注冊中心的服務(wù)管理中完成。
Web Service接口參數(shù)為:操作類型、SOA服務(wù)唯一編號。其中操作類型包括:發(fā)布服務(wù)、取消發(fā)布、啟動服務(wù)、停止服務(wù)。返回參數(shù)為XML格式字符串(0為返回正常;1為返回錯誤;2為操作類型錯誤;3為服務(wù)ID為空;9為服務(wù)接口異常)。
2.5 異常監(jiān)聽
異常監(jiān)聽是在服務(wù)調(diào)度器請求外部服務(wù)時,實時監(jiān)聽外部服務(wù)的響應(yīng)情況,當(dāng)外部服務(wù)請求出現(xiàn)網(wǎng)絡(luò)不通、請求超時等異常時,監(jiān)聽器會捕捉到異常,并進(jìn)行異常處理,之后再由服務(wù)調(diào)度器將異常情況組織成標(biāo)準(zhǔn)處理信息返回給請求客戶端。異常監(jiān)聽器邏輯流程,見圖3。
圖3 異常監(jiān)聽邏輯圖
異常監(jiān)聽器在服務(wù)發(fā)生異常時,對異常信息進(jìn)行記錄、處理,以便后續(xù)對服務(wù)的改進(jìn)、完善。
2.6 服務(wù)訪問接口
服務(wù)訪問接口負(fù)責(zé)接收服務(wù)請求者的請求,并將其轉(zhuǎn)發(fā)到服務(wù)調(diào)度器,再接收服務(wù)返回結(jié)果,并將結(jié)果返回給服務(wù)調(diào)用者。服務(wù)訪問接口為SOA服務(wù)平臺對外提供的統(tǒng)一訪問接口,支持兩種不同的訪問協(xié)議(HTTP、SOAP),滿足不同場景的使用。
SOAP統(tǒng)一訪問接口參數(shù):服務(wù)編號為SoaId、方法名為Method、參數(shù)鍵值對象為Params,均為字符串類型。
HTTP統(tǒng)一訪問接口:http://localhost:端口號/服務(wù)編號/http/soa,當(dāng)有參數(shù)傳遞時,在服務(wù)訪問url地址后添加“?參數(shù)名1=參數(shù)值1”當(dāng)有多個參數(shù)時,采用“&”連接,直接用于瀏覽器。
SOA服務(wù)平臺屏蔽了不同技術(shù)不同協(xié)議系統(tǒng)之間的數(shù)據(jù)共享與交互問題,提供統(tǒng)一的服務(wù)訪問接口,使得臨床信息系統(tǒng)能夠采用相同的方式訪問已啟動的服務(wù);提供異常監(jiān)聽器,保障服務(wù)使用過程中出現(xiàn)異常后,能夠正確提示調(diào)用系統(tǒng),并提醒管理員解決問題;提供ESB服務(wù)總線、服務(wù)控制器、服務(wù)調(diào)度器保障服務(wù)的調(diào)用、響應(yīng)及異常監(jiān)聽等整個SOA服務(wù)平臺的正確運(yùn)轉(zhuǎn)。依托服務(wù)的松耦合性和重用性,使醫(yī)療服務(wù)平臺提高了醫(yī)療信息化建設(shè)的效率,簡化了開發(fā)與維護(hù)工作,降低了開發(fā)與維護(hù)成本,提升了醫(yī)院管理與服務(wù)水平。但是如何梳理醫(yī)療信息資源、編排流程以真實再現(xiàn)業(yè)務(wù)實際,需要進(jìn)一步研究。
[1] 楊宏橋,吳飛,劉玉樹.基于SOA的醫(yī)院信息系統(tǒng)集成研究[J].醫(yī)療衛(wèi)生裝備,2008,29(1):38-40.
[2] 辛小霞,吳汝明,鄒賽德,等.一種基于SOA的區(qū)域醫(yī)療信息共享平臺框架模型[J].中國數(shù)字醫(yī)學(xué),2010,5(11):33-35.
[3] 孫萬駒,何安勇,朱海燕.SOA技術(shù)在區(qū)域醫(yī)療機(jī)構(gòu)信息共享中的應(yīng)用研究[J].計算機(jī)應(yīng)用與軟件,2013,30(7):255-258.
[4] 張麗,常建國,郭凌,等.基于SOA架構(gòu)的醫(yī)聯(lián)體信息系統(tǒng)研究與實現(xiàn)[J].中國醫(yī)療設(shè)備,2014,29(2):59-61.
[5] 林泳孳,黃晨暉.面向企業(yè)應(yīng)用集成的ESB框架的研究[J].計算機(jī)應(yīng)用,2010,30(6):1658-1660.
[6] 葉云.基于SOA的應(yīng)用系統(tǒng)的設(shè)計與實現(xiàn)[D].長沙:中南大學(xué),2010.
[7] 俞曉鋒.基于SOA的企業(yè)信息系統(tǒng)集成架構(gòu)研究[D].長春:吉林大學(xué),2014.
[8] 王潮陽,袁媛,董建.SOA應(yīng)用分析及最新標(biāo)準(zhǔn)化進(jìn)展[J].技術(shù)熱點,2012,(3):40-43.
Design and Realization of the Medical Service Management Platform Based on SOA
ZHANG Bei-bei, LI Cheng-wei, ZHANG Fang
Information Center, Zhongnan Hospital of Wuhan University, Wuhan Hubei 430071, China
Objective To realize data sharing and interaction between clinical information systems through the service-oriented architecture (SOA) service management platform. Methods The current status of data sharing and interaction between different medical information systems was analyzed. The solution of SOA based on JBOSS ESB was proposed. Results This paper designs a SOA based JBOSS ESB, including the service registration center, the service control center, the unifi ed service dispatch center, and the service exceptions listener. Conclusion The medical service management platform has provided the standardization of the unifi ed management of various interfaces and services. It also helps avoid the duplication of development and prevent the problems that data from different systems cannot be shared or interacted, and thus improves the operation and management of the information systems.
hospital information system; hospital service management platform; service-oriented architecture; service registration
TP393.03
A
10.3969/j.issn.1674-1633.2016.01.030
1674-1633(2016)01-0102-03
2015-06-08
2015-09-07
本文作者:張貝貝,醫(yī)院信息中心工程師。
作者郵箱:416262794@qq.com