張紅偉 翟鵬程 馮思度 楊健葉 賈貽然
(徐州醫(yī)科大學(xué)醫(yī)學(xué)信息學(xué)院 徐州 221004)
在醫(yī)院的數(shù)字化建設(shè)過程中需規(guī)劃和建設(shè)大量信息系統(tǒng),如醫(yī)院信息系統(tǒng)(Hospital Information System,HIS)、B超、醫(yī)學(xué)影像存儲與傳輸系統(tǒng)(Pictures Archiving and Communication System,PACS)、電子病歷(Electronic Medical Records,EMR)、病理分析、體檢、檢驗(yàn)信息系統(tǒng)(Laboratory Information System,LIS)、財務(wù)管理、智能樓宇等。這些在數(shù)字醫(yī)院建設(shè)中功能各異而又彼此協(xié)同的諸多系統(tǒng)產(chǎn)生大量數(shù)據(jù),來源不一且種類多樣,如何將其集成來進(jìn)行信息互通和數(shù)據(jù)共享,從而充分利用現(xiàn)有信息資源并提高數(shù)據(jù)價值和利用率是亟待解決的問題。
數(shù)據(jù)集成是指將不同來源、格式、特點(diǎn)的數(shù)據(jù)通過各種技術(shù)手段進(jìn)行無縫連接,從而實(shí)現(xiàn)多種數(shù)據(jù)的統(tǒng)一訪問和管理。在研究多源、異構(gòu)數(shù)據(jù)集成技術(shù)方面,國內(nèi)外不少學(xué)者提出不同方案。數(shù)據(jù)集成研究起源可追溯到Mcleod等于20世紀(jì)80年代中期提出的聯(lián)邦式數(shù)據(jù)庫系統(tǒng)[1]。隨著計算機(jī)網(wǎng)絡(luò)的迅速普及和發(fā)展,傳統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)外又涌現(xiàn)出大量的半結(jié)構(gòu)化數(shù)據(jù)。傳統(tǒng)數(shù)據(jù)庫集成方法已經(jīng)無法滿足人們獲取更多、更新數(shù)據(jù)的需求,此時迫切需要一種新的數(shù)據(jù)集成系統(tǒng)。這種系統(tǒng)不僅能集成傳統(tǒng)數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù),而且還可以集成網(wǎng)絡(luò)上應(yīng)用日益廣泛的半結(jié)構(gòu)化和無結(jié)構(gòu)化數(shù)據(jù)。
隨著許多新技術(shù)(如CORBA[2],XML等)的涌現(xiàn),通用異構(gòu)數(shù)據(jù)集成系統(tǒng)的研究也正在如火如荼地進(jìn)行。近年來隨著因特網(wǎng)和萬維網(wǎng)等網(wǎng)絡(luò)技術(shù)的發(fā)展,特別是可擴(kuò)展標(biāo)記語言(Extensible Markup Language,XML)的出現(xiàn)進(jìn)一步推動數(shù)據(jù)集成發(fā)展,對差異更大的數(shù)據(jù)源進(jìn)行集成已經(jīng)成為研究人員的新課題,將重點(diǎn)轉(zhuǎn)移到基于XML的數(shù)據(jù)集成方面[3-5]。此外有學(xué)者將本體技術(shù)應(yīng)用于多源異構(gòu)數(shù)據(jù)集成[6-7],以及使用中間件技術(shù)進(jìn)行異構(gòu)數(shù)據(jù)集成[8-10],在一定程度上解決相關(guān)領(lǐng)域多源異構(gòu)數(shù)據(jù)集成問題,但是沒有針對數(shù)字化醫(yī)院的多源異構(gòu)數(shù)據(jù)集成方案。
ADO.NET起源于ADO(ActiveX Data Objects),是為.NET Framework程序員提供數(shù)據(jù)訪問服務(wù)的組件,提供對SQL Server 和XML此類數(shù)據(jù)源以及通過對象鏈接和嵌入數(shù)據(jù)庫(Object Linking and Embeding Database,OLEDB)和開放式數(shù)據(jù)庫鏈接(Open Database Connectivity,ODBC)公開的數(shù)據(jù)源一致訪問,此外共享數(shù)據(jù)程序可以通過 ADO.NET連接到這些數(shù)據(jù)源并可以檢索、處理和更新其中包含的數(shù)據(jù)[13],對多種不同數(shù)據(jù)源、不同結(jié)構(gòu)數(shù)據(jù)進(jìn)行訪問。近年來Web Service技術(shù)已得到快速發(fā)展和應(yīng)用,其采用XML定義一組Web Service協(xié)議棧,通過SOAP、WSDL、UDDI、WSFL、BPEL4WS等開放協(xié)議和標(biāo)準(zhǔn)提供面向因特網(wǎng)應(yīng)用的統(tǒng)一服務(wù)注冊、發(fā)現(xiàn)、綁定和集成機(jī)制,成為廣域環(huán)境下實(shí)現(xiàn)互操作的一種主要機(jī)制,得到學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛認(rèn)可。將Web Service技術(shù)引入數(shù)據(jù)集成研究領(lǐng)域有助于解決所面臨的應(yīng)用集成、資源共享、系統(tǒng)互操作和標(biāo)準(zhǔn)化等問題[11-12]。針對不同結(jié)構(gòu)的數(shù)據(jù)源開發(fā)相應(yīng)的數(shù)據(jù)集成Web Service并將其發(fā)布以供對應(yīng)的應(yīng)用程序或數(shù)據(jù)源使用,完成該數(shù)據(jù)源向指定目標(biāo)數(shù)據(jù)庫集成。
首先分析數(shù)字化醫(yī)院多源異構(gòu)數(shù)據(jù)特點(diǎn),然后根據(jù)其特點(diǎn)針對性地開發(fā)相應(yīng)Web Service方法并發(fā)布,接著各系統(tǒng)向目標(biāo)平臺提供源數(shù)據(jù),平臺對不同來源的數(shù)據(jù)進(jìn)行特點(diǎn)分析并判斷其種類,最后選用對應(yīng)的方法或基于ADO.NET功能模塊進(jìn)行數(shù)據(jù)處理并將處理后的數(shù)據(jù)集中到一個結(jié)構(gòu)化的數(shù)據(jù)倉庫。在數(shù)據(jù)完成集成后可以進(jìn)行信息的統(tǒng)一查詢、共享、分析等工作。方案中對多源異構(gòu)數(shù)據(jù)集成的處理流程,見圖1。
圖1 多源異構(gòu)數(shù)據(jù)集成方案技術(shù)路線
在分析數(shù)字化醫(yī)院中異構(gòu)數(shù)據(jù)特點(diǎn)、集成需求基礎(chǔ)上共設(shè)計系統(tǒng)數(shù)據(jù)集成的5個功能模塊和數(shù)據(jù)利用的兩個功能模塊,見圖2。其中數(shù)據(jù)集成模塊用于將不同來源、結(jié)構(gòu)的數(shù)據(jù)進(jìn)行讀取,然后分析并根據(jù)結(jié)構(gòu)決定是否集成到目標(biāo)數(shù)據(jù)庫中;數(shù)據(jù)利用模塊主要對集成后的數(shù)據(jù)進(jìn)行統(tǒng)一查詢、共享、統(tǒng)計分析等。
圖2 系統(tǒng)功能模塊
多源異構(gòu)數(shù)據(jù)集成功能是整個平臺的核心。為直觀顯示以及后續(xù)數(shù)據(jù)的集成,該系統(tǒng)分別將患者基本信息數(shù)據(jù)(Excel格式)、患者獻(xiàn)血信息數(shù)據(jù)(Txt格式)、患者診斷信息數(shù)據(jù)(XML格式)、患者體征信息數(shù)據(jù)(Access數(shù)據(jù)庫格式)以及病房溫濕度信息數(shù)據(jù)(字符串格式)顯示在DataGridView中,將集成后的數(shù)據(jù)顯示在另外一個DataGridView中。對于Excel數(shù)據(jù)源、文本數(shù)據(jù)源、Access數(shù)據(jù)庫源以及字符串源等數(shù)據(jù)的集成,采用ADO.NET技術(shù)。其實(shí)現(xiàn)過程是首先將這些數(shù)據(jù)做一定的預(yù)處理,從而形成結(jié)構(gòu)化的數(shù)據(jù)集(DataSet),在集成功能函數(shù)中,系統(tǒng)會自動判斷要集成的具體數(shù)據(jù);逐行判斷DataSet中的數(shù)據(jù)是否存在目標(biāo)數(shù)據(jù)庫中,若存在則根據(jù)關(guān)鍵字進(jìn)行數(shù)據(jù)更新,若不存在則進(jìn)行數(shù)據(jù)插入。對于XML數(shù)據(jù)的集成,采用Web Service方式。首先設(shè)計并發(fā)布針對XML數(shù)據(jù)集成方法的Web Service,可根據(jù)需要發(fā)布到內(nèi)網(wǎng)或外網(wǎng)上,以供其他程序調(diào)用,能夠滿足跨編程語言以及跨操作系統(tǒng)的需求。對于XML數(shù)據(jù)集成,首先根據(jù)其節(jié)點(diǎn)進(jìn)行數(shù)據(jù)元素提取,從而將這些元素放進(jìn)一個數(shù)組進(jìn)行統(tǒng)一預(yù)處理,最后通過調(diào)用Web Service完成數(shù)據(jù)集成。
本文采用ADO.NET以及Web Service技術(shù)對數(shù)字化醫(yī)院中的數(shù)據(jù)進(jìn)行集成,實(shí)現(xiàn)不同信息系統(tǒng)之間的數(shù)據(jù)交換、共享、統(tǒng)一查詢和統(tǒng)計分析。此外Web Service技術(shù)的運(yùn)用有利于跨平臺和跨操作系統(tǒng)的數(shù)據(jù)集成,這是傳統(tǒng)數(shù)據(jù)集成的一大進(jìn)步,也為后續(xù)的大數(shù)據(jù)分析提供基礎(chǔ)。多源異構(gòu)數(shù)據(jù)集成涉及領(lǐng)域極廣,還有待于進(jìn)一步深入研究,如如何利用集成的數(shù)據(jù)進(jìn)行大規(guī)模數(shù)據(jù)分析和挖掘、充分發(fā)掘數(shù)據(jù)價值等。