余浩,翟娜
解放軍總醫(yī)院計算機應(yīng)用與管理科,北京市,100853
LIS系統(tǒng)是實驗室、檢驗科等科室日常工作平臺,但LIS的覆蓋面只是涉及到實驗室業(yè)務(wù)的主要流程部分[1],檢驗還是要來源于LIS系統(tǒng)之外。具體來說,檢驗結(jié)果數(shù)據(jù)是從手工試驗、檢驗儀器,或是從某個具體檢測的小系統(tǒng)中得來的。這些小系統(tǒng)一般是與某種具體的業(yè)務(wù)相關(guān),或者只檢測某種檢驗項目,如蛋白電泳、過敏源檢測等。這些特定項目也只能在這些小系統(tǒng)中才能完成,系統(tǒng)的功能單一、明確、具體。這些小系統(tǒng)在實際使用時,需要工作人員往這些小系統(tǒng)中錄入病人的基本信息、檢驗項目等。而這些基本信息在LIS系統(tǒng)中是已經(jīng)有的,這樣重復(fù)錄入,除耗費人力成本外,同時會造成錯錄或漏錄,引起新的錯誤。為了解決這些問題,滿足這些新的需求,需要將這些實驗室的小系統(tǒng)與LIS進行集成,以更好、高效地完成實驗室的基本業(yè)務(wù)。
實驗室小系統(tǒng)主要是指與某個具體實驗室項目相關(guān)的儀器或儀器系統(tǒng),既可以是一個硬件系統(tǒng),又可是純軟件系統(tǒng),也可以是硬件結(jié)合軟件的系統(tǒng),也可以叫做針對某種具體項目的實驗室專業(yè)系統(tǒng)。這類實驗室小系統(tǒng)通常是單機運行的系統(tǒng),如TCT檢測系統(tǒng)、血清蛋白電泳檢測系統(tǒng)、過敏源檢測系統(tǒng)、血栓彈力圖檢測儀、生殖檢測分析系統(tǒng)和微量元素檢測系統(tǒng)等。在具體的應(yīng)用中,實驗室小系統(tǒng)主要還是指某個特定實驗室項目檢測系統(tǒng)中的軟件部分,由它自己對數(shù)據(jù)進行管理。這類小系統(tǒng)的重點都在于軟件自身功能設(shè)計,鮮有考慮到與LIS系統(tǒng)之間的數(shù)據(jù)交互功能。即使那些留有與LIS之間數(shù)據(jù)交互接口的,很多也是通過文件的方式來實現(xiàn)的,其功能也較弱,無法處理現(xiàn)實中一些較為復(fù)雜的需求。大部分的實驗室小系統(tǒng),都是使用一些本地數(shù)據(jù)庫,如ACCESS、Sybase SQLAnywhere和MySQL等。這些小系統(tǒng)一般都是自管理,自成系統(tǒng)。
在一定程度上,有些檢驗儀器也可作看作是一類實驗室小系統(tǒng),這類檢驗儀器都附帶有一套功能完整的軟件管理系統(tǒng),儀器檢驗的結(jié)果能在系統(tǒng)中本地數(shù)據(jù)庫中存儲,其數(shù)據(jù)傳輸也是由軟件系統(tǒng)來實現(xiàn),而不是由硬件直接與LIS進行連接。
對于目前我院使用眾多實驗室小系統(tǒng),大部分在與LIS進行集成方面,沒有相關(guān)的功能設(shè)計,其重點還是在其業(yè)務(wù)本身。但是,為了實驗室工作更高效、有序地開展,還是需要通過不同的技術(shù)手段,實現(xiàn)這些小系統(tǒng)與LIS進行數(shù)據(jù)集成,實現(xiàn)信息交換,減少不必要的重復(fù),以及人為疏忽引起的錯誤。
在系統(tǒng)集成中,大體上可以分為兩個方向:功能集成和數(shù)據(jù)集成[2-3]。功能集成,主要面向那些系統(tǒng)間功能調(diào)用的場景,其前提是被調(diào)用方需要提供API,調(diào)用方需要進行二次開發(fā)。而對于數(shù)據(jù)集成,其主要目的是數(shù)據(jù)的融合。這種數(shù)據(jù)融合,既可以是單向的,也可以是雙向的,只需要外部寫入的數(shù)據(jù)滿足系統(tǒng)對數(shù)據(jù)的內(nèi)容和格式要求即可。在實驗室小系統(tǒng)與LIS系統(tǒng)集成中,主要還是實現(xiàn)數(shù)據(jù)集成相關(guān)的功能。
在實踐中,根據(jù)小系統(tǒng)軟件對應(yīng)的研發(fā)力量情況,集成方案大體上分為兩大類:松耦合方式和緊耦合方式。松耦合集成方式,一般有3種具體的方案可以采用,即HL7消息傳遞方式、Web Services接口方式和專用接口方式。緊耦合的數(shù)據(jù)集成方式,主要有2種方式:①中間表方式;②當(dāng)小系統(tǒng)軟件沒法做改進或修改時,即直接讀取本地數(shù)據(jù)庫的方式。
(1) HL7消息傳遞方式
HL7消息傳遞方式是一種主動的消息傳遞方式,為保證消息一定到達,需要消息發(fā)送方和消息接收方同時處理好消息審計。HL7標(biāo)準(zhǔn)是醫(yī)院系統(tǒng)之間進行信息交互的國際標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)[4]。但遺憾的是,HL7只是成為了業(yè)界的一個指導(dǎo)性質(zhì)的標(biāo)準(zhǔn),而沒有成為一個執(zhí)行性質(zhì)的標(biāo)準(zhǔn),每個廠家對HL7都有獨特的理解,導(dǎo)致系統(tǒng)彼此之間連接在絕大多數(shù)情況并不能實現(xiàn)即插即用。另外,由于實現(xiàn)HL7相關(guān)的功能較為復(fù)雜,這些實驗室小系統(tǒng)出于成本的考慮,一般不采用。但這畢竟是國際公認的標(biāo)準(zhǔn),當(dāng)前這個標(biāo)準(zhǔn)至少是為系統(tǒng)集成實現(xiàn)指明了一個方向。隨著HL7標(biāo)準(zhǔn)及相關(guān)API工具包的不斷完善和升級,將解決HL7標(biāo)準(zhǔn)的易用性問題。如果大家都采用國際公認的行業(yè)標(biāo)準(zhǔn),在系統(tǒng)集成問題上行業(yè)整體成本將下降。
(2) Web Services方式
Web Services方式是一種被動的信息傳遞方式,信息的獲取時機取決于調(diào)用系統(tǒng)方[5-7]。一般在LIS端考慮其與其他系統(tǒng)的數(shù)據(jù)集成問題,針對一些數(shù)據(jù)交互業(yè)務(wù),開發(fā)出了一些WS接口函數(shù)。在這種方式下,要實現(xiàn)小系統(tǒng)與LIS系統(tǒng)簡約的信息集成,需要小系統(tǒng)進行二次開發(fā),調(diào)用LIS系統(tǒng)提供的這些Web Services服務(wù)。
(3) 專用接口方式
有些小系統(tǒng)的功能比較完備,考慮了與外部系統(tǒng)進行數(shù)據(jù)交換的功能需求。那么只需要按照小系統(tǒng)的接口的要求,組織好數(shù)據(jù),滿足通訊協(xié)議一致性即可。當(dāng)然,能提供專用接口功能的小系統(tǒng),其數(shù)量是很少的。另外,這類專用接口一般都是被動調(diào)用的,所以有關(guān)數(shù)據(jù)的獲取機制和時機,全由LIS系統(tǒng)端來控制和實現(xiàn)。
(1) 中間表方式
這種方案的主要思想是,發(fā)送方主動往中間表寫入數(shù)據(jù),接收方定時、主動地從中間表取數(shù)據(jù)[8]。當(dāng)中間表建立在HIS方時,院方可以利用觸發(fā)器來實現(xiàn)業(yè)務(wù)數(shù)據(jù)寫入。
采用這種方案的前提是,需要與小系統(tǒng)的軟件開發(fā)人員一起定義中間表的結(jié)構(gòu)信息,同時協(xié)調(diào)好數(shù)據(jù)獲取機制。小系統(tǒng)與LIS之間進行集成采用中間表方式時,中間表是建立在LIS系統(tǒng)數(shù)據(jù)庫中的,小系統(tǒng)端也需要進行2次開發(fā),以便能夠從中間表中讀出和寫入數(shù)據(jù)。
(2) 直接讀取小系統(tǒng)數(shù)據(jù)庫
目前這些小系統(tǒng)一般都是單機獨立運行的,幾乎沒有為與其他系統(tǒng)交互預(yù)留數(shù)據(jù)交互接口。而且,開發(fā)這些系統(tǒng)的公司一般都是以售賣硬件為主,在軟件上沒有太多的考慮,因此以上數(shù)據(jù)集成方案很難在現(xiàn)實中應(yīng)用。按照現(xiàn)實的條件,只有發(fā)揮主動性,主動對這些小系統(tǒng)的數(shù)據(jù)庫進行操作。比較好的情況是這些小系統(tǒng)都采用微軟的ACCESS數(shù)據(jù)庫這一通用的本地數(shù)據(jù)庫,為再進行數(shù)據(jù)集成和了解其數(shù)據(jù)結(jié)構(gòu)的信息提供了較為便利的條件。另外,這一方案還有一個授權(quán)前提是,小系統(tǒng)廠家要允許醫(yī)院用戶能對其本地數(shù)據(jù)庫進行訪問,公開其數(shù)據(jù)表結(jié)構(gòu)之間的關(guān)系。
由于這些小系統(tǒng)在軟件方面功能,購置時在與LIS系統(tǒng)集成方面并沒有考慮太多。同時,有些小系統(tǒng)已經(jīng)獨立運行了多年,廠家在數(shù)據(jù)交互方面也沒有進一步的升級。為了解決現(xiàn)實中的問題,就只有從LIS端考慮,采取主動的方式。事實上,這也是代價最小、可預(yù)見、見效最快的方式,在實踐中,這種方式是我們采用最多的方式。
根據(jù)我們的在實踐中開發(fā)經(jīng)驗,我們對以上提到的5種方案從性能、開發(fā)成本、耦合性和升級難度等4個方面進行了比較,如表1所示。
表1 方案比較Tab.1 The comparsion of five solutions
結(jié)合實際情況,緊耦合中直接讀取小系統(tǒng)數(shù)據(jù)庫的方式是最經(jīng)常采用的,實施起來的代價最小,只需要LIS一方編寫程序或修改代碼即可。但是這種方式需要一個前提條件是,小系統(tǒng)使用的本地數(shù)據(jù)庫最好是通用的,如ACCESS,MySQL和Sybase SQL Anywhere等常見的數(shù)據(jù)庫。如果是自定義格式或不為業(yè)界所常用的數(shù)據(jù)庫,那就會在從LIS端訪問小系統(tǒng)本地數(shù)據(jù)庫造成困難。
在軍衛(wèi)一號醫(yī)院信息系統(tǒng)中,文中提到的5種主要信息集成方案,我們在實踐都使用過,沒有哪種方式能夠一勞永逸,都是需要對系統(tǒng)進行改造,或者系統(tǒng)本身在數(shù)據(jù)交互需求方面考慮的比較多,而預(yù)留有數(shù)據(jù)交互功能。至于采用哪種方式,是由現(xiàn)實中的需求層面所決定的。我們總結(jié)出以下3點內(nèi)容:
(1) 為了保持系統(tǒng)的獨立性、松耦合緊內(nèi)聚的特點,采用國際標(biāo)準(zhǔn)的系統(tǒng)集成方式是最佳方式或最終趨勢;
(2) 實際情況決定現(xiàn)實技術(shù)方式,無論是松耦合還是緊耦合,沒有最佳,只有適用,適用的方式就是最好的方式;
(3) 以后無論開發(fā)什么樣的系統(tǒng),或者引進外來系統(tǒng),要充分考慮到系統(tǒng)的開放性。只有開放的系統(tǒng),能方便與其他系統(tǒng)進行數(shù)據(jù)交互,或能與其它系統(tǒng)集成的系統(tǒng),才是有生命力的系統(tǒng)。具有持續(xù)、不斷改進能力的系統(tǒng),才是好的系統(tǒng)。
[1]李書章, 褚健.數(shù)字化醫(yī)院建設(shè)理念與實踐[M].北京:人民軍醫(yī)出版社.2011
[2]彭武良, 周麗, 王雷.企業(yè)應(yīng)用集成技術(shù)綜述[J].計算機應(yīng)用研究.2007.(9): 12-15.
[3]信息集成[OL]http://baike.baidu.com/view/1376686.htm
[4]HL7 resources[OL]:http://www.hl.org
[5]Richard Monson-haefrl.J2EE Web Services[M].New Jersey:Addison-Wesley, 2003
[6]柴曉路, 梁宇路.Web Services技術(shù)、架構(gòu)和應(yīng)用[M].北京:電子工業(yè)出版社.2003:18-21.
[7]余浩, 保鵬飛.HIS系統(tǒng)Web Services接口設(shè)計與實現(xiàn)[J].中國醫(yī)療設(shè)備, 2011, 26(4): 43-45.
[8]翟娜, 余浩, 穆飛航.醫(yī)院信息系統(tǒng)與膳食系統(tǒng)的集成設(shè)計方案及實現(xiàn)[J].中國數(shù)字醫(yī)學(xué), 2012, 7(2): 34-36.