徐洪華,王艷春,董光,師為禮
(長春理工大學 計算機科學技術學院,長春 130022)
國家在“全國信息化發展規劃綱要”中已明確指出“要開展以地(市)范圍為單元的區域衛生信息化建設試點和研究工作,建立區域衛生信息化示范區”。SARS以后中央對全國的醫療衛生系統建設更加重視,希望走出一條適應我國國情的將公共衛生、醫療、保健、緊急救助等融為一體的以城市為中心的統一指揮系統。
社區健康檔案管理系統解決方案的核心是個人健康檔案的建立。個人健康檔案數據[1]的采集重心在社區衛生服務機構。采集居民從出生、發育、結婚、生育、患病、老年直至死亡的全過程中所有的健康活動數據。通過數字化、信息化、網絡化技術,以個人健康檔案為基礎、家庭檔案為單位、社區檔案為范疇,建立連續、完整、動態的個人健康信息數據庫。臨床醫生可以根據及時準確地掌握患者的相關資料,對患者進行相應治療;公共衛生人員可以根據檔案信息了解威脅群眾健康的疾病特征和規律。準確而完善的檔案信息可以使患者、醫生、公共衛生人員和決策者都從中收益。
為實現合保系統和醫保系統向社區衛生服務機構傾斜,建立社區衛生服務首診制奠定基礎,社區健康檔案管理系統需要實現與合保和醫保的數據共享交換接口;為實現社區與醫院的雙向轉診,社區健康檔案管理系統需要與醫院HIS、婦幼保健系統、兒童計劃免疫系統、計劃生育系統之間建立數據共享交換接口,定期交換就診記錄,拼接完整的個人健康檔案。在數據快速傳輸的基礎上,保證數據在不同系統之間進行完整而準確的交換,才能夠實現不同系統間信息的互聯互通。因此,對不同數據源的異構數據[2-5]進行數據整合就是一項重要而又具有挑戰的任務。
目前,醫療領域的各個部門都建立了不同的信息管理系統,建設初期由于各種資源和技術的限制,這些系統的數據庫系統可能都存在很大差異,導致數據無法共享,從而形成了信息孤島現象。社區健康檔案管理系統的解決方案需要考慮平臺兼容性、數據異構性、穿越防火墻的方便性和成本等問題。針對其中的數據異構問題,本文提出采用XML格式對不同數據源的異構數據可以實現數據整合的方法。
XML作為SGML的一個子集,保留了SGML的強大功能,降低了SGML的復雜性。使用XML可以將來自不同數據源的數據很容易地集成在一起,然后以XML格式發送給客戶端或者其他服務器,接收到數據以后,可以通過數據解析對數據做進一步的處理。XML文檔中的DOM模型允許使用腳本或者其他程序設計語言來處理數據,使得數據的轉換具有更好的靈活性,從而有利于解決網絡中繁重的異構數據交換問題。
本系統中,需要交換的數據具有多個數據源,不同數據源的數據模式可能也不相同,導致數據源和目標數據在結構上存在差異。在進行數據查詢時,用戶的查詢指令會被作為全局事務經過處理后分解成對應各自數據源的子事務,子事務的處理結果將數據模式以統一的XML格式來描述,這就需要使用XML的DTD或者XMLSchema來定義文檔的結構,DTD定義XML文檔的基本結構,但不涉及到任何有關的實際數據,通過定義適當的 DTD將源數據庫中的數據轉換成XML文檔,然后使用DOM技術來合并XML文檔,這樣就可以將XML文檔中的數據打包返回給用戶,從而實現了異構數據的交換和集成。
本框架結構采用層次結構,包括應用層、中間層和數據層。這種層次結構具有很好的可移植性,可以在不同的平臺上使用。本框架結構的構成如圖1所示。

圖1 異構數據集成框架結構Fig.1 Framework of heterogeneous data integration
應用層是本框架的最高層,它由網絡客戶端組件構成。在網絡環境中,他的主要功能是通過圖形化的用戶接口直接實現用戶操作。客戶端通過提交用戶請求和接收中間層返回的XML形式的結果數據與中間層進行通訊[6-8]。這樣,系統間的交互性就可以通過XML數據模式得以實現。
中間層是本框架的核心層。本層包括四個組成部分,即用戶接口、管理器、查詢器和元數據庫。這一層的主要功能是實現數據層和應用層之間的連接。數據集成的過程也是基于“動態集成”的思想,也就是說在操作之前,不提供數據的預定義模式或者全局模式。為了實現用戶視圖,需要創建一個虛擬模式。這個虛擬模式由元數據庫中存儲的來自不同數據源的數據來共同實現。用戶的查詢處理會被分解成數據源對應的子查詢,每個查詢器負責處理一個子查詢,實現用戶信息與數據層的關聯。查詢器同時與封裝器進行通訊,負責接收和傳送從數據層到中間層的數據結果。這種處理機制使得在整體框架結構不變的情況下,允許用戶添加或者刪除數據源。這種方法具有很好的伸縮性,數據異構的問題也可以得以解決。
數據層包括異構數據源和封裝器。每個封裝器直接與數據源相連接,它們的主要任務是服務于來自查詢器的請求,把數據源返回的結果轉換成統一的XML數據模式,并將結果包裝后返回給查詢器,再由查詢器將其傳遞給管理器。
這種基于層次結構的框架可以在任意兩個相鄰的層面之間發送和接收數據,實現了系統的可擴展性和交互的靈活性。
應用層位于框架結構的最上層,網絡客戶端組件為用戶提供數據位置和結構的透明性,這使得系統具有極大的靈活性。用戶可以在不用獲知數據模式和查詢語言等相關知識的情況下,發出用戶查詢請求。應用層主要的功能包括:
1.實現對圖形化用戶接口的支持。
2.查看不同數據源的全局模式,為用戶提供統一的查詢模式,創建用戶視圖。
3.確保用戶的查詢請求能夠準確無誤地傳遞給中間層。顯示從中間層反饋回的XML模式的數據結果。
中間層包括用戶接口、管理器、查詢器和元數據庫,是本框架的核心層。其具體構成如圖2所示。

圖2 中間層工作過程Fig.2 Working process of the middle layer
元數據庫[9,10]存儲來自不同數據源的數據的描述信息。元數據庫中存儲的信息提供給用戶接口和管理器組件使用并實現用戶接口和管理器組件之間的數據關聯。元數據庫提供用戶級別的事務處理,具體功能描述如下:
1.對用戶的合法請求和全局事務的創建提供虛擬數據。
2.對不同數據源的用戶操作權限進行控制和分配。
3.提供查詢創建和優化所需要的必要信息,如存儲路徑、數據分配等。
4.提供物理數據和虛擬數據之間的消息映射,為全局事務的轉換提供便利。
5.為用戶的請求提供虛擬數據,實現數據集成,消除存在的異構問題。
元數據庫中包含以下幾類信息:
1.數據源信息。數據的描述信息和不同數據源的數據約束信息;數據源中的實際實體和屬性同虛擬數據的實體和屬性的對應關系;每種數據源的數據模式信息;每個數據源的域名,主機名和物理地址等信息。
2.相關的操作權限信息。用戶的存取權限;查詢所需要的認證信息。
3.事務優化需要的信息。創建事務和產生子事務所需要的優化信息。
用戶接口的主要功能是負責向用戶展示各種數據源的全局模式,產生與用戶請求相關的全局事務。全局事務可以是一個標準SQL查詢請求。SQL查詢中使用虛擬的屬性和關系,這些虛擬的屬性和關系可能來自一個或者多個不同的數據源。用戶信息(名字,地址等),用戶種類(本地或遠程)和全局事務將會被打包成一個用戶信息包,然后傳遞給管理層。用戶接口隨即將從管理器得到的結果提交給客戶端。
管理器負責向查詢器產生并傳輸子事務,同時將查詢器得到的數據結果整合成統一的XML數據。管理器主要完成以下功能:
1.權限分析。決定用戶是否有操作數據源的權限。
2.事務優化處理。從元數據庫中獲取查詢優化所需要的信息,包括數據分配,統計信息等,然后對全局事務進行優化。對優化后的事務進行分解,得到幾個子事務,并且,將每個子事務分配給相應的數據源。在這個過程中,全局事務中的所有虛擬屬性和關系被目標數據源中的實際屬性和關系所替換。
3.生成查詢器。根據子事務的數量對查詢器進行初始化,以實現對遠程數據源的操作。在查詢器實現對目標數據源操作之前需要包含諸多信息,如用戶對數據源的操作權限、數據源相關子事務和目標數據源地址等。
4.數據集成。數據集成是將從查詢器遞交的來自不同數據源的數據整合成統一的XML數據。數據的集成過程要保證數據的查詢效率和時效性。圖3給出了數據集成的處理過程。

圖3 數據整合過程Fig.3 Data integrating process
查詢器的主要功能是負責完成以下任務:
1.將從管理器發出的子事務及相關信息傳遞給目標數據源。
2.與封裝器溝通以獲得所需要的信息。
3.在結果數據返回到管理器之前,對數據進行必要的封裝處理。
4.收集并傳送從封裝器返回的上層所需要的數據結果。
數據層包括數據源以及對應的封裝器。這些數據源可能是異構的,包括結構化數據,如關系數據庫,或者XML模式的半結構化數據。封裝器主要實現以下功能:
1.接收并解析來自查詢器的需求。
2.核實查詢器傳遞的信息并授權用戶對本地數據的操作權限。
3.建立與數據源之間的聯系,可以通過使用ODBC、JDBC等接口方式。
4.對子查詢進行處理,并將獲得的查詢結果轉換成標準的XML模式,然后對結果進行封裝后傳遞給中間層的查詢器。

圖4 封裝器工作過程Fig.4 Working process of wrapper
不同數據源的異構數據重構對研究和開發人員來說是一項具有挑戰的任務,也是當前較為活躍的研究領域。本文提出的這種層次結構模型利用現有的工具和技術,具有易于實現的特點,同時,該結構模型對用戶隱藏了繁雜的數據轉換和集成過程,可以根據需要添加或者刪除數據源,具有操作的靈活性和系統的易擴展性。
但是,現存系統的數據異構問題可能更為復雜,可以包括結構化數據,半結構化數據和非結構化數據。本結構模型目前實現的包括結構化數據和半結構化數據集成,而半結構化數據主要指 XML數據格式。對于非結構化數據的處理將是進一步研究工作的內容。
隨著信息技術的發展,我國醫院建立了初步的醫院信息系統。但這些系統通常都由不同的開發商研制,各個醫院信息系統的標準、規范不統一,各個醫療機構之間的信息格式也不盡相同,本層次結構模型的提出,使得社區健康檔案系統在和醫院進行數據交換和數據共享成為可能,從而真正實現醫療衛生系統之間的互聯互通。
[1]中華人民共和國衛生部.2007國家衛生統計調查制度[M].北京:中國協和醫科大學出版社,2007:81.
[2]聶麗平,張維勇,徐勁松.分布式異構數據庫集成技術的研究與應用[J].合肥工業大學學報:自然科學版,2006,29(3):309-312.
[3]王玉標,文俊浩,趙瑞鋒,等.基于Web服務的異構數據庫共享及同步機制[J].計算機工程與設計,2009(24):5774-5777.
[4]郭瑞華.數字圖書館異構數據源的分層式本體整合方法研究[J].圖書館學研究,2009(10):20-22.
[5]李慶忠,王棟.關于語義網格環境中異構數據資源整合的研究[J].南京大學學報:自然科學版,2006,42(2):141-147.
[6]黃毅,鐘碧良.基于XML的異構數據庫間數據遷移的研究[J].科技管理研究,2008,28(8):173-174.
[7]Buneman P,Fan W,Simeon J,et al.Constraints for semi structured data and XML[J].SIGMOD Record,2001,30(1):47-54.
[8]Christian O,Roger K,Richard O.Integrating Heterogeneous Data Sources using the COIL Mediator definition Language[J].ACM.March,2000,20(1):19-21.
[9]彭月英,苗麗,歐啟忠.語義網格環境中異構數據資源整合研究[J].計算機工程與設計,2008,29(13):3532-3535.
[10]尚蕾,孫志揮.基于XML的異構數據集成系統的查詢處理[J].計算機工程,2005,31(5):79-81.