本發(fā)明涉及具有智能合約的區(qū)塊鏈技術領域,具體涉及一個基于區(qū)塊鏈的醫(yī)療大數(shù)據(jù)管理系統(tǒng)及框架。
背景技術:
隨著大數(shù)據(jù)、云平臺的不斷發(fā)展,大數(shù)據(jù)安全、云安全也被放在主要的位置。其中,醫(yī)療數(shù)據(jù)是重要的隱私數(shù)據(jù),涉及到的人群廣泛,并且由于患者的不斷轉移,病歷數(shù)據(jù)被不斷的多方傳播,很容易泄露患者的隱私,給患者帶來困擾。
由于一個醫(yī)療數(shù)據(jù)分類眾多,且樣本眾多,這些龐大的數(shù)據(jù)給數(shù)據(jù)庫中心帶來了難以承受的數(shù)據(jù)處理壓力。因此提出了一個基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)管理系統(tǒng)。根據(jù)區(qū)塊鏈的特性,這個系統(tǒng)可以對數(shù)據(jù)進行“去中心化”式的傳播分享,即減小數(shù)據(jù)庫中心的處理壓力,以及給數(shù)據(jù)和操作提供“不可篡改”式的保護。
在專利“一種醫(yī)療數(shù)據(jù)管理方法、裝置及醫(yī)療數(shù)據(jù)系統(tǒng)”中供一種醫(yī)療數(shù)據(jù)管理方法、裝置及醫(yī)療數(shù)據(jù)系統(tǒng),涉及醫(yī)學技術領域,可節(jié)省醫(yī)療數(shù)據(jù)分析時的數(shù)據(jù)收集和錄入過程,降低醫(yī)療數(shù)據(jù)分析的復雜度。該方法包括:管理節(jié)點創(chuàng)建所述醫(yī)療數(shù)據(jù)系統(tǒng)的虛擬化容器,所述管理節(jié)點設置有管理所述醫(yī)療數(shù)據(jù)系統(tǒng)的用戶界面;所述管理節(jié)點將所述虛擬化容器配置在所述n個子節(jié)點內,形成分布式數(shù)據(jù)系統(tǒng);所述管理節(jié)點將his內的醫(yī)療數(shù)據(jù)存儲至所述分布式數(shù)據(jù)系統(tǒng),以便于管理員在進行醫(yī)療數(shù)據(jù)分析時通過所述用戶界面從所述分布式數(shù)據(jù)系統(tǒng)中收集和錄入相應的醫(yī)療數(shù)據(jù)。該方法可應用于醫(yī)療數(shù)據(jù)分析過程中。但是,此方法中沒有提及利用區(qū)塊鏈來實現(xiàn)系統(tǒng)框架以及系統(tǒng)操作,這樣系統(tǒng)操作可能被修改,中心化管理的方式會加大系統(tǒng)的負重。
在專利“醫(yī)療數(shù)據(jù)系統(tǒng)”中公開了一種醫(yī)療數(shù)據(jù)系統(tǒng)。該系統(tǒng)包括:區(qū)域醫(yī)療數(shù)據(jù)中心和與該區(qū)域醫(yī)療數(shù)據(jù)中心連接的多個醫(yī)療機構服務器,多個醫(yī)療機構服務器分別對應于區(qū)域醫(yī)療數(shù)據(jù)中心所轄范圍內的多個醫(yī)療機構;醫(yī)療機構服務器,用于存儲患者在該醫(yī)療機構服務器對應的醫(yī)療機構中的醫(yī)療數(shù)據(jù),醫(yī)療數(shù)據(jù)與患者的身份標識碼相對應;區(qū)域醫(yī)療數(shù)據(jù)中心包括信息存儲模塊:用于存儲多個醫(yī)療機構服務器的地址信息、患者的身份標識碼以及與多個醫(yī)療機構服務器中的醫(yī)療數(shù)據(jù)相對應的醫(yī)療數(shù)據(jù)索引;患者的身份標識碼在區(qū)域醫(yī)療數(shù)據(jù)中心所轄范圍內是唯一的。有效的克服了醫(yī)療機構之間“信息孤島”的技術缺陷。雖然該發(fā)明中,解決了“去中心化”的問題,但是操作的不可篡改性以及規(guī)范的隱私保護機制沒有被涉及,所以有可能帶來安全問題。
技術實現(xiàn)要素:
針對上述現(xiàn)有技術,本發(fā)明目的在于提供一個基于區(qū)塊鏈的醫(yī)療大數(shù)據(jù)管理系統(tǒng)及框架,解決現(xiàn)有技術由于數(shù)據(jù)節(jié)點權限設置、數(shù)據(jù)查詢結構和記錄存儲結構的局限性導致的信息仍然孤立、查詢速度慢且性能與效率低下等技術問題。
為達到上述目的,本發(fā)明采用的技術方案如下:
一個基于區(qū)塊鏈的醫(yī)療大數(shù)據(jù)管理系統(tǒng),包括:
區(qū)塊鏈,包括醫(yī)療數(shù)據(jù)存儲節(jié)點;
注冊合約模塊,用于定義用戶規(guī)則、提供身份驗證和映射概要合約地址,對應數(shù)據(jù)提供方接受注冊用戶的醫(yī)療數(shù)據(jù)、存儲醫(yī)療數(shù)據(jù)于區(qū)塊鏈中數(shù)據(jù)提供方的醫(yī)療數(shù)據(jù)存儲節(jié)點且由數(shù)據(jù)提供方請求調整用戶規(guī)則和重新映射概要合約地址;
概要合約模塊,用于構建索引和產生關系合約地址,包括注冊合約模塊所存儲醫(yī)療數(shù)據(jù)的索引和指向關系合約的列表,列表中存儲有數(shù)據(jù)提供方、其他用戶和/或其他數(shù)據(jù)提供方與各自所有注冊用戶交互的歷史記錄且還存儲有每個注冊用戶與數(shù)據(jù)提供方、其他用戶和/或其他數(shù)據(jù)提供方交互的歷史記錄;
關系合約模塊,用于定義醫(yī)療數(shù)據(jù)存儲節(jié)點訪問權限,由數(shù)據(jù)提供方和其他數(shù)據(jù)提供方的關系合約、或者由數(shù)據(jù)提供方和其他用戶的關系合約選擇地接受其他數(shù)據(jù)提供方或其他用戶的訪問請求,且由關系合約和訪問請求返回對應的醫(yī)療數(shù)據(jù)至其他數(shù)據(jù)提供方或其他用戶。
上述方案中,所述的注冊合約模塊中注冊合約包括注冊用戶的用戶名、以太網(wǎng)地址和概要合約地址。
上述方案中,所述的概要合約模塊中概要合約包括注冊用戶的以太網(wǎng)地址、關系合約地址和用于反應關系合約模塊中關系合約當前特征的狀態(tài)變量。
上述方案中,所述的概要合約模塊,由變化的狀態(tài)變量發(fā)出通知至注冊用戶,該注冊用戶對關系合約模塊發(fā)出關聯(lián)該狀態(tài)變量的新關系處理命令,處理命令包括接受、拒絕或刪除。
上述方案中,所述的關系合約模塊,包括對應不同訪問權限的查詢字段和對應每個查詢字段的醫(yī)療數(shù)據(jù)子集;
所述的關系合約模塊由關系合約通過訪問請求匹配出查詢字段,且返回所匹配查詢字段對應的醫(yī)療數(shù)據(jù)子集至其他數(shù)據(jù)提供方或其他用戶。
上述方案中,所述的醫(yī)療數(shù)據(jù)子集,在醫(yī)療數(shù)據(jù)交互的歷史記錄更新時,醫(yī)療數(shù)據(jù)子集的哈希值添加至對應查詢字段。
一個基于區(qū)塊鏈的醫(yī)療大數(shù)據(jù)管理方法,包括以下步驟:
步驟1、用戶在區(qū)塊鏈中簽訂注冊合約,再由注冊合約映射概要合約地址并確定用戶名;
步驟2、在區(qū)塊鏈中根據(jù)用戶名找到該用戶的概要合約地址處概要合約,然后得到概要合約中的關系合約地址;
步驟3、數(shù)據(jù)提供方向區(qū)塊鏈發(fā)出用戶醫(yī)療數(shù)據(jù)請求,根據(jù)關系合約地址找到用戶與數(shù)據(jù)提供方之間的權限設置,根據(jù)權限設置匹配出查詢字段和查詢字段對應的醫(yī)療數(shù)據(jù)子集,再通過計算醫(yī)療數(shù)據(jù)子集的哈希值驗證數(shù)據(jù)提供方使用醫(yī)療數(shù)據(jù)子集的權限范圍;
步驟4、在權限范圍內,數(shù)據(jù)提供方將數(shù)據(jù)上傳或者下載至區(qū)塊鏈中醫(yī)療數(shù)據(jù)存儲節(jié)點,同時概要合約中關聯(lián)關系合約的狀態(tài)變量發(fā)生變化,再根據(jù)變化的狀態(tài)變量向用戶發(fā)出通知;
步驟5、根據(jù)所接收的通知,用戶向區(qū)塊鏈返回新關系處理命令。
一種概要合約,包括:
以太網(wǎng)地址,用于作為用戶區(qū)塊鏈身份信息;
區(qū)塊鏈節(jié)點關系地址,包括所有與所述以太網(wǎng)地址關聯(lián)的區(qū)塊鏈節(jié)點地址;
狀態(tài)變量,包括所述以太網(wǎng)地址與所述區(qū)塊鏈節(jié)點地址的關聯(lián)狀態(tài)。
上述方案中,通過區(qū)塊鏈內注冊合約中用戶身份字符串與區(qū)塊鏈地址進行映射產生。
一種關系合約,包括:
獲取權限規(guī)則,用于定義區(qū)塊鏈節(jié)點間互相訪問的數(shù)據(jù)范圍,由區(qū)塊鏈內數(shù)據(jù)節(jié)點訪問請求匹配查詢字段且對應查詢字段返回被訪問數(shù)據(jù)節(jié)點的醫(yī)療數(shù)據(jù)子集至所述數(shù)據(jù)節(jié)點。
與現(xiàn)有技術相比,本發(fā)明的有益效果:
1、病歷記錄的不可篡改性以及病歷傳播歷史的不可篡改性;
2、去中心化,減輕患者、數(shù)據(jù)提供方(即數(shù)據(jù)庫中心)、數(shù)據(jù)使用方(即醫(yī)院)之間的規(guī)則以及操作的冗余與負擔;
3、通過以上兩點規(guī)范的定義患者、數(shù)據(jù)與用戶醫(yī)院之間的關系,達到真正保護患者隱私的效果。利用區(qū)塊鏈技術實現(xiàn)的這個系統(tǒng),通過定義相關的國際智能合約(即參與者包括全世界的人群)甚至可以支撐起全球的醫(yī)療數(shù)據(jù)傳輸;
4、提出了一種關系合約方案,關系合約提供數(shù)據(jù)節(jié)點訪問權限設置,在保證數(shù)據(jù)不會被隨意篡改的基礎上,還實現(xiàn)了合約方間高速訪問和記錄修改,而現(xiàn)有技術中訪問權限過于嚴苛,要求不能對醫(yī)療數(shù)據(jù)進行任何修改且權限設置缺乏靈活性,造成信息孤島問題持續(xù)存在,同時存在合約框架和用于記錄交互歷史的存儲結構難于設計的技術壁壘;
5.提出了一種概要合約方案,其聯(lián)系起注冊合約和關系合約,構成具有快速索引的區(qū)塊鏈智能合約框架,并且概要合約不僅能更快更準確查找出醫(yī)療記錄,還能為用戶在自己的數(shù)據(jù)被建立新關系時提供提醒且同時接收實時處理命令。
附圖說明
圖1為本發(fā)明實施例的總體框架示意圖;
圖2為本發(fā)明實施例的合約結構示意圖。
具體實施方式
本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
下面結合附圖對本發(fā)明做進一步說明:
在這個醫(yī)療大數(shù)據(jù)管理系統(tǒng)中,包括了三個部分:(1)注冊合約模塊;(2)概要合約模塊;(3)用戶與病歷數(shù)據(jù)提供方的關系合約模塊。
實施例1
在注冊合約模塊中,這個全球性合約會將參與者的身份字符串與他們的以太坊信息進行匹配(比如它們的和要等于一個公鑰)。在這里面,直接使用明文的字符串來進行身份驗證,并不使用加密公鑰驗證方式,并且允許使用已存在的身份格式,盡量將系統(tǒng)簡單化,減少計算量,提高系統(tǒng)性能。然而,為了保證系統(tǒng)的合理性,允許人為調整注冊新用戶規(guī)則以及修改已有映射。身份的注冊只被已認證的管理機構進行管理。注冊合約也會將身份字符串與另一個區(qū)塊鏈地址進行映射,這個即是概要合約。
在系統(tǒng)中,當一個節(jié)點需要為另一個節(jié)點存儲以及管理醫(yī)療數(shù)據(jù)時,它們之間會簽訂一個用戶與醫(yī)療數(shù)據(jù)提供方(比如某中心數(shù)據(jù)庫或者醫(yī)院)的關系合約(以下簡稱關系合約)。另外,在任何一個有這種管理以及被管理的關系中,這種用戶與醫(yī)療數(shù)據(jù)提供方之間的關系合約都是成立且會被執(zhí)行的。這個關系合約由數(shù)據(jù)節(jié)點以及相關的獲取權限構成,獲取權限將決定醫(yī)療數(shù)據(jù)提供方可以從用戶處獲取什么數(shù)據(jù)用以分享傳播。每一個數(shù)據(jù)節(jié)點中都有一個查詢字段,當在數(shù)據(jù)提供方的數(shù)據(jù)庫上進行操作時,這個查詢字段會相應返回一個用戶醫(yī)療數(shù)據(jù)的子集。當有新的記錄被添加時,這個數(shù)據(jù)查詢字段以及它的相關信息會被數(shù)據(jù)提供方修改。醫(yī)療數(shù)據(jù)子集的哈希值會被添加在這個查詢字段中,用以保證數(shù)據(jù)不會在源頭上被篡改。合約中的附加信息表示了數(shù)據(jù)提供者的數(shù)據(jù)庫可以從哪一個網(wǎng)絡地址中獲取,比如主機名稱以及端口。為了使得用戶可以分享自己的醫(yī)療數(shù)據(jù)給除了醫(yī)院或者醫(yī)生等其他人,用一個哈希表來實現(xiàn)查閱者地址與額外的查詢字段的映射。每一個查詢字段都能具體指定用戶的某一部分數(shù)據(jù)可以給哪一個第三方查閱者查看。
概要合約的功能是更快更準確的為參與者查找他們醫(yī)療記錄,它處在注冊合約以及關系合約之間,將注冊合約和關系合約聯(lián)系起來。它提供了一個指向關系合約的列表,用以記錄所有參與者現(xiàn)在及以前與其他節(jié)點進行交互的合約歷史記錄。比如用戶,他們的概要合約將由所有他們曾經(jīng)交互過的數(shù)據(jù)提供方組成。另一方面,數(shù)據(jù)提供方的概要合約是由他們服務過的患者以及合作過的第三方授權數(shù)據(jù)庫組成。通過概要合約,用戶可以在任意時間里任意次的脫離和重新加入管理系統(tǒng),因為他們可以重新獲得他們的歷史記錄通過從區(qū)塊鏈上獲取最新的數(shù)據(jù)。只要參與節(jié)點還在網(wǎng)絡上,那么區(qū)塊鏈的記錄將會一直存在。在概要合約中,還將提供用戶提醒功能。每一個關系合約中都會存儲一個狀態(tài)變量,用來指示這個關系是否是新建,是否被修改過,以及是否獲得用戶的授權。在每一次數(shù)據(jù)提供方上傳新的記錄或者建立了一個新的關系時,數(shù)據(jù)提供方將在他們的用戶概要合約中重置這個關系狀態(tài)。所以每一次概要合約中的狀態(tài)變量發(fā)生變化時,用戶將會被通知。用戶有權力接受、拒絕、刪除任何關系,決定哪一個交互記錄是由他們授權了的。
系統(tǒng)保證了接受以及拒絕關系的權力只掌握在用戶手中。防止被惡意的參與者用垃圾信息騷擾,只有數(shù)據(jù)提供者才有上傳狀態(tài)變量的資格。當然,系統(tǒng)管理原則可以被擴展,以完善整個系統(tǒng),保證正確的執(zhí)行操作。
一次完整的醫(yī)療大數(shù)據(jù)上傳、維護、下載具體實現(xiàn)步驟如下:
步驟一:用戶首先要簽訂一個注冊合約,即相當于在系統(tǒng)中注冊。注冊合約中包含了用戶的名稱、以太網(wǎng)地址、以及該用戶的概要合約地址;
步驟二:系統(tǒng)根據(jù)用戶名找到該用戶的概要合約。概要合約中包括了用戶的以太網(wǎng)地址、用戶與數(shù)據(jù)提供方關系合約地址以及該關系合約的狀態(tài)變量;
步驟三:系統(tǒng)根據(jù)關系合約地址找到用戶與數(shù)據(jù)提供方之間的具體權力設置,根據(jù)計算哈希值驗證數(shù)據(jù)提供方可以獲取哪些數(shù)據(jù),驗證數(shù)據(jù)提供方的權限等;
步驟四:經(jīng)過身份及數(shù)據(jù)的驗證,數(shù)據(jù)將會被上傳或者下載,此時概要合約中響應的關系合約狀態(tài)變量會發(fā)生改變,并且通知用戶;
步驟五:用戶可以根據(jù)自己的需要選擇是否接受或者拒絕這個關系合約以及這個操作,決定是否要授權給這個交互操作。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何屬于本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。