李勝旭,王 穎
(福建中醫(yī)藥大學人文與管理學院,福建 福州 350122)
近年來,大數(shù)據(jù)、云計算、人工智能等新技術發(fā)展迅速,大數(shù)據(jù)和云計算作為信息化建設的新理念、新方向在不同的領域得到了研究人員的廣泛關注。在醫(yī)療大數(shù)據(jù)環(huán)境下,傳統(tǒng)的醫(yī)療模式對數(shù)據(jù)的處理滯后,已經(jīng)不能適應新時代醫(yī)療信息化發(fā)展的形勢及任務發(fā)展的要求,如何將云計算技術與大數(shù)據(jù)服務相結合,將兩者引入智慧醫(yī)療建設,已成為當前智慧醫(yī)療是否實現(xiàn)轉型升級的重大機遇。
將大數(shù)據(jù)、云計算和智慧醫(yī)療三者結合起來進行,實現(xiàn)醫(yī)療信息化的研究,是擺在科研人員面前的一個新的高度。首先,醫(yī)療大數(shù)據(jù)中蘊含著巨大的有價值的信息,如何提煉挖掘出這些有價值的信息,對智慧醫(yī)療的發(fā)展有很大的促進作用。比如對醫(yī)療大數(shù)據(jù)中的病歷,利用文字搜索的技術、自然語言理解的技術、數(shù)據(jù)挖掘的技術進行對比、歸納、分析,為我們的醫(yī)生提供智慧提示、提醒和建議,提高醫(yī)生的診療水平;其次,醫(yī)療數(shù)據(jù)的大規(guī)??焖贁U張,要保證這些數(shù)據(jù)可以被安全、可靠、高效地存儲和讀取,同時還需要有“彈性”擴張的存儲機制,而傳統(tǒng)的計算機架構方式牽制著數(shù)據(jù)存儲能力,特別是大數(shù)據(jù)處理能力,無法適應新技術發(fā)展需求,云計算中采用的相關存儲技術為大數(shù)據(jù)的存儲提供了有力手段。通過云計算進行醫(yī)療架構整體部署、數(shù)據(jù)的集約管理,最終達到提高整個醫(yī)療系統(tǒng)資源的利用率,減少設備重復投入,降低了系統(tǒng)運營成本;最后,實現(xiàn)在大數(shù)據(jù)環(huán)境下的數(shù)據(jù)分析,特別是某些疾病的數(shù)據(jù)分析,把這些分析后的數(shù)據(jù)提供給醫(yī)療機構和醫(yī)生,將其作為參考數(shù)據(jù),在沒有與病人“面對面”接觸的情況下,通過對這些數(shù)據(jù)的分析,可以給政府、醫(yī)療機構提供合理的醫(yī)療資源分配決策。本文為了解決將云計算和大數(shù)據(jù)技術引入智慧醫(yī)療建設存在的不足,提出在部署建設中的幾種算法及構想,這些算法構想的提出對提升現(xiàn)代醫(yī)學信息化發(fā)展新理念、新技術及新模式有很好的參考借鑒作用。
大數(shù)據(jù)驅(qū)動的智慧醫(yī)療云平臺涉及大量數(shù)據(jù)的處理,以及針對醫(yī)療行業(yè)的科學研究模型。本文主要從兩個方面進行分析。
醫(yī)療大數(shù)據(jù)的數(shù)據(jù)來源非常廣泛,各類臨床醫(yī)療數(shù)據(jù)有的以結構化數(shù)據(jù)的形式存放在關系型數(shù)據(jù)庫中,但有的卻以半結構化或非結構化數(shù)據(jù)的形式存放在文件系統(tǒng)中,而且這些數(shù)據(jù)可以隨時更新訪問。因此,需要制定對應的數(shù)據(jù)倉庫技術(Extract Transform Load,ETL)進行數(shù)據(jù)采集,以及整合各類碎片化的方法,還要對這些數(shù)據(jù)進行清洗,淘汰數(shù)據(jù)干擾,保證數(shù)據(jù)質(zhì)量,以防止后期在數(shù)據(jù)分析中的困擾。同時由于醫(yī)療領域本身的特性,每時每刻要根據(jù)時間推進不斷更新數(shù)據(jù)狀態(tài),及時判斷數(shù)據(jù)實體情況,做到將各種各樣數(shù)據(jù)按照統(tǒng)一的格式進行存儲,以方便提供給上層后臺人員進行有效的數(shù)據(jù)分析,減少干擾。本文提出大數(shù)據(jù)收集模塊方法,首先基于Sqoop開發(fā)ETL模型,通過這個方法實現(xiàn)統(tǒng)一的結構化數(shù)據(jù)從關系型數(shù)據(jù)庫到Hadoop平臺的遷移;其次提出采用基于Hadoop Common開發(fā)的半結構化數(shù)據(jù)、非結構化數(shù)據(jù)的傳輸功能。
數(shù)據(jù)倉庫對外統(tǒng)一的數(shù)據(jù)接口規(guī)范研究,包括接口格式、使用語言、負載均衡設計等內(nèi)容。通過其他研究人員提出的觀點,采用基于Hadoop的云中間件技術在智慧醫(yī)療上的研究,可以對建立智慧醫(yī)療系統(tǒng)提供有效的大數(shù)據(jù)支撐。另外為了增強云平臺能力的性能,再引入部分針對醫(yī)療信息處理的新組件,最終達到采集海量用戶的生理參數(shù)、實現(xiàn)資源合理分配、有效存儲在各種介質(zhì),有針對性地分析展示數(shù)據(jù)。在數(shù)據(jù)存儲部分,引入了分布式文件系統(tǒng)和分布式緩存數(shù)據(jù)庫,同時支持傳統(tǒng)的關系型數(shù)據(jù)庫。
醫(yī)療大數(shù)據(jù)存儲和管理模塊的建立同樣需要滿足數(shù)據(jù)倉庫設計的要求,建立一個既面向主題,又具有集成性的且能夠基于時間變量與決策支持的數(shù)據(jù)倉庫。本文采用圖1設計的基于Zookeeper的分布式Redis框架來滿足醫(yī)療大數(shù)據(jù)的存儲管理。
圖1 分布式緩存系統(tǒng)架構圖Fig.1 Architecture diagram of distributed cache system
圖1用于醫(yī)療數(shù)據(jù)處理系統(tǒng),其設計思想是基于分層思路。它把整個框架分為數(shù)據(jù)層和服務層兩個不同的層次,數(shù)據(jù)層負責具體的Redis數(shù)據(jù)庫的實例,負責在服務層實現(xiàn)醫(yī)療業(yè)務服務和醫(yī)療數(shù)據(jù)封裝過程。ZooKeeper提供高效的負載均衡集群,提供高穩(wěn)定性能的保障。ZooKeeper提供一致性服務,統(tǒng)一維護Redis集群的數(shù)據(jù)分片信息,客戶端通過ZooKeeper獲得Redis集群的數(shù)據(jù)分片信息并建立路由算法,實現(xiàn)醫(yī)療大數(shù)據(jù)Redis集群的動態(tài)擴縮容和數(shù)據(jù)自動遷移的能力,結合Redis-Sentinel,為每個Redis主節(jié)點配備若干個備節(jié)點,利用Redis備節(jié)點可以對Redis主節(jié)點進行數(shù)據(jù)同步復制,通過和Redis-Sentinel集群來保障Redis集群的可用性,同時通過ZooKeeper與客戶端通信來將后端Redis主節(jié)點和備節(jié)點的切換信息通知給客戶端,實現(xiàn)集群故障的自動轉移,保證Redis集群的高可用性。
分布式緩存的存儲模塊建立之后,需要建立預測數(shù)據(jù)模型、關聯(lián)模型、服務模型的研究,設計結合智慧醫(yī)療應用所需及實際數(shù)據(jù)要求狀況,在海量的醫(yī)療數(shù)據(jù)中準確收集有效有用信息建立數(shù)學模型,并進行預測研究。系統(tǒng)面對用戶運維過程中,接收到的數(shù)據(jù)量以數(shù)量級形式呈現(xiàn),數(shù)據(jù)量增加迅速,因此通過建立預測模型,可以在數(shù)據(jù)變化過程中就進行分析,及時對系統(tǒng)進行改變。最終產(chǎn)生的數(shù)據(jù)結果可以在醫(yī)療過程中或醫(yī)療后發(fā)揮作用,比如對某一個時期某些疾病是否有可能爆發(fā)進行預測判斷。針對新型冠狀病毒肺炎疫情發(fā)展的可能性,項目提出的方案可以對病毒的后期走向建立一種預測模型,給政府部門、醫(yī)療機構提供合理的參考價值。
在醫(yī)療大數(shù)據(jù)的分析中,將以醫(yī)院信息管理和醫(yī)療信息服務的應用為驅(qū)動,基于大數(shù)據(jù)系統(tǒng)框架模型和醫(yī)療專題數(shù)據(jù)模型,采用先進的數(shù)據(jù)分析方法,比如關鍵績效指標分析、聚類縫隙分析技術、數(shù)據(jù)多維分析技術、數(shù)據(jù)報表分析技術及數(shù)據(jù)儀表分析等,提供醫(yī)療大數(shù)據(jù)分析與決策信息服務。
大數(shù)據(jù)的分析算法和方法很多,結合醫(yī)療大數(shù)據(jù)的特點,特別是分析臨床醫(yī)學信息系統(tǒng),研究其與臨床決策支持系統(tǒng)的關聯(lián),建立基于醫(yī)療大數(shù)據(jù)的系統(tǒng)框架模型,研究支持PB級海量數(shù)據(jù)的、面向?qū)n}數(shù)據(jù)倉庫的高效、快速的數(shù)據(jù)存儲、數(shù)據(jù)索引及數(shù)據(jù)檢索方法。在大數(shù)據(jù)系統(tǒng)中,由于數(shù)據(jù)量龐大,高效、快速的數(shù)據(jù)存儲、數(shù)據(jù)索引及數(shù)據(jù)檢索在數(shù)據(jù)倉庫和大數(shù)據(jù)領域非常之重要,這種方法依靠良好的、優(yōu)化的數(shù)據(jù)組織結構和相應的算法。一個優(yōu)良的檢索技術對數(shù)據(jù)庫具有至關重要的作用,并且是衡量一個數(shù)據(jù)庫系統(tǒng)性能的重要指標。本文采用協(xié)同過濾算法來分析管理存儲在數(shù)據(jù)倉庫里的醫(yī)療大數(shù)據(jù),通過算法設計基于HL7消息的推薦系統(tǒng)接口,最后通過HL7推薦消息使系統(tǒng)與電子病歷系統(tǒng)等院內(nèi)其他信息系統(tǒng)實現(xiàn)應用的實時對接。
算法設計:首先,我們利用基于Sqoop的大數(shù)據(jù)收集模塊分布式地從各醫(yī)院信息系統(tǒng)中收集患者就診信息,截取其有效數(shù)據(jù)集組成用戶可信內(nèi)容,并將這些可信的記錄收集過程轉換為一個三元組序列:
然后,我們使用若干相似度度量方式計算用戶之間的相似度,比如歐氏距離、皮爾遜相關系數(shù)和余弦相似度等。
歐式距離表示多維空間中兩個點的真實距離,其計算如式(1)所示:
而用歐式距離表示的相似度則為式(2)所示:
皮爾遜相關系數(shù)表示兩個三元組之間協(xié)方差和標準差之間的比率,其計算如式(3)所示:
通過皮爾遜相關系數(shù)衡量線性相關關系。若=0,說明與之間無線性相關關系。相關系數(shù)的絕對值越大,相關度越強;相關系數(shù)越接近于1或-1,相關度越強;相關系數(shù)越接近于0,相關度越弱。
相對于歐氏距離,余弦距離更關注兩個向量在方向上的差異。余弦相似度表述了向量空間中兩個三元組的向量值之間夾角的余弦值,通過計算的值來衡量兩者之間差異的大小,其計算如式(4)所示。
綜合上述幾種相似度計算方法,通過計算得到相似度度量值,應用在智慧醫(yī)療系統(tǒng)中來獲得毗鄰的用戶或者項目,也就是一種基于相似度門檻閾值的固定數(shù)量的鄰居。通過以上方法,設計了一種符合智慧醫(yī)療服務的數(shù)據(jù)挖掘及分析系統(tǒng)。算法代碼如下。
在智慧醫(yī)療領域,無論是病人、醫(yī)生或者管理人員,都期望把蘊藏在大數(shù)據(jù)背后對自己有價值的信息清晰地展示在面前,所以最終的數(shù)據(jù)如何展現(xiàn)出來是非常關鍵的。
通過分析智慧醫(yī)療云平臺的功能,數(shù)據(jù)展現(xiàn)主要有幾個方面:(1)醫(yī)療機構實時了解和掌握近期的醫(yī)療動態(tài)并調(diào)整目標。醫(yī)療大數(shù)據(jù)云平臺幫助各個醫(yī)療服務機構實現(xiàn)醫(yī)療資源共享共用,信息及時溝通、信息協(xié)同共享,共同為用戶實現(xiàn)不同的服務視圖,實現(xiàn)類型豐富的服務方式。另外也可以根據(jù)平臺提供的信息將一些醫(yī)療服務進行整合,構建一種新的服務模式,以便節(jié)約運行成本。(2)決策或政府部門對數(shù)據(jù)的需求主要通過豐富的各類報表、圖表及分析結果來滿足,這些數(shù)據(jù)要具有一定的說服力,在決策過程中提供數(shù)據(jù)支撐。(3)患者主要通過提供的數(shù)據(jù)綜合分析個人自身信息并進行預判斷,根據(jù)數(shù)據(jù)或信息選擇合適的醫(yī)生進行咨詢或者從平臺中得到指導、治療和參考,避免盲目的診療。(4)醫(yī)生也可以根據(jù)患者及平臺提供的數(shù)據(jù)分析病況,對患者規(guī)劃一個有針對性的治療目標,最終制定合適的治療方案。
因此大數(shù)據(jù)驅(qū)動下的智慧醫(yī)療服務系統(tǒng)設計的最后,是在智慧醫(yī)療云平臺的應用上能夠建立一個友好的交互。因此項目在智慧醫(yī)療應用層架構中,通過基于Zookeeper的分布式緩存框架來實現(xiàn)數(shù)據(jù)展示平臺,分布式緩存架構要及時準確快速地返回不同用戶的請求,根據(jù)用戶需要合理地提供查詢服務。
本文提出一種分布式發(fā)布訂閱消息隊列系統(tǒng),實現(xiàn)針對醫(yī)療數(shù)據(jù)的多樣化處理方法,解決Hadoop無法實現(xiàn)即時查詢和交互設計的局限。即針對獲得的不同的醫(yī)療信息數(shù)據(jù)源,提出離線批處理與在線實時計算相結合的醫(yī)療數(shù)據(jù)處理策略,如圖2所示。
圖2 離線批處理和在線實時計算的數(shù)據(jù)處理策略Fig.2 Data processing strategies for offline batch processing and online real-time computation
為應對大量復雜的醫(yī)療大數(shù)據(jù),盡可能降低處理延遲,實時計算部分采用了數(shù)據(jù)分層與分流相結合的技術路線,將數(shù)據(jù)計算流程拉長,采用單功能多階段的數(shù)據(jù)處理方式將數(shù)據(jù)處理拆分為三個階段:日志解析、產(chǎn)品分流和新增計算。在實時處理部分,采用了Flink和Spark Streaming相結合的方式。Flink是一種具有高吞吐、低延遲的實時離線統(tǒng)一的流式數(shù)據(jù)處理引擎,非常適合醫(yī)療大數(shù)據(jù)分析中第一階段的日志解析特點。而Spark Streaming是微批處理,可以將實時數(shù)據(jù)流輸入的數(shù)據(jù)劃分為一個個小批次數(shù)據(jù)流,保障后續(xù)新增計算中聚合操作穩(wěn)定的分鐘級響應。為了將計算引擎的性能發(fā)揮到最大,將新增計算的延遲降到最低,
醫(yī)療云計算平臺系統(tǒng)其數(shù)據(jù)的復雜性及整個系統(tǒng)的彈性伸縮能力與傳統(tǒng)IT基礎設施的技術有很大的差別。醫(yī)療大數(shù)據(jù)挖掘處理需要云計算技術作為平臺,反之云計算技術也將計算資源作為一種服務支撐醫(yī)療大數(shù)據(jù)的有效挖掘,兩者相輔相成,相得益彰,提供了各自需求的有價值信息。對于云計算理論應用,本文提出了智慧醫(yī)療云服務體系結構設計模型及其工程實現(xiàn)方法,將多個差異的醫(yī)療服務組織及醫(yī)療資源聚集于醫(yī)療云中,構建一個多樣化、開放式、可伸縮、多用戶的智慧醫(yī)療云數(shù)字化生態(tài)環(huán)境。在大數(shù)據(jù)的挖掘中,根據(jù)醫(yī)療大數(shù)據(jù)的特點,設計算法實現(xiàn)數(shù)據(jù)分析,給后期工作者提供以下幾個方面的理論及實踐研究的參考。
(1)針對不同對象提供個性化服務
通過大數(shù)據(jù)采集與關聯(lián)技術,面向患者的分析結果提供具有針對性、個性化的服務方式;針對醫(yī)療機構及管理部門進行管理行為預測,提前發(fā)現(xiàn)可能出現(xiàn)的潛在問題。
(2)大數(shù)據(jù)環(huán)境下智慧醫(yī)療更加完善
在設計不同階段對他人的不足之處提出解決方案,并通過算法分析實現(xiàn),提出的方法及算法節(jié)省了運維時間和空間,節(jié)省了硬件成本。
(3)智慧醫(yī)療云平臺的建立
智慧醫(yī)療云服務平臺重點解決平臺開放性、可持續(xù)擴展性以及服務之間松耦合的問題。在云平臺架構設計時考慮了可擴展性問題,不斷集成新的服務而不需要對整體架構做過多修改,最終建立智慧醫(yī)療云平臺時把其中的每個服務都看作一組服務接口的集合,達到服務之間松耦合,實現(xiàn)整體架構的開放和易擴展性。