【作 者】陳巍,劉旻
首都醫科大學附屬北京朝陽醫院信息中心,北京市,100020
隨著醫療行業信息化進程的不斷深入,各種信息系統滲透到醫院運營的多個環節。由于軟件專業化及醫療領域的特殊性,所有系統很難由同一軟件商供應,而醫院的集中化管理卻需要跨越不同系統的業務流程,實現數據交互與共享。如何將來自不同廠商、各具特色的專業系統進行企業級應用整合,成為醫院信息部門的重要任務。
企業應用集成(EAI)是將不同平臺、不同方案建立的異構系統整合、集成的一種方法和技術。EAI通過建立底層結構,來聯系橫貫整個企業的異構系統、應用和數據源等,實現系統間的無縫共享和交換數據,使企業管理者能將視線放在核心業務的運營和發展上。
EAI以分層機制運作,包括消息通信層、數據映射層和工作流管理層等。根據應用整合的深度,EAI可在不同層面實現,包括界面集成、業務過程集成、應用集成、數據集成等[1]?;赟OA架構的應用集成方案是目前的發展方向。
SOA即面向服務架構,是一種分布式的軟件組件模型。系統的業務功能被封裝為可供他人使用的“服務”,并通過定義良好的接口和契約聯系起來,在某系統使用其它系統中的功能時,無需考慮其具體實現與物理位置。SOA架構集成各系統間具有相對獨立性和松耦合關系,為解決多種異構系統集成提供有力支持[2]。
SOA架構的核心組件包括服務提供者、服務使用者和一個中立的服務總線機構,集成系統的所有業務功能都以服務形式在總線中注冊,以便使用者能正確調用,也便于管理人員能對其統一控制與協調,避免在系統集成中產生點對點式的復雜網絡交互。
為滿足多種不同的業務和管理需求,醫院運行著下述一些信息系統。
(1)管理門診和住院業務的醫囑傳輸系統(Order Communication System) 這是從“以財務計費為中心”的醫院信息系統(HIS)向“以病人為中心”的臨床信息系統(CIS)過渡的一種系統,是我院的核心業務系統。服務器為IBM的AIX,數據庫為Oracle 9i。
(2)實驗室信息系統(LIS) LIS與OCS為不同軟件商提供,基于Visual C++開發,服務器是Win2003 Server + SQL Server。OCS與LIS的數據交換通過數據庫中間表。
(3)醫學影像歸檔與傳輸系統(PACS) 它是GE公司采用Jave開發的多層應用結構,中間層運行JBoss作為Web Server和應用服務器,客戶端基于Swing框架和Java虛擬機(JVM)運行[3]。與LIS一樣,PACS也借助數據庫中間表與OCS交互。
(4)醫院門戶網站 其中專家介紹、出診時間、網上預約等模塊與OCS系統有直接或間接的數據交互。網站采用Visual Studio 2005和C#開發,基于ASP.Net架構。
此外,還包括醫保上傳接口、財務管理系統、物資管理系統、供應室管理系統,以及掛號處和住院處還有用于應急的本地系統等。
上述眾多業務系統的運行環境和軟件架構都各不相同,但各系統間都存在數據交互或共享的需求。早期是在各系統間建立中間表或增加點對點的通信模塊,來實現數據溝通,但隨著系統的不斷增多,點對點的方式演化成極為復雜的交叉通訊網絡,不但難于升級與維護,而且系統的運行效率、穩定性和安全性都成為問題。
為了保證各系統的相對獨立性,又要實現系統間的通暢便捷的數據交換,還要保證整個系統群集的結構穩定和可維護性,我們引進了SOA架構技術,以服務總線的方式重新設計應用集成方案。
第一階段對三個主業務系統(OCS、LIS、PACS)進行了集成與整合,其中OCS全面管理我院的門急診和住院業務。OCS以醫囑信息為核心,在傳統HIS基礎上結合業務流思想,將醫療全過程信息進行數字化[4],它是我院最核心的業務系統。
首先對OCS系統進行業務分析,明析系統邊界,將各種業務操作歸類。我們將它分為基礎類和邊界類操作,前者一般是在OCS系統內部運行的功能,后者是與其它業務系統有數據交互的過程。然后,把邊界類操作剝離出來,抽象或封裝成服務的形式。
在OCS操作歸類的基礎上,建立企業服務總線(ESB)??偩€式的體系結構可以將原先各個系統間的點對點連接轉化為多個系統對中心的連接方式,由ESB提供各種消息路由和數據轉換等機制,以消息中間件或Web Service作為物理消息傳遞背板,保證在分布式環境下可靠高效的傳輸[5]。
在具體實現上,因為OCS是早期用VB6.0開發的二層的C/S應用,因此對OCS中邊界類業務過程采用Asp.net架構開發Web Service實現再封裝,開發工具為Visual Studio 2005和VB.Net。這樣可最大限度利用原有資源,加快項目建設速度。
實驗室系統(LIS)原為Visual C++開發,我們將其分離為底層操作和業務操作兩部分。底層操作主要負責與檢驗設備通信的工作,要求廠家提供DLL和API;業務操作部分主要是化驗申請、登記、計費、結果核對與傳送、回顯與打印報告等處理過程,我們用VB.Net或C#重寫,基于Asp.net架構封裝,與OCS的Web Service一起生成WSDL(Web服務描述),注冊在基于IIS的應用服務器中。
醫學影像系統(PACS)的專業性較強(如對CT、MRI等影像采集和圖像變換算法等),是JAVA開發的基于Web的多層應用,本身就能對外提供Web Service接口,只是與OCS基于.Net平臺的Web Service交互時,需要作某些格式轉換。這可以通過增加服務適配器來實現[6]。
OCS、LIS和PACS三個系統集成完成后,其它輔助系統或醫院的運營管理系統(如物流、財務、薪資、績效、醫保、OA、門戶網站等),都可以按上述2種模式中的一種,逐步并入服務總線中,實現醫院級的系統大集成,體系結構如圖1所示。

① 要實現高效、有序、無障礙的應用集成,必須制定數據的標準格式。比如在提供Web Services時,盡量使用XML Schema中支持的類型,否則在信息交換時會出現序列化和反序列化異常。
② 系統集成的底層結構、軟件、硬件以及異構網絡的特殊需求都必須得到集成,可采用平臺集成工具(如VM虛擬機技術),以保證各系統能快速安全的轉換[7]。
③ 應用集成不宜求快求全,應該一步步實現,穩扎穩打。作為集成平臺的服務總線與標準的建立也不是一日之功,總線或平臺本身也可以分層實現,并盡量采用松耦合的連接機制,便于日后的擴展與調整。
我國醫院的信息化建設經多年發展,大多形成許多相互協作的業務系統,在實現統一的臨床信息系統以前,整合現有的分散系統是一個重大課題,特別是在我國衛生信息標準化程度還較低的情況下。借助SOA架構實現企業級的應用集成,能幫助醫院升級和管理其分散的基礎業務,以形成集中管理的平臺,其中強調復用和松耦合,以及注重接口和標準化,都為醫院應用系統帶來更佳的擴展性和靈活性,從而快速滿足醫院的業務需求變化,使醫院掌握信息化建設與發展的主動權。
[1] 吳曉, 等. 基于SOA的企業應用集成研究[J]. 信息技術, 2007, 31(4):97-99.
[2] 桂友武, 等. 用SOA與Web Services企業集成框架設計[J]. 信息技術, 2007, 31(10): 56-58.
[3] 呂校春, 等. 基于Swing的JavaGUI組件開發[J]. 機械工程師, 2008,(5): 129-131.
[4] 劉旻, 等. 醫囑傳輸系統中業務自鎖的研究與解決[J]. 微型電腦應用, 2009, 25(10): 57-59.
[5] 蔡晉龍, 等. 基于集成平臺的醫院信息系統集成方案[J]. 中國醫療器械, 2007, 31(6): 419-421.
[6] 謝鋒, 等. 信息系統基礎上架構無線臨床信息系統[J]. 中國醫療器械, 2008, 32(2): 114-116.
[7] 劉旻, 等. 虛擬技術在醫院信息化中的研究[J]. 中國病案, 2010,11(1): 54-56.