掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的病历管理系统及方法

文献发布时间:2024-04-18 20:01:30


基于区块链的病历管理系统及方法

技术领域

本发明属于区块链技术领域,涉及一种基于区块链的病历管理系统及方法。

背景技术

传统的病患医疗信息主要存储于信息产生机构(医院或第三方监测机构),信息的互通主要通过纸质打印,现在很多机构为了实现数据互联互通的高效调阅,建立小范围联盟性质信息共享,采取了中心化的存储方式,但是当第三方的数据库一旦被攻破或者第三方为了利益出售数据,就会导致数据隐私安全等问题。

发明内容

本发明的目的在于解决现有技术中病患数据隐私不够安全的问题,提供一种基于区块链的病历管理系统及方法。

为达到上述目的,本发明采用以下技术方案予以实现:

基于区块链的病历管理系统,包括:应用层、客户端、区块链网关层和PKI层;

客户端包括患者端和医疗机构端;应用层包括:登记注册模块、登录认证模块、病历信息录入模块、PIX模块和病历信息检索模块;PKI层包括CA证书管理模块;

登记注册模块用于患者在患者端、医疗机构用户在医疗机构端进行匿名登记,并发送给CA证书管理模块生成私钥,并反馈给患者和医疗机构用户各自的私钥信息;

登录认证模块用于患者和医疗机构用户使用私钥信息进行登录,维护自身相关身份信息;

病历信息录入模块用于医疗机构维护已授权患者的病历信息;

PIX模块用于生成患者一次性授权码、查看授权申请列表、授权病历相关项和已授权历史查看;

病历信息检索模块用于医疗机构用户检索自己的身份信息、已授权的患者信息和对应的病历信息;同时用于患者检索自身账户中记录的患者信息和病历信息;

区块链网关层包括区块链网络,区块链网络用于储存患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录。

本发明的进一步改进在于:

进一步的,登记注册模块用于患者在患者端、医疗机构用户在医疗机构端进行匿名登记,具体为:医疗机构用户将自己的姓名、性别和身份证号,患者将自身的姓名、性别、年龄、身份证号和手机号输入至登记注册模块中,登记注册模块向CA证书管理模块发送证书处理请求,并通过加密算法生成唯一私钥,记录到区块链网络中,然后返回给医疗机构用户和患者。

进一步的,登录认证模块用于患者和医疗机构用户使用私钥信息进行登录,具体为:医疗机构用户和患者将各自的私钥分别通过患者端和医疗机构端输入至登录认证模块,登录认证模块调用存储在区块链网络中的私钥信息进行对比,若相同,则登录成功;若否,则登录失败。

进一步的,病历信息检索模块用于医疗机构用户检索自己的身份信息、已授权的患者信息和对应的病历信息,具体为:在医疗机构用户检索已授权的患者信息对应的病历信息之前,包括:区块链网络判断医疗机构用户是否有患者授权,若有,医疗机构查询患者病例;若无,区块链网络调用PIX模块生成患者一次性授权码,通过扫描一次性授权码,发起授权访问患者病例的申请,患者通过查看访问授权列表进行授权,医疗机构用户检索患者信息对应的病历信息。

进一步的,病历信息检索模块用于医疗机构用户检索自己的身份信息、已授权的患者信息和对应的病历信息,还包括:对患者电子病历进行密钥加密和解密,在每次对患者电子病历进行查询时,通过解密实现,并在查询完成后进行加密保存。

进一步的,对患者电子病历进行密钥加密和解密,具体为:使用RSA算法加密和解密患者电子病历。

进一步的,区块链网络用于储存患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录,具体为:基于区块链网络中的gateway模块,调用区块链网络中智能合约的合约方法写入和读取区块链网络中的数据,对患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录进行存储和调用。

基于区块链的病历管理方法,包括:

采集患者在患者端、医疗机构用户在医疗机构端的匿名登记信息,生成私钥,并反馈给患者和医疗机构用户各自的私钥信息;

基于患者和医疗机构用户的私钥信息进行登录,维护自身相关身份信息;

通过生成患者一次性授权码、查看授权申请列表、授权病历相关项和已授权历史查看,患者授权医疗机构用户查询维护已授权患者的病历信息;

接收患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录并储存区块链网络。

进一步的,基于患者和医疗机构用户的私钥信息进行登录,维护自身相关身份信息,具体为:医疗机构用户检索自己的身份信息、已授权的患者信息和对应的病历信息;同时患者检索自身账户中记录的患者信息和病历信息。

与现有技术相比,本发明具有以下有益效果:

本发明通过区块链网络存储登记注册模块、登录认证模块、病历信息录入模块、PIX模块和病历信息检索模块的电子病例数据。本发明利用区块链不可篡改的特性,保证病历信息的真实性和完整性,从而提高病人对医疗信息的信任度;同时提高了病历信息的安全性和隐私保护,实现了去中心化的病历管理。

附图说明

为了更清楚的说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明的基于区块链的病历管理系统的结构示意图;

图2为本发明的用户病历管理核心流程示意图;

图3为区块链调用流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明实施例的描述中,需要说明的是,若出现术语“上”、“下”、“水平”、“内”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

此外,若出现术语“水平”,并不表示要求部件绝对水平,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。

在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

下面结合附图对本发明做进一步详细描述:

参见图1,本发明公布了一种基于区块链的病历管理系统,包括:应用层、客户端、区块链网关层和PKI层;

客户端包括患者端和医疗机构端;应用层包括:登记注册模块、登录认证模块、病历信息录入模块、PIX模块和病历信息检索模块;PKI层包括CA证书管理模块;

登记注册模块用于患者在患者端、医疗机构用户在医疗机构端进行匿名登记,并发送给CA证书管理模块生成私钥,并反馈给患者和医疗机构用户各自的私钥信息;

医疗机构用户将自己的姓名、性别和身份证号,患者将自身的姓名、性别、年龄、身份证号和手机号输入至登记注册模块中,登记注册模块向CA证书管理模块发送证书处理请求,并通过加密算法生成唯一私钥,记录到区块链网络中,然后返回给医疗机构用户和患者。

登录认证模块用于患者和医疗机构用户使用私钥信息进行登录,维护自身相关身份信息;

医疗机构用户和患者将各自的私钥分别通过患者端和医疗机构端输入至登录认证模块,登录认证模块调用存储在区块链网络中的私钥信息进行对比,若相同,则登录成功;若否,则登录失败。

病历信息录入模块用于医疗机构维护已授权患者的病历信息;

PIX模块用于生成患者一次性授权码、查看授权申请列表、授权病历相关项和已授权历史查看;

病历信息检索模块用于医疗机构用户检索自己的身份信息、已授权的患者信息和对应的病历信息;同时用于患者检索自身账户中记录的患者信息和病历信息;

在医疗机构用户检索已授权的患者信息对应的病历信息之前,包括:区块链网络判断医疗机构用户是否有患者授权,若有,医疗机构查询患者病例;若无,区块链网络调用PIX模块生成患者一次性授权码,通过扫描一次性授权码,发起授权访问患者病例的申请,患者通过查看访问授权列表进行授权,医疗机构用户检索患者信息对应的病历信息。

还包括:对患者电子病历进行密钥加密和解密,在每次对患者电子病历进行查询时,通过解密实现,并在查询完成后进行加密保存;使用RSA算法加密和解密患者电子病历。

区块链网关层包括区块链网络,区块链网络用于储存患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录。

基于区块链网络中的gateway模块,调用区块链网络中智能合约的合约方法写入和读取区块链网络中的数据,对患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录进行存储和调用。

本发明公布了一种基于区块链的病历管理方法,包括:

采集患者在患者端、医疗机构用户在医疗机构端的匿名登记信息,生成私钥,并反馈给患者和医疗机构用户各自的私钥信息;

基于患者和医疗机构用户的私钥信息进行登录,维护自身相关身份信息;医疗机构用户检索自己的身份信息、已授权的患者信息和对应的病历信息;同时患者检索自身账户中记录的患者信息和病历信息。

通过生成患者一次性授权码、查看授权申请列表、授权病历相关项和已授权历史查看,患者授权医疗机构用户查询维护已授权患者的病历信息;

接收患者和医疗机构注册信息、患者的病例信息和医疗机构的诊断记录并储存区块链网络。

实施例:本发明的实施方案如下:

1、设计并运行区块链平台。

2、设计并实现智能合约以管理和控制病历信息。

3、实现私人信息交换协议(PIX)以提供病历信息共享服务。

4、开发病人端和医疗机构端应用程序,提供方便的访问和使用接口。

系统架构图如1所示,主要业务流程如图2所示。

首先,搭建区块链网络,其中包含了ca-证书管理模块、对等节点(含普通节点和背书节点)、排序节点、智能合约。

其次,建立基于区块链网络的医疗信息平台,本平台包含的使用主体为患者和医疗机构,所以包含了患者端、医疗机构端两种应用程序。

包含的主要模块如下:登记注册模块:患者和医疗机构在各自的客户端匿名登记,并返回用户私钥信息,用户私钥信息会弹出到用户登记终端页面,需要用户自己妥善保管,作为用户进入系统的唯一凭证。

登录认证模块:患者和医疗机构用户使用私钥进入系统后,可以维护自身相关身份信息,录入过程中,会调用第三方接口验证相关信息的真实性。患者端用户可维护多个患者的信息。

病历信息录入模块:医生维护已授权患者的病历信息。

PIX模块:主要功能为生成患者一次性授权码、查看授权申请列表、授权病历相关项、已授权历史查看。

病历信息检索模块:医生可以检索自己的身份信息,和已授权的患者信息和对应的病历信息。患者可以检索自身账户中记录的患者信息和病历信息。

该平台通过封装的专门调用区块链网络的gateway模块,使用公私钥凭证链接到区块链网络,通过调用智能合约中的合约方法写入和读取区块链网络中的数据。在这个平台上,每个病人的病历信息会被以匿名的方式存储在区块链上,并且只有授权的医疗机构才能够查看这些信息。对于每个病人,他们都会拥有一个私钥,这个私钥可以用来决定谁有权限查看他们的病历信息。如果一个医疗机构想要查看某个病人的病历信息,它需要先向该病人发出请求,只有在病人授权后,医疗机构才能够查看信息。

此外,通过开发私人信息交换协议(PIX),用来实现不同医疗机构之间的病历信息共享。这个协议中,医疗机构可以通过某个病人的私钥来获取该病人的病历信息,但是他们不能够获取这个病人的私钥。这样就保证了病人的隐私和安全。

最后,对系统进行安全性评估和测试,包括抵御对区块链的攻击,安全实现病历信息的共享,以及保护医疗机构和病人的隐私等方面。

参见图3,区块链数据提交流程:

根据交易生命周期的各个阶段工作负载的侧重点不同,区块链网络内的节点分为CA节点、Orderer排序节点和Peer节点三大类。Peer节点在逻辑上全部对应通道内的记账节点,部分Peer节点还可兼任背书节点Endorser角色。这种角色分工,可以让不同类型节点专注处理自己擅长的业务。

客户端创建请求:客户端应用使用SDK与区块链网络打交道。首先,客户端从CA获取合法的身份证书以便加入网络内的应用通道。发起正式交易前,需要先构造交易提案(Proposal)提交给Endorser进行背书。客户端收集到足够的背书支持后,背书支持根据背书策略决定。可以利用背书构造一个合法的交易请求,发给Orderer进行排序处理。客户端还可以通过事件机制来监听网络中消息,获知交易是否被成功接收。

Endorser节点进行背书:主要提供给客户端调用,完成对交易提案的背书处理;目前主要是签名处理。收到来自客户端的交易提案后,首先进行合法性和ACL权限检查,检查通过则模拟运行交易,对交易导致的状态变化,以读写集形式记录,包括所读状态的键和版本,所写状态的键值进行背书,并返回结果给客户端。

Committer节点更新账本:负责维护区块链结构和数据库,包括状态数据库、历史数据库、索引数据库等。该节点定期地从Orderer或领导节点获取排序后的批量交易区块结构,对这些交易进行落盘前的最终检查,包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等。检查通过后,将合法交易的执行结果写入账本,同时构造新的区块,更新区块中BlockMetadata(TRANSACTIONS_FILTER)元数据,添加合法性标记。所有Peer都担任Committer角色。

排序节点进行排序:Orderer为网络中所有合法交易进行全局排序,并将排序后的一批交易组合生成区块结构。Orderer不需要与交易内容打交道。

区块包括区块头、区块数据和区块元数据;其中,区块头包括三个字段,区块编号、当前区块哈希、前一个区块的哈希,这些字段是在创建一个区块时候被写入的。

区块编号:编号从0(初始区块)开始,每在区块链上增加一个新区块,编号的数字都会加1。当前区块的哈希值:当前区块中包含的所有交易的哈希值。前一个区块头的哈希值:区块链中前一个区块头的哈希值。这些字段是通过在内部对区块数据进行加密哈希而生成的。它们确保了每一个区块和与之相邻的其他区块紧密相连,从而组成一个不可更改的账本。、

区块数据包含了一个有序的交易列表。区块数据是在排序服务创建区块时被写入的。

区块元数据包含了区块被写入的时间,还有区块写入者的证书、公钥以及签名。区块的提交者也会为每一笔交易添加一个有效或无效的标记,但由于这一信息与区块同时产生,所以它不会被包含在哈希中

CA管理身份证书:参照PKI架构,负责网络中所有证书的管理(签发的、撤销等)。实现位于单独的CA模块中。CA在签发证书后,自身并不参与网络中的交易过程。

本发明公布了一种区块链数据提交流程,具体为:

通过区块链网络的背书节点接收客户端发送的交易提案,并对所述交易提案进行验证;

若对交易提案验证成功时模拟执行交易,得到交易结果;对所述交易结果进行签名,得到背书节点签名;

将背书节点签名以及当前背书状态返回至客户端,并对背书节点签名进行检验,并对比多个背书节点签名的检验结果,检查是否收集到足够的背书,若是,客户端收到的提案响应达到设定值后,提案响应构造一个合法的交易并发送至排序节点。

排序节点接收交易并进行排序后向确认节点发送一个区块;确认节点提将区块对应的区块信息提交到应用层;应用层执行交易动作并展示所述区块信息。

其中,提案响应为每个提案响应包含了提案发起时间、提案对应的hash码、背书机构对该次提案结果的签名信息、提案交易的计算结果。后续如果提案签名一致的话,提案交易就会正式提交到账本。

对背书节点签名进行检验,具体为:根据部署智能合约时设定的背书机构,客户端会收集这些机构下的所有背书节点,然后模拟发起提案交易请求,背书节点会根据交易提案参数计算出来的验签数据并返回给客户端。客户端会收集所有背书节点的验签结果,比较所有的验签结果是否一致,如果一致,继续执行后续逻辑。否则终止交易抛出错误。验签结果指的是对交易结果序列化后尽情固定的加密调用,计算出来的字符串。

客户端收到的提案响应达到设定值,具体为,背书节点的数量和收集的到的提案响应的数量要一致。因为背书的过程就是不同机构对该次交易的一个签名过程,比如一个区块链网络有2个机构org1、org2,分别部署了org1-peer1org1-peer2和org2-peer1 org2-peer2,总共四个节点。部署链码到各个节点时,都设定了该节点为背书节点,那么交易提案发起时就会分别发送到这四个节点上,客户端就会假定会收到四个提案响应。

区块的生成过程为:应用程序客户端把包含已背书交易提案响应的交易提交到排序服务节点。排序服务创建交易区块,区块中的交易数量取决于区块的期望大小和最大间隔时间相关的通道配置参数。然后将这些区块保存到排序节点的账本中,并分发给已经加入通道的所有节点。确切地说,区块的期望大小和最大间隔时间相关的通道配置参数是指BatchSize区块交易数量和BatchTimeout最小打包间隔参数,排序节点启动后,接收到batchSize个交易,或者没隔BatchTimeout秒后,就会把当前收集到的交易打包成区块。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116561747