宋 波,劉 錚,馮云霞,耿思薇
(1.青島科技大學 信息科學技術學院,山東 青島 266000; 2.張店區人民醫院,山東 淄博 255022)
醫聯體是區域醫療聯合體的簡稱,是指在一個區域內,由不同級別、類別醫療機構之間,通過縱向或橫向醫療資源整合所形成的醫療機構聯合組織。醫聯體以大帶小,以強帶弱優勢逐步凸顯,充分發揮了三級醫院的龍頭作用,極大地促進了我國現代醫療的建設與發展。
在醫聯體發展過程中,許多問題也漸漸浮現出來,由于同一醫聯體中的醫院之間利益關系不明確,導致醫院與醫院之間無法建立一致的協議標準,資源整合不到位,影響醫聯體正常的運行。在運作時,醫聯體首先要求數據能夠在機構中有效準確可靠的流動,并且要保證數據的安全與脫敏加密,隱私保護,同時醫聯體還要有一套完善可信的運行機制,傳統的中心化醫聯體系統架構已無法解決這些問題。
針對這些問題,本文提出基于區塊鏈技術的醫聯體建設,利用區塊鏈去中心化公開透明等特性,解決醫聯體醫院之間的數據的安全問題,并通過智能合約建立明確的醫院間利益關系。以期推進醫聯體發展,為醫療行業信息化發展提供參考。
當前我國醫聯體分為3種:松散型、半緊密型和緊密型。在實際中,大多數為松散型醫聯體,而較少是緊密型醫聯體。
在發展的過程中,當前的醫聯體架構面臨如下幾個問題:
1)在醫院業務系統中,缺少一個能將所有的數據進行實時采集整合的方法,通常的方法如視圖同步等無形中極大增加了服務器壓力,導致系統不穩定甚至宕機,且無法實時同步數據,導致數據無法完整地共享。
2)不同醫院之間無法建立協商一致的協議標準。由于各個醫院節點無法建立信任以及受約束的管理機制,且資源分配不均,無法自由安全地交換和傳輸醫療信息數據,更談不上相互之間形成共識機制。
3)缺乏一個在不同醫院數據傳輸的同時確保信息的穩定性、可靠性、不可篡改性及可追溯性的安全機制。由于設計初期設計的缺陷,各個醫院中存在“信息孤島”的問題,缺乏一個安全、可靠、可信的技術能夠打破目前缺的僵局。
區塊鏈技術(Block Chain)是將多種的技術有機結合并再加以創新的新模式技術,具有去中心化、公開透明、共享賬本等的特性。區塊鏈沒有中心管制,即使一個節點出了問題也不會影響整體,使系統更安全可靠穩定。區塊鏈具有公開透明的特性,鏈上的數據和系統信息可以被全節點審查和追溯,這是區塊鏈值得信任的基礎。區塊鏈上的數據信息是無法篡改的,數據上鏈后會被永久存儲,且數據經過安全加密,使得區塊鏈數據信息更加安全。
在發展過程中,區塊鏈主要被分為3種,分別是私有鏈、公有鏈及聯盟鏈。私有鏈一般都會被某個組織機制內部使用,區塊鏈上的權限規則完全由私有組織控制,參入的節點資格也會被嚴格限制。
公有鏈是完全的去中心化區塊鏈,節點的添加不需要做任何驗證機制,且所有節點擁有等同的權限,沒有任何節點能控制或篡改區塊鏈數據的讀寫,比特幣就是著名的例子。
聯盟鏈是一種典型的多中心結構區塊鏈,其本質是分布式的托管記賬,不需要相互信任即可實現數據的可信互換,一般是由達成約定的組織機構共同建設和維護的,各個節點通常有與之對應的實體機構組織,必須要通過授權才能夠加入或者退出網絡。
目前,區塊鏈的特性大部分都運作于金融行業,而區塊鏈技術運用到醫聯體中優勢也是是十分顯著的。其去中心化、防篡改等特性恰好解決了醫聯體中所存在的問題,具體應用如下:
1)去中心化是區塊鏈的最重要的特點。在區塊鏈醫聯體系統中,每個醫院或者機構都是一個獨立的節點,醫院應用的數據各自保存在各自的醫院服務器內,且區塊鏈數據經過加密保證了區塊鏈上的數據的安全,授權的節點之間可以安全自由的傳輸數據信息,解決了各個醫院之間的數據安全共享問題,并可以以此為基礎,建立起共識機制。
2)區塊鏈可以將醫聯體中醫院里的各個應用數據信息整合在一起,形成數據分中心,實現醫院節點的信息整合。
3)在區塊鏈醫聯體中,政府部門負責整個系統的監管,而區塊鏈具有的公開透明、可追溯的特點,使得政府部門更易于監管接入,獲得更加全面實時的監管數據。
基于聯盟鏈的醫聯體系統架構設計:
目前,我國醫聯體多數為松散型醫聯體,而較少為緊密型。松散型醫聯體組建簡單,但機構間各自為政,貌合神離,作用不明顯;緊密型醫聯體是高度集中的醫療聯合體,醫聯體醫院之間可互通有無,資源共享,更佳利于現代化醫療的發展。
比起傳統的醫聯體形式,本文認為聯盟鏈更符合醫聯體的運作形式,由衛健委為審計節點,負責監督和審查,三級醫院為驗證節點,二級醫院或其他醫療機構等為非驗證節點,即保證了衛健委的有效監督和宏觀把控,又解決了醫聯體醫院之間的數據交互、節點認證等問題。機構間的業務關系通過專門的通路連接起來,數據通過通路可實時準確的同步,在醫聯體內形成緊密且安全的業務網,實現松散型醫聯體到緊密型醫聯體的轉變。
1)基于聯盟鏈的醫聯體系統業務架構:
在醫聯體中,各機構與機構之間存在緊密的業務關系,使用聯盟鏈更符合醫聯體的運作形式。channel是聯盟鏈之間傳遞和同步數據的一種手段,將制定的節點連接在一起,不相關的節點無法參與進來,形成一個具有保密性的通道鏈路,實現機構與機構之間安全快速的交易。醫療機構之間業務結構如圖1所示。

圖1 醫療機構關系圖
醫療機構之間結構如圖1所示,在醫聯體中,上級醫院和下級醫院之間可以進行相互的轉診或醫療資源的共享。以轉診為例,當醫院A接受到無法治療的患者需向上級醫院B轉診時,醫院A需將患者的診療信息上報給醫院B,醫院A與醫院B之間的利益關系智能合約會自動執行,這樣既減少了患者的重復檢查,同時也避免了醫院之間的利益關系的不明確。
醫療監管部門之間、管理部門與醫療機構之間業務結構如圖2所示。

圖2 監管機構醫療機構關系圖
如圖2所示,衛健委在此區塊鏈系統中作為監管部門,監管所管轄醫院的醫療信息與醫療機構之間的交易信息。每個區的醫院由各區的衛健委負責監管,醫院會將醫院的醫療信息上報給衛健委,監管部門之間關系由所管轄區域關系決定,上級部門負責監管下級部門,下級部門將其收到的醫院醫療信息進行匯總并上報給上級監管部門,實現了一個層層遞進的管理鏈。
2)基于聯盟鏈的醫聯體系統組織架構:
根據醫聯體系統業務架構,首先要保證系統的穩定,機構與機構之間的鏈接,其次要保證數據的在機構間能夠準確安全的流轉,還要保證智能合約的合理,所以將醫聯體區塊鏈系統上下分為5層,分別為數據層、網絡層、共識層、合約層和應用層如圖3所示。
如圖3所示,數據層為底層的技術,負責存放區塊鏈數據和存放醫院里各個應用的數據如HIS(醫院信息系統,Hospital Information System)、LIS(實驗室信息管理系統,Laboratory Information Management System)、EMR(電子病歷,Electronic Medical Record)等,數據保存在各個節
點的本地數據庫中;區塊鏈數據為醫院之間轉診或共享醫療資源的數據、醫院與監管部門之間上報的數據和監管部門與監管部門之間上報的數據,并加以加密存儲保證數據安全。
網絡層主要負責點與點之間的鏈接,又被稱作為點對點技術,主要包括P2P組網機制、數據傳播和驗證機制。P2P網絡由多個節點組成,一般分為驗證節點、非驗證節點和審計節點構成,其中衛健委擔任審計節點,負責對區塊鏈醫聯體系統內的交易進行審計與監督;三級醫院擔任驗證節點負責進行對非驗證節點的合法性驗證與背書。
共識層封裝了網絡節點的各類共識機制算法, 能讓高度分散的節點在去中心化的區塊鏈網絡中高效地針對區塊數據的有效性達成共識決定了到底是誰來進行記賬。目前最為知名的有3種共識機制——工作量機制證明(POW)、權益證明機制(POS)、股份授權證明機制(DPOS)。
合約層就像一個自定義的電子合同,是區塊鏈可編程特性的基礎,其中封裝各類腳本、算法和智能合約,規定了醫聯體中轉診、智能合約、數據權屬等執行規則。
應用層為利用編程語言實現的可視化界面的客戶端,客戶端和部署到Fabric鏈上代碼部分的服務器端業務合約共同完成應用功能。
采用圖3區塊鏈系統框架,首先解決醫聯體內醫院之間的醫療數據共享和數據整合問題,區塊鏈中每個節點的數據都會通過共識機制進行一致擴散,使得每個醫聯體內每個業務機構的數據一致,而且區塊鏈層多中心化的設計使得一個客戶端破壞也能正常運行,保證了系統的穩定性。合約層規定了一致的協議標準,明確了醫聯體內的共識機制。

圖3 醫聯體區塊鏈分層構架圖
3)基于聯盟鏈的醫聯體系統模塊設計:
根據醫聯體系統架構業務需求,用戶類型分別為監管機構和醫療機構兩種,醫療監管機構要監管醫院的交易的合法性同時還要監管著整個系統;在客戶端將數據上鏈時需要進行加密以保證數據的安全,所以基于區塊鏈架構將醫聯體分為5個模塊,分別為區塊鏈平臺模塊、智能合約模塊、應用模塊、審計模塊及數據隱私模塊。如圖4所示。

圖4 區塊鏈醫聯體系統模塊圖
圖4為區塊鏈系統的系統模塊圖。其中底層為區塊鏈平臺模塊,也是整個系統的核心組成。主要負責如下幾個功能:
1)區塊鏈平臺模塊負責將區塊鏈鏈上的數據進行保存與讀寫,并保證各個節點中的數據保持一致。
2)區塊鏈平臺模塊負責區塊鏈中節點與節點之間的鏈接,并能夠動態的增加或移除節點。
3)區塊鏈平臺模塊負責對區塊鏈上的數據進行特定的加密解密,保證數據的安全性與準確性。
4)封裝共識機制,讓一個決策權分散的系統達成一致。
(1)智能合約模塊是應用模塊與平臺模塊的中間層,封裝預定義的若干狀態、轉換規則、觸發條件以及應對操作等[1],負責向應用層提供API,如合約的部署、調用、執行及注銷,醫院之間病人的雙向轉診、醫療資源共享等,合約代碼保存在區塊鏈平臺中。
(2)數據隱私模塊負責在交易過程中,對上傳的數據進行加密,并將加密密鑰只在相關方向共享,以保證數據不會被非相關方得到。
(3)應用模塊是利用編程語言實現的面向用戶的客戶端,提供可視化操作,能夠使用戶通過調用智能合約,對區塊鏈數據進行查詢和上傳數據。
(4)審計模塊由衛健委擔任,負責監管整個系統,對醫院之間的交易進行審計、監督,保障數據交易的合法性,并進行追溯與管理。醫療機構通過區塊鏈,在衛健委的監管下,調用智能合約模塊,對區塊鏈醫聯體系統的其他節點進行交易。
醫聯體內具體的工作流程與所需運行的業務有關,具體體現在對應的智能合約的執行過程。本文以轉診為例介紹基于區塊鏈的醫聯體系統運行流程,假設二級醫院為A,上級的三級醫院為B,區縣衛健委為C,其中,區縣衛健委為審計節點,流程如圖5所示。

圖5 區塊鏈醫聯體系統的流程圖
當二級醫院A收到患者無法確診并要向三級醫院B提交轉診時,醫院A首先要通過醫院應用客戶端,向衛健委C提出上報申請,醫院客戶端會調用上報信息智能合約將上報申請數據上傳到區塊鏈,上鏈的數據會經過數據隱私模塊進行加密保護,衛健辦對獲取到的上報信息進行驗證與審核,當數據通過驗證時,衛健委C會將審核結果通過區塊鏈返回給醫院A。當審核不通過時,不予辦理轉診;若審核通過,醫院A需將數據通過轉診API調用轉診智能合約將轉診數據和患者的性別、年齡、電子病歷、醫學影像、病理等數據上傳于區塊鏈,二級醫院B再通過區塊鏈上的智能合約獲取到轉診信息與患者數據并同步到本地數據庫中,同時,醫院A與醫院B之間的利益與其他的條例也會通過智能合約運行。這樣轉診信息與患者的治療方案以一種精準實時、安全可信的方式在醫聯體內流轉,不僅能夠節約醫療人員人力時間成本,也能增加患者本身對醫院、醫生的信任,同時也避免某些重復檢查項目。
醫聯體系統合約采用Go語言實現,實現了醫聯體平臺中轉診、醫療資源共享、醫療信息上報、數據查詢等功能。
合約以main方法為入口, Init方法和Invoke方法是合約里不可缺少的兩個方法,分別負責初始化合約和調用合約,實現如圖6所示。

圖6 合約主結構代碼圖
如圖6所示,main方法中調用shim.Start方法啟動合約MedicalAlliance,Init方法將此合約初始化之后Invoke對MedicalAlliance里的方法進行調用。
以轉診為例,每一位患者進入醫院就診時會有一個切唯一的就診號,就診號綁定著此患者的診斷和檢查等醫療信息,當醫院之間需要轉診時,原始醫院須向目標醫院提供患者的診號。
在合約實現時,首先考慮的是驗證數據的合理性,驗證分別是參數個數、數據是否存在和原始醫院是否存在患者,實現如圖7所示。

圖7 數據合理性校驗代碼圖
校驗完數據合理性后需要將數據狀態更新到區塊鏈上,寫入狀態主要需要實現如下3個功能:原始醫院刪除患者id、目標醫院加入患者id和患者轉診記錄,實現如圖8所示。

圖8 寫入狀態代碼圖
醫院之間原始醫院將轉診患者ID轉到目標醫院,目標醫院可查看患者的就診號綁定著此次就診的醫療數據,也就實現了醫院之間患者的轉診。
將區塊鏈技術運用到醫聯體中,能夠有效解決當前醫聯體建設中存在的數據共享、合約不統一等問題,醫聯體醫院之間可以信任安全的進行交易,無需擔心信息泄露與篡改, 建立起一套互信共享的機制。在區塊鏈+醫聯體的模式下,信息能夠被快速的共享,也能避免患者檢查重復項。同時,上級醫院專家到社區醫院坐診時,可以通過區塊鏈應用對患者進行遠程會診,方便了醫院與醫院之間的聯系。將區塊鏈技術運用到醫聯體將對醫聯體帶來深刻的變革,極大促進區域醫療建設,多方面的提升健康醫療服務效率和質量[2-20]。