【作 者】陳巍,劉旻
首都醫(yī)科大學(xué)附屬北京朝陽(yáng)醫(yī)院信息中心,北京市,100020
隨著醫(yī)療行業(yè)信息化進(jìn)程的不斷深入,各種信息系統(tǒng)滲透到醫(yī)院運(yùn)營(yíng)的多個(gè)環(huán)節(jié)。由于軟件專業(yè)化及醫(yī)療領(lǐng)域的特殊性,所有系統(tǒng)很難由同一軟件商供應(yīng),而醫(yī)院的集中化管理卻需要跨越不同系統(tǒng)的業(yè)務(wù)流程,實(shí)現(xiàn)數(shù)據(jù)交互與共享。如何將來(lái)自不同廠商、各具特色的專業(yè)系統(tǒng)進(jìn)行企業(yè)級(jí)應(yīng)用整合,成為醫(yī)院信息部門的重要任務(wù)。
企業(yè)應(yīng)用集成(EAI)是將不同平臺(tái)、不同方案建立的異構(gòu)系統(tǒng)整合、集成的一種方法和技術(shù)。EAI通過(guò)建立底層結(jié)構(gòu),來(lái)聯(lián)系橫貫整個(gè)企業(yè)的異構(gòu)系統(tǒng)、應(yīng)用和數(shù)據(jù)源等,實(shí)現(xiàn)系統(tǒng)間的無(wú)縫共享和交換數(shù)據(jù),使企業(yè)管理者能將視線放在核心業(yè)務(wù)的運(yùn)營(yíng)和發(fā)展上。
EAI以分層機(jī)制運(yùn)作,包括消息通信層、數(shù)據(jù)映射層和工作流管理層等。根據(jù)應(yīng)用整合的深度,EAI可在不同層面實(shí)現(xiàn),包括界面集成、業(yè)務(wù)過(guò)程集成、應(yīng)用集成、數(shù)據(jù)集成等[1]。基于SOA架構(gòu)的應(yīng)用集成方案是目前的發(fā)展方向。
SOA即面向服務(wù)架構(gòu),是一種分布式的軟件組件模型。系統(tǒng)的業(yè)務(wù)功能被封裝為可供他人使用的“服務(wù)”,并通過(guò)定義良好的接口和契約聯(lián)系起來(lái),在某系統(tǒng)使用其它系統(tǒng)中的功能時(shí),無(wú)需考慮其具體實(shí)現(xiàn)與物理位置。SOA架構(gòu)集成各系統(tǒng)間具有相對(duì)獨(dú)立性和松耦合關(guān)系,為解決多種異構(gòu)系統(tǒng)集成提供有力支持[2]。
SOA架構(gòu)的核心組件包括服務(wù)提供者、服務(wù)使用者和一個(gè)中立的服務(wù)總線機(jī)構(gòu),集成系統(tǒng)的所有業(yè)務(wù)功能都以服務(wù)形式在總線中注冊(cè),以便使用者能正確調(diào)用,也便于管理人員能對(duì)其統(tǒng)一控制與協(xié)調(diào),避免在系統(tǒng)集成中產(chǎn)生點(diǎn)對(duì)點(diǎn)式的復(fù)雜網(wǎng)絡(luò)交互。
為滿足多種不同的業(yè)務(wù)和管理需求,醫(yī)院運(yùn)行著下述一些信息系統(tǒng)。
(1)管理門診和住院業(yè)務(wù)的醫(yī)囑傳輸系統(tǒng)(Order Communication System) 這是從“以財(cái)務(wù)計(jì)費(fèi)為中心”的醫(yī)院信息系統(tǒng)(HIS)向“以病人為中心”的臨床信息系統(tǒng)(CIS)過(guò)渡的一種系統(tǒng),是我院的核心業(yè)務(wù)系統(tǒng)。服務(wù)器為IBM的AIX,數(shù)據(jù)庫(kù)為Oracle 9i。
(2)實(shí)驗(yàn)室信息系統(tǒng)(LIS) LIS與OCS為不同軟件商提供,基于Visual C++開(kāi)發(fā),服務(wù)器是Win2003 Server + SQL Server。OCS與LIS的數(shù)據(jù)交換通過(guò)數(shù)據(jù)庫(kù)中間表。
(3)醫(yī)學(xué)影像歸檔與傳輸系統(tǒng)(PACS) 它是GE公司采用Jave開(kāi)發(fā)的多層應(yīng)用結(jié)構(gòu),中間層運(yùn)行JBoss作為Web Server和應(yīng)用服務(wù)器,客戶端基于Swing框架和Java虛擬機(jī)(JVM)運(yùn)行[3]。與LIS一樣,PACS也借助數(shù)據(jù)庫(kù)中間表與OCS交互。
(4)醫(yī)院門戶網(wǎng)站 其中專家介紹、出診時(shí)間、網(wǎng)上預(yù)約等模塊與OCS系統(tǒng)有直接或間接的數(shù)據(jù)交互。網(wǎng)站采用Visual Studio 2005和C#開(kāi)發(fā),基于ASP.Net架構(gòu)。
此外,還包括醫(yī)保上傳接口、財(cái)務(wù)管理系統(tǒng)、物資管理系統(tǒng)、供應(yīng)室管理系統(tǒng),以及掛號(hào)處和住院處還有用于應(yīng)急的本地系統(tǒng)等。
上述眾多業(yè)務(wù)系統(tǒng)的運(yùn)行環(huán)境和軟件架構(gòu)都各不相同,但各系統(tǒng)間都存在數(shù)據(jù)交互或共享的需求。早期是在各系統(tǒng)間建立中間表或增加點(diǎn)對(duì)點(diǎn)的通信模塊,來(lái)實(shí)現(xiàn)數(shù)據(jù)溝通,但隨著系統(tǒng)的不斷增多,點(diǎn)對(duì)點(diǎn)的方式演化成極為復(fù)雜的交叉通訊網(wǎng)絡(luò),不但難于升級(jí)與維護(hù),而且系統(tǒng)的運(yùn)行效率、穩(wěn)定性和安全性都成為問(wèn)題。
為了保證各系統(tǒng)的相對(duì)獨(dú)立性,又要實(shí)現(xiàn)系統(tǒng)間的通暢便捷的數(shù)據(jù)交換,還要保證整個(gè)系統(tǒng)群集的結(jié)構(gòu)穩(wěn)定和可維護(hù)性,我們引進(jìn)了SOA架構(gòu)技術(shù),以服務(wù)總線的方式重新設(shè)計(jì)應(yīng)用集成方案。
第一階段對(duì)三個(gè)主業(yè)務(wù)系統(tǒng)(OCS、LIS、PACS)進(jìn)行了集成與整合,其中OCS全面管理我院的門急診和住院業(yè)務(wù)。OCS以醫(yī)囑信息為核心,在傳統(tǒng)HIS基礎(chǔ)上結(jié)合業(yè)務(wù)流思想,將醫(yī)療全過(guò)程信息進(jìn)行數(shù)字化[4],它是我院最核心的業(yè)務(wù)系統(tǒng)。
首先對(duì)OCS系統(tǒng)進(jìn)行業(yè)務(wù)分析,明析系統(tǒng)邊界,將各種業(yè)務(wù)操作歸類。我們將它分為基礎(chǔ)類和邊界類操作,前者一般是在OCS系統(tǒng)內(nèi)部運(yùn)行的功能,后者是與其它業(yè)務(wù)系統(tǒng)有數(shù)據(jù)交互的過(guò)程。然后,把邊界類操作剝離出來(lái),抽象或封裝成服務(wù)的形式。
在OCS操作歸類的基礎(chǔ)上,建立企業(yè)服務(wù)總線(ESB)??偩€式的體系結(jié)構(gòu)可以將原先各個(gè)系統(tǒng)間的點(diǎn)對(duì)點(diǎn)連接轉(zhuǎn)化為多個(gè)系統(tǒng)對(duì)中心的連接方式,由ESB提供各種消息路由和數(shù)據(jù)轉(zhuǎn)換等機(jī)制,以消息中間件或Web Service作為物理消息傳遞背板,保證在分布式環(huán)境下可靠高效的傳輸[5]。
在具體實(shí)現(xiàn)上,因?yàn)镺CS是早期用VB6.0開(kāi)發(fā)的二層的C/S應(yīng)用,因此對(duì)OCS中邊界類業(yè)務(wù)過(guò)程采用Asp.net架構(gòu)開(kāi)發(fā)Web Service實(shí)現(xiàn)再封裝,開(kāi)發(fā)工具為Visual Studio 2005和VB.Net。這樣可最大限度利用原有資源,加快項(xiàng)目建設(shè)速度。
實(shí)驗(yàn)室系統(tǒng)(LIS)原為Visual C++開(kāi)發(fā),我們將其分離為底層操作和業(yè)務(wù)操作兩部分。底層操作主要負(fù)責(zé)與檢驗(yàn)設(shè)備通信的工作,要求廠家提供DLL和API;業(yè)務(wù)操作部分主要是化驗(yàn)申請(qǐng)、登記、計(jì)費(fèi)、結(jié)果核對(duì)與傳送、回顯與打印報(bào)告等處理過(guò)程,我們用VB.Net或C#重寫,基于Asp.net架構(gòu)封裝,與OCS的Web Service一起生成WSDL(Web服務(wù)描述),注冊(cè)在基于IIS的應(yīng)用服務(wù)器中。
醫(yī)學(xué)影像系統(tǒng)(PACS)的專業(yè)性較強(qiáng)(如對(duì)CT、MRI等影像采集和圖像變換算法等),是JAVA開(kāi)發(fā)的基于Web的多層應(yīng)用,本身就能對(duì)外提供Web Service接口,只是與OCS基于.Net平臺(tái)的Web Service交互時(shí),需要作某些格式轉(zhuǎn)換。這可以通過(guò)增加服務(wù)適配器來(lái)實(shí)現(xiàn)[6]。
OCS、LIS和PACS三個(gè)系統(tǒng)集成完成后,其它輔助系統(tǒng)或醫(yī)院的運(yùn)營(yíng)管理系統(tǒng)(如物流、財(cái)務(wù)、薪資、績(jī)效、醫(yī)保、OA、門戶網(wǎng)站等),都可以按上述2種模式中的一種,逐步并入服務(wù)總線中,實(shí)現(xiàn)醫(yī)院級(jí)的系統(tǒng)大集成,體系結(jié)構(gòu)如圖1所示。
① 要實(shí)現(xiàn)高效、有序、無(wú)障礙的應(yīng)用集成,必須制定數(shù)據(jù)的標(biāo)準(zhǔn)格式。比如在提供Web Services時(shí),盡量使用XML Schema中支持的類型,否則在信息交換時(shí)會(huì)出現(xiàn)序列化和反序列化異常。
② 系統(tǒng)集成的底層結(jié)構(gòu)、軟件、硬件以及異構(gòu)網(wǎng)絡(luò)的特殊需求都必須得到集成,可采用平臺(tái)集成工具(如VM虛擬機(jī)技術(shù)),以保證各系統(tǒng)能快速安全的轉(zhuǎn)換[7]。
③ 應(yīng)用集成不宜求快求全,應(yīng)該一步步實(shí)現(xiàn),穩(wěn)扎穩(wěn)打。作為集成平臺(tái)的服務(wù)總線與標(biāo)準(zhǔn)的建立也不是一日之功,總線或平臺(tái)本身也可以分層實(shí)現(xiàn),并盡量采用松耦合的連接機(jī)制,便于日后的擴(kuò)展與調(diào)整。
我國(guó)醫(yī)院的信息化建設(shè)經(jīng)多年發(fā)展,大多形成許多相互協(xié)作的業(yè)務(wù)系統(tǒng),在實(shí)現(xiàn)統(tǒng)一的臨床信息系統(tǒng)以前,整合現(xiàn)有的分散系統(tǒng)是一個(gè)重大課題,特別是在我國(guó)衛(wèi)生信息標(biāo)準(zhǔn)化程度還較低的情況下。借助SOA架構(gòu)實(shí)現(xiàn)企業(yè)級(jí)的應(yīng)用集成,能幫助醫(yī)院升級(jí)和管理其分散的基礎(chǔ)業(yè)務(wù),以形成集中管理的平臺(tái),其中強(qiáng)調(diào)復(fù)用和松耦合,以及注重接口和標(biāo)準(zhǔn)化,都為醫(yī)院應(yīng)用系統(tǒng)帶來(lái)更佳的擴(kuò)展性和靈活性,從而快速滿足醫(yī)院的業(yè)務(wù)需求變化,使醫(yī)院掌握信息化建設(shè)與發(fā)展的主動(dòng)權(quán)。
[1] 吳曉, 等. 基于SOA的企業(yè)應(yīng)用集成研究[J]. 信息技術(shù), 2007, 31(4):97-99.
[2] 桂友武, 等. 用SOA與Web Services企業(yè)集成框架設(shè)計(jì)[J]. 信息技術(shù), 2007, 31(10): 56-58.
[3] 呂校春, 等. 基于Swing的JavaGUI組件開(kāi)發(fā)[J]. 機(jī)械工程師, 2008,(5): 129-131.
[4] 劉旻, 等. 醫(yī)囑傳輸系統(tǒng)中業(yè)務(wù)自鎖的研究與解決[J]. 微型電腦應(yīng)用, 2009, 25(10): 57-59.
[5] 蔡晉龍, 等. 基于集成平臺(tái)的醫(yī)院信息系統(tǒng)集成方案[J]. 中國(guó)醫(yī)療器械, 2007, 31(6): 419-421.
[6] 謝鋒, 等. 信息系統(tǒng)基礎(chǔ)上架構(gòu)無(wú)線臨床信息系統(tǒng)[J]. 中國(guó)醫(yī)療器械, 2008, 32(2): 114-116.
[7] 劉旻, 等. 虛擬技術(shù)在醫(yī)院信息化中的研究[J]. 中國(guó)病案, 2010,11(1): 54-56.