王璐, 王柯榮
(1.北京市大興區人民醫院,信息科,北京 102600; 2.河北工程大學,信息與電氣工程學院,河北,邯鄲 056038)
伴隨著醫院業務規模的不斷擴大,醫院在運營過程中所產生的數據越來越多。醫院傳統的信息管理平臺導致各科室之間信息缺乏共享,無法滿足當前醫院業務規模快速增長的需求,構建醫療綜合管理服務平臺解決信息存儲瓶頸、系統信息孤島的醫療信息化現狀勢在必行[1]。云計算的飛速發展為醫院建立共享服務綜合管理平臺提供了架構支撐和處理海量數據的可能[2]。醫療信息化建設正飛速發展,但帶來的弊端導致了醫療數據的指數型增長,醫療大數據給醫院現有信息系統帶了巨大的壓力,且系統異構數據無法實現醫療信息的綜合管理[3]。
基于前人的研究經驗,并結合云計算技術,設計基于Hadoop平臺的分布式存儲及分布式計算的智慧醫院管理系統,對Hadoop分布式存儲計算資源調度算法進行優化,綜合考慮醫療小文件的基本特征,融合詞頻以及權重數據參數,提出醫療數據文件調度算法,提升各種非結構化醫療數據的檢索、分析,實現各科室醫療系統的數據有機共享和信息集成。仿真實驗結果顯示,本文提出的算法有效地提升了資源調度的效率以及數據查詢的準確性。
云計算即為硬件資源的虛擬化,主要為應用軟件虛擬化以及硬件的集群技術實現動態分配服務資源支撐系統運營的系統運行架構[4],如圖1所示。

圖1 云計算整體架構
圖1中:SaaS(軟件即服務)提供了用戶網絡訪問通路,實現對各種應用的高速訪問;PaaS(平臺即服務)主要包含可以進行應用開發和部署的平臺,為各類用戶提供對應的服務,其具有靈活可調整以及資源便捷擴展能力,能夠滿足用戶的多種需求;Iaas(基礎設施即服務),其提供虛擬化、資源動態計算、資源動態分配及資源部署等服務,達到科學、高效部署資源的目的。
Hadoop為云計算的具體實現技術,其結構如圖2所示,核心包含分布式文件架構以及分布式的處理過程。HDFS為分布式文件系統,其為海量數據存儲、查詢的基礎,存儲原理為大文件分塊、分類處理,并采用數據流的形式建立主節點與從節點的架構體系[5],能夠實現海量數據的分布式存儲。

圖2 Hadoop體系結構圖
Hadoop架構的另一核心為MapReduce分布式計算框架,其通過分布式并行計算編程模型,是應用程序開發人員無須關注分布式細節但仍可以完成程序的部署,原理為通過映射與化簡組合實現[6-8]。具體如圖3所示。

圖3 MapReduce工作原理圖
結合圖3的數據顯示,MapReduce通過JobTracker服務器、TaskTracker服務器以及Client服務器建立主從式結構,對作業進行提交、調度、運行獲得運行結果,并通過TaskTracker對完成后的作業任務進行劃分。本文設計的醫院集成管理業務平臺主要依托Hadoop架構實現。
基于Hadoop的智慧醫院集成管理信息平臺采用基礎信息化設備設施層、數據分析層以及應用服務提供層三層架構。平臺通過物聯網設備的應用、分布式存儲以及數據總線實現各類應用的部署、信息的存儲和海量信息的檢索、挖掘與分析[9]。通過該平臺將各科室的信息系統進行物理和邏輯上的有機關聯,解決了信息分散、數據孤島、處理能力差等問題。系統應用部分功能主要包括門診子系統、住院子系統、醫學影像子系統、系統分析子系統等,具體如圖4所示。

圖4 基于Hadoop平臺的智慧醫院一體化管理系統
基礎信息化設備設施層包括數據采集層和數據存儲層。數據采集層主要應用于物聯網設備結合IoT窄帶傳輸網路進行數據采集和傳輸。數據存儲層采用Hadoop的分布式文件存系統,同時,根據醫院業務特點,醫院信息化管理系統的大部分數據為醫學影像、文件等非結構化數據,無法使用傳統的關系型數據庫存儲。因此,本文采用廉價的商用服務器組建易于橫向擴展的Hadoop集群,既節省了成本又提高了數據分析性能。
數據分析層采用Hadoop的MapReduce分布式計算進行數據挖掘。具體處理過程:數采環節、醫療業務系統傳輸的業務數據、非結構影像數據通過分布式存儲完成數據的轉換后在數據挖掘層進行預處理;完成數據清洗、歸并整理后,對數據進行分塊處理;使用Mahout工具庫按照分割、并行計算以及規約三步完成對醫療海量數據的分析處理。
具體的數據挖掘過程采用交互層、邏輯層、代理層、挖掘層、存儲計算層等幾部分構成,層間使用接口互相通信。通過數據總線接口獲得各醫療系統包括病歷管理系統、門診管理系統、醫學影像系統等實時數據,采取將掃描數據集的過程并行化的方法,運用Hadoop的分布式存儲以及分布式計算架構,將整個醫院各科室的專業系統的業務數據平均地分成若干個數據塊,分配到各集群中的各個DataNode中,當執行任務時,每個節點會掃描各自的數據塊,從而達到并行掃描的目的。具體框架如圖5所示。

圖5 基于Hadoop的數據挖掘分析模型
醫療文件數據文件小、結構復雜、碎片式文件較多,如病例、檢驗報告、醫學影像對應的文本信息、醫囑等信息文件。由于Hadoop的文件調度算法處理大文件比較理想,但對于醫療文件處理效率并不高,因此,本文結合系統的實際需要,對Hadoop的文件調度算法進行適應性改造,以提升對于醫療小文件的調度優化效率。Hadoop分布式文件系統的每個塊的默認存儲空間為64 M,如果塊文件小于64 M時,定義醫療小文件為集合小文件。
本文改進的具體思路為在原有的分布式數據存儲的過程中增加小文件處理搜索引擎,針對醫療小文件的特征數據特征抽取,通過計算不同特征向量的文本相似度,對高相似度的向量合并后,建立數據特征索引表。整體結構如圖6所示。

圖6 基于數據特征的分布式檢索系統結構圖
特征抽取的核心工作為提煉醫療數據集的各類數據特征,并識別每一類數據特征在整個醫療數據集的權重值,并將權重值排名前5位的詞匯作為該類的特征值及特征向量代表數據集的量化表示:
Vi=((t1,w1),(t2,w2),…,(tn,wn))
(1)
式(1)中,i為數據集的序號,Vi為某一數據集的具體特征向量,tn為數據集內的特征詞集合,wn為特征詞的權重,n為特征詞的數量。權重值采用Robertson &Sparck Jones特征權重計算法,并結合詞頻對改公式進行了優化:
(2)

(3)

圖7 數據特征抽取模塊結構圖
將經過計算并排序的特征值排序文件結果輸出到HFDS文件中,并建立數據特征索引,對于基于醫療數據特征的分布式數據挖掘、分析系統通過數據特征索引表對節點的特征以及所在的地址進行存儲,并通過三維表〈ID,Character,Address〉表示,其中,ID表示類別編碼,Character表示數據特征,Address表示訪問地址。具體建立過程如圖8所示。

圖8 數據特征索引表建立過程圖
分塊文件系統通過將排序好的特征文件進行解析產生特征向量,并由主服務器統一計算相似度后,對相似向量進行合并生成特征索引表。
實驗采用國內青云平臺訪問資源的調度過程,測試改進的資源調度算法,并模擬了3組業務場景,包括復雜度較高的醫學影像查詢數據、復雜度底的病人病歷病志查詢數據、醫院財務數據查詢分析等。建立3組作業按復雜度由高到底設置3個作業的優先級,具體如表1所示。
建立實驗數據中心對上述3條作業信息進行存儲,并采用5臺PC機組成Hadoop集群開展模擬仿真實驗。不同PC機的性能存在差異,導致每臺PC機的作業效率也存在不同。通過將組成的Hadoop集群在Linux平臺上運行,達到近似模擬實際應用環境的目標。實驗過程中,結合3種作業的各自運行時間,測試本文改進調度算法的執行效率以及運行實際情況。
實驗主要從改進調度算法整體執行性能提升的方面以及具體的改進算法本身的性能兩個方面展開。將Hadoop框架本身的3類調度算法(F1F0算法、Capacity調度算法、Fair調度算法)與引入本文的改進算法進行比較,得到算法優化前后對3條作業的運行時間,比較結果如圖9所示。

圖9 作業1—3在調度算法優化前后的性能對比圖
由圖9可知,F1F0算法、Capacity調度算法、Fair調度算法對3條作業的運行時間均明顯縮短,尤其是對文檔類以及圖像類文檔的整體運行時間更為明顯,即引入改進算法之后可以有效提升對非結構化醫學文件的調度效率。
對提出醫療文檔的搜索算法的查詢準確率進行實驗,主要從對資源占有以及網絡帶寬占有關的角度進行有針對性的實驗,實驗過程主要對文檔特征和詞頻參數進行對比。系列1為未考慮詞頻的全文檔遍歷搜索,檢索范圍為文檔整體。系列2為特征詞頻參數設置為1/3時需要檢索文檔。系列3為特征詞頻參數設置為2/3時需要檢索文檔。3個系列的檢索結果與文檔訪問數量關系對比結果如圖10所示。

圖10 檢索結果與文檔訪問數量關系圖
由圖10可以發現,在遍歷的文檔結果數據一致的前提下,本文提出的引入詞頻的搜索算法需要訪問的文檔數量明顯小于全節點文檔遍歷Hadoop自帶的算法,且訪問文檔數量與特征維數正相關。實驗結果顯示,本文提出的醫療小文件搜索算法應用于Hadoop調度算法中,極大地降低了框架本身全文檢索的范圍,提升了調度工作的性能,適用于醫院大量異構結構以及非結構化文檔的檢索、調動以及挖掘分析工作。
醫改的逐步推進、信息化技術的日益精進為我國大型醫院各時期建立的各個專業化系統的整合提供了技術支撐。本文使用Hadoop的分布式框架綜合考慮醫療信息與數據的特異性,建立了基于Hadoop平臺的醫院一體化管理系統,發揮了Hadoop分布式存儲以及分布式計算的高效性,實現了各個系統之間協同高效的工作以及各類異構臨床信息的共享、整合和集成應用,提高了醫院的運營效率、管理效率。仿真實驗顯示,本文的優化改進調度算法有效地提高了資源調度效率,具有一定的實用價值。