生 慧,周 揚,馬金剛,王振國
(山東中醫(yī)藥大學理工學院 濟南 250355)
隨著互聯(lián)網(wǎng)、云計算、物聯(lián)網(wǎng)技術的快速發(fā)展,數(shù)據(jù)規(guī)模急劇增加,大數(shù)據(jù)應運而生,中醫(yī)藥醫(yī)療健康大數(shù)據(jù)也隨之而來?;谡w觀思想,中醫(yī)藥大數(shù)據(jù)體量大、范圍廣、結構復雜,涉及患者的健康醫(yī)療數(shù)據(jù)、個人生活軌跡以及醫(yī)療保險等信息,這些數(shù)據(jù)的積累是進行中醫(yī)藥真實世界科學研究的寶貴素材。
然而,如何解決患者隱私保護與醫(yī)療數(shù)據(jù)開放共享之間的協(xié)調(diào)平衡,成為亟待解決的首要問題。一方面患者對個人的醫(yī)療數(shù)據(jù)有強烈的隱私保護的需求和數(shù)據(jù)使用權限管理的要求;另一方面,中醫(yī)藥臨床研究與科學研究需要海量中醫(yī)藥醫(yī)療數(shù)據(jù)的支撐,需要獲取到能保留中醫(yī)藥特色、真實可靠的數(shù)據(jù)。當前,開放的中醫(yī)藥醫(yī)療數(shù)據(jù)十分有限,開放共享方式也不夠靈活,主要表現(xiàn)在以下幾個方面:首先,數(shù)據(jù)孤島仍未打通。患者的醫(yī)療數(shù)據(jù)分散在各級醫(yī)療機構,各醫(yī)療機構之間的數(shù)據(jù)孤島問題因政策、技術等各種原因仍未解決。其次,中醫(yī)藥特色難以體現(xiàn)。中醫(yī)藥臨床數(shù)據(jù)中的辨病辨證多以文本的形式存在于中醫(yī)電子病歷中,然而當前醫(yī)療數(shù)據(jù)多以關系數(shù)據(jù)庫進行存儲,對非結構化數(shù)據(jù)難以進行友好地支持,因此,中醫(yī)藥特色難以體現(xiàn)。最后,數(shù)據(jù)安全值得擔憂。2017年,WannaCry 蠕蟲病毒爆發(fā),很多醫(yī)院HIS 系統(tǒng)受到攻擊,由于容災備份機制的缺失,造成大量醫(yī)療數(shù)據(jù)丟失;另外,醫(yī)療行業(yè)已成為數(shù)據(jù)泄露的重災區(qū),醫(yī)療數(shù)據(jù)的使用權限管理混亂,患者對個人醫(yī)療數(shù)據(jù)的權限控制未能實現(xiàn),對患者隱私造成極大影響。
上述問題嚴重阻礙了智慧醫(yī)療和中醫(yī)藥大數(shù)據(jù)的發(fā)展。然而,隨著區(qū)塊鏈技術的誕生,為解決這種醫(yī)療數(shù)據(jù)集中存儲、醫(yī)療數(shù)據(jù)共享困難、患者個人缺乏對數(shù)據(jù)的控制權等問題提供了新思路。區(qū)塊鏈技術被預言將引領互聯(lián)網(wǎng)發(fā)生顛覆性變化,各國都在部署區(qū)塊鏈發(fā)展路徑,我國也將其發(fā)展布局寫入了《“十三五”國家信息化規(guī)劃》之中。區(qū)塊鏈率先在金融領域引起了廣泛的關注,其在醫(yī)療領域的實踐也逐漸受到越來越多的重視[1-4]。國際上,BITHEALTH 公司已將區(qū)塊鏈技術運用于醫(yī)療行業(yè),致力于實現(xiàn)全球范圍內(nèi)的醫(yī)療數(shù)據(jù)安全傳輸[5];麻省理工學院在區(qū)塊鏈上設計登記合約、患者提供商合約和總結合約3 類智能合約以解決醫(yī)療數(shù)據(jù)的互操作和權限管理問題[6]。國內(nèi),李劍鋒[7]等從電子健康檔案、基因工程、醫(yī)藥防偽及虛擬貨幣支付4 個方面,針對區(qū)塊鏈技術在醫(yī)藥行業(yè)的應用和問題與對策進行了研究;葉華[8]等將區(qū)塊鏈技術運用于醫(yī)療服務,能有效加強醫(yī)院服務的誠信度。上述各研究表明區(qū)塊鏈+醫(yī)療的探索已然開始,但所做研究缺少對中醫(yī)藥特色異構數(shù)據(jù)存儲的考慮,缺少針對中醫(yī)藥大數(shù)據(jù)共享存儲從頂層設計到實現(xiàn)細節(jié)的全面的研究與分析。因此,本文基于聯(lián)盟區(qū)塊鏈設計一種中醫(yī)藥海量異構數(shù)據(jù)安全存儲共享方案,以實現(xiàn)去中心化、安全高效、可智能共享、能體現(xiàn)中醫(yī)藥特色的醫(yī)療數(shù)據(jù)安全存儲。
區(qū)塊鏈技術最早出現(xiàn)于化名“中本聰”(Satoshi Nakamoto)的學者于2008年發(fā)表的論文《比特幣:一種點對點電子現(xiàn)金系統(tǒng)》中。同物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)的發(fā)展規(guī)律一樣,區(qū)塊鏈是在傳統(tǒng)信息技術基礎之上的創(chuàng)新與發(fā)展[9-12]。狹義的講,區(qū)塊鏈是一種能按照時間順序以鏈式結構存儲數(shù)據(jù),并利用密碼學技術保證數(shù)據(jù)的不可偽造和不可篡改性的分布式數(shù)據(jù)庫。廣義的講,區(qū)塊鏈是一種全新的分布式框架和計算范式。
區(qū)塊鏈的發(fā)展到目前為止共經(jīng)歷了3 個階段(圖1)。區(qū)塊鏈的技術起源包括P2P 網(wǎng)絡、非對稱加密算法、數(shù)據(jù)庫技術和數(shù)字貨幣;2009 年,比特幣作為一種虛擬貨幣正式上線;以區(qū)塊為單位的鏈式數(shù)據(jù)機構、共享賬本、非對稱加密和開源代碼是區(qū)塊鏈1.0 的重要特征;2014 年前后,業(yè)界逐漸認識到區(qū)塊鏈的應用價值,區(qū)塊鏈2.0 中出現(xiàn)了可編程的業(yè)務邏輯即智能合約,并將其應用于數(shù)字貨幣以外的各種分布式應用(DAAP)領域;區(qū)塊鏈3.0 的應用領域逐漸擴展到科學、教育、醫(yī)療等各領域各行業(yè),可實現(xiàn)完全去中心化的網(wǎng)絡信任,從而廣泛而深刻地改變?nèi)藗兊纳罘绞健?/p>
圖1 區(qū)塊鏈演進路徑
區(qū)塊鏈系統(tǒng)根據(jù)應用場景和設計體系的不同,一般分為公有鏈、專有鏈和聯(lián)盟鏈,如圖2 所示。其中:①公有鏈:允許任何節(jié)點自由加入,所有節(jié)點可以在任何位置參與共識過程,網(wǎng)絡結構扁平化,不存在信任中心,寫入速度每秒3-20 次,速度較慢;②私有鏈:只允許一個組織或者一個公司范圍內(nèi)的節(jié)點加入,寫入權限內(nèi)部控制,讀出權限適當開放,不能完全解決信任問題,適用于機構內(nèi)部使用,可改善組織內(nèi)部可審計性,每秒可實現(xiàn)1 000 次以上寫入;③聯(lián)盟鏈:被授權的組織或者公司可以加入組成利益聯(lián)盟,通過授權控制參與共識、寫入及查詢操作,共同維護區(qū)塊鏈運行,每秒可實現(xiàn)1000次以上寫入。
圖2 區(qū)塊鏈類型圖
聯(lián)盟鏈技術是未來區(qū)塊鏈發(fā)展的一個趨勢,可實現(xiàn)數(shù)據(jù)在鏈上與鏈下的協(xié)同治理。為推動中醫(yī)藥健康醫(yī)療大數(shù)據(jù)相關機構的合作更加深入和全面,本文設計基于聯(lián)盟鏈的中醫(yī)藥大數(shù)據(jù)安全共享模型,打造面向中醫(yī)藥大健康的生態(tài)服務和產(chǎn)業(yè)協(xié)同發(fā)展體系,實現(xiàn)產(chǎn)業(yè)鏈內(nèi)醫(yī)療機構的多方共贏。模型的構建目標包括以下3個方面:①提升醫(yī)療數(shù)據(jù)共享效率,實現(xiàn)區(qū)塊鏈鏈上數(shù)據(jù)資產(chǎn)鎖定以后,在鏈下或鏈外做處理;②設計更加高頻高效的共識算法;③實現(xiàn)用戶對個人醫(yī)療數(shù)據(jù)的控制權[13-16]。
在醫(yī)療聯(lián)盟鏈中主要有醫(yī)生、病人和第3 方機構(如科研機構等)3 類交易主體,醫(yī)生可以來自不同的醫(yī)療機構,負責給病人進行診斷治療并為病人提供醫(yī)療記錄;病人可以在不同的醫(yī)療機構看病,擁有對個人的醫(yī)療記錄的所有權和支配權;醫(yī)院及第3 方機構可以以有償?shù)姆绞绞褂貌∪说尼t(yī)療記錄,進而實現(xiàn)一些增值服務。
中醫(yī)藥醫(yī)療數(shù)據(jù)的存儲既要保證數(shù)據(jù)的真實可靠防篡改,又要保證數(shù)據(jù)開放共享;既要充分利用聯(lián)盟鏈的安全特性,又要考慮其存儲容量限制。因此本模型中,中醫(yī)藥醫(yī)療數(shù)據(jù)存儲采用聯(lián)盟式區(qū)塊鏈和鏈下分布式數(shù)據(jù)庫分層存儲的方式(圖3)。
圖3 中醫(yī)藥海量異構數(shù)據(jù)共享存儲模型
聯(lián)盟鏈系統(tǒng)首先建立創(chuàng)世塊,后續(xù)產(chǎn)生的醫(yī)療數(shù)據(jù)上傳至區(qū)塊鏈之前利用公鑰加密算法進行身份認證,經(jīng)過共識驗證之后,按照時間順序加入到主鏈上永久保存。在聯(lián)盟鏈中每個節(jié)點都保存上一節(jié)點的哈希值,以此保證數(shù)據(jù)不被篡改與可追溯。
聯(lián)盟鏈上存儲的數(shù)據(jù)都是公開的。為了保護患者隱私,鏈上只存儲醫(yī)療數(shù)據(jù)的元數(shù)據(jù)和數(shù)據(jù)摘要。元數(shù)據(jù)是定義數(shù)據(jù)的數(shù)據(jù),如患者的電子病歷記錄,可以抽取其患者id、中醫(yī)診斷、醫(yī)療數(shù)據(jù)在鏈下數(shù)據(jù)庫中的存儲位置等作為元數(shù)據(jù)存入鏈中。利用哈希函數(shù)計算醫(yī)療數(shù)據(jù)的數(shù)據(jù)摘要,借助哈希函數(shù)的抗碰撞性防止對數(shù)據(jù)的偽造和篡改。
醫(yī)療行業(yè)對于數(shù)據(jù)隱私的保護非常重視,隱私保護具有獨特的法律法規(guī)要求,如美國醫(yī)療行業(yè)必須遵守1996 年頒發(fā)的《健康保險隱私及責任法案》(HIPAA);在 我 國,2018 年5 月1 日 實 施 的GB/T 35273-2017《信息安全技術個人信息安全規(guī)范》,從個人信息的收集、保存、使用、共享、轉(zhuǎn)讓、公開披露等環(huán)節(jié)出發(fā),提出了保護個人信息安全應遵循的原則和安全要求。因此,為保證醫(yī)療數(shù)據(jù)隱私,個人醫(yī)療記錄都以加密的形式存放在鏈下的分布式數(shù)據(jù)庫中,并利用智能合約執(zhí)行訪問控制策略從而保證數(shù)據(jù)訪問者只能查看被授權的醫(yī)療數(shù)據(jù)[17-20]。
基于中醫(yī)整體觀思想,中醫(yī)藥醫(yī)療大數(shù)據(jù)是多種數(shù)據(jù)的集合,包括患者臨床數(shù)據(jù)、社會行為數(shù)據(jù)、環(huán)境空間數(shù)據(jù)以及遺傳和分子研究數(shù)據(jù),其中患者臨床數(shù)據(jù)又包括來自電子病歷系統(tǒng)、放射科管理系統(tǒng)、藥事管理系統(tǒng)、影像歸檔和通信系統(tǒng)和檢驗科信息管理系統(tǒng)等各類臨床數(shù)據(jù)[21](圖4)。
中醫(yī)藥大數(shù)據(jù)的異構性給數(shù)據(jù)的共享存儲和數(shù)據(jù)分析挖掘帶來了很大的障礙。大多數(shù)機器學習技術和數(shù)據(jù)挖掘方法都不能很好地處理異構數(shù)據(jù)。為了高效地存儲與利用海量的異構中醫(yī)藥數(shù)據(jù),不能簡單地對中醫(yī)臨床異構數(shù)據(jù)進行格式化轉(zhuǎn)換,而需要針對不同的中醫(yī)藥大數(shù)據(jù)進行分類存儲,例如,病人的個人信息,如病人身份,帳單編號,年齡,將以數(shù)字形式儲存;還有一些醫(yī)療指標,如體溫、血壓和血糖值等將以數(shù)值的形式存儲;中醫(yī)電子病歷則更適合以文檔的形式存儲;而醫(yī)學影像信息適合以圖片的形式存儲。這就要求鏈下數(shù)據(jù)存儲時采用對非結構化數(shù)據(jù)更加友好的NOSQL 數(shù)據(jù)庫進行存儲。MongoDB 是NoSQL 數(shù)據(jù)庫的典型代表,支持非結構化數(shù)據(jù)存儲,屬于文檔型數(shù)據(jù)庫,具有無模式、易擴展、高性能等優(yōu)點。結合中醫(yī)藥醫(yī)療數(shù)據(jù)特色,MongoDB 可以很好地適用于中醫(yī)藥電子病歷等多樣異構數(shù)據(jù)的存儲[22-25]。
圖4 中醫(yī)藥海量異構數(shù)據(jù)來源網(wǎng)
根據(jù)中醫(yī)藥臨床和科研需求,為方便同類疾病間做關聯(lián)分析,聯(lián)盟鏈下采用疾病庫--患者數(shù)據(jù)集合--GridFS 分區(qū)3級方式進行異構醫(yī)療數(shù)據(jù)的存儲。首先按照疾病類型對中醫(yī)藥大數(shù)據(jù)分類,基于疾病種類建立數(shù)據(jù)庫,如將“中風病”的各種格式和類型的數(shù)據(jù)存儲到同一庫中建立中風庫;在疾病庫中為便于快速縱向關聯(lián)分析,基于患者ID 創(chuàng)建集合,集合中存儲同一患者的各種格式和類型的病歷文檔和數(shù)據(jù);在同一庫中,利用MongoDB 中的GridFS 分區(qū)存儲醫(yī)學影像文件等大文件,分區(qū)與患者集合相對應。基于此,根據(jù)疾病種類、患者ID以及文件屬性等信息便可以實現(xiàn)對中醫(yī)藥大數(shù)據(jù)的關聯(lián)查詢與訪問[26]?;诼?lián)盟鏈的中醫(yī)藥異構數(shù)據(jù)存儲結構如圖5所示。
圖5 中醫(yī)藥海量異構數(shù)據(jù)存儲結構圖
授權股份證明機制(Delegate proof of stake,DPOS)是一種高效靈活的區(qū)塊鏈共識機制。它在所有的授權節(jié)點中采用民主投票的方式選出101 個權益代表,進而降低參與記賬的節(jié)點數(shù)量,實現(xiàn)區(qū)塊鏈的高效共識驗證。為了選出更具影響力的醫(yī)療機構進行記賬查詢服務,在本文采用改進的DPOS模型。
行業(yè)背景研究發(fā)現(xiàn),中醫(yī)藥信息化過程中,大的醫(yī)療機構信息化進程起步早,程度高,數(shù)據(jù)積累豐富,小的醫(yī)療機構信息化進程起步相對較晚,信息化程度低,數(shù)據(jù)積累不足,因此目前的中醫(yī)藥數(shù)據(jù)中心主要建設在大的醫(yī)療機構。基于行業(yè)現(xiàn)狀,可對DPOS 算法進行改進。預選節(jié)點的選擇依據(jù)衛(wèi)生部頒發(fā)的《醫(yī)療機構基本標準》和《醫(yī)院分級管理辦法》,對醫(yī)院及其信息中心從硬件設施、服務水平,社會效益等多個維度進行評分,選取排在前101 位的醫(yī)療機構信息中心作為聯(lián)盟鏈的預選節(jié)點,從而實現(xiàn)更加高效的共識。設置醫(yī)療機構信用積分制度,預選節(jié)點在進行區(qū)塊簽署時若進行虛假或者無效簽署,積分將會丟失,預選節(jié)點依據(jù)信用積分動態(tài)變化[27]。
目前,醫(yī)療數(shù)據(jù)大多存儲在醫(yī)院數(shù)據(jù)庫中,患者獲取個人醫(yī)療記錄程序繁瑣,病人對個人醫(yī)療數(shù)據(jù)缺少知情權和控制權,并且難以追溯。區(qū)塊鏈的去信任機制推動了智能合約的發(fā)展,智能合約可以理解為編寫在區(qū)塊鏈上的一段代碼,不需要人為干預便可智能執(zhí)行,而區(qū)塊鏈的分布式維護賬本原理也保障了智能合約的公正透明?;诖耍鞠到y(tǒng)設計醫(yī)療聯(lián)盟鏈訪問控制協(xié)議,個人醫(yī)療記錄的使用權限完全由病人自己控制,病人可以授予某個主體訪問相關數(shù)據(jù)的權限,也可以及時撤銷其權限。
數(shù)據(jù)所有者將主體對資源的權限寫入到聯(lián)盟鏈中,通過智能合約的方式設置醫(yī)療數(shù)據(jù)權限集合Permission,包括共享條件、時長和次數(shù)等參數(shù),然后加上有效期和簽名。鏈下數(shù)據(jù)存儲會按照聯(lián)盟鏈中存儲的數(shù)據(jù)權限集合Permission 來控制不同用戶對數(shù)據(jù)的訪問,自動響應不同數(shù)據(jù)請求者的共享請求。當被授予的權限Permission 為空集時,表明撤銷其所有權限[28]。在訪問控制交易中,醫(yī)療數(shù)據(jù)資源用URL 表示,主體用數(shù)據(jù)使用者的公鑰PUK 表示,醫(yī)療數(shù)據(jù)解密密鑰K用訪問對象公鑰PUK加密。
為保證醫(yī)療數(shù)據(jù)的安全共享,采用對稱加密和公鑰加密相結合的方案進行數(shù)據(jù)傳輸和訪問控制,具體流程如下:(1)提出共享訪問請求
輸入:數(shù)據(jù)請求方ID、數(shù)據(jù)請求方公鑰證書和所需醫(yī)療記錄請求信息。
(2)訪問授權
患者作為醫(yī)療記錄擁有者,擁有對數(shù)據(jù)的控制權,根據(jù)請求方身份,制定訪問約束條件Permission,如數(shù)據(jù)共享范圍、時效、次數(shù)等,在聯(lián)盟鏈中生成訪問控制交易。
(3)共享數(shù)據(jù)發(fā)送
聯(lián)盟鏈基于訪問約束條件執(zhí)行智能合約:
首先生成會話密鑰K,使用K 對授權數(shù)據(jù)進行加密;然后利用數(shù)據(jù)請求方公鑰PUK 加密該會話密鑰K;將授權數(shù)據(jù)密文和加密后的會話密鑰{EK(DATA),EPUK(K)}發(fā)送給數(shù)據(jù)請求方。
(4)數(shù)據(jù)訪問
數(shù)據(jù)請求方先利用自己私鑰PRK 解密會話密鑰K,DPRK(EPUK(K));然 后 利 用K 解 密 授 權 數(shù) 據(jù)DK(EK(DATA)),從而實現(xiàn)醫(yī)療數(shù)據(jù)的安全共享。
基于公鑰加密的特性,上述方案可保證只有被授權的用戶才能正確解密會話密鑰,從而進一步使用會話密鑰解密所申請的醫(yī)療數(shù)據(jù)。
醫(yī)療數(shù)據(jù)應用的痛點主要在于患者敏感信息隱私保護的需求與多方機構的數(shù)據(jù)共享需求之間的矛盾。區(qū)塊鏈作為一種多方維、全量備份、信息安全的分布式記賬技術,為醫(yī)療數(shù)據(jù)共享帶來的創(chuàng)新思路是很好的突破點?;诼?lián)盟鏈的中醫(yī)藥大數(shù)據(jù)共享平臺可實現(xiàn)以下四個方面的增值服務和應用(圖6)。
醫(yī)療聯(lián)盟鏈中的數(shù)據(jù)具有安全,防篡改,可追溯的特性,可滿足醫(yī)生、患者、第三方醫(yī)療機構的醫(yī)療數(shù)據(jù)檢索需求,保證數(shù)據(jù)請求者獲取到真實可靠的歷史醫(yī)療數(shù)據(jù)。
第三方醫(yī)療機構可以通過共享的醫(yī)療數(shù)據(jù)對特定類型的疾病進行建模分析,從而達到更好的輔助決策和治療的目的。
通過區(qū)塊鏈獨特的共享賬本管理,可簡化支付流程,提高醫(yī)療費用結算透明度;對社保機構、醫(yī)療保險機構一方面可有效防止醫(yī)療保險欺詐行為,另一方面可縮短醫(yī)療保險理賠時效,大幅減少患者等待理賠的空窗期。
圖6 基于聯(lián)盟鏈的中醫(yī)藥共享平臺應用場景
通過區(qū)塊鏈對每一次醫(yī)療耗材、中藥材的流轉(zhuǎn)進行登記,實現(xiàn)醫(yī)療耗材、中藥材從原材料的生產(chǎn)地、到生產(chǎn)制造、到銷售流轉(zhuǎn)過程、及進入醫(yī)院后患者使用信息的全過程追溯管理,有效實現(xiàn)醫(yī)療耗材和中藥材的溯源管理和防偽鑒定。
基于聯(lián)盟鏈的中醫(yī)藥海量異構數(shù)據(jù)存儲提供了安全的分布式存儲機制,使得醫(yī)療數(shù)據(jù)的所有權重歸患者,并由患者控制醫(yī)療數(shù)據(jù)使用權限,從而建立起一個安全、及時、準確、可共享和廣泛的中醫(yī)藥醫(yī)療健康數(shù)據(jù)源。本系統(tǒng)充分考慮了海量異構中醫(yī)藥數(shù)據(jù)的存儲需求,結合當前流行的MongoDB 數(shù)據(jù)庫分類存儲中醫(yī)藥醫(yī)療數(shù)據(jù),在保證中醫(yī)藥特色的前提下,允許患者、醫(yī)院和第三方機構之間共享醫(yī)療數(shù)據(jù),輔助疾病的預防與診治,提高挖掘探索中醫(yī)藥寶庫的效率。另外,基于聯(lián)盟鏈的醫(yī)療數(shù)據(jù)存儲具有良好的容災性能,去中心化的數(shù)據(jù)存儲使數(shù)據(jù)分布在網(wǎng)絡的不同節(jié)點,可有效解決單點失效問題。需要指出的是,基于聯(lián)盟鏈的醫(yī)療數(shù)據(jù)共享存儲在具體的實施中還會遇到很多問題與挑戰(zhàn),如醫(yī)療機構與政府部門的協(xié)調(diào)合作以及區(qū)塊鏈使用的交互性問題都需要隨著中醫(yī)藥區(qū)塊鏈應用的發(fā)展不斷改進和完善。