◆陳航白鐵呂冰馬民
門診醫生工作站系統以門診電子病歷為中心,支持醫院建立門診電子病歷庫。它為醫生提供了高效的電子病歷和電子處方管理平臺,方便統計分析和數據挖掘,能夠提高醫院管理水平和醫生診療水平。同時其支持在院內使用一卡通或醫保卡,為患者建立連續的就診資料,提高診療與服務水平以及患者的忠誠度。
在實施門診醫生工作站系統后,醫生可以方便地獲取患者的診斷史、病史、用藥史、過敏史、檢查檢驗情況等,并通過計算機開具電子處方和電子檢查檢驗單,記錄病人病情變化情況,建立醫療診斷知識庫。如在診斷時遇到疑難雜癥,可利用計算機進行輔助分析。同時可方便獲取相關醫療知識,查閱各種疾病的診療常規、藥物信息、檢驗信息等醫學數據。
但是,醫院信息化發展是一個循序漸進的過程,可能門診醫生工作站、掛號系統、門診收費系統、處方發藥系統、LIS系統、PACS系統、合理用藥系統、門診藥房系統、檢查/檢驗系統等并不是同一廠商開發的,它們的運行環境、所使用的數據庫、開發語言等并不相同,這就產生了“信息孤島”。主要表現在系統間信息交流不順暢,存在大量冗余信息,系統間無法實現信息共享和協同工作。為了解決這些問題,本文基于 SOA(Service-Oriented Architecture)架構,采用 Web服務技術構建門診醫生協同工作系統,以使門診醫生工作站系統可以與掛號系統、門診收費系統、處方發藥系統、LIS系統、PACS系統、合理用藥系統、門診藥房系統、檢查/檢驗系統等協同工作。
(1)動態生成候診、就診信息;(2)提供輔助診斷分析;(3)下達檢查單;(4)下達處方、注射單;(5)生成病歷;(6)醫生個人使用的常用處方模板;(7)醫生公用處方模板;(8)常用病歷管理;(9)檢查檢驗預約,并把檢查檢驗結果傳送給門診醫生工作站系統;(10)病人檔案信息查詢,包括完整的處方、費用、病歷、檢驗結果、檢查報告、圖像報告等;(11)病歷統計分析表,根據需求自定義統計表;(12)系統屬性設置,包括工作站類型、應診科室、掛號類別、領藥區、病歷處方打印方式、默認打印機等。
SOA是一個面向服務架構的組件模型[1]。在這個模型中,松耦合的應用被描述、發布和調用。在SOA模型中,主要有3種角色:服務消費者(Services Consumer)、服務提供者(Services Provider)和服務代理(Services Registry)。工作原理為:服務提供者發布所提供服務的信息及訪問接口到服務代理;服務消費者在服務代理中查找所需服務的信息,找到后通過綁定和調用與服務提供者建立關系并使用其提供的服務。
Web服務(Web Services)是一種面向服務架構的技術,通過標準的Web協議提供服務。Web服務可被理解為一個軟件系統,它能夠被描述并通過網絡發現、發布和調用。Web服務的核心規格由XML、SOAP、WSDL和 UDDI4部 分 組成[2]。 XML(eXtensible Markup Language,可擴展標記語言)是Web服務實現的技術基礎,它消除了不同平臺和不同語言編寫系統之間的數據結構和消息交換模式差異,使得數據交換方式在XML技術的支持下統一起來[3]。SOAP(Simple Object Access Protocol,簡單對象訪問協議)是一種基于XML的不依賴傳輸協議的表示層協議,用來在應用程序之間以對象的形式交換數據。WSDL(Web Services Description Language,Web服務描述語言)定義了一套基于XML的語法,將Web服務描述為能夠進行消息交換的服務訪問點集合。UDDI(UniversalDescription,Discoveryand Integration,統一描述、發現和集成)是一套面向Web服務的信息注冊中心實現標準和規范,創建UDDI注冊中心的目的就是實現Web服務的發布和發現[4]。
門診醫生工作站系統、掛號系統、門診收費系統、處方發藥系統、LIS系統、PACS系統、合理用藥系統等既可以作為服務的提供者,也可以作為服務的消費者。首先,基于SOA架構的門診醫生協同工作系統將它們提供的服務描述成XML,封裝成 SOAP包,加載在 HTTP上,并在不同的應用系統之間傳遞。其次,生成 WSDL文件,在 UDDI服務注冊中心發布,其它系統可以作為服務的消費者,查詢UDDI服務注冊中心,發現服務,調用服務。系統、門診收費系統、門診藥房系統、檢查/檢驗系統等是基于局域網的C/S模式,門診醫生協同工作系統是基于多層架構的B/S模式。系統保持現有的模式,將它們提供Web服務的數據打包成SOAP包,在門診醫生工作站與門診掛號系統、門診收費系統、門診藥房系統、檢查/檢驗系統之間傳遞信息,達到數據層的集成[5]。
系統分為數據訪問層、數據實體層、業務規則層、Web服務層、客戶端,使用戶能夠在瀏覽器界面上使用門診醫生工作站、門診掛號系統、門診收費系統、門診藥房系統、檢查/檢驗系統提供的 Web服務。系統技術架構如圖1所示。
基于Web服務的門診醫生協同工作站系統是采用多層架構的B/S和C/S混合技術架構。各醫療機構的門診醫生工作站、門診掛號
數據層集成是門診醫生協同工作系統的基礎。具體設計過程:使用IBM DB2數據庫,作為統一的數據集成中心。DB2可以直接存儲XML數據,可以將搜索結果以XML格式輸出,實現了異構系統的互操作性,奠定了基于Web服務的門診醫生協同工作系統的基石。

圖1 門診醫生協同工作系統技術架構
根據異構數據庫的表結構進行數據對照,從門診掛號系統、檢查/檢驗系統中提取數據給門診醫生工作站。門診掛號系統提供的數據包括:候診病人信息、已掛號病人分類排隊信息等;檢查/檢驗系統提供的數據包括:檢查/檢驗的預約安排、報告信息等。從門診醫生工作站系統提取數據提供給門診收費系統、門診藥房系統、檢查/檢驗系統等。門診醫生工作站開出的電子處方自動發往門診收費和門診藥房。處方收費確定后可將擺藥標志自動發往門診藥房。后臺門診藥師可根據處方信息進行藥品調配。此外,門診醫生站可以向檢查/檢驗科室發出申請[6]。
本系統設計通過Xm lSerializer類實現 XML序列化,把實體類序列化成 XML文件;向 XML序列化的輸出內容添加 SOAP封套、題頭和主體,打包成 SOAP包,加載在HTTP協議頭,通過互聯網在不同系統之間傳遞。門診醫生工作站、門診掛號系統、門診收費系統、門診藥房系統、檢查/檢驗系統接收到SOAP包后進行拆包,把XML對象反序列化為實體類的對象,并傳送給相應模塊[7-8]。
數據訪問層主要用來連接數據庫,向數據庫表中添加記錄,從數據表中查詢、修改記錄等,也可以把記錄的查詢結果逐字段的賦予與數據實體層相對應的屬性。
數據實體層用于數據訪問層和業務規則層調用,主要表示數據庫的表結構,便于進行XML序列化,可以把實體類對象序列化成XML Schema。本系統用C#設計實體類,用類的相關屬性表示數據表中的字段屬性。每一個實體類都包括相應的屬性、構造方法、獲得相應屬性(Get)和設置相應屬性(Set)的方法。
業務規則層包含一些類,這些類可實現應用程序的業務邏輯,被客戶端調用。如本系統的門診醫生工作站開出的電子化驗申請單、PACS申請單、電子用藥處方等。業務規則層調用數據訪問層的對象可實現上述業務邏輯。
Web服務層具體實現門診醫生工作站、門診掛號系統、門診收費系統、門診藥房系統、檢查/檢驗等系統的Web服務。如患者到檢查科室及影像、B超等輔助診斷科室前,醫生已經在影像工作站、B超工作站上查看到門診醫生申請時對患者的病情描述,對患者進行檢查后,可形成帶有圖像的檢查報告。這時門診醫生工作站提供給檢查/檢驗系統的檢查/檢驗申請單,以及檢查/檢驗系統提供給門診醫生工作站系統的檢查/檢驗報告等功能,就需要在.NET XML Web Services的Web Method方法中實現。Web服務層的設計過程如圖2所示。
系統通過Web語言描述門診醫生工作站、門診掛號系統、門診收費系統、門診藥房系統、檢查/檢驗系統的服務功能,生成描述該系統功能和調用的Web服務描述語言文件,然后生成簡單對象訪問協議的基于SOAP的服務框架,在此基礎上開發Web服務的業務邏輯。最后,使用 SOAP服務器將 WSDL發布在微軟的UDDI注冊服務器中[9]。系統構建 Web服務客戶端來調用 Web Services。Web服務客戶端可以是多種形式,如可以設計W indows Form窗體訪問Web服務,也可以設計HTML頁面調用Web服務。
通過對門診醫生工作站系統的功能說明,結合對SOA架構和Web服務技術的解釋,提出了基于Web服務的門診醫生協同工作系統,并詳細說明了系統的技術架構和功能,可實現門診醫生工作站、門診掛號系統、門診收費系統、處方發藥系統、LIS系統、PACS系統、合理用藥系統、門診藥房系統、檢查/檢驗系統的應用集成。通過這種應用集成實現了信息整合,有效地消除了“信息孤島”,提高了門診醫生的工作效率,優化了門診就醫流程。今后可在數據集成的基礎上,實現業務過程的集成,不僅使門診醫生工作站、門診掛號系統、處方發藥系統、LIS系統、PACS系統、合理用藥系統、門診收費系統、門診藥房系統、檢查/檢驗系統相互傳遞,更重要的是使這些系統可以在業務層面進行交互和協同工作。

圖2 Web服務層的設計過程
[1] 張海川,王盼卿,陳家文.基于SOA的裝備保障領域信息系統集成研究[J].微計算機信息,2006,22(6):57 -59.
[2] 徐宏發,王衛平,鄭建煌,等.基于HL7和Web Services的區域醫療機構間信息交換平臺研究[J].計算機應用與軟件,2007,24(3):88 -89.
[3] IBM公司.Web服務 -Web的下一次革命[EB/OL].http:∥www -900.ibm.com/developerWorks/xml/indx.shtml,2005 -08-20.
[4] 郭少友.Web服務與企業信息系統集成[J].情 報 科 學,2003(3):306-309.
[5] 袁占亭,張秋余.基于 Web Services的企業應用集成解決方案研究[J].計算機集成制造系統-CIMS,2004,10(4):394-398.
[6] 楊汝超.門診醫生工作站在醫院的應用分析與設計[D].云南大學,2010.18-26.
[7] 郭荷清,王增勛.XML數據綁定及對象序列化的應用研究[J].計算機應用與軟件,2006(5):65-67.
[8] 黃 芳,孫建伶.基于模式的XML文檔元素的序列化標識[J].計算機工程與應用,2004(17):181-183.
[9] Narayanan,Srini,Mellraith,et al.A-nalysis and simulation ofWebservices[J].Computer Networks Volume,2003,42(5):675 -693.