论文部分内容阅读
医疗领域信息化建设随着互联网的发展和普及逐渐进入崭新的阶段,其中EHR电子健康病历通过使用电子信息技术对患者病历和就医记录进行存储、管理和传输。在传统的医疗模式下,EHR使用明文存储于医疗机构中心化数据库中,其不仅存在病历隐私泄露的可能,而且降低了病历文件在患者、医疗机构和医疗数据企业之间的流通性和可共享性。本系统相较于现有区块链医疗项目,具有访问快速、病历存储量大和实现病历隐私保护等优点,本文以Hyperledger Fabric作为客户端应用底层架构支撑,同时采用云存储技术,对EHR系统中病历文件的存储及传输,交易与隐私保护等功能及其中的关键技术进行深入地研究,给出解决方案并实现EHR系统客户端程序和智能合约的开发,对区块链技术在医疗领域的应用做出进一步研究与探索。深入研究EHR系统业务场景,设计出EHR系统架构模型并以此划分功能模块。首先根据患者、医疗机构和企业的职责,设计EHR系统在区块链网络中的组织架构并分析各个节点在交易背书过程中的具体任务和操作;之后据此给出EHR系统架构模型,将客户端程序分为登录、加解密、Chaincode接口和传输程序四个组成模块;最后对EHR系统各个功能模块进行深入研究并实现了病历上链及传输,病历隐私保护与交易的功能,同时对病历传输效率和存储效率进行了优化。通过对病历上链及传输的研究,本文提出了在区块链账本中存储病历文件索引信息,在云服务器间搭建HDFS存储病历文件的方案。索引信息定义为Records结构体,包含病历文件的数字摘要和云端存储路径等信息。在病历传输过程中,为了提高传输效率并有效利用DataNode block块存储容量,本文采用小文件合并,大文件分块的方案并结合断点续传技术实现。通过使用offset偏移量给出断点续传实现过程,同时编写客户端程序实现小文件合并、大文件分块功能并对优化后程序的传输速率和block块存储使用率进行测试比对。选取七对具有代表性的病历文件分为两组进行测试,得出文件合并后平均传输速率分别提升4.52%和8.65%,相对于优化前减少了大量OS与硬盘管理系统之间的IO请求。在加强患者病历隐私保护与实现病历交易及访问过程中,首先对可能发生隐私泄露的环节进行了研究,总结并提出了使用AES对称加密算法加密病历文件,使用RSA非对称加密算法公钥加密AES密钥的方案,编写AESEncryptor和RSAEncryptor类实现对病历文件和AES密钥的加解密功能;然后对智能合约开发及交易背书过程进行了深入研究,定义智能合约访问Records的基本操作接口,包含IPMR初始化患者病历、QDPMR指定患者病历查询、PRT患者病历交易和DPMR患者病历删除接口等;之后对区块链网络进行配置,生成创始块、生成CA证书、创建组织和通道、启动Peer和Orderer节点以及部署智能合约等;最后通过编写InvokeCC类调用Chaincode API,Transaction交易实体类记录交易状态信息,Account账户类记录账户相关信息等,实现客户端病历交易和访问功能的业务程序。