引言
醫院數字化是目前國家衛生信息化發展的重點之一,也是國內醫院現代化建設新興的熱點。在數字化醫院中,PACS是比較重要的系統之一。但是,PACS的數據來源于醫療中的各個環節和醫院信息系統的各個子系統,而許多子系統是由不同時期不同廠家開發的,這樣存在異構數據庫的數據共享問題,為了節約成本,充分利用現有資源,不可能全部將現有系統更換。為此,需要采用中間件技術來解決PACS異構數據庫的數據共享問題。
本文在現有異構數據庫領域研究成果的基礎上,針對PACS中異構數據庫數據共享問題,采用XML的異構數據庫中間件技術實現異構數據庫之間信息交換。把來自醫院不同部門的影像數據轉化到中間件這個統一的框架中,進行交互、轉化和加工,從而解決異構數據源的集成問題,進而更有效地利用醫院各種信息資源,為PACS系統中異構數據庫在更大范圍內實現了數據的共享。這一方法具有可擴展性好、跨平臺特性、執行效率較高的優點,具有很高的實用價值。
1 PACS數據庫集成模型設計
本方案采用XML作為異構數據源的全局模式,通過XML的標記來定義PACS的數據對象,具有平臺無關性,適合在不同平臺下進行影像數據交換,而且XML具有數據和表現樣式相分離的特點,同一份XML文檔可和不同的樣式文件相結合,得到不同的數據視圖,可以滿足不同的臨床醫療需求。Web Senrices完全是基于XML、SOAP、HTTP、WSDL、UDDI等獨立于平臺、獨立于軟件開發商的標準。是創建可互操作的、分布式應用程序的新平臺。它能跨越防火墻的通信,而不用像傳統的分布式組件技術那樣,要開放特定的端口,才允許訪問內部資源,給相關單位帶來安全上的漏洞。web Services是建立在發布服務的應用程序和使用服務的應用程序之間的松散耦合之上的,因而具有很好的靈活性、可擴展性、且其實施既便宜又快速。方案的總體框架分為3個部分,如圖1所示。
圖1 PACS數據庫集成模型
1.1數據層
數據層中,每個數據源由一個web服務包裝器來進行封裝,實現對各局部數據源的代理。將生成的web服務注冊到服務注冊中心,服務請求者(中間層的服務引用)調用服務后,wreb服務根據請求執行相應的服務,服務完成后把結果打包為SOAP傳送給中間件層。
1.2中間件層
該層是PACS數據集成的業務邏輯核心,主要包括結果生成、服務結果、服務分解、服務引用,服務管理和注冊服務。服務引用的功能是:根據服務注冊中心提供的WSDL文件生成本地代理,并與相應的Web Service綁定,通過調用服務引用公共的函數就可以獲得W曲服務提供的有關功能,它屏蔽了操作系統、網絡協議、數據格式、開發工具、數據位置等差異,同時由于請求者和調用者之間數據傳輸采用的是SOAP,因此能夠穿透防火墻,這體現了Web服務的一個重要優勢。中間件首先要初始化,根據服務管理的界面生成虛擬數據庫,即元數據。當用戶提交請求后,由服務分解模塊根據元數據中的映射關系將用戶的請求分解為相應的請求,并轉給對應的服務引用去申請Web服務。由Webservice包裝器將執行完后的結果打包交回給中間件層,由服務結果模塊進行相應的處理,再由結果生成模塊根據用戶請求傳給應用界面顯示給用戶。
1.3應用層
這部分負責與用戶實現交互。使用者調用中間件層返回的生成結果,應用層根據需求的不同,以不同的格式包裝后顯示給應用層。使用者不需要了解數據所在地、數據存儲格式以及在數據所在系統等細節,用戶根據工作提出集成請求,經過中間件層和數據層的處理后就可以得到想要的結果。
2中間件中關鍵模塊的設計與實現
2.1數據初始化
通常異構數據庫的基礎數據會存在著相同意義不同字段名稱的情況,這樣為訪問數據庫造成了很大的麻煩,所以需要在系統開始運行階段為系統中的虛擬數據庫創建一個能體現他們之間相同之處的表格。這個表格提取異構數據庫表中所有具有相同意義的基礎字段,然后由中間件管理員創建一個元數據字段,每個局部數據庫管理員登錄后,從元數據中選取自已數據庫中具有相同意義的表,并且將自己表中與元數據字段具有相同意義的字段做映射,從而實現了系統的初始化部分,為中間件層的服務分解階段提供了基礎。
2.2服務分解模塊
本模塊主要負責接收從用戶客戶端發送過來的標準SQL,根據元數據中全局數據與局部數據的映射關系,將全局查詢語句的字段名映射為局部數據的字段名,同時獲得局部數據庫在UDDI中的注冊信息,這樣就將全局查詢分解成針對不同數據庫的子查詢。查詢分解模塊首先得到SQL語句中的元數據表表名,接著查詢系統初始化階段生成的以元數據表表名命名的飆文件,從中查詢到與業務處理系統處理的業務類型相同的局部數據庫表,然后將SQL語句中的元數據表字段對應為相應的局部數據表字段,將元數據表的XML文件中每個局部表合并成一個SQL語句,最后把它們放入到服務引用模塊,由服務引用模塊根據其所提供的服務調用相應的遠端數據層的WebService包裝器。
利用Visual Studio.NET 2005開發平臺與C#程序語言來開發此異構中間件,同時用DOM來對XML進行解析。以下是系統實現中解析XML的部分代碼。
2.3服務引用模塊
該模塊接收從服務分解模塊傳送過來的局部數據源,依據Wreb Service包裝器在UDDI中的注冊服務信息,從UDDI服務中心查找到所對應服務的WSDL文件,生成本地代理,這樣就可以調用局部數據源所提供的W曲服務。在本方案中,采用在運行時生成代理的方法來添加wreb引用。首先將UDDLSDK類添加到項目中,利用Inquire屬性獲得UDDI的服務地址,用FindTModel方法查詢全部合乎條件的tModel對象,用getTModelDetail方法取得tModel對象的詳細信息,即TModel類。TModel類包括了tModel的主要屬性,如Category、Identifier、Operator、OverviewDoc等等。
下面是系統服務引用模塊中根據tModel參數,尋找Web服務包裝器在UDDI中注冊的WSDL文件地址的部分代碼:
調用Find_Model函數之后,能得到局部數據源包裝器的WSDL文件的地址,通過該地址調用InvokeWebService函數動態生成本地客戶端代理,然后就可以象調用本地方法一樣調用遠程Web服務包裝器的方法。
FromDom(cplist,ccV),
2.4服務結果模塊
該模塊的主要功能是取得各異構數據源包裝器執行完后的服務結果。本模塊中用Dataset對象接收數據。DataSet類是在ADONET中實現的,.NET中的擴展支持可以自動創建和填充DataSet對象和類型化DataSet對象。DataSet能夠將自身序列轉化為XML,并能在序列化過程中表現內容的架構。因此使用DataSet對象可簡化應用程序的開發。DataSet對象實際上是所查詢數據集的XML的內存表示。使用Dataset的WriteXml方法可將其數據集保存為XML文檔。
實現本系統的中間件時,采取讀取客戶端IP地址和計算所查詢的異構數據庫個數來命名從異構數據源返回的XML文檔。該部分實現的關鍵代碼如下:
2.5服務生成模塊
該模塊的主要功能是:將查詢各異構數據庫所返回的結果合為同一筆記錄,按照數據庫中間件系統與業務處理系統的接口進行封裝,最后返回給應用層。本系統仍然通過DOM技術對XML文件進行解析和合并。首先加載從服務結果中生成的XML文件,用DocumentElement方法得到需要合并的多個XML文件的根元素,然后根據服務結果中的XML文檔命名法,取計算為l的文檔為準,用ImportNode方法將其它XML文件中的數據合并到該文檔,最后根據元數據表與局部數據的映射文件,利用ModifyNodeName函數修改該文檔的節點,使其符合服務請求時查詢結果要求。實現該模塊的部分代碼如下:
2.6 UDDI注冊服務中心
該模塊的主要功能是記錄能提供服務的各種相關信息,用來供服務引用模塊根據服務注冊中心的WsnL文件生成服務引用信息。在構建Web服務應用程序時,可以采用設計時和運行時兩種編程模式。
設計時訪問是在編制面向服務的應用程序時,通過注冊中心的瀏覽頁面找到所需要的web服務,并在應用程序中調用它。運行時訪問是通過在應用程序中編寫代碼查找在注冊中心里注冊的Web服務,并且對它進行調用。無論使用哪一種方法,都需要先將Web服務的WSDL文件注冊為tModel,利用tModel來尋找所需要的服務信息。本系統中利用Windows Server 2003所提供的UDDI服務功能來建立私有的UDDI注冊中心。
3實驗結果
首先利用Microsoft的web用戶界面進行UDDI注冊,然后以數據庫中間件管理員的身份登錄中間件注冊全局信息,接著以局部數據庫管理員登錄中間件,注冊本地數據庫信息與元數據表的映射信息。系統運行過程主要是用戶啟動瀏覽器,通過數據庫中間件對異構數據庫進行訪問,并在瀏覽器端看到查詢的結果。如圖2所示是箱人住院號和姓名后所得到的查詢結果。
圖2病人病歷查詢結果顯示圖
4結束語
由于PACS中異構數據源之間的差異,使得異構數據源集成了一個很難解決的問題,文章設計并實現了一種基于XML和WEB Services異構數據庫中間件技術的集成方案。把來自不同部門的影像數據轉化到中間件這個統一的框架中,進行交互、轉化和加工,從而解決異構數據源的集成問題,進而更有效地利用醫院各種信息資源,為PACS系統中異構數據庫在更大范圍內實現了數據的共享。最后本文以一個實驗系統實現了該數據庫中間件的主要功能。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:PACS中異構數據庫中間件的研究與實現