秦秋莉,曹輝,李明巖,姜勇
作者單位
1100044 北京北京交通大學經(jīng)濟管理學院
2公安部第一研究所
3國家神經(jīng)系統(tǒng)疾病臨床醫(yī)學研究中心;首都醫(yī)科大學附屬北京天壇醫(yī)院神經(jīng)病學中心
4北京大數(shù)據(jù)精準醫(yī)療高精尖創(chuàng)新中心(北京航空航天大學&首都醫(yī)科大學)
卒中具有較高發(fā)病率、致殘率、死亡率及復發(fā)率,是我國壽命年損失的第一位病因[1-2]。2016年《柳葉刀》雜志對32個國家的卒中危險因素分析結(jié)果表明,全球90.7%的卒中與高血壓、糖尿病、心臟病、血脂異常等10項因素有關(guān),且針對我國人群的可解釋度達94.3%[3-4],在臨床醫(yī)學中相關(guān)病史對卒中的輔助診療、復發(fā)治療及康復治療等也具有一定參考價值。現(xiàn)大部分醫(yī)院使用電子病歷[5]代替?zhèn)鹘y(tǒng)病歷,記錄患者診療信息并可進行統(tǒng)計分析,以支持臨床研究與工作[6],但共享存在較大困難。而對于卒中這種發(fā)病急、個體差異較大的情況,若患者歷史病歷共享困難,醫(yī)師僅根據(jù)臨床經(jīng)驗與檢查結(jié)果進行通用型治療,影響診療效率,也不利于開展更全面的臨床研究,這就要求患者電子病歷能在不同醫(yī)療機構(gòu)間進行安全共享。
區(qū)塊鏈技術(shù)在數(shù)據(jù)共享方面具有安全性高、去中心化等特點,能保護患者隱私及電子病歷安全。目前在醫(yī)療數(shù)據(jù)共享方面,Xia等[7]等提出MeDShare系統(tǒng),使用區(qū)塊鏈在云服務提供商間無信任共享醫(yī)療數(shù)據(jù),通過智能合約自動監(jiān)測數(shù)據(jù)操作和安全;Li等[8]運用區(qū)塊鏈提出一種新的醫(yī)學數(shù)據(jù)儲存系統(tǒng),用戶可永久保存重要數(shù)據(jù),并在懷疑數(shù)據(jù)被篡改時驗證其原始性;薛騰飛等[9]也建立了一種醫(yī)療電子信息分享模型,設(shè)計基于貢獻量證明的共識機制,提出比特幣用戶參與度評估模型并設(shè)計了數(shù)據(jù)加密方案。但目前除比特幣外尚沒有較成熟落地的區(qū)塊鏈應用[10]。因此,本文主要通過介紹區(qū)塊鏈在卒中電子病歷共享中的應用方案的關(guān)鍵步驟、仿真實驗及結(jié)果,分析卒中電子病歷共享對輔助診療和臨床研究的參考價值。
區(qū)塊鏈是一種按照時間順序?qū)?shù)據(jù)區(qū)塊相連的鏈式數(shù)據(jù)結(jié)構(gòu),是以密碼學方式保證不可篡改和偽造的分布式賬本,系統(tǒng)可分成六個部分:應用層、合約層、激勵層、共識層、網(wǎng)絡(luò)層和數(shù)據(jù)層,按其公開程度分為公有鏈、聯(lián)盟鏈與私有鏈[11]。工作流程主要為某節(jié)點將請求發(fā)給網(wǎng)絡(luò)中所有的節(jié)點進行廣播,并根據(jù)共識算法執(zhí)行,在P2P網(wǎng)絡(luò)中,共識算法是缺乏相互信任的節(jié)點最終通過遵循共同認可的機制來實現(xiàn)數(shù)據(jù)一致性的過程,其本質(zhì)為一個去中心化的分布式賬本數(shù)據(jù)庫[12-13]。當網(wǎng)絡(luò)上的各個節(jié)點查收到該廣播數(shù)據(jù)后,先驗證該節(jié)點的數(shù)據(jù)合法與否,當新節(jié)點通過此次驗證后才能被記錄下來建立一個新的區(qū)塊。
本文為減少電子病歷在信息安全、共享效率以及存儲方面存在的不足,提出一種卒中電子病歷共享模型。整體上通過私有鏈和聯(lián)盟鏈相結(jié)合的方式,在醫(yī)院之間的數(shù)據(jù)共享采用聯(lián)盟鏈,醫(yī)院內(nèi)部的數(shù)據(jù)共享采用私有鏈,并在存儲與交互過程加密處理,運用改進BFTRAFT共識機制,總體模型圖如圖1所示。
1.1 卒中電子病歷加密存儲與交互 對整個卒中電子病歷共享環(huán)節(jié),數(shù)據(jù)的存儲與交互是實現(xiàn)共享的基礎(chǔ)。本文應用騰訊公司的TrustSQL底層框架,因其區(qū)塊鏈節(jié)點具有單個節(jié)點自校驗性和多個節(jié)點間實時數(shù)據(jù)對比機制,在進行數(shù)據(jù)校驗過程,能夠確保存儲下來的卒中電子病歷不被篡改。TrustSQL相比于MySQL具有較多優(yōu)勢,更適用于分布式存儲的卒中電子病歷模型。根據(jù)共享需要設(shè)定數(shù)據(jù)存儲和數(shù)據(jù)交互兩個場景,其中數(shù)據(jù)存儲通過TrustSQL中的Insert接口實現(xiàn),數(shù)據(jù)交互通過Select接口實現(xiàn)。
在存儲與交互的整個流程中都需要確保電子病歷信息不被惡意泄露。1985年Koblitz與Miller共同提出橢圓加密算法[14],橢圓曲線數(shù)字簽名算法(elliptic curve digital signature algorithm,ECDSA)以橢圓加密算法為基礎(chǔ),結(jié)合一種非對稱的密鑰加密算法數(shù)字簽名算法[15],先產(chǎn)生一個哈希,當需要驗證該簽名時,則重新計算這個哈希,最后將通過公鑰得到解密后的結(jié)果進行比對。在計算數(shù)字簽名時ECDSA僅需要較短的公鑰即可,通常在區(qū)塊鏈中使用。
圖2 BFT-RAFT共識機制具體流程
由于非對稱加密的公鑰、私鑰機制安全性較高,本文的加密機制主要是系統(tǒng)隨機生成的一個私鑰,公鑰由橢圓曲線加密算法計算得出,再經(jīng)過加密哈希函數(shù)則可以得到20字節(jié)的數(shù)據(jù),本文使用的是SHA256。通過將私鑰和橢圓曲線簽名算法結(jié)合得到安全的簽名,在數(shù)字簽名時選用secp256k1曲線進行加密。簽名后再用DER編碼規(guī)則并轉(zhuǎn)換為base64格式,即可生成最終加密簽名。
1.2 BFT-RAFT共識機制 卒中電子病歷得以加密存儲后,為實現(xiàn)去中心化的共享保障,需要選定共識機制來達成不同醫(yī)療機構(gòu)間的相互制約。RAFT算法和其他共識算法具有同樣計算效率,但更容易整體實現(xiàn)且可解釋性強,電子病歷作為重要數(shù)據(jù),應務必保證電子病歷處于正常運轉(zhuǎn)狀態(tài),對容錯能力要求很高。為彌補RAFT算法在這方面的不足,結(jié)合容錯性能較高的BFT算法得到BFT-RAFT機制,確保出現(xiàn)故障時能切換到BFT算法上,保證卒中電子病歷安全。
R A F T 算法包含三種角色:l e a d e r、candidate和follower,這相當于不同的醫(yī)療機構(gòu)節(jié)點,角色之間可以轉(zhuǎn)換但每個節(jié)點不可以同時兼具。RAFT算法的執(zhí)行過程首先是leader(可看作某個醫(yī)療節(jié)點)在收到請求后需要先把該請求發(fā)送給follower(可看作此刻其他醫(yī)療節(jié)點),待follower驗證信息沒問題后再記錄到日志中并將信息交給狀態(tài)機,同時需給leader返回值表示驗證信息成功。leader取得多數(shù)驗證成功標識后,提交當前日志并將全部follower更新并取得共識。在發(fā)生故障引入BFT算法后,首先將同樣信息輸入給全部非拜占庭節(jié)點,需得到一致結(jié)果。另外,若輸入進去的信息沒有問題,則全部非拜占庭節(jié)點都要計算這個信息的結(jié)果,即當客戶提出請求時應計算并產(chǎn)生區(qū)塊。具體共識過程如圖2所示。
這相當于在電子病歷共享過程中,如果某個醫(yī)療機構(gòu)節(jié)點出現(xiàn)故障或惡意篡改等行為時,可以將共識算法高效切換到具有拜占庭容錯的算法上來,保證共識順利完成,不會因為一方出現(xiàn)問題影響聯(lián)盟中其他醫(yī)療機構(gòu)對電子病歷的使用。
針對共享方案進行優(yōu)勢驗證分析,在騰訊區(qū)塊鏈Baas平臺上模擬構(gòu)建醫(yī)院間的聯(lián)盟鏈,選用4臺云服務器進行相同網(wǎng)段的配置,分別授權(quán)并相互關(guān)聯(lián)后,可在控制臺開啟。測試從1000到5000條數(shù)據(jù)的解析與寫入耗時,并與使用前置機時候Excel文件傳輸模式和直接傳輸JSON結(jié)構(gòu)模式的解析時間進行對比,三者的實際耗時情況如表1所示。
可以看出區(qū)塊鏈解析的耗時無論數(shù)據(jù)量多少,都能用最短的時間解析,是三者中耗時最少的。從圖3可以明顯看出當數(shù)據(jù)量相對較少時,三者之間解析耗時差距小,當數(shù)據(jù)量越大,Excel文件傳輸模式的耗時越多,與區(qū)塊鏈的差距也越來越大,若數(shù)據(jù)量不斷增大,則區(qū)塊鏈將具有更加明顯的優(yōu)勢。
將卒中電子病歷進行寫入聯(lián)盟鏈的性能測試,將新建的數(shù)據(jù)表中寫入1000~5000條卒中電子病歷數(shù)據(jù),測試其寫入所需要的時間,并進行比較,結(jié)果如表1右二列所示。
從圖4中也可以看出,TrustSQL集群在寫入數(shù)據(jù)時的耗時總小于MySQL集群,且數(shù)據(jù)量越大,TrustSQL的寫入優(yōu)勢越明顯,耗時越短,更利于解決高頻率寫入?yún)^(qū)塊時(如就診高峰期)效率較低等問題,可以看出應用本文方案既保障卒中電子病歷共享安全,又使效率有很大提升。
本文的卒中電子病歷共享方案能大大提高傳統(tǒng)病歷共享效率,并通過加密技術(shù)保證卒中電子病歷不被篡改。卒中的危險影響因素與患者病史具有相關(guān)性,實現(xiàn)共享不僅利于醫(yī)師診療等,還可以通過電子病歷共享進行后續(xù)的相似病歷輔助診療等。另外,通過數(shù)據(jù)挖掘等技術(shù)能處理大量原始數(shù)據(jù),但在以往卒中臨床研究過程中,數(shù)據(jù)來源往往有限,實現(xiàn)卒中電子病歷共享,可通過挖掘大量卒中電子病歷數(shù)據(jù),進行卒中危險因素研究、卒中治療效果評估、卒中預后因素研究以及對高危人群進行分析與干預等,指導疾病防治[16],為卒中診斷及預后評估等研究提供更全面的數(shù)據(jù)和更準確的依據(jù),從而推進卒中臨床研究的進一步發(fā)展。
表1 實驗耗時結(jié)果對比
圖3 解析耗時對比圖
圖4 寫入耗時對比圖