韋智勇 周立廣
摘 ?要:目前許多醫(yī)院使用電子信息系統(tǒng)進(jìn)行醫(yī)療管理,數(shù)據(jù)存儲(chǔ)一般都以中心化的方式進(jìn)行,這種方式存在數(shù)據(jù)安全的隱患。本文研究在原有系統(tǒng)的基礎(chǔ)上用區(qū)塊鏈技術(shù)進(jìn)行改進(jìn),使新的電子病歷系統(tǒng)能防止信息泄露或篡改,同時(shí)可實(shí)現(xiàn)數(shù)據(jù)的共享,系統(tǒng)服務(wù)端開(kāi)發(fā)主要使用Go語(yǔ)言,同時(shí)使用加密方法對(duì)電子病歷存證數(shù)據(jù)進(jìn)行加密,從而解決系統(tǒng)的安全性和共享性。
關(guān)鍵詞:區(qū)塊鏈技術(shù);存證系統(tǒng);信息安全;數(shù)據(jù)共享
中圖分類號(hào):TP311.5 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Design and Implementation of Electronic Medical
Record System based on Blockchain
WEI Zhiyong1, ZHOU Liguang2
(1.School of Finance and Economics, Nanning College for Vocational Technology, Nanning 530008, China;
2.Wuxiang Hospital of Nanning Second Peoples Hospital, Nanning 530219, China)
122570724@qq.com; 1960480023@qq.com
Abstract: Hospitals using electronic information systems for medical management with data recorded in a centralized way, risk with data security problems. This paper aims to improve the hospital information systems with blockchain technology, so to prevent medical information from leakage and being tampered with, and to realize data sharing at the same time. This new system server is developed with Go programming language and the electronic medical record data is encrypted, which ensures the security and sharing of this system.
Keywords: blockchain technology; record system; information security; data sharing
1 ? 引言(Introduction)
病人的醫(yī)療存證作為一種數(shù)據(jù)資產(chǎn),電子病歷存證系統(tǒng)的出現(xiàn)給醫(yī)療患者帶來(lái)很大便利,同時(shí)也給醫(yī)療領(lǐng)域的研究人員研究各種病例提供了極大的幫助,病人的醫(yī)療存證屬于個(gè)人私有數(shù)據(jù),醫(yī)療數(shù)據(jù)安全是受到法律保護(hù)的,其他機(jī)構(gòu)獲得數(shù)據(jù)必須獲得個(gè)人授權(quán)允許。在現(xiàn)有的電子病歷存證系統(tǒng)采用中心化的數(shù)據(jù)存儲(chǔ)模式,病人的醫(yī)療存證往往由不同的醫(yī)療機(jī)構(gòu)來(lái)存儲(chǔ)控制,導(dǎo)致存在數(shù)據(jù)隱私泄漏等安全問(wèn)題。同時(shí),病人無(wú)法有效管控本人的醫(yī)療數(shù)據(jù),對(duì)數(shù)據(jù)無(wú)法進(jìn)行權(quán)限設(shè)置和訪問(wèn)控制,傳統(tǒng)的由醫(yī)療機(jī)構(gòu)進(jìn)行中心化數(shù)據(jù)存儲(chǔ)模式已經(jīng)不適合作為存儲(chǔ)病人醫(yī)療記錄的最佳方式。
近年來(lái),隨著云計(jì)算技術(shù)的發(fā)展,電子病歷存證系統(tǒng)也逐步遷移到云端,Zhang等[1]首先提出了保障云環(huán)境下醫(yī)療數(shù)據(jù)安全的方案。Yang等[2]利用基于屬性的加密技術(shù)來(lái)保護(hù)云中的數(shù)據(jù)。但是,基于云端存儲(chǔ)的方案依賴于云服務(wù)提供商,在數(shù)據(jù)存儲(chǔ)方式上還是屬于傳統(tǒng)中心存儲(chǔ)模式的改進(jìn),醫(yī)療記錄數(shù)據(jù)的隱私與安全保護(hù)上仍然存在很大隱患。
區(qū)塊鏈概念是由中本聰在比特幣中提出的一種數(shù)字貨幣加密存儲(chǔ)技術(shù)[3],它獨(dú)特的去中心化數(shù)據(jù)存儲(chǔ)方式,以及數(shù)據(jù)抗篡改性和非對(duì)稱加密的等特點(diǎn)。區(qū)塊鏈的智能合約發(fā)展在醫(yī)療行業(yè)的應(yīng)用已得到關(guān)注[4]。
2 ? 相關(guān)技術(shù)(Related technology)
2.1 ? 區(qū)塊鏈技術(shù)
區(qū)塊鏈?zhǔn)怯梢幌盗袇^(qū)塊組成的數(shù)據(jù)集合,區(qū)塊與區(qū)塊之間形成數(shù)據(jù)相互關(guān)聯(lián)并形成邏輯上的鏈?zhǔn)浇Y(jié)構(gòu),區(qū)塊由事務(wù)發(fā)起方通過(guò)廣播方式發(fā)送到所有節(jié)點(diǎn),在區(qū)塊鏈中有51%節(jié)點(diǎn)達(dá)成共識(shí)確認(rèn)后,將新生成的有效地區(qū)塊加入?yún)^(qū)塊鏈,每個(gè)區(qū)塊都有一個(gè)Timestamp和前一個(gè)區(qū)塊的Hash,當(dāng)修改了一個(gè)區(qū)塊的數(shù)據(jù)之后,它后面所有的區(qū)塊Hash值都不能通過(guò)校驗(yàn),可以防止篡改區(qū)塊鏈中的數(shù)據(jù),形成一種存儲(chǔ)在對(duì)等網(wǎng)絡(luò)節(jié)點(diǎn)間共同維護(hù)且不能被篡改的分布式賬本數(shù)據(jù)庫(kù),因?yàn)閰^(qū)塊鏈中每個(gè)節(jié)點(diǎn)都保留了相同的交易記錄,所有對(duì)單個(gè)節(jié)點(diǎn)的攻擊不影響數(shù)據(jù)的安全性[5],對(duì)數(shù)據(jù)的攻擊具有很強(qiáng)的魯棒性。
2.2 ? Fabric技術(shù)
Fabric是由linux基金會(huì)主辦的區(qū)塊鏈項(xiàng)目,是區(qū)塊鏈的基礎(chǔ)核心平臺(tái),其主要提供區(qū)塊鏈成員服務(wù)、構(gòu)建分布式賬本、鏈碼服務(wù)和事務(wù)流服務(wù)等區(qū)塊鏈的基礎(chǔ)服務(wù)。在Fabric中,每一個(gè)運(yùn)行的區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)都是平等的,主要由Peer節(jié)點(diǎn)、Order節(jié)點(diǎn)和Client節(jié)點(diǎn)組成,peer節(jié)點(diǎn),同時(shí)每個(gè)節(jié)點(diǎn)有著不同的作用,Peer節(jié)點(diǎn)主要是驗(yàn)證交易并進(jìn)行簽名,Order節(jié)點(diǎn)主要是接收交易信息,并將其排序后打包成區(qū)塊,Client節(jié)點(diǎn)主要是將終端用戶的請(qǐng)求發(fā)送到區(qū)塊鏈中。
2.3 ? 共識(shí)機(jī)制
對(duì)于一個(gè)系統(tǒng)而言,如果設(shè)有一個(gè)統(tǒng)一的決策層,會(huì)造成共享識(shí)性差,造成系統(tǒng)的效率低下,采用區(qū)塊鏈技術(shù)的系統(tǒng),不僅可以達(dá)成高效共享,而且可以提高系統(tǒng)的效率,同時(shí)也提高系統(tǒng)的容錯(cuò)性,同時(shí)也保證了數(shù)據(jù)的安全性和有效性。典型的算法有POW、POS和PBFT算法。例如POW算法,主要通過(guò)各節(jié)點(diǎn)的算力達(dá)成數(shù)據(jù)的共識(shí),而POS在POW的基礎(chǔ)上進(jìn)行必要的改進(jìn),用權(quán)益證明取代了工作量證明,這種機(jī)制可節(jié)約成本。PBFT算法僅需要系統(tǒng)出現(xiàn)錯(cuò)誤時(shí)才達(dá)成共識(shí),一般情況下不需要各節(jié)點(diǎn)達(dá)成共識(shí)。
2.4 ? 存儲(chǔ)結(jié)構(gòu)
在區(qū)塊鏈存儲(chǔ)中一般包含幾個(gè)數(shù)據(jù)存儲(chǔ)單元,主要有區(qū)塊數(shù)據(jù)、鏈?zhǔn)浇Y(jié)構(gòu)、時(shí)間戳等,區(qū)塊數(shù)據(jù)一般分成區(qū)塊體和區(qū)塊頭,區(qū)塊頭主要包含有前一塊頭的地址和版本信息,區(qū)塊體包括交易的數(shù)據(jù)信息;鏈?zhǔn)浇Y(jié)構(gòu)主要根據(jù)區(qū)塊的生成順序生成一條數(shù)據(jù)鏈,每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)信息,這些信息可用于追溯來(lái)源。時(shí)間戳主要記錄了數(shù)據(jù)的存儲(chǔ)時(shí)間,它具有區(qū)塊數(shù)據(jù)的存在證明,確保了數(shù)據(jù)的真實(shí)有效性。
3 ? 系統(tǒng)設(shè)計(jì)分析(System design analysis)
3.1 ? 系統(tǒng)需求分析
目前,病人的醫(yī)療存證往往由不同的醫(yī)療機(jī)構(gòu)來(lái)存儲(chǔ)控制,電子病歷存證系統(tǒng)在應(yīng)用過(guò)程中還存在諸多問(wèn)題:(1)病人的醫(yī)療記錄存證數(shù)據(jù)是分散的在不同的醫(yī)療機(jī)構(gòu)中,對(duì)數(shù)據(jù)的管理和共享造成困難;(2)傳統(tǒng)的由醫(yī)療機(jī)構(gòu)進(jìn)行中心化數(shù)據(jù)存儲(chǔ)模式,病人無(wú)法有效管控本人的醫(yī)療數(shù)據(jù),對(duì)數(shù)據(jù)無(wú)法進(jìn)行權(quán)限設(shè)置和訪問(wèn)控制;(3)對(duì)病人醫(yī)療記錄存證數(shù)據(jù)隱私與安全保護(hù)不夠重視。為解決這些問(wèn)題,本文提出了基于區(qū)塊鏈的電子病歷存證系統(tǒng),在系統(tǒng)中主要有管理員、病人和醫(yī)療機(jī)構(gòu)等三種類型用戶,主要功能如圖1所示,病人只能管控本人的數(shù)據(jù),醫(yī)療機(jī)構(gòu)用戶可以獲取某類病人病癥的醫(yī)療信息。
根據(jù)傳統(tǒng)的電子病歷系統(tǒng)所存在的問(wèn)題,結(jié)合新系統(tǒng)的構(gòu)建設(shè)想,本系統(tǒng)功能需要分為三大模塊,即前置客戶端模塊、系統(tǒng)管理模塊和后臺(tái)數(shù)據(jù)存儲(chǔ)模塊。前置客戶端模塊主要是就診病人或醫(yī)務(wù)人員使用本系統(tǒng)時(shí),必須通過(guò)帳號(hào)進(jìn)行登錄使用,對(duì)于醫(yī)務(wù)人員而言,可對(duì)患者的電子病歷進(jìn)行建檔,并對(duì)其進(jìn)行就診信息錄入、修改和查閱等,對(duì)于患者而言,可以查詢到就診的信息、檢查結(jié)果、就診進(jìn)度、費(fèi)用等信息。系統(tǒng)管理模塊主要是對(duì)系統(tǒng)的使用者進(jìn)行權(quán)限管理,為用戶分配密鑰,對(duì)數(shù)據(jù)進(jìn)行加密和解密等,后臺(tái)數(shù)據(jù)存儲(chǔ)模塊主要是對(duì)產(chǎn)生的數(shù)據(jù)通過(guò)相應(yīng)的算法加密后進(jìn)行后臺(tái)的存儲(chǔ),確保數(shù)據(jù)在存儲(chǔ)后不能被修改和竊取,以保證數(shù)據(jù)的安全性,從而保證了患者的個(gè)人隱私得到保密。
另外,對(duì)于系統(tǒng)的非功能需求,主要包括系統(tǒng)的可操作性和兼容性,主要是在確保數(shù)據(jù)信息安全的基礎(chǔ)上,操作應(yīng)該簡(jiǎn)單明了,可通過(guò)人機(jī)對(duì)話窗口和提示窗口進(jìn)行操作,同時(shí),系統(tǒng)在各種環(huán)境下均可以運(yùn)行,不能局限于某個(gè)版本的操作系統(tǒng),此外,系統(tǒng)的各個(gè)功能模塊都有相對(duì)獨(dú)立性,不能因某個(gè)功能缺失影響到別的系統(tǒng)的正常使用,系統(tǒng)功也要易于擴(kuò)展。
3.2 ? 系統(tǒng)架構(gòu)設(shè)計(jì)
基于區(qū)塊鏈的電子病歷存證系統(tǒng)主要由病人、醫(yī)療機(jī)構(gòu)、區(qū)塊鏈集群、IPFS集群和加密技術(shù)模塊組成,通過(guò)區(qū)塊鏈技術(shù)和IPFS分布式存儲(chǔ)系統(tǒng)實(shí)現(xiàn)病人醫(yī)療記錄存證數(shù)據(jù)的去中心化存儲(chǔ),使用加密技術(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的細(xì)粒度訪問(wèn)控制,實(shí)現(xiàn)病人控制個(gè)人自身醫(yī)療記錄存證數(shù)據(jù),并設(shè)置加密訪問(wèn)策略,只有符合訪問(wèn)策略的醫(yī)療機(jī)構(gòu)才能夠用密匙來(lái)解密病人的醫(yī)療記錄存證數(shù)據(jù),如圖2所示。
本系統(tǒng)設(shè)計(jì)主體框架為B/S模式,把醫(yī)療行業(yè)的業(yè)務(wù)基礎(chǔ)上,把系統(tǒng)設(shè)計(jì)為三層架構(gòu),即客戶端、服務(wù)端和數(shù)據(jù)庫(kù)端三層。
(1)客戶端??蛻舳酥饕怯脩敉ㄟ^(guò)瀏覽器進(jìn)行系統(tǒng)操作和信息查詢,客戶端功能又稱為展示層,該功能主要用Java語(yǔ)言開(kāi)發(fā),這樣可提高系統(tǒng)的性能和效率,同時(shí)可以使系統(tǒng)達(dá)到負(fù)載均衡的效果,提高系統(tǒng)的穩(wěn)定性。
(2)服務(wù)端。服務(wù)端主要是根據(jù)用戶的請(qǐng)求進(jìn)行后臺(tái)數(shù)據(jù)服務(wù),該功能采用Web應(yīng)用框架,使用python語(yǔ)言編寫(xiě)程序代碼,這樣可提高系統(tǒng)的兼容性和擴(kuò)展性,對(duì)第三方的插件提供可靠的接口。另外,服務(wù)端框架分為三層,即模型、模板和視圖。
(3)數(shù)據(jù)庫(kù)端。數(shù)據(jù)庫(kù)端主要是把用戶和系統(tǒng)的數(shù)據(jù)存儲(chǔ)在后臺(tái)數(shù)據(jù)庫(kù)中,該功能主要使用MYSQL數(shù)據(jù)庫(kù)的管理病患者的個(gè)人信息,為系統(tǒng)的數(shù)據(jù)存儲(chǔ)提供了高效、安全的環(huán)境。區(qū)塊鏈數(shù)據(jù)的存儲(chǔ)使用CouchDB存儲(chǔ)超級(jí)帳本Hyperledger Fabric狀態(tài)數(shù)據(jù)信息,超級(jí)帳本設(shè)計(jì)采用拜占庭容錯(cuò)算法,確保所有節(jié)點(diǎn)數(shù)據(jù)的一致性。
3.3 ? 系統(tǒng)功能模塊
基于區(qū)塊鏈的電子病歷系統(tǒng)功能模塊一般分成用戶模塊、數(shù)據(jù)存儲(chǔ)模塊、病例查詢模塊三大功能。
(1)用戶模塊。主要為醫(yī)生提供系統(tǒng)帳戶,使醫(yī)生能正常登錄并使用電子病歷系統(tǒng),進(jìn)行患者病歷書(shū)寫(xiě),同時(shí)修改個(gè)人密碼,創(chuàng)建患者帳戶等功能。數(shù)據(jù)一般都通過(guò)DES算法進(jìn)行加密后,再存儲(chǔ)到數(shù)據(jù)庫(kù)中。
(2)數(shù)據(jù)存儲(chǔ)模塊。主要是醫(yī)生為患者建立病歷檔案,錄入患者就診數(shù)據(jù)信息,提高后臺(tái)進(jìn)行數(shù)據(jù)存儲(chǔ),在這些數(shù)據(jù)中,醫(yī)生個(gè)人信息、患者公鑰信息具有數(shù)據(jù)量大、冗余性高、操作次數(shù)較多等特點(diǎn),這些數(shù)據(jù)僅儲(chǔ)存在傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)即可,這樣可提高系統(tǒng)的效率。對(duì)于患者的個(gè)人隱私信息則必須通過(guò)區(qū)塊鏈存儲(chǔ)功能來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ),因?yàn)檫@些數(shù)據(jù)存儲(chǔ)次數(shù)較少,但要求較高的安全性,同時(shí),這些數(shù)據(jù)在存儲(chǔ)前必須進(jìn)行對(duì)稱加密操作。
(3)病例查詢。主要是為患者提供自助服務(wù)功能,同時(shí)也為醫(yī)生就診提供方便?;颊呔驮\時(shí),可以通過(guò)個(gè)人身份證或就診卡,查看自己的就診信息,可打印出來(lái)拿給醫(yī)生作參考,同樣對(duì)于醫(yī)生而言,也可在系統(tǒng)中查看到患者的數(shù)據(jù)信息,為患者下一步的診療方案作參考。
4 ? 系統(tǒng)的實(shí)現(xiàn)(Implementation of the system)
4.1 ? 系統(tǒng)的運(yùn)行環(huán)境
本系統(tǒng)的運(yùn)行環(huán)境是使用Linux Ubuntu操作系統(tǒng),并使用Docker容器,版本選擇17.06,數(shù)據(jù)庫(kù)使用CouchDB,開(kāi)發(fā)語(yǔ)言選擇Go和JAVA,Hyperledger Fabric選擇V1.1版本,IPFS選擇V0.4版本,并配置NodeJs等環(huán)境。
4.2 ? 系統(tǒng)的功能實(shí)現(xiàn)
4.2.1 ? 合約設(shè)計(jì)
合約設(shè)計(jì)采用先進(jìn)行系統(tǒng)開(kāi)發(fā),然后再進(jìn)行部署,因?yàn)楹霞s之前必須使用節(jié)點(diǎn)許可后才能進(jìn)入到部署環(huán)節(jié),即必須獲得相應(yīng)的權(quán)限后才能部署到區(qū)塊鏈系統(tǒng)中[6]。為了加快開(kāi)發(fā)進(jìn)度,本文使用Go語(yǔ)言作為合約設(shè)計(jì)的開(kāi)發(fā)語(yǔ)言。
4.2.2 ? ?加密功能實(shí)現(xiàn)
為了保護(hù)電子存證病歷數(shù)據(jù)的安全性,必須對(duì)數(shù)據(jù)進(jìn)行加密處理,在數(shù)據(jù)上傳前通過(guò)加密算法加密技術(shù)對(duì)數(shù)據(jù)加密。在為患者建檔時(shí),系統(tǒng)會(huì)自動(dòng)分配一把密鑰給該用戶,對(duì)用戶的文件通過(guò)該密鑰進(jìn)行數(shù)據(jù)加密,當(dāng)用戶訪問(wèn)該數(shù)據(jù)時(shí)必須通過(guò)該密鑰進(jìn)行解密,如果解密無(wú)效則無(wú)法訪問(wèn)該用戶電子病歷數(shù)據(jù)。由于區(qū)塊鏈存儲(chǔ)容量比較小,所以使用IPFS來(lái)擴(kuò)充存儲(chǔ)系統(tǒng)的容量,病患者將電子存證病歷加密后將密文上傳到IPFS系統(tǒng)中,系統(tǒng)會(huì)返回一個(gè)Hash地址。
4.2.3 ? 數(shù)據(jù)存儲(chǔ)功能實(shí)現(xiàn)
數(shù)據(jù)存儲(chǔ)主要包括兩個(gè)部分,即IPFS數(shù)據(jù)存儲(chǔ)和區(qū)塊鏈數(shù)據(jù)存儲(chǔ),一般用戶信息主要通過(guò)IPFS分布式的存儲(chǔ)模式進(jìn)行數(shù)據(jù)存儲(chǔ),主要把患者數(shù)據(jù)加密后,系統(tǒng)會(huì)返回一個(gè)加密后的地址,通過(guò)這個(gè)地址可訪問(wèn)到加密后的數(shù)據(jù),這種方式可提高存儲(chǔ)效率,降低運(yùn)行成本;對(duì)于區(qū)塊鏈的存儲(chǔ)功能實(shí)現(xiàn),主要是根據(jù)用戶注冊(cè)時(shí)的地址,找到該用戶對(duì)應(yīng)的數(shù)據(jù)存在地址,系統(tǒng)先通過(guò)用戶ID找到該用戶的地址,然后可獵取用戶的數(shù)據(jù)存儲(chǔ)地址,找出該地址后可對(duì)數(shù)據(jù)進(jìn)行更新,即可實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。
4.2.4 ? 數(shù)據(jù)庫(kù)設(shè)計(jì)
基于區(qū)塊鏈的電子病歷存證系統(tǒng)后臺(tái)使用MYSQL數(shù)據(jù)庫(kù)和區(qū)塊鏈狀態(tài)存儲(chǔ)數(shù)據(jù)庫(kù)CouchDB,CouchDB主要存儲(chǔ)歷史數(shù)據(jù)、區(qū)塊鏈索引數(shù)據(jù)和當(dāng)前數(shù)據(jù)狀態(tài)。MYSQL該數(shù)據(jù)庫(kù)系統(tǒng)具有占用空間小、運(yùn)行快、存儲(chǔ)效率高等特點(diǎn),數(shù)據(jù)庫(kù)中,主要通過(guò)用戶ID索引數(shù)據(jù),同時(shí)也作為主鍵進(jìn)行數(shù)據(jù)檢索,通過(guò)檢索判斷用戶是否存在,若存在,系統(tǒng)會(huì)返回1,否則返回0,此外,使用Navicat作為管理的開(kāi)發(fā)工具,這樣可以降低系統(tǒng)的管理成本,數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)表主要包括用戶信息表、患者密鑰表、醫(yī)院部門表、醫(yī)務(wù)人員表、藥品項(xiàng)目表、檢查項(xiàng)目表、就診信息表等。
4.2.5 ? 系統(tǒng)測(cè)試
系統(tǒng)開(kāi)發(fā)完成后,必須進(jìn)行系統(tǒng)的測(cè)試,主要目的是檢測(cè)系統(tǒng)的功能是否滿足用戶的需求,同時(shí)檢測(cè)系統(tǒng)在運(yùn)行過(guò)程中存在的錯(cuò)誤和缺陷,這樣可為后續(xù)的維護(hù)提供依據(jù),使系統(tǒng)不斷的加以完善,提高系統(tǒng)質(zhì)量和效率[7]。系統(tǒng)測(cè)試主要分兩種方式,即靜態(tài)和動(dòng)態(tài),靜態(tài)測(cè)試方式一般通過(guò)源程序代碼進(jìn)行分析結(jié)果判斷是否存在錯(cuò)誤,無(wú)須運(yùn)行該系統(tǒng),而動(dòng)態(tài)測(cè)試方式必須通過(guò)運(yùn)行該系統(tǒng),從中發(fā)現(xiàn)存在的錯(cuò)誤,在目前實(shí)際運(yùn)用中,一般采用動(dòng)態(tài)測(cè)試方式進(jìn)行,動(dòng)態(tài)測(cè)試又分兩種方式,即白盒與黑盒兩種,如果在墨盒測(cè)試中發(fā)現(xiàn)問(wèn)題,說(shuō)明程序代碼有錯(cuò)誤,必須再進(jìn)行白盒測(cè)試。
本系統(tǒng)通過(guò)電腦中運(yùn)行客戶端,進(jìn)行各功能測(cè)試,運(yùn)行環(huán)境是Windows 10操作平臺(tái),測(cè)試分單元功能測(cè)試和系統(tǒng)整體測(cè)試兩個(gè)階段進(jìn)行,通過(guò)單元功能測(cè)試發(fā)現(xiàn)功能都能達(dá)到預(yù)期效果,而且操作簡(jiǎn)單快捷;在系統(tǒng)整體測(cè)試,在醫(yī)生操作界面是都查看到患者的個(gè)人信息和就診信息,界面交互友好,統(tǒng)計(jì)數(shù)據(jù)無(wú)差錯(cuò),整個(gè)系統(tǒng)的測(cè)試沒(méi)有發(fā)現(xiàn)明顯的錯(cuò)誤,存在的一些漏洞也已修復(fù),系統(tǒng)運(yùn)行處于正常狀態(tài)。
5 ? 結(jié)論(Conclusion)
區(qū)塊鏈技術(shù)具有分布式存儲(chǔ)、防止篡改、中心化的特點(diǎn),基于這些特征,本文把區(qū)塊鏈技術(shù)融入電子病歷系統(tǒng)中,不僅提高的系統(tǒng)的效率,還提高了系統(tǒng)數(shù)據(jù)的安全性,同時(shí)解決了數(shù)據(jù)的共享性問(wèn)題,此外,利用區(qū)塊鏈技術(shù)還可防止數(shù)據(jù)不被篡改;通過(guò)運(yùn)用對(duì)稱加密算法把系統(tǒng)的數(shù)據(jù)進(jìn)行加密操作,防止了數(shù)據(jù)的外泄和盜取;在數(shù)據(jù)存儲(chǔ)方面,對(duì)于患者的個(gè)人信息采用IPFS技術(shù)進(jìn)行分布式存儲(chǔ),對(duì)于就診信息,則采用區(qū)塊鏈技術(shù)進(jìn)行存儲(chǔ),由于在患者的就診信息中,不包括患者個(gè)人信息,所有既可對(duì)外提供數(shù)據(jù)共享,又保護(hù)了患者的個(gè)人隱私,同時(shí)也提高了整個(gè)系統(tǒng)的工作效率。
參考文獻(xiàn)(References)
[1] ZHANG Y, QIU M, TSAI C, et al. Health-CPS: Healthcare Cyber Physical System Assisted by Cloud and Big Data[J]. IEEE SystemsJournal, 2017, 11(1): 88-95.
[2] YANG K, ZHANG K, JIA X, et al. Privacy-preserving attribute-keyword based data publish-subscribe service on cloud platforms[J]. Information Sciences, 2017: 116-131.
[3] NAKAMOTO S. Bitcoin:A peer-to-peer electronic cash system[J]. Consulted, 2009 ,75(8): 1042-1048.
[4] 歐陽(yáng)麗煒,王帥,袁勇,等.智能合約:架構(gòu)及進(jìn)展[J].自動(dòng)化學(xué)報(bào),2019,45(03): 445-457.
[5] 張亮,劉百祥,張如意,等.區(qū)塊鏈技術(shù)綜述[J].計(jì)算機(jī)工程,
2019,45(05):1-12.
[6] 胡逸陽(yáng).基于區(qū)塊鏈的共享電子病歷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].浙江工商大學(xué),2019.
[7] 張圣垚.基于區(qū)塊鏈的電子病歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱工業(yè)大學(xué),2019.
作者簡(jiǎn)介:
韋智勇(1983-),男,碩士,信息系統(tǒng)項(xiàng)目管理師.研究領(lǐng)域:區(qū)塊鏈應(yīng)用,大數(shù)據(jù)技術(shù).
周立廣(1974-),男,碩士,高級(jí)工程師.研究領(lǐng)域:云計(jì)算,大數(shù)據(jù)分析.