張劍,夏啟,趙雅萍
泰興市人民醫院 醫院辦公室,江蘇 泰州 225400
隨著醫療信息化的建設,電子病歷系統已逐漸替代HIS,傳統HIS的設計管理沒有統一的原則,因此該系統病人信息是離散的、相互之間有冗余、遺漏。與HIS不同的是,電子病歷是一個相對完整的、集成的、現代化信息系統,其主要設計目的是實現病人信息的原始性和完整性。電子病歷是網絡信息技術在醫療領域的必然產物,是醫院病歷現代化管理的必然趨勢,其在臨床的初步應用,極大地提高了醫院的工作效率和醫療質量。根據法律規定,住院病歷保管時間不得少于30年,門診病歷保管時間不得少于15年,而電子病歷可以長期保存并應用于臨床和科學研究[1‐2]。醫療過程的復雜性決定了結構化電子病歷必須是具有復雜層次關系的數據集,并且在數據結構上具有明顯的多維特征。因此,電子病歷數據存儲的形式選擇和結構設計成為電子病歷開發人員面臨的嚴峻挑戰。區塊鏈技術有適用于患者信息保存的去中心化、數據透明、不可篡改等特性[3],本文將以電子病歷的存儲系統為切入點,預期構建一個基于區塊鏈技術的電子病歷存儲系統。
電子病歷是指以電子化方式記錄個人的基本資料與醫療信息,它可在醫療中作為主要的信息源取代紙張病歷[4]。電子病歷中包含患者的就診信息:個人資料、病程記錄、檢驗結果、診斷結果、手術記錄、護理記錄等。涉及病人信息的采集、存儲、傳輸、質量控制、統計和利用。圍繞提高醫療質量、保障醫療安全和提高醫療效率,提供醫療相關信息處理和智能化服務功能[5]。
區塊鏈是一種計算機技術的新型應用模式,它由多個節點組成,是一種鏈式數據結構,以時序連接的方式組合數據塊。區塊鏈技術本質上是一種數據庫技術,每個區塊就像一個硬盤,保存所有信息并使用加密算法對其進行加密,這些信息就不可篡改[6‐7]。目前,一些公司已經開發了區塊鏈的系統架構,并提供了區塊鏈相關的服務,例如網絡、存儲、加密等,在很大程度上簡化了區塊鏈應用程序的開發流程。技術人員只需要基于區塊鏈進行二次開發,將自身的特定需求結合區塊鏈網絡和應用領域。其系統架構分為6個層次,包括數據層、網絡層、共識層、激勵層、合約層和應用層[8‐9]。區塊鏈是塊防篡改時間戳分類賬,用于以分布式的方式共享和存儲數據。目前,區塊鏈以其包含分布式結構、安全性、隱私性和不變性的特點屬性,引起了學術界和實務界(如計算機科學、金融學和法學界)的極大關注,在區塊鏈中,用戶可以生成任意數量的公鑰,有效地防止被跟蹤,從而保證了用戶的隱私。此外,區塊鏈可以使用加密技術來提高IT的安全性、隱私性和功能性[10‐12]。近幾年,基于區塊鏈的醫療系統是一個熱門話題。Yue等[13]提出了一個共享醫療數據的應用程序,病人可以方便地控制、發送和擁有自己的數據。Xia等[14]還提出了一個共享醫療數據的應用程序,提出了MeDShare系統,該系統可以解決無信任環境下醫療大數據服務器之間的醫療數據共享問題。
該系統由獨立前端、服務器、數據庫和區塊鏈網絡組成,前端頁面將請求發送到服務器,在處理完請求后將結果返回到前端頁面。區塊鏈網絡的查詢數據過程網絡算法的步驟較繁瑣且包含很多代碼模塊,如果出現其他的大量查詢,系統的響應時間則可能會超時。因此在數據的請求查詢過程中,盡量減少其他的并發網絡進程,縮短系統的響應時間。在系統的開發過程中,各模塊必須互相獨立,通過統一的接口相互連接。提高每個模塊的獨立性有助于提高系統的并發執行能力,從而提高系統的工作效率[15]。
數據存儲系統應符合我國數據庫管理系統安全技術要求規范并通過信息安全等級保護測評:① 客觀上要求存儲系統容量大幅度增加;② 保證所有病歷信息的完整性,要求存儲系統具有高可靠性;③ 要求系統相關的數據存儲過程必須高效快速。優化查詢語句,避免過多的表關聯,先過濾有索引的,盡量縮小數據范圍。在數據庫中創建表時,將表中字段的寬度設的盡可能小,執行的查詢速度就越快。建立數據表索引,它在檢索行中的速度比沒有索引快得多。此外,還需要記錄注冊信息:就診類型、醫生ID、就診時間、病史、病程記錄等信息,其中包括患者的部分隱私(如身份證、健康信息等)的安全加密 建設應視為重點。
通過構建區塊鏈層次模型的合約層、網絡層、數據層、應用層和共識層,實現電子病歷的動態化管理。其中最基本的醫療數據是在訪問醫院時從患者的個人信息記錄中獲取,形成最初的電子病歷,電子病歷數據會嚴格按照區塊鏈的區塊形式(區塊頭 + 區塊體)來封裝,數據記錄以加密算法處理,添加時間戳后與區塊鏈相連接。網絡層管理機制通過多重簽名復合網絡設置,分布式網絡機制用于分散其他節點數據庫數據。區塊鏈主要在數據層和網絡層生成并傳送數據。在咨詢層次中,引入相關的咨詢機制,將成員節點(醫療機構、部門、相關政府部門等)添加到區塊鏈、會診層。另外,為了保證彼此的信任,將網絡節點中的多種傳感器算法進行膠囊化。為了體現合同中的行動計劃、標準化、國家規定及其他內容,實現電子醫療記錄的標準化,將其納入區塊鏈中。應用層的動態管理平臺將主要信息查詢、數據共享等服務提供給醫療機構、醫生及患者。區塊鏈模型圖如圖1所示。

圖1 區塊鏈模型圖
(1)創建醫生賬戶:醫生在首次使用系統時,可以登錄電子病歷系統。
(2)醫生登錄:醫生使用生成的賬戶登錄電子病歷系統并使用部分功能。
(3)醫生修改密碼:修改醫生登錄密碼。
(4)創建患者賬戶:為第一次使用電子病歷的患者注冊一個新賬號,并使用DES算法對用戶的私人數據進行加密。然后生成一對非對稱加密公鑰和私鑰,用戶的個人信息和病歷將被加密為非對稱加密公鑰,私鑰加密病歷的摘要信息,并將患者的公鑰保存到數據庫中。
(5)患者修改密碼:修改使用DES算法加密的患者密碼,使用原密碼解密患者的隱私數據,然后設置新密碼使用DES算法加密。
電子病歷存數據存儲模塊主要設計以下功能:
(1)查詢相關資料:可檢索患者ID號查詢相關資料。
(2)創建新病歷:患者掛號后,醫生會為其創建一份新的病歷(用患者ID標記),記錄患者此次病情和治療的醫療記錄。
(3)完善患者病歷:醫生根據患者ID檢索到原有病歷,并將新的問診信息和檢驗信息添加到病歷中。
(4)病案質量監控:賬戶委托權限用來控制用戶賬戶委托關系的訪問控制;審計權限是為監管機構提供審計的功能,嚴格控制訪問權限和數據范圍,對共享賬本上交易無關的用戶可以做到用戶關聯;節點共識權限共識許可用于管理參與節點或新加入節點的共識許可;訪問權限用來管理區塊鏈上的客戶端的數據查詢權限。
電子病歷存儲模塊如圖2所示,與患者的個人賬戶信息相比,諸如醫生的賬戶信息和患者的公共密鑰之類的數據的特征是數據量大,操作頻繁,安全性要求低。因此,系統將這些數據存儲在傳統數據庫中以提高系統的實現效率。系統通過對稱加密和存儲在數據庫中的病歷的ID信息將病患的個人信息更新到區塊鏈網絡,以形成病患的電子病歷數據。這種數據存儲方法僅具有病歷的索引信息,而沒有患者電子病歷中的實際病歷數據,減少了區塊鏈網絡中的數據存儲,實現病歷數據的單獨共享。

圖2 電子病歷存儲模塊效果圖
該系統有效地解決了效率低、成本高、安全性低的數據存儲等常見問題。區塊鏈技術的非對稱加密算法與多節點的分布式存儲保證了數據庫的安全性,從而實現數據的不可偽造與不可篡改特性;采用帶有時間戳的區塊來存儲數據可擴大時間范圍,從而可以驗證各種醫療數據,確保電子病歷實時記錄的準確性。該數據庫會記錄電子病歷的每一次數據更改,分布式系統的每一個節點都會記錄并驗證本次數據更改和其他數據記錄,在所有節點驗證后才能通過整個系統的認證并記錄下來,此種運行模式便于保證各醫院之間系統共享,有利于維護系統數據信息。時間戳與電子簽名可有效保證數據的唯一性,可作為有效的法律依據保障醫院及患者的合法權益。通過電子病歷的動態管理、數據共享、資源分配,使患者的健康數據的集成、管理、分析更加有效,從而促進計算機科學與臨床醫學的發展。
該系統采用小文件合并,大文件分塊的方法,結合斷點續傳技術,有效利用數據節點區塊存儲容量并有效地提高了病歷傳輸效率。與傳統電子病歷存儲系統比較,基于區塊鏈技術的電子病歷存儲系統減少了大量的操作系統與管理系統之間的傳輸請求,病歷傳輸速率與區塊存儲使用率均有明顯提升。通過選擇5個醫療文件進行傳輸下載測試,在相同網絡條件及相同主機下與原來病例存儲系統進行對比,發現傳輸下載效率明顯提升(表1)。

表1 區塊鏈技術的電子病歷數據存儲系統應用效果與HIS存儲系統對比
目前,區塊鏈技術在各個研究領域中正經歷著指數級的增長,其從發展至今就備受各個領域的關注,但其在大對數領域中還未廣泛的實際應用,依然存在許多機遇和挑戰。本文將基于區塊鏈技術設計和實施電子病歷數據存儲系統,并根據區塊鏈技術的安全存儲特性和電子病歷存儲的安全需求執行。系統利用區塊鏈技術中的數據不可篡改性解決了中心化存儲數據易被篡改的問題。使用非對稱加密算法對患者的病歷信息數據進行加密,以防止患者隱私數據被泄露。病歷數據和患者數據的分離式存儲解決了數據所有權錯位的問題。將區塊鏈技術與電子病歷數據存儲系統相結合,為解決傳統電子病歷安全性差、隱私保護差等問題提供新的研究思路。