劉芳
南通市通州區(qū)人民醫(yī)院 信息科,江蘇南通 226300
分布式醫(yī)療信息系統(tǒng)互聯(lián)技術(shù)
劉芳
南通市通州區(qū)人民醫(yī)院 信息科,江蘇南通 226300
本文對(duì)目前醫(yī)療信息系統(tǒng)的各種互連技術(shù)進(jìn)行了較為深入的討論,分析了各種互聯(lián)技術(shù)的優(yōu)缺點(diǎn),指出基于Web Services的互聯(lián)技術(shù)是目前最理想的技術(shù)。Web Services對(duì)于異步回調(diào)的支持非常簡(jiǎn)單易用,其性能和安全性也非常出色。
醫(yī)療信息系統(tǒng)集成;Web Services;異步回調(diào);HIS
某醫(yī)院目前已經(jīng)有了HIS系統(tǒng)、病案管理系統(tǒng)、LIS系統(tǒng)、PACS系統(tǒng)、知識(shí)管理系統(tǒng)、行政OA系統(tǒng)等多個(gè)子系統(tǒng),信息化應(yīng)用到了一個(gè)比較好的水平,但是各個(gè)系統(tǒng)之間信息交流不暢,系統(tǒng)之間的集成成為目前信息化工作的主要任務(wù)。
1.1 數(shù)據(jù)庫(kù)之間的互聯(lián)
兩個(gè)子系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)器之間,相互開放一些數(shù)據(jù)庫(kù)表,按照雙方的約定,讓對(duì)方查詢和填寫。優(yōu)點(diǎn)是:使用的技術(shù)最簡(jiǎn)單,直接方便,信息傳輸?shù)男阅茏詈?。缺點(diǎn)也很明顯:① 直接暴露了子系統(tǒng)內(nèi)部的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)不安全;② 分布式環(huán)境下,ODBC可能因?yàn)椴煌W(wǎng)絡(luò)和防火墻的阻礙而根本無(wú)法互聯(lián)。③ 接口程序和數(shù)據(jù)庫(kù)結(jié)構(gòu)直接相關(guān),無(wú)法通用,為互聯(lián)不同廠家的子系統(tǒng)就要重寫一套接口。數(shù)據(jù)庫(kù)之間直接互聯(lián)的示意圖,見(jiàn)圖1。
互聯(lián)的實(shí)例:HIS系統(tǒng)與病案系統(tǒng)的互聯(lián)就采用2個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)直接連接的方法。HIS系統(tǒng)通過(guò)定時(shí)執(zhí)行存儲(chǔ)過(guò)程將出院病人信息發(fā)布到病案系統(tǒng)的數(shù)據(jù)庫(kù)中。
1.2 編寫專用網(wǎng)關(guān)
通過(guò)1個(gè)專用網(wǎng)關(guān)作為兩個(gè)系統(tǒng)的連接點(diǎn),2個(gè)系統(tǒng)在同1臺(tái)機(jī)器上各自運(yùn)行一個(gè)應(yīng)用程序,每一方都既作為數(shù)據(jù)的提供者也作為數(shù)據(jù)的請(qǐng)求者,相互傳遞的數(shù)據(jù)格式一般是雙方協(xié)商好的,也可以采用一些國(guó)家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)的數(shù)據(jù)格式。
數(shù)據(jù)交換的方式可以有多種:
(1)可以通過(guò)操作系統(tǒng)兩個(gè)進(jìn)程之間的Windows Message 傳遞數(shù)據(jù);
(2)通過(guò)文件或者共享內(nèi)存來(lái)傳遞數(shù)據(jù);
(3)直接通過(guò)TCP IP來(lái)傳輸數(shù)據(jù)。如果通過(guò)TCP/IP的話,可以不要求2個(gè)程序一定要運(yùn)行在1臺(tái)機(jī)器上,可以運(yùn)行在物理上不同的計(jì)算機(jī)上,只要兩臺(tái)計(jì)算機(jī)的TCP協(xié)議能夠連通即可。
用專用網(wǎng)管互聯(lián)的優(yōu)點(diǎn)是:接口不直接依賴于數(shù)據(jù)庫(kù),安全性加強(qiáng)了;接口程序比較通用,將來(lái)可以復(fù)用。缺點(diǎn)是:子系統(tǒng)之間的集成只能依靠網(wǎng)關(guān)程序交換數(shù)據(jù)。非常死板。各子系統(tǒng)的服務(wù)器或者客戶端之間無(wú)法直接相互通信,在一些場(chǎng)合下,子系統(tǒng)間的實(shí)時(shí)通信和異步調(diào)用是必須的,但是單獨(dú)的網(wǎng)關(guān)程序很難勝任這種集成要求。采用網(wǎng)關(guān)互聯(lián)的示意圖,見(jiàn)圖2。
互聯(lián)實(shí)例:HIS系統(tǒng)和PACS系統(tǒng)之間的互聯(lián)。HIS與PACS工作在不同的子網(wǎng)中,設(shè)置1臺(tái)專用PC,這臺(tái)PC既可以連接HIS也可以連接PACS,在這臺(tái)PC上運(yùn)行HIS網(wǎng)關(guān)程序和PACS網(wǎng)關(guān)程序,這兩個(gè)程序通過(guò)Windows Message消息通信以及共享內(nèi)存區(qū)來(lái)相互提供數(shù)據(jù)。步驟是:首先一方有了新數(shù)據(jù)后先放到共享內(nèi)存區(qū),然后通過(guò)發(fā)送Windows Message通知另一方有新的數(shù)據(jù)要取,另一方在接收到消息后立即在共享內(nèi)存區(qū)取這些數(shù)據(jù)并保存到數(shù)據(jù)庫(kù)中。
1.3 基于Web Services的互聯(lián)
每個(gè)子系統(tǒng)提供一組Web Services接口,提供者一般是1臺(tái)Application Server。就目前的編程技術(shù)和網(wǎng)絡(luò)技術(shù)而言,筆者認(rèn)為這是最理想的系統(tǒng)之間的互聯(lián)方式。是今后系統(tǒng)之間互聯(lián)的主要方法,Web Services正是時(shí)下流行的企業(yè)級(jí)信息系統(tǒng)SOA架構(gòu)的基礎(chǔ)。集成示意圖,見(jiàn)圖3。
從圖3可以看到,系統(tǒng)A的任何一臺(tái)工作站都可以訪問(wèn)系統(tǒng)B的Web Services接口。用Web Services互聯(lián)的優(yōu)點(diǎn):
(1)就Web Services數(shù)據(jù)傳輸和調(diào)用訪問(wèn)的網(wǎng)絡(luò)協(xié)議基于HTTP協(xié)議,本身數(shù)據(jù)的編碼協(xié)議是基于XML的SOAP協(xié)議,SOAP協(xié)議已經(jīng)被納入了國(guó)際標(biāo)準(zhǔn),因此Web Services可以跨越不同的操作系統(tǒng)、各種子網(wǎng)和防火墻而進(jìn)行互操作。
(2)Web Services本身就是分布式的組件模型架構(gòu),徹底脫離對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)的依賴。
(3)調(diào)用Web Services 接口非常方便,其他子系統(tǒng)中的任何客戶端只要通過(guò)安全認(rèn)證即可無(wú)障礙地調(diào)用本系統(tǒng)的所有授權(quán)Web Services 接口,擴(kuò)展性極佳。
(4)Web Services 2.0支持異步回調(diào),這是非常重要的特性,對(duì)于提高系統(tǒng)性能和降低網(wǎng)絡(luò)流量有非常重要的意義。
(5)數(shù)據(jù)格式采用XML格式,XML格式是自描述的語(yǔ)言,可以描述復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
(6)通過(guò)長(zhǎng)時(shí)間不懈的優(yōu)化,目前Web Services在性能上也毫不遜色于COM+和CORBA等傳統(tǒng)的分布式編程框架。
1.4 Web Services接口的安全問(wèn)題
為了保證兩個(gè)子系統(tǒng)的安全,提供Web Services接口的子系統(tǒng)這里簡(jiǎn)稱服務(wù)者,使用Web Services接口的子系統(tǒng)這里簡(jiǎn)稱客戶。服務(wù)者應(yīng)該為客戶提供1個(gè)賬號(hào),但是密碼應(yīng)該是加密后的字符串。加密算法和密鑰都應(yīng)該保密。由客戶先調(diào)用1個(gè)Web Services得到該帳號(hào)和加密后的密碼,將帳號(hào)信息和密碼信息編碼到SOAP頭中,調(diào)用服務(wù)者的Web Services接口。凡是SOAP頭中沒(méi)有合法賬戶和密碼信息的Web Services調(diào)用都將視為非法,服務(wù)者將不予理睬。這樣的安全性遠(yuǎn)高于數(shù)據(jù)庫(kù)集成的安全性。
Web Services的傳輸協(xié)議可以配置成HTTPS訪問(wèn)協(xié)議,并對(duì)傳輸?shù)腦ML數(shù)據(jù)進(jìn)行加密。
安全也要付出代價(jià),HTTPS協(xié)議要慢于HTTP協(xié)議,XML數(shù)據(jù)的加密和解密也要耗費(fèi)時(shí)間和CPU資源。
下面通過(guò)一些互聯(lián)實(shí)例來(lái)分析 Web Services的優(yōu)勢(shì)。
2.1 HIS系統(tǒng)與病案管理系統(tǒng)的互聯(lián)
HIS系統(tǒng)提供一系列Web Services接口,供病案管理系統(tǒng)調(diào)用。接口所提供的數(shù)據(jù)包括:提供出院病人基本信息和病人類型,住院時(shí)間、出院時(shí)間、疾病信息、費(fèi)用信息、費(fèi)用信息明細(xì)分類等。數(shù)據(jù)可以用XML格式編碼。
病案管理系統(tǒng)還將調(diào)用HIS的Web Services 接口,通知HIS系統(tǒng)哪些病人已經(jīng)進(jìn)入了病案管理系統(tǒng)。
2.2 HIS系統(tǒng)與PACS系統(tǒng)的互聯(lián)
HIS系統(tǒng)向PACS系統(tǒng)提供病人基本信息以及其他相關(guān)信息。PACS系統(tǒng)向HIS系統(tǒng)發(fā)送圖像,2個(gè)系統(tǒng)之間相互傳遞數(shù)據(jù)。
HIS系統(tǒng)開放1組提供病人基本信息的Web Services接口。
PACS系統(tǒng)向HIS系統(tǒng)開發(fā)查詢病人醫(yī)療圖像的Web Services接口。
一般情況下,PACS系統(tǒng)都會(huì)提供1個(gè)客戶端的圖像查詢和顯示的ActiveX組件,該組件可以方便地嵌入到HIS系統(tǒng)中,而且圖像查詢和顯示功能非常專業(yè)。筆者認(rèn)為如果讓ActiveX通過(guò)Web Services去訪問(wèn)PACS的圖像數(shù)據(jù),這將是最好的解決方案。
2.3 HIS系統(tǒng)與數(shù)據(jù)查詢和輔助決策系統(tǒng)的互聯(lián)
數(shù)據(jù)查詢和輔助決策系統(tǒng)(簡(jiǎn)稱DQDAS)是非常重要的子系統(tǒng),該系統(tǒng)對(duì)HIS、LIS、PACS等系統(tǒng)產(chǎn)生的大量數(shù)據(jù)進(jìn)行分析和匯總,為醫(yī)院的管理者提供極有價(jià)值的信息。
例如,藥品收入和醫(yī)技收入是醫(yī)院收入的主要組成部分,這兩部分收入的分布和明細(xì)以及相互之間的比例是醫(yī)院管理者高度關(guān)注的重要信息。
醫(yī)療費(fèi)用發(fā)生的原始數(shù)據(jù)一般存放在HIS系統(tǒng)內(nèi),而DQDAS通過(guò)獲取原始數(shù)據(jù)并加載到自己的數(shù)據(jù)倉(cāng)庫(kù)內(nèi),并為用戶生成相關(guān)的數(shù)據(jù)查詢視圖。
HIS系統(tǒng)提供的原始數(shù)據(jù)的粒度越細(xì),DQDAS就能為客戶提供更多不同角度的視圖并允許用戶對(duì)數(shù)據(jù)進(jìn)行深入的挖掘。
例如,如果HIS提供的藥品收入包含以下的分類信息,那么DQDAS將可以從以下視圖去觀察醫(yī)院的藥品收入:①就診類別:住院、門診、急診;② 病人類型:醫(yī)保、自費(fèi)、農(nóng)保、鎮(zhèn)保、離休等;③ 開處方或醫(yī)囑醫(yī)生;④ 就診科室;⑤ 醫(yī)保范圍或自費(fèi)藥;⑥ 自負(fù)比例;⑦ 藥品類型:西藥、中成藥、中藥;⑧ 劑型:針劑、片劑、膠囊等。
HIS系統(tǒng)開放1組提供原始數(shù)據(jù)的接口,DQDAS系統(tǒng)通過(guò)調(diào)用Web Services接口獲取原始數(shù)據(jù)并裝載到數(shù)據(jù)倉(cāng)庫(kù)中,同時(shí)這組接口也可以被HIS系統(tǒng)內(nèi)的報(bào)表系統(tǒng)所調(diào)用。
2.4 HIS系統(tǒng)與LIS系統(tǒng)的互聯(lián)
LIS要向HIS系統(tǒng)查詢病人信息,HIS系統(tǒng)開放1組查詢病人信息的Web Services接口,這些接口和開放給PACS系統(tǒng)的接口是一樣的。
醫(yī)生工作站可以隨時(shí)查詢LIS的報(bào)告數(shù)據(jù)。LIS系統(tǒng)開放1組Web Services接口,供HIS系統(tǒng)的各個(gè)模塊所使用。門診醫(yī)生工作站、護(hù)士工作站、住院醫(yī)生工作站、甚至自助查詢都可以使用該接口來(lái)查詢LIS報(bào)告,HIS系統(tǒng)也不用專門存儲(chǔ)LIS的報(bào)告數(shù)據(jù)。使用LIS接口就像使用HIS系統(tǒng)的內(nèi)部模塊接口一樣方便。Web Services使得2個(gè)系統(tǒng)互聯(lián)得如同1個(gè)系統(tǒng)。
2.5 Web Services異步調(diào)用的互聯(lián)和應(yīng)用
一般情況下,Web Services 接口都是普通的同步接口,在某些場(chǎng)合下,我們必須采用異步回調(diào)的Web Services接口,即客戶端調(diào)用Web Services服務(wù)器接口后,繼續(xù)做別的事情,等待服務(wù)器對(duì)客戶端注冊(cè)的某個(gè)函數(shù)進(jìn)行回調(diào)。同步調(diào)用和異步回調(diào)圖,見(jiàn)圖4。
本文設(shè)計(jì)的機(jī)器人化端口打磨裝備具有易便攜、體積小、自動(dòng)化程度高、適應(yīng)多種管徑的特點(diǎn)[8]。該裝備通過(guò)機(jī)械式夾緊方式使整機(jī)沿端口作周向轉(zhuǎn)動(dòng),需要具有一定的預(yù)緊力。為了驗(yàn)證該打磨機(jī)器人的工作可靠性,制作了一臺(tái)樣機(jī)并進(jìn)行現(xiàn)場(chǎng)試驗(yàn)。在施加預(yù)緊力的作用下,配合主動(dòng)輪和從動(dòng)輪將打磨機(jī)器人固定在管道上[9-10],開啟驅(qū)動(dòng)電機(jī)和伺服電機(jī)進(jìn)行打磨試驗(yàn)[8,11]。
考慮以下的應(yīng)用場(chǎng)景:醫(yī)生想在醫(yī)生工作站程序中瀏覽,重癥監(jiān)護(hù)室中的每個(gè)病人的實(shí)時(shí)情況。這些實(shí)時(shí)信息主要是監(jiān)護(hù)儀產(chǎn)生的心電監(jiān)護(hù)數(shù)據(jù),網(wǎng)絡(luò)系統(tǒng)要將監(jiān)護(hù)數(shù)據(jù)的變化實(shí)時(shí)通知給HIS系統(tǒng)的醫(yī)生工作站。
醫(yī)生工作站查詢監(jiān)護(hù)儀中數(shù)據(jù)的方式有2種:
(1)醫(yī)生工作站不斷輪詢重癥監(jiān)護(hù)系統(tǒng)得到數(shù)據(jù),這種方式非常低效,如果查詢數(shù)據(jù)的程序性能也低的話,這種方式將非常低效。
(2)事件通知方式,醫(yī)生工作站調(diào)用重癥監(jiān)護(hù)系統(tǒng)的Web Services接口并要求獲得病人的相關(guān)數(shù)據(jù),同時(shí)把醫(yī)生工作站顯示監(jiān)護(hù)數(shù)據(jù)的函數(shù)接口注冊(cè)進(jìn)去。當(dāng)重癥監(jiān)護(hù)系統(tǒng)有新的數(shù)據(jù)后,該接口會(huì)自動(dòng)調(diào)用醫(yī)生工作站所注冊(cè)的函數(shù)接口,并把數(shù)據(jù)作為參數(shù)傳進(jìn)去顯示在醫(yī)生工作站的界面上。
用Visual Studio 2005具體實(shí)現(xiàn)異步回調(diào)Web Services的步驟是:
(1)創(chuàng)建 數(shù)據(jù)服務(wù) 的Web Services 類, 例如類叫:CardiogramService。
(2) 用WSDL.exe為 CardiogramService 生成2個(gè)異步方法:BeginProvideCardiogramData 和 EndProvideCardiogramData.
(3)在客戶端程序中創(chuàng)建1個(gè)基于 AsyncCallback 的委托函數(shù),委托函數(shù)的參數(shù)類型是IAsyncResult,在這個(gè)委托函數(shù)中編寫顯示數(shù)據(jù)的邏輯。
(5)服務(wù)器端有了新的數(shù)據(jù)后,會(huì)回調(diào)客戶端傳過(guò)來(lái)的委托,將數(shù)據(jù)傳給委托函數(shù),委托函數(shù)將把數(shù)據(jù)顯示在客戶端界面上。
總之,Web Services的異步回調(diào)的方法很容易理解,也比較容易實(shí)現(xiàn)。
本文通過(guò)對(duì)幾種系統(tǒng)互聯(lián)的方法進(jìn)行了分析,比較了它們的優(yōu)缺點(diǎn),顯示出通過(guò)Web services進(jìn)行系統(tǒng)互聯(lián)的方法的優(yōu)勢(shì),特別是Web Services為我們提供了易于理解和簡(jiǎn)單易用的異步回調(diào)方法,因此,它是系統(tǒng)之間互聯(lián)的最好方法。
Web services本質(zhì)上是一種跨平臺(tái)的分布式軟件開發(fā)模型,通過(guò)Web Services調(diào)用,使得系統(tǒng)之間的互聯(lián)和系統(tǒng)內(nèi)部的模塊調(diào)用是一致的,使得互聯(lián)過(guò)程非常自然,也非常容易實(shí)現(xiàn)。
在安全性方面,通過(guò)用戶身份認(rèn)證,以及對(duì)用戶帳戶和密碼加密,采用HTTPS協(xié)議等措施,保證集成的安全性。
性能方面,隨著各大軟件公司對(duì)各自的Web Services底層庫(kù)的不斷優(yōu)化,它的性能越來(lái)越好,并不遜色于COM+、CORBA、EJB等這些傳統(tǒng)的分布式軟件開發(fā)架構(gòu)。
總之基于Web Services的互聯(lián)方法,是目前子系統(tǒng)間互聯(lián)的最好方法。
[1] Eric Newcomer,Greg Lomow.Understanding SOA with Web Services中文版[M].徐涵,譯.北京:電子工業(yè)出版社,2006.
[2] Joseph Bustos,Karli Watson.NET Web服務(wù)入門經(jīng)典——C#編程篇[M].侯彧,譯.北京:清華大學(xué)出版社,2003.
[3] BRET HARTMAN,DONALD J.FLINN.全面掌握WEB服務(wù)安全性[M].楊碩,譯.北京:清華大學(xué)出版社,2004.
[4] 何齡修,讀顧城.基于Web Services XML-RPC的醫(yī)院HIS/RIS集成研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006(11):47-50.
[5] 李曉云,張建春,李昌青,等.基于IHE技術(shù)構(gòu)架的醫(yī)療信息系統(tǒng)的連接點(diǎn)[J].醫(yī)療衛(wèi)生裝備,2011,(4):92-93.
[6] 周慶利,何劍虎,劉軍.LIS與HIS集成研究[J].生物醫(yī)學(xué)工程雜志,2008(12):1294-1298.
Distributed Medical Information System Interconnection Technology
LIU Fang
Information Center, Tongzhou District People's Hospital of Nantong, Nantong Jiangsu 226300, China
This paper deeply discusses some methods that integrate with different medical information systems, and analyzes their advantages and disadvantages, then points out that the method based on Web Services is the best among these methods. Web Services support mechanism of Asynchronous Callback is simple and easy to use. The performance and security of Web Services are all very excellent.
integrate with different medical information system; web services; asynchronous callback;HIS
TP311
A
10.3969/j.issn.1674-1633.2012.05.037
1674-1633(2012)05-0108-03
2011-12-08
作者郵箱:tzliufang@yahoo.com.cn