【作 者】孟建,侯琳琳,薛衛(wèi)京,王海洋
1 泰山醫(yī)學(xué)院,山東泰安,271016;
2 泰安市中心醫(yī)院,山東泰安,271000
隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,各種醫(yī)院信息管理系統(tǒng),如電子病歷(EMR)、醫(yī)學(xué)檢驗(yàn)系統(tǒng)(LIS)和醫(yī)學(xué)影像存檔與傳輸系統(tǒng)(PACS)在醫(yī)院得到廣泛的應(yīng)用。但大多數(shù)醫(yī)院的信息系統(tǒng)并不是在同一時(shí)期、統(tǒng)一規(guī)劃的情況下構(gòu)建的,各信息系統(tǒng)也往往不是同一個(gè)開(kāi)發(fā)者開(kāi)發(fā)的,采用的操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)也往往不一樣。這樣就造成了一個(gè)個(gè)的信息孤島,阻礙了信息共享,不能充分發(fā)揮各信息管理系統(tǒng)的作用[1]。由此,可以整合各種醫(yī)學(xué)信息的信息系統(tǒng)的平臺(tái)應(yīng)運(yùn)而生。
在傳統(tǒng)理念上,信息整合體系建設(shè)是基于“數(shù)據(jù)交換”理念的。如基于XML的數(shù)據(jù)交換,基于Spring、Hibernate的數(shù)據(jù)整合[2]。這些理念都要求各個(gè)信息系統(tǒng)的數(shù)據(jù)庫(kù)是開(kāi)放的,即在構(gòu)建信息整合平臺(tái)時(shí),要熟知各信息系統(tǒng)數(shù)據(jù)庫(kù)的結(jié)構(gòu),數(shù)據(jù)庫(kù)中表的各個(gè)屬性。這對(duì)數(shù)據(jù)庫(kù)來(lái)說(shuō)是相當(dāng)不安全的。另外,由于不同的信息系統(tǒng)可能采用的數(shù)據(jù)庫(kù)管理軟件不同(如有的信息系統(tǒng)可能是Oracle,有的可能是SQL Server),數(shù)據(jù)庫(kù)之間存在較大的異構(gòu)性,因此在進(jìn)行數(shù)據(jù)交換前,必須預(yù)先定義好雙方認(rèn)可的交換規(guī)則和
SOA即面向服務(wù)的體系結(jié)構(gòu),是一種架構(gòu)模型和一套設(shè)計(jì)方法學(xué),其目的是最大限度地重用應(yīng)用程序中立型的服務(wù),以提高IT適應(yīng)性和效率。它可以根據(jù)需求通過(guò)網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。SOA的關(guān)鍵是“服務(wù)”的概念。因此它的基本由一組服務(wù)體系組成[4],如圖(1)所示
SOA服務(wù)按類別,可劃分為服務(wù)發(fā)布者、服務(wù)代理以及服務(wù)使用者三種。服務(wù)提供者將服務(wù)部署到設(shè)計(jì)不同的接口,否則交換過(guò)來(lái)的數(shù)據(jù)將無(wú)法使用。因此,采用傳統(tǒng)理念的“數(shù)據(jù)交換”的方式,既存在較大的安全隱患,在技術(shù)上實(shí)現(xiàn)醫(yī)院各信息系統(tǒng)的數(shù)據(jù)有效共享也非常復(fù)雜。
本文采用基于SOA理念(service-oriented architecture,面向服務(wù)的體系結(jié)構(gòu))的Web Service技術(shù)構(gòu)建信息整合平臺(tái),可以方便地實(shí)現(xiàn)醫(yī)院所有信息系統(tǒng)之間的數(shù)據(jù)共享和信息交互。而且,采用該技術(shù)構(gòu)建的信息整合平臺(tái)還具有組件化、松耦合和擴(kuò)展性良好的特點(diǎn)[3]。web上,服務(wù)使用者使用API向服務(wù)代理請(qǐng)求需要的服務(wù),當(dāng)服務(wù)代理返回結(jié)果后,服務(wù)請(qǐng)求者使用這些結(jié)果實(shí)現(xiàn)應(yīng)用需求。其中服務(wù)代理屏蔽了服務(wù)提供者和服務(wù)使用者,不必考慮是誰(shuí)提供服務(wù)和為誰(shuí)服務(wù),為構(gòu)建大規(guī)模、資源重用和松散耦合的分布式系統(tǒng)提供了一個(gè)開(kāi)放的體系結(jié)構(gòu)。
圖1 SOA框架Fig.1 Frame of SOA
Web Service作為廣泛應(yīng)用的SOA實(shí)現(xiàn)技術(shù),是在分布式計(jì)算、XML等技術(shù)相互融合的基礎(chǔ)上,利用HTTP 和 SOAP 協(xié)議使數(shù)據(jù)在 Web 上傳輸。SOAP通過(guò) HTTP 調(diào)用對(duì)象執(zhí)行遠(yuǎn)程功能調(diào)用,Web 用戶能夠使用 SOAP 和 HTTP通過(guò) Web 調(diào)用的方法來(lái)調(diào)用遠(yuǎn)程對(duì)象,遠(yuǎn)程對(duì)象的差異由Web Service來(lái)屏蔽,不需要用戶考慮,充分實(shí)現(xiàn)了SOA的思想。
下面以筆者為某醫(yī)院開(kāi)發(fā)的醫(yī)學(xué)信息整合平臺(tái)為例,來(lái)介紹一種利用Web Service實(shí)現(xiàn)醫(yī)學(xué)信息整合的方案[6],望能為同類開(kāi)發(fā)者提供一種思路。
平臺(tái)體系結(jié)構(gòu)如圖2所示:
1)首先發(fā)布服務(wù)提供者(如PACS、HIS、LIS)的服務(wù)接口。
2)建立醫(yī)學(xué)信息整合平臺(tái)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中存放服務(wù)接口的地址。
3)利用Web Service為服務(wù)接口創(chuàng)建服務(wù)代理。
4)當(dāng)服務(wù)請(qǐng)求者向平臺(tái)請(qǐng)求服務(wù)時(shí),平臺(tái)的服務(wù)器對(duì)其進(jìn)行響應(yīng)。查詢數(shù)據(jù)庫(kù),調(diào)用相應(yīng)的代理。代理調(diào)用相應(yīng)的信息系統(tǒng)服務(wù)接口,訪問(wèn)相應(yīng)信息系統(tǒng)的數(shù)據(jù)。再將結(jié)果返回給服務(wù)請(qǐng)求者。
圖2 基于Web Service技術(shù)的醫(yī)學(xué)信息整合平臺(tái)Fig 2 Medical Data Integration Platform based on Web Service
目前,Web Service技術(shù)已是非常成熟的技術(shù),許多開(kāi)發(fā)平臺(tái),如.net,JaveEE等均包含Web Service功能[7]。本研究是基于JavaEE平臺(tái),開(kāi)發(fā)工具為MyEclipse。
下面以整合平臺(tái)調(diào)用HIS中的病人基本信息(如姓名、性別、家庭住址、聯(lián)系方式等)及PACS中的病人的圖像信息功能,來(lái)說(shuō)明醫(yī)學(xué)信息整合平臺(tái)的實(shí)現(xiàn)過(guò)程。
2.2.1 發(fā)布服務(wù)接口
一般將整合平臺(tái)的各子系統(tǒng)中的業(yè)務(wù)邏輯層發(fā)布為服務(wù)接口。在筆者開(kāi)發(fā)的HIS中,有業(yè)務(wù)類接口HISBussService,其相關(guān)代碼如下:
其中,HisBuss為服務(wù)接口的名字。同樣,可以將PACS中的業(yè)務(wù)類接口PACSBussService類及其實(shí)現(xiàn)類PACSBussSerivceImpl類發(fā)布為服務(wù)接口,其接口名為PACSBuss。
2.2.2 注冊(cè)服務(wù)器接口
創(chuàng)建醫(yī)學(xué)信息整合平臺(tái)數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中創(chuàng)建服務(wù)接口地址表,內(nèi)容如下所示。
2.2.3 平臺(tái)調(diào)用服務(wù)接口,完成信息整合
做了以上的基礎(chǔ)工作后,便可以開(kāi)發(fā)醫(yī)學(xué)信息整合平臺(tái)的業(yè)務(wù)接口類及業(yè)務(wù)實(shí)現(xiàn)類,其業(yè)務(wù)接口類相關(guān)代碼如下:
其實(shí)現(xiàn)整合病人信息的業(yè)務(wù)邏輯如圖3所示。
圖3 整合病人信息的業(yè)務(wù)邏輯Fig.3 The Business logic of the Integrating information of the patients
其工作流程如下:當(dāng)輸入病人的ID號(hào)后,程序根據(jù)查詢數(shù)據(jù)庫(kù),根據(jù)服務(wù)名(如baseinfo,pimginfo等)查出服務(wù)地址(如http://www.his.com/services/HisBuss,http://www.pacs.com/services/PACSBuss等);利用MyEclipse提供的Web Service相關(guān)類,構(gòu)建服務(wù)代理;調(diào)用代理查詢相關(guān)信息;整合信息形成所需要的信息[7]。
其代碼如下:
其中srvc實(shí)例即為HIS系統(tǒng)中的業(yè)務(wù)類HISBussService的代理,即可完成查詢病人基本信息的任務(wù)。
綜上所述,基于Web Service技術(shù)的信息整合平臺(tái)的優(yōu)點(diǎn):
1) 整合開(kāi)發(fā)簡(jiǎn)單
只要向外發(fā)布服務(wù)接口,利用Web Service即可實(shí)現(xiàn)共享。
2)各類醫(yī)學(xué)信息數(shù)據(jù)是分布式存放,互不干擾
Web Service并沒(méi)有在物理上將各個(gè)醫(yī)學(xué)信息系統(tǒng)整合在一起,只是構(gòu)建一個(gè)平臺(tái)對(duì)各信息系統(tǒng)進(jìn)行統(tǒng)一調(diào)配,保證了各個(gè)信息系統(tǒng)的完整性。因此,實(shí)現(xiàn)了醫(yī)學(xué)信息的分布式存儲(chǔ),既滿足了各信息系統(tǒng)的具體業(yè)務(wù)需求,也大大減少了存儲(chǔ)介質(zhì)的壓力。
3)建設(shè)成本低廉,可方便地融入平臺(tái)和退出平臺(tái)
各信息系統(tǒng)只要提供服務(wù)接口,并在平臺(tái)數(shù)據(jù)庫(kù)中進(jìn)行注冊(cè),即可融入平臺(tái),實(shí)現(xiàn)數(shù)據(jù)的共享,避免了重復(fù)開(kāi)發(fā)。如果想退出平臺(tái),只要從平臺(tái)數(shù)據(jù)庫(kù)中刪除該服務(wù)接口記錄即可。
本研究只是利用MyEclipse做開(kāi)發(fā)工具,整合了兩個(gè)Java開(kāi)發(fā)的系統(tǒng),并沒(méi)有討論其他諸如用.net開(kāi)發(fā)工具進(jìn)行開(kāi)發(fā),以及如何整合不同語(yǔ)言的系統(tǒng)。但是利用本研究提供的思路,利用各種成熟的開(kāi)發(fā)工具(如Microsoft Visual Studio,JBuilder,Eclipse)等,一定可以方便地整合各種醫(yī)學(xué)信息管理系統(tǒng),為建立醫(yī)院全局化的信息管理平臺(tái)提供了實(shí)用的信息平臺(tái)支撐,進(jìn)一步提高了醫(yī)院的管理和服務(wù)水平[8]。
[1] 薛衛(wèi)京, 王海洋, 魯文, 等. 基于Hibernate的醫(yī)學(xué)信息異構(gòu)數(shù)據(jù)庫(kù)整合的研究[J]. 中國(guó)醫(yī)學(xué)裝備, 2008, 5(4): 11-13.
[2] 陳功, 于潔, 余泰蘭, 等. 醫(yī)療數(shù)據(jù)集成平臺(tái)的擴(kuò)展功能和設(shè)計(jì)[J] . 醫(yī)療衛(wèi)生裝備, 2009. 7(39): 59-61.
[3] 王偉, 程文芳, 李四海, 等. SOA理念在“數(shù)字海洋”數(shù)據(jù)體系構(gòu)建中的應(yīng)用[J]. 海洋通報(bào)2008, 28(4): 36-39.
[4] 李初民, 張萍, 孟建萍. 基于三層結(jié)構(gòu)的醫(yī)療綜合信息查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 中國(guó)醫(yī)學(xué)裝備, 2006, 11 (3): 36-37.
[5] 呂希艷, 張潤(rùn)彤. 基于SOA的企業(yè)信息資源整合[J]. 中國(guó)科技論壇, 2006(2) : 104- 105.
[6] 薛衛(wèi)京, 孟建, 王海洋. 基于SOA理念的醫(yī)學(xué)信息整合平臺(tái)構(gòu)建方案[J]. 中國(guó)醫(yī)學(xué)裝備, 2010, 7(5): 16-18.
[7] 梁愛(ài)虎. 精通SOA: 基于服務(wù)總線的Struts+EJB+Web Service整合應(yīng)用開(kāi)發(fā)[M]. 北京: 電子工業(yè)出版社, 2007: 119-188.
[8] 黃文燦. ST-SISOA在醫(yī)保系統(tǒng)的應(yīng)用[J]. 科技信息, 2007, 11(1):43-45.