基于区块链技术的电子医疗病历系统设计

known 发布于 2025-08-25 阅读(413)

摘 要:针对传统电子病历的数据安全和共享问题,基于区块链技术构建了电子病历系统,系统采用B/S架构,前端采用Vue+Element-UI,后端采用Spring Boot和Spring Security。通过MySQL数据库持久化,Hperledger Fabric确保数据可信。将患者信息和病历上传至区块链,利用区块链技术的安全机制降低数据泄露风险,解决信任问题,提供更安全的医患互动。融合传统电子病历与跨机构就医,为每位患者创造个人终身病历存储,推进终身医疗体制的发展。

关键词:数据共享;区块链技术;电子病历;数据安全;B/S架构

中图分类号:TP311.1 文献标识码:A 文章编号:2096-4706(2024)08-0064-05

DOI:10.19850/j.cnki.2096-4706.2024.08.015

收稿日期:2023-08-09

基金项目:2022年国家级大学生创新创业训练计划项目(202210595081X)

0 引 言

随着时代和社会的发展、经济水平不断提高,人们的生活质量也得到了不断提高,人们在医疗健康服务方面也逐步转向更高层次的追求,进而医疗资源服务方面的需求也在不断地增长,但是我国目前医疗资源总体来说还是相对匮乏,并且各地区的分布也并不平衡。患者在异地或本地的不同医疗机构进行问诊的情况是比较常见的,但是由于各个医疗机构系统异构,造成了“数据孤岛”现象。而且传统的医学数据管理存在诸多问题,包括数据安全性、完整性、可追溯性和隐私保护等方面的挑战。与传统的中心化数据管理系统相比,区块链技术具有分布式、去中心化和可追溯的特点,为医学数据管理带来了全新的解决方案。

本文提出了基于Fabric的区块链技术,整体设计为个人患者端、机构管理端“双端”的系统平台。为患者和医院提供了更为方便的医疗服务。患者可以在任何时间、任何地点使用患者端,轻松地预约医生、查看自己的病历,既能保障好患者的个人隐私、数据的客观性,又给予问诊医生在看病范围内的足够权限,这更好的打破了“数据孤岛”的壁垒,符合区块链技术要求的流程及策略,架构起服务区块链电子病历的网络,使用B/S技术来实现电子病历共享溯源平台。

1 区块链技术特点介绍

区块链是一种去中心化的分布式账本技术,通过加密算法、分布式共识机制和智能合约等技术手段,确保数据的安全性和可信度。本质上是一种对等网络中对存储数据进行协同维护且不能被篡改的分布式数据库。在结构上区块链由一个个数据块组成,每个数据块包含一定数量的交易记录,并通过Hash函数和前后区块的引用构建起块与块之间的链接。这种链式结构使得区块链中的数据具有不可篡改的特性,具有去中心化、可追溯性、安全性等特征。

1.1 去中心化

传统医疗数据存储技术和区块链相比,最大的优化之一就是去中心化。传统的数据存储技术,通常是在网络中以一个固定的节点作为主节点进行数据持久化的功能,即所有的数据都要存储到主节点中。这样做对于数据的安全是很危险的,当出现服务器过载或者单点故障时,整个系统的可用性和稳定性都会受到影响。数据的丢失或不可访问可能导致重大损失和服务中断。而区块链技术则在根本上就解决了这个问题,它不依赖于任何一个单节点,数据由分布在网络中的多个节点共同维护和验证,不存在单一中心机构的控制,不会受到单点故障的影响。

1.2 安全性

区块链技术本身的安全机制是其核心特性所决定的,这也是相比于传统技术来说最大的一个不同点。传统技术一般是基于关系型数据库,这使得数据库容易受到攻击或未经授权的访问。区块链采用加密算法对数据进行加密存储,保护数据的安全性。同时,由于区块链中的数据是分布式存储的,攻击者要篡改数据需要同时攻击多个节点,增加了攻击的难度。

1.3 共享性

区块链技术提供了共享性,这是它最有特色的亮点,这也是它最具有特色的一个创新点。传统的医疗病历数据库通常是基于关系型数据库管理系统构建的,而传统数据库的中心化存储和管理方式,而这种单节点只能在同一个机构进行管理,这会导致医疗病历数据只能在一个机构使用。而区块链存储方式从根本上就解决了这种问题,由于区块链是分布式结构,同一联盟链上的区块链从属于不同的医疗机构,数据在不同的区块链之间相互同步且同一联盟链上的区块链是公开透明的,任何联盟链上的区块链都可以查看和验证其中的交易和数据。这些区块链节点都存储了完整的数据备份,并对区块的数据验证和记录。保证了数据的可靠性与权威性的同时还能让数据进行共享。

2 区块链技术在电子病历中的应用

2.1 数据隐私安全保护

医疗机构中的数据安全系数要求很高,患者的历史数据更是需要重点保护。电子病历平台旨在于各大医院系统中实现患者信息的共享,从而方便就医和诊断,数据要求安全存储在物理设备中。传统的数据存储和传输方式容易受到黑客攻击、数据篡改等威胁。区块链技术将数据记录在分布式网络中的多个节点上,每个节点都可以验证数据的真实性,确保数据不被篡改。攻击者通过窃取凭据、绕过访问控制或利用安全漏洞能够获得数据库的访问权限,他们可能修改、删除或伪造数据库中的病历数据,而很难被管理者发现。但区块链技术可以很好地解决,结构上区块链由一个个数据块组成,每个数据块都存有上一区块的Hash值,通过Hash值构建起区块与区块之间的链接。区块与区块之间是相互验证的,数据发生改变Hash值就发生改变。若修改了链上其中一个区块的数据,将需要整条链上的区块记录,这给非法伪造数据和非法获取数据制造了很大的难度,使得数据几乎是不可能被伪造和非法获取,保证了病历的安全可靠性。

基于Hperledger Fabric框架搭建的区块链平台可以通过其去中心化、分布式存储和多种密码学算法实现更可靠的数据隐私保护。保证了患者数据信息在各个阶段的安全性,从而可以避免信息泄露带来的诊治出错或者患者个人受到不必要的麻烦。只有获得唯一授权,才能解密这些信息。该机制可以确保患者的医疗数据和个人信息的安全性和隐私性,同时确保第三方无法在获取到区块中的信息,有效做到了数据安全保护和数据隔离。

2.2 数据无法篡改

患者医疗数据是治疗过程中的重要记录,在未来的就医中提供重要的参考信息,数据的不可篡改非常重要。得益于共识拜占庭算法(PBFT),在链中的数据只能增加且不可修改,也不支持事务的回滚。存储病历数据时,上链数据需要经过各个节点达成共识后能成功记录。在通过多轮投票和多数派原则后,大多数节点达成共识的情况下,才会执行操作并返回结果。本平台使用的共识机制结合SM3密码杂凑算法的安全保护机制可以更好地保护数据。该技术通过将数据分割成多个碎片,并将这些碎片存储在不同的节点上,从而防止黑客入侵或数据泄露。同时为用户提供更灵活、更可靠的身份验证和授权机制,以确保使用者使用DNA身份验证才可获取信息。这样保证了链上患者医疗数据的真实和准确性,有效地防止了恶意节点的攻击和数据篡改。

2.3 数据可溯源性

在患者未来就医时,过往的医疗数据具有重大的参考价值,或是在发生医疗纠纷时可以提供有效的证据,需要避免传统溯源中推卸责任、篡改病历、私钻空子和信息遗失的情况。区块链中的每个数据块都包含了前一个块的哈希值,形成了一个不可更改的链条。这种链式结构使得数据的变更可以被追溯,增加了数据的可信度和可追溯性。数据记录在分布式网络中的多个节点上,每个节点都会验证新的区块,并通过共识算法来决定是否接受该区块。只有经过验证的区块才能添加到区块链中,同时会记录加密算法生成的唯一哈希,一旦发生修改唯一哈希也会改变,节点间使用Gossip协议来广播和状态同步。遍历区块链,可以追踪每个数据记录的来源和修改历史。每个区块都包含了前一个区块的哈希值,因此可以通过逐个验证区块的哈希值来确保数据的完整性和一致性。这种机制可以追踪每个数据记录的来源和历史变化,基于其分布式、不可篡改和透明的特性,确保数据的真实和完整。

2.4 数据的访问控制

患者病历数据在医疗机构数据中心中实现共享,但并非机构中任何人都可以进行访问的,采用患者身份认证来进行授权访问数据。当医生需要访问患者医疗数据时,需要患者提供身份标识认证(DNA身份证),通过需要区块网络中的节点验证,使用公钥验证身份,验证通过才会获得数据的访问权限。本平台使用可靠的Attribute-Based Access Control(ABAC)控制模型,以患者唯一标识信息(DNA身份证)为控制属性,确保只有授权用户能够访问数据,并记录所有访问记录以便审计。客户端和节点之间的通信使用TLS协议验证两端之间的通信。确保需要患者的实时参与验证才可获取访问权。

3 区块链电子病历平台的搭建

3.1 区块链的构建

区块链主要有公有链、私有链和联盟链三种形式。考虑到电子病历平台需要多个组织或个人组成,共同维护区块链网络,对于病历信息的安全性、可信度要求高。考虑到联盟链的高效性、可定制性以及在隐私保护和共享资源中的优异表现,选择联盟链。基于Hperledger Fabric框架搭建区块链。网络拓扑初始设计四个节点(也就是四所医疗机构)。链只对初始的四所机构开放,区块生成和后续加入的新医疗机构都需要这些节点的共同决定,每个节点都有总账本的副本,共同维护总账本的一致性。动态同步区块数据功能主要基于智能合约和链上节点间的共识来完成,以实现区块链的扩展和数据同步。链中的节点之间可以共享资源,参与者也可以根据自身机构的特点来进行个性定制。

3.2 系统设计与应用

3.2.1 系统分为患者端和机构端

患者端:患者可通过管理模块查看到从机构端录入的信息,针对部分使用电子产品不便的患者,可绑定亲属信息,帮助查看医疗数据,用户可通过亲属信息管理模块查看已绑定的亲属信息。亲属也可通过与当前账号用户所建立的绑定关系,可通过当前账户去查看亲属的病历信息,患者端功能设计如图1所示。

机构端:机构端需要划分角色,其权限也有所区别。需要机构管理员、科室主任和机构医生,以便将更多的管理功能下发至每个机构。机构医生是与患者端交互的直接角色,在认证后,可以对患者进行新的病历数据写入和修改,机构端功能设计如图2所示。

基于区块链的电子病历系统架构设计上采用目前开发中主流的前后端分离架构。前端使用Vue+Element-UI+Axios架构,后端采用SpringBoot+MySQL+Redis,数据持久层使用MyBatisPlus框架,系统的技术架构如图3所示。

前端为视图层,包括用户界面、显示效果、页面交互逻辑等,负责用户与系统之间的交互。后端应用的业务功能可以划分为数据层、数据访问层、业务逻辑层和控制层。数据层主要负责数据的持久化存储。数据访问层则负责操作数据库,提供接口供业务逻辑层调用。业务逻辑层则是处理业务相关的逻辑和计算,同时调用数据访问层的接口进行数据读写。控制层则负责处理前端页面的请求,并将请求转发给相应的业务逻辑层进行处理,同时也负责将处理结果返回给前端页面。用户身份识别、授权认证上使用Spring Security + JWT来实现,业务架构如图4所示。

通过将电子病历数据存储于区块链中,医生可以将患者的诊疗信息录入数据库,并通过医生的身份标识认证验证身份后登录进入区块链联盟链。借助SM3加密算法,医生可以将患者的相关信息写入区块链,同时为患者生成唯一的用户身份标识符(DNA身份证)。患者唯一标识信息(DNA身份证)为控制属性,确保只有患者自己或授权用户能够访问数据。当患者需要到其他医疗机构治疗时,只有通过授权才将电子医疗数据的查询权限交出来,整个过程的数据流图如图5所示。

3.2.2 就医模块功能实现

就医申请模块功能为模拟患者就医的前期挂号活动,本系统在此简化了操作流程。患者在此可先查看注册机构,并可通过机构名、机构类型、机构地址进行筛选查看。选择一个机构可查看医生信息。病历查看模块如图6所示,其中信息包括科室信息、医生信息等,患者可通过科室名进行科室医生筛选。点击就医申请之后就可生成一条就医记录。以上为整个就医模块所实现的功能。

就诊模块支持查看当前需接诊的患者信息,查看病历需要先填写患者授权码,经服务器后台校验之后会跳转至患者病历管理模块。患者病历管理模块在本章节患者端已介绍,在此不展开说明。病历上链为在填写病历之后科室主任角色拥有病历上链权利。就医患者模块如图7所示。

4 结 论

尽管区块链技术在医学领域的应用面临一些挑战,其仍然具有广阔的未来前景。随着区块链技术的不断发展和成熟,其可扩展性和性能将得到进一步提升。新的区块链架构和共识机制的出现将促使区块链系统处理更大规模的数据和更高的交易速度,从而为医学领域的应用提供更好的支持。此外,零知识证明、多方计算和加密算法等技术的应用可以在保护数据隐私的同时实现高效的数据共享和利用。

参考文献:

[1] 王媛,彭爱群.区块链助力医疗病历数据流通及治理变革探析 [J].通化师范学院学报,2022,43(1):50-54.

[2] 刘芬,朱壮友,许勇.基于区块链的电子病历共享数据模型研究 [J].安徽师范大学学报:自然科学版,2021,44(6):536-544.

[3] 李亚辉.基于区块链的电子病历共享系统的设计与实现 [D].杭州:浙江大学,2021.

[4] 张圣垚.基于区块链的电子病历系统的设计与实现 [D].哈尔滨:哈尔滨工业大学,2018.

[5] 孙翔.基于区块链的医疗数据存储与共享方案研究 [D].南京:南京邮电大学,2021.

[6] 靳碧媛.基于区块链的医联体电子病历安全共享研究 [D].北京:北京交通大学,2022.

[7] 穆康松.基于区块链电子病历共享系统的设计与实现 [D].佛山:佛山科学技术学院,2021.

[8] 朱西平,赖宇,龙文涛,等.基于区块链的电子病历共享与可验证方案 [J].科学技术与工程,2023,23(14):6113-6122.

[9] 戴佳伟.基于区块链的电子病历隐私保护共享系统的研究与实现 [D].绵阳:西南科技大学,2022.

[10] 张磊,郑志勇,袁勇.基于区块链的电子医疗病历可控共享模型 [J].自动化学报,2021,47(9):2143-2153.

作者简介:李松泽(2001—),男,汉族,广西罗城人,本科在读,研究方向:软件开发、区块链技术;陈乐(2002—),男,汉族,广西玉林人,本科在读,研究方向:软件开发。

Design of an Electronic Medical Record System Based on Blockchain Technology

LI Songze, CHEN Le

(School of Computer Science and Information Security, Guilin University of Electronic Technology, Guilin 541004, China)

Abstract: In response to the data security and sharing issues of traditional electronic medical records, an electronic medical record system is constructed based on blockchain technology. The system adopts a B/S architecture, with Vue+Element UI as the front-end and Spring Boot and Spring Security as the back-end. Through MySQL database persistence, Hperledger Fabric ensures data trustworthiness. It uploads patient information and medical records to blockchain, utilizes the security mechanism of blockchain technology to reduce the risk of data leakage, solves trust issues, and provides safer doctor-patient interaction. It integrates traditional electronic medical records with cross institutional healthcare, creating personal lifelong medical record storage for each patient, and promoting the development of a lifelong healthcare system.

Keywords: data sharing; blockchain technology; electronic medical record; data security; B/S architecture

标签:  区块 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor