馮霄鵬,夏俊杰,章 峰,孫 曄(. 北京電信規(guī)劃設(shè)計(jì)院有限公司,北京 00044;. 中國(guó)聯(lián)通智能城市研究院,北京 00044)
2013年9月,信息化和工業(yè)部在《信息化發(fā)展規(guī)劃》中,提出創(chuàng)立全面的電子病案和居民健康檔案,通過(guò)開(kāi)展衛(wèi)生信息化區(qū)域試點(diǎn),最終實(shí)現(xiàn)醫(yī)療服務(wù)、公共衛(wèi)生服務(wù)等的數(shù)據(jù)共享和互通有無(wú)。在當(dāng)下,隨著信息化建設(shè)的快速發(fā)展,北上廣深等一線城市信息化的不斷展開(kāi),信息化工具已經(jīng)融入了醫(yī)院管理的各個(gè)方面,其中包括醫(yī)院的信息系統(tǒng)、遠(yuǎn)程診療系統(tǒng)、藥品管理系統(tǒng)以及辦公自動(dòng)化系統(tǒng)。但是,很多地方的中小醫(yī)院的信息化建設(shè)還是相當(dāng)落后,甚至有不少的二級(jí)醫(yī)院仍舊處在傳統(tǒng)的信息化狀態(tài),沒(méi)有實(shí)現(xiàn)信息化管理,工作效率極其低下。我國(guó)提出了醫(yī)療聯(lián)合體的醫(yī)改方案,來(lái)合理配置區(qū)域醫(yī)療資源,提高區(qū)域內(nèi)的醫(yī)療服務(wù)效率。但是,目前國(guó)內(nèi)主流的醫(yī)療機(jī)構(gòu)都是公立醫(yī)療資源,所以大部分醫(yī)聯(lián)體都是由政府出面強(qiáng)行進(jìn)行整合,存在著各種問(wèn)題亟待解決。
a)醫(yī)聯(lián)體中的各個(gè)醫(yī)院數(shù)據(jù)沒(méi)有及時(shí)同步,存在明顯的信息不對(duì)稱(chēng)和較高的數(shù)據(jù)冗余。病人的信息無(wú)法及時(shí)同步,容易造成人力物力的浪費(fèi),使得醫(yī)療衛(wèi)生服務(wù)碎片化。
b)國(guó)內(nèi)的醫(yī)療一般都是由相關(guān)機(jī)構(gòu)進(jìn)行監(jiān)管,缺乏來(lái)自患者的真實(shí)意見(jiàn)。并且,監(jiān)管中存在灰色地帶,部分環(huán)節(jié)無(wú)法得到直接的監(jiān)管。
c)隨著越來(lái)越多的設(shè)備接入到互聯(lián)網(wǎng)中,信息安全問(wèn)題日益突出,醫(yī)療行業(yè)的數(shù)據(jù)維護(hù)成本開(kāi)始增加。
針對(duì)現(xiàn)有的醫(yī)聯(lián)體存在的問(wèn)題,本文提出基于聯(lián)盟鏈的可信醫(yī)聯(lián)體應(yīng)用,通過(guò)聯(lián)盟鏈技術(shù)帶來(lái)的去中心化、數(shù)據(jù)一致性、不可篡改、可追溯、共同維護(hù)等特性,對(duì)醫(yī)聯(lián)體中的數(shù)據(jù)進(jìn)行加密,實(shí)現(xiàn)可信高效的數(shù)據(jù)共享,提高數(shù)據(jù)安全性,保證操作的可追溯、可審計(jì),醫(yī)聯(lián)體中的設(shè)備共同維護(hù)全部的醫(yī)療數(shù)據(jù),提高數(shù)據(jù)的透明度,減少醫(yī)患糾紛。
自2008年起,比特幣開(kāi)始出現(xiàn)并蓬勃發(fā)展,區(qū)塊鏈技術(shù)開(kāi)始進(jìn)入人們的視野,引起了極大的關(guān)注?,F(xiàn)在各國(guó)都紛紛進(jìn)行區(qū)塊鏈的投資研發(fā),區(qū)塊鏈已經(jīng)進(jìn)入?yún)^(qū)塊鏈3.0時(shí)代。狹義的區(qū)塊鏈?zhǔn)且环N時(shí)序數(shù)據(jù)區(qū)塊,相互連接組成一種鏈?zhǔn)浇Y(jié)構(gòu),用密碼學(xué)方式來(lái)確保分布式賬本的不可篡改和不可偽造。廣義的區(qū)塊鏈技術(shù)是利用塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來(lái)驗(yàn)證與存儲(chǔ)數(shù)據(jù),利用分布式節(jié)點(diǎn)共識(shí)算法來(lái)生成和更新數(shù)據(jù),利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問(wèn)的安全,利用由自動(dòng)化腳本代碼組成的智能合約來(lái)編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計(jì)算范式。區(qū)塊鏈技術(shù)具有去中心化、追蹤溯源、不可篡改、可編程和集體維護(hù)等特性。有5種應(yīng)用模式,即公有鏈(Public block?chain)、聯(lián)盟鏈(Consortium blockchain)、私有鏈(Pri?vate blockchain)、混合鏈(Hybrid blockchain)和許可鏈(Permissioned blockchain)。
一般來(lái)說(shuō),區(qū)塊鏈系統(tǒng)由數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、合約層和應(yīng)用層5部分組成。區(qū)塊鏈架構(gòu)如圖1所示。
在區(qū)塊鏈系統(tǒng)中,最底層的原始數(shù)據(jù)需要進(jìn)一步加工才能存儲(chǔ)到區(qū)塊之中。底層數(shù)據(jù)最根本的是信息記錄,其他的數(shù)據(jù)只是為了對(duì)信息記錄進(jìn)行封裝。該過(guò)程涉及哈希算法、Merkle樹(shù)和時(shí)間戳等技術(shù)。
網(wǎng)絡(luò)層封裝了區(qū)塊鏈的組網(wǎng)模式、消息傳播協(xié)議、數(shù)據(jù)驗(yàn)證機(jī)制等要素。在設(shè)定的消息傳播協(xié)議與數(shù)據(jù)驗(yàn)證機(jī)制下,能夠讓區(qū)塊鏈中的所有節(jié)點(diǎn)或者是大部分節(jié)點(diǎn)都能夠參與到區(qū)塊數(shù)據(jù)的驗(yàn)證與記賬過(guò)程中,當(dāng)大部分節(jié)點(diǎn)對(duì)區(qū)塊數(shù)據(jù)校驗(yàn)成功后,區(qū)塊數(shù)據(jù)才能記入?yún)^(qū)塊中。
圖1 區(qū)塊鏈架構(gòu)
共識(shí)機(jī)制是為了保證分布式賬本的所有節(jié)點(diǎn)所存儲(chǔ)信息的準(zhǔn)確性與一致性而設(shè)計(jì)的一套機(jī)制,就像社會(huì)系統(tǒng)中“民主”和“集中”的對(duì)立關(guān)系,決策權(quán)越分散的系統(tǒng)達(dá)成共識(shí)的效率就越低,但是系統(tǒng)的滿意度和穩(wěn)定性會(huì)越高;反之,決策權(quán)越集中的系統(tǒng)越容易達(dá)成共識(shí),但是整個(gè)系統(tǒng)的滿意度和穩(wěn)定性也就會(huì)降低。共識(shí)機(jī)制的設(shè)計(jì)主要是由業(yè)務(wù)與性能的需求決定的,從PoW到PoS再到DPoS和Paxos以及各種拜占庭容錯(cuò)算法,共識(shí)機(jī)制不斷創(chuàng)新,區(qū)塊鏈平臺(tái)性能也得到大幅提升。
合約層主要封裝了區(qū)塊鏈系統(tǒng)運(yùn)行中需要的各類(lèi)腳本代碼、算法以及由此生成的更為復(fù)雜的智能合約。數(shù)據(jù)、網(wǎng)絡(luò)和共識(shí)這三層可作為區(qū)塊鏈底層,分別承擔(dān)數(shù)據(jù)表示、數(shù)據(jù)傳播和數(shù)據(jù)驗(yàn)證,合約層是建立在區(qū)塊鏈底層之上的邏輯、算法或者說(shuō)是規(guī)則策略,從而實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)靈活編程和操作數(shù)據(jù)等功能。
合約層的一個(gè)相關(guān)概念就是智能合約。智能合約是20世紀(jì)90年代由Nick Szabo提出的,幾乎與互聯(lián)網(wǎng)同齡。那個(gè)年代由于缺少可信的執(zhí)行環(huán)境,智能合約并沒(méi)有被應(yīng)用到實(shí)際產(chǎn)業(yè)中,自比特幣誕生后,人們認(rèn)識(shí)到比特幣的底層技術(shù)區(qū)塊鏈可以為智能合約提供可信的執(zhí)行環(huán)境。一個(gè)成功的案例就是,以太坊看到了區(qū)塊鏈和智能合約的契合點(diǎn),發(fā)布以太幣,打造以太坊平臺(tái)。智能合約的運(yùn)行機(jī)制如圖2所示。
區(qū)塊鏈技術(shù)的出現(xiàn),為可信醫(yī)聯(lián)體的架構(gòu)提供了技術(shù)基礎(chǔ),可以更加高效地促進(jìn)醫(yī)聯(lián)體的發(fā)展與合作。
圖2 智能合約的運(yùn)行機(jī)制
為了更好地整合醫(yī)療資源,提高服務(wù)效率,實(shí)現(xiàn)分級(jí)診療。醫(yī)聯(lián)體中涉及到大型醫(yī)院、基層醫(yī)療衛(wèi)生機(jī)構(gòu)、藥品企業(yè)、監(jiān)管部門(mén)等多個(gè)部門(mén),且各部門(mén)之間是相互平等的,不應(yīng)存在中心化節(jié)點(diǎn)。因此,本文將醫(yī)聯(lián)體中涉及到的多個(gè)部門(mén)設(shè)置稱(chēng)為聯(lián)盟鏈中的各個(gè)節(jié)點(diǎn),參與到聯(lián)盟鏈中,構(gòu)成一條醫(yī)聯(lián)體聯(lián)盟鏈,具體架構(gòu)如圖3所示。
圖3 可信醫(yī)聯(lián)體架構(gòu)
圖3中的數(shù)據(jù)映射功能主要是將已有的數(shù)據(jù)庫(kù)中的內(nèi)容,映射上傳到聯(lián)盟鏈中,同時(shí)也負(fù)責(zé)將聯(lián)盟鏈中的數(shù)據(jù)通過(guò)數(shù)據(jù)映射存儲(chǔ)到數(shù)據(jù)庫(kù)中。
基于聯(lián)盟鏈的可信醫(yī)聯(lián)體應(yīng)用的整體功能架構(gòu)如圖4所示,底層的運(yùn)行環(huán)境是通過(guò)云上的容器服務(wù)實(shí)現(xiàn)快速部署,結(jié)合本地服務(wù)器的現(xiàn)有計(jì)算資源,最大程度降低整個(gè)醫(yī)聯(lián)體聯(lián)盟鏈的建設(shè)成本,更加快速地構(gòu)建可信醫(yī)聯(lián)體,更快地投入應(yīng)用。
圖4 功能架構(gòu)
為了更好地統(tǒng)籌管理整個(gè)可信醫(yī)聯(lián)體聯(lián)盟鏈,每一個(gè)聯(lián)盟鏈中的用戶都將在注冊(cè)信息后,獲取到一個(gè)全局唯一的層次化的ID,比如北京A醫(yī)院的B部門(mén)的C員工,身份編號(hào)為0123,系統(tǒng)將自動(dòng)為其生成一個(gè)唯一的ID:CN.A.B.C.0123。每一位注冊(cè)的新員工都將由聯(lián)盟鏈生成的唯一的公私鑰來(lái)進(jìn)行用戶身份的認(rèn)證,確保聯(lián)盟鏈中記錄的對(duì)應(yīng)操作、相關(guān)數(shù)據(jù)都是真實(shí)有效的。
2.2.1 數(shù)據(jù)共享
醫(yī)聯(lián)體中的人員利用自己的私鑰信息登錄到醫(yī)聯(lián)體聯(lián)盟鏈后,通過(guò)聯(lián)盟鏈數(shù)據(jù)上傳合約上傳患者的信息,在聯(lián)盟鏈中構(gòu)建患者的健康檔案。上傳數(shù)據(jù)的時(shí)候,需要人員的私鑰信息對(duì)上傳的數(shù)據(jù)進(jìn)行簽名,同時(shí)聯(lián)盟鏈還將根據(jù)操作人員的ID自動(dòng)生成該檔案信息的來(lái)源組織,確保整個(gè)患者健康檔案的真實(shí)可信。
因?yàn)獒t(yī)聯(lián)體中存在的不同的機(jī)構(gòu)組織,不同的機(jī)構(gòu)組織負(fù)責(zé)不同的業(yè)務(wù)數(shù)據(jù),所以醫(yī)聯(lián)體聯(lián)盟鏈為不同的機(jī)構(gòu)組織設(shè)置不同的數(shù)據(jù)通道,避免機(jī)構(gòu)組織、不同職責(zé)的負(fù)責(zé)人訪問(wèn)不屬于自身業(yè)務(wù)范圍的數(shù)據(jù),增加醫(yī)聯(lián)體聯(lián)盟鏈中的安全性與數(shù)據(jù)隱私性。
醫(yī)聯(lián)體中醫(yī)院的專(zhuān)家需要獲取患者的病例或者健康檔案的時(shí)候,需要使用自身的私鑰進(jìn)行合約驗(yàn)證,驗(yàn)證通過(guò)后才可以向醫(yī)聯(lián)體聯(lián)盟鏈發(fā)起數(shù)據(jù)請(qǐng)求。聯(lián)盟鏈將獲取到的患者檔案通過(guò)申請(qǐng)者的公鑰信息加密,然后進(jìn)行傳輸,申請(qǐng)者通過(guò)使用自身的私鑰對(duì)加密信息進(jìn)行解密,獲取到相關(guān)的信息。具體流程如圖5所示。
2.2.2 權(quán)限控制
圖5 數(shù)據(jù)上鏈與獲取
為了進(jìn)一步加強(qiáng)醫(yī)聯(lián)體中不同部門(mén)的信息安全等級(jí),本文設(shè)計(jì)了不同的權(quán)限等級(jí)控制機(jī)制。不同科室的醫(yī)生和不同級(jí)別的專(zhuān)家具備不同的瀏覽權(quán)限,不同的機(jī)構(gòu)之間也有著不同的瀏覽權(quán)限,不同機(jī)構(gòu)組織的人員權(quán)限,由機(jī)構(gòu)組織根據(jù)職位、部門(mén)分發(fā)權(quán)限等級(jí)。本文設(shè)立了三級(jí)權(quán)限分級(jí),具體分級(jí)如圖6所示。
圖6 權(quán)限分級(jí)
由于整套醫(yī)聯(lián)體聯(lián)盟鏈中存在監(jiān)管部門(mén),且監(jiān)管部門(mén)處于最高的三級(jí)權(quán)限,負(fù)責(zé)審計(jì)醫(yī)聯(lián)體聯(lián)盟鏈中的全部數(shù)據(jù)。所以,本文在設(shè)計(jì)不同機(jī)構(gòu)部門(mén)在聯(lián)盟鏈中的數(shù)據(jù)通道、監(jiān)管部門(mén)最終的審計(jì)時(shí),也將按照不同的機(jī)構(gòu)部門(mén)進(jìn)行分類(lèi),分別記錄不同的操作、信息、數(shù)據(jù),交由監(jiān)管組織進(jìn)行審計(jì),如圖7所示。
本文在Hyperledger的Fabric的基礎(chǔ)上,實(shí)現(xiàn)了醫(yī)聯(lián)體聯(lián)盟鏈底層平臺(tái)。本節(jié)針對(duì)實(shí)現(xiàn)的聯(lián)盟鏈平臺(tái)進(jìn)行實(shí)驗(yàn)測(cè)試。測(cè)試環(huán)境如表1所示。
圖7 監(jiān)管審計(jì)
表1 測(cè)試環(huán)境
在聯(lián)盟鏈平臺(tái)測(cè)試環(huán)境下,1 s內(nèi)發(fā)送5萬(wàn)筆交易請(qǐng)求,交易包括不同的類(lèi)型:身份認(rèn)證、檔案查詢、信息提交等。在高并發(fā)的情況下,吞吐量達(dá)到2 235 tps。Orderer節(jié)點(diǎn)和Peer節(jié)點(diǎn)的內(nèi)存占比如圖8和圖9所示,從圖8和圖9中可以發(fā)現(xiàn),整體的運(yùn)行情況較為平穩(wěn)。
圖8 Orderer節(jié)點(diǎn)內(nèi)存運(yùn)行
圖9 Peer節(jié)點(diǎn)內(nèi)存運(yùn)行
在設(shè)置4個(gè)共識(shí)節(jié)點(diǎn)的情形下,我們?cè)O(shè)計(jì)了壓力測(cè)試,不停地發(fā)送交易,使壓力維持在較高的水平(未處理交易保持在1 000以上),且持續(xù)運(yùn)行1 h。Orderer與Peer節(jié)點(diǎn)網(wǎng)絡(luò)消耗如圖10和圖11所示,從圖10和圖11可以發(fā)現(xiàn),平臺(tái)在壓力測(cè)試的情況下仍然可以保證平穩(wěn)的效率。
本文針對(duì)醫(yī)聯(lián)體聯(lián)盟鏈中使用的SM2算法進(jìn)行了測(cè)試,測(cè)試結(jié)果如表2所示。
圖10 Orderer節(jié)點(diǎn)網(wǎng)絡(luò)消耗
圖11 Peer節(jié)點(diǎn)網(wǎng)絡(luò)消耗
表2 SM2性能測(cè)試
上述測(cè)試表明,基于聯(lián)盟鏈的醫(yī)聯(lián)體應(yīng)用可以良好穩(wěn)定地運(yùn)行,具備良好的安全控制,能夠滿足醫(yī)聯(lián)體的交易需求、安全需求,提高數(shù)據(jù)共享效率,減少運(yùn)維成本,增加安全與透明程度。
本文提出了基于聯(lián)盟鏈的可信醫(yī)聯(lián)體構(gòu)建方式,并且基礎(chǔ)平臺(tái)的測(cè)試數(shù)據(jù)較為理想,基本可以滿足醫(yī)聯(lián)體的日常事務(wù)處理效率,大大的提高了不同機(jī)構(gòu)之間的數(shù)據(jù)交換效率,提出的權(quán)限控制機(jī)制,則可以大大的提高不同業(yè)務(wù)部門(mén)的數(shù)據(jù)安全性以及透明程度,方便監(jiān)管部門(mén)的監(jiān)督、審計(jì)。