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