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

一种基于区块链的电子病历共享方法

文献发布时间:2023-06-19 11:05:16


一种基于区块链的电子病历共享方法

技术领域

本发明涉及电子病历领域,尤其涉及一种基于区块链的电子病历共享方法。

背景技术

在信息化技术大规模普及的今天,传统医疗体系中的纸质化病历在存储和传输过程中对资源的浪费引起了更多人的注意。各国政府都在主导电子病历替代纸质病历的运作。电子病历的出现有效解决了传统病历共享难,保存难,查询难,更新难等问题。电子病历的出现还使得医生能够便捷的查看病人的既往病史,更新病人的最新病情,医疗机构间也可以高效的实现电子病历的共享。然而,作为一种高经济价值的信息,病历的安全共享在电子病历系统中难以保证,患者的隐私无法得到保障。因此,电子病历安全共享、隐私保护是亟待解决的技术问题。

发明内容

针对上述问题,本发明提出了一种基于区块链的电子病历共享方法,方法应用于电子病历共享系统,电子病历共享系统包括客户端、密钥生成中心、存储电子病历密文的分布式数据库以及存储电子病历密文存储信息的区块链,就诊患者以及医疗机构分别通过各自的客户端进行注册,从密钥生成中心获取私钥,就诊患者就诊后,由就诊患者所就诊的医院的客户端对就诊患者的电子病历进行加密生成电子病历密文,并将电子病历密文存储在分布式数据库中,将电子病历密文的存储信息上传至区块链,电子病历共享方法包括:第三方医疗机构的客户端,根据第三方医疗机构的指令向目标共享电子病历的生成医院的客户端发送电子病历共享请求;目标共享电子病历的生成医院的客户端,根据预设身份审核策略审核第三方医疗机构的身份是否合法,若第三方医疗机构的身份合法,通过第三方医疗机构的身份信息在区块链中申请目标共享电子病历的电子病历密文存储信息,并根据预设重加密密钥生成策略生成重加密密钥,将重加密密钥和目标共享电子病历的病历信息发送至区块链中的代理节点;代理节点根据病历信息在区块链上检索目标共享电子病历的电子病历密文存储信息,根据目标共享电子病历的电子病历密文存储信息在分布式数据库上获取目标共享电子病历的电子病历密文,向目标共享电子病历对应的目标共享患者的客户端申请重加密密钥关键值的合法委托,根据重加密密钥关键值升级重加密密钥,根据升级后的重加密密钥对目标共享电子病历的电子病历密文进行二次加密生成重加密密文,将重加密密文发送至第三方医疗机构的客户端;第三方医疗机构的客户端接收到重加密密文后,根据预设重解密策略进行解密,获得目标共享电子病历的明文。

进一步的,区块链为可编辑区块链,区块链包括多个区块,其中,一个区块对应存储在分布式数据库中的一个或多个电子病历密文,区块表示为五元组B

进一步的,在就诊患者以及医疗机构分别通过各自的客户端进行注册之前,方法还包括由密钥生成中心进行系统初始化,系统初始化包括:密钥生成中心根据安全参数选取生成元为g的群G

进一步的,就诊患者以及医疗机构分别通过各自的客户端进行注册,从密钥生成中心获取密钥包括:在就诊患者第一次到一种类科室进行就诊,由就诊患者的客户端向密钥生成中心发送注册请求,就诊患者的客户端发送的注册请求包括就诊患者在该种类科室的病历假名h

进一步的,就诊患者所就诊的医院的客户端对就诊患者的电子病历进行加密生成电子病历密文,并将电子病历密文存储在分布式数据库中,将电子病历密文的存储信息上传至区块链包括:就诊患者所就诊的医院的客户端选取随机数r

进一步的,根据预设重加密密钥生成策略制作重加密密钥包括:生成医院的客户端选取随机数r

进一步的,重加密密钥关键值

进一步的,根据升级后的重加密密钥对目标共享电子病历的电子病历密文进行二次加密生成重加密密文包括:通过目标共享电子病历的电子病历密文c

进一步的,第三方医疗机构的客户端接收到重加密密文后,根据预设重解密策略进行解密,获得目标共享电子病历的明文包括:第三方医疗机构的客户端接收到重加密密文c

进一步的,若就诊患者进行第N次就诊,由就诊患者的第N次就诊医院的客户端验证就诊患者的身份信息,使用就诊患者的自身合法身份通过相关访问控制策略在区块链上查询就诊患者第N-1次就诊生成的第N-1次电子病历密文的哈希值和以及第N-1次就诊生成的第N-1次电子病历密文在分布式数据库中的存储地址,根据第N-1次电子病历密文在分布式数据库中的存储地址在分布式数据库中获取所述第N-1次电子病历密文并根据第N-1次电子病历密文的哈希值对第N-1次电子病历密文进行完整性验证;就诊患者的第N次就诊医院的客户端根据就诊患者提供的私钥进行解密,得到第N-1次电子病历明文。

本发明提供的,至少具有以下有益效果:本发明提供的基于区块链的电子病历共享方法,在电子病历共享过程中,由代理节点对存储在分布式数据库中的电子病历进行二次加密后才共享给第三方医疗机构,在实现高效的电子病历共享的同时,有效的保证了电子病历共享时的数据安全性。另外,区块链的代理节点只有在向就诊患者申请到重加密密钥关键值的合法委托后,才能生成升级后的重加密密钥,进而对电子病历进行二次加密,也即只有得到就诊患者得授权,才能共享电子病历。进一步的保护了目标就诊患者的隐私。进一步的,本发明针对区块链的不可篡改性提出了患者二次就诊时电子病历的更新方法,通过对区块链的区块结构进行扩展,实现了对电子病历的编辑,就诊患者每次就诊之后无需再重新建立电子病历。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1为本发明一实施例的基于区块链的电子病历共享方法流程图;

图2为本发明一实施例中的可编辑区块链的结构示意图;

图3为本发明一实施例中的在电子病历共享系统中编辑电子病历流程图;

图4为本发明一实施例中的就诊患者进行注册的流程图;

图5为本发明一实施例中电子病历共享系统中的电子病历存储流程图;

图6为本发明一实施例中医院调取就诊患者的电子病历的流程图;

图7为本发明一实施例中的电子病历共享系统的交互过程示意图。

具体实施方式

下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通的技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明的保护范围。

在本发明的一种实施例中,提供一种基于区块链的电子病历共享方法,该方法应用于电子病历共享系统,电子病历共享系统包括客户端、密钥生成中心、存储电子病历密文的分布式数据库以及存储电子病历密文存储信息的区块链。具体的,在电子病历共享系统中,客户端可以是就诊患者的客户端,也可以是医院、制药厂、医疗研究所等医疗机构的客户端,就诊患者及医疗机构分别通过各自的客户端进行注册并从密钥生成中心获取私钥。只有注册成功的就诊患者以及医疗机构才能够加入到电子病历共享系统中。就诊患者作为电子病历数据的数据拥有者,其会作为医疗机构间共享病历时的知情方。就诊患者进行就诊之后,由就诊患者所就诊的医院的客户端对就诊患者的电子病历进行加密生成电子病历密文,并将电子病历密文存储在分布式数据库中,将电子病历密文的存储信息上传至区块链。

进一步的,就诊患者存储在分布式数据库中的电子病历可以按照就诊科室分类进行存储,对于一个就诊患者,可以有多个电子病历,电子病历与科室一一对应,当就诊患者第一次到一种科室进行就诊时,即为其生成该科室的电子病历,后续就诊患者第二次到同一种科室进行就诊,可以不用再生成该科室的电子病历,而是在第二次就诊之后更新原有的电子病历。

进一步的,存储信息可以包括电子病历密文的相关访问控制策略(在电子病历生成时即设定好)、电子病历密文在分布式数据库的存储位置以及电子病历密文的哈希值。当医院的客户端将电子病历密文存储在分布式数据库后,将所存密文的相关访问控制策略上传至区块链,以便后续审核电子病历调用者的合法身份。将密文在分布式数据库上的存储位置存储至区块链上,以方便具有合法身份的调用者安全调用,将密文的哈希值存储在区块链上,以方便调用者验证密文的完整性。

在本实施例中,如图1、图7所示,在病历共享阶段,电子病历共享方法包括以下步骤:

步骤S101:第三方医疗机构的客户端,根据第三方医疗机构的指令向目标共享电子病历的生成医院的客户端发送电子病历共享请求。

在本步骤中,第三方医疗机构指的是在电子病历共享系统中想要申请访问非由自己生成病历的机构的统称。第三方医疗机构可以是医院、制药厂、医疗研究所等。

目标共享电子病历为第三方医疗机构所选择的想要查看的电子病历。在本实施例中,目标共享电子病历对应的就诊患者为目标共享患者。

进一步的,当电子病历是按照就诊患者的就诊科室类型生成并存储在分布式数据库中,后续在同一种就诊科室进行就诊时,就诊结束不再生成新的电子病历,而是更新已存储的该科室的电子病历,目标共享电子病历为目标共享患者在某一种科室的电子病历,此时生成目标共享电子病历的医院可能有多个(目标共享患者在多个医院的同一种科室进行过就诊),目标共享电子病历的生成医院为目标共享患者最后一次在该科室进行就诊所在的医院。

电子病历共享请求包括第三方医疗机构的身份信息id

步骤S102:目标共享电子病历的生成医院的客户端,根据预设身份审核策略审核第三方医疗机构的身份是否合法,若第三方医疗机构的身份合法,通过第三方医疗机构的身份信息在区块链中申请目标共享电子病历的电子病历密文存储信息。

具体的,预设身份审核策略审核第三方医疗机构的身份是否合法,可以检测第三方医疗机构是否在密钥生成中心进行过注册,即检测第三方医疗机构发送来的身份信息id

步骤S103:目标共享电子病历的生成医院的客户端根据预设重加密密钥生成策略生成重加密密钥。

步骤S104:目标共享电子病历的生成医院的客户端将重加密密钥和目标共享电子病历的病历信息发送至区块链中的代理节点。

更具体的,此处的病历信息可以包括病历所属患者的信息、病历所属科室、病历假名以及病历的相关访问控制策略。

步骤S105:代理节点在区块链上根据病历信息检索目标共享电子病历的电子病历密文存储信息,根据目标共享电子病历的电子病历密文存储信息在分布式数据库上获取目标共享电子病历的电子病历密文。

步骤S106:代理节点向目标共享电子病历对应的目标共享患者的客户端申请重加密密钥关键值的合法委托。

步骤S107:代理节点根据重加密密钥关键值升级重加密密钥,根据升级后的重加密密钥对目标共享电子病历的电子病历密文进行二次加密生成重加密密文。

步骤S108:将重加密密文发送至第三方医疗机构的客户端。

在本实施例中,在基于DPoS共识机制的区块链里选取的21个医疗机构(例如医院、制药厂、医疗研究所)作为权威节点,负责维护区块链的正常出块。进一步的,在重加密的时候只需要系统中当时作为轮值节点的那个权威节点作为代理节点完成代理重加密的工作,将收到的重加密密钥进行升级,对所收到的单次加密的电子病历密文进行重加密即可。进一步的,重加密密钥关键值为当合法的第三方医疗机构向医院发起电子病历共享申请时,目标共享患者的客户端会根据w生成该病历共享的重加密关键值。具体的,w为医院和患者共同商定及保存,由目标共享患者的客户端构造重加密关键值z,

当代理节点获取到目标共享电子病历的电子病历密文之后,需要先向目标共享患者的客户端申请重加密密钥关键值的合法委托,获得合法委托,得到重加密密钥关键值之后才可以进行后续的重加密工作,也即在电子病历共享必须要经过目标共享患者的授权同意,才能进行,充分尊重了目标共享患者的意愿,保护了目标共享患者的隐私。

步骤S109:第三方医疗机构的客户端接收到重加密密文后,根据预设重解密策略进行解密,获得目标共享电子病历的明文。

具体的,由于第三方医疗机构的客户端收到的是经过两次加密的重加密密文,因此在进行解密时,需要分两步进行,以重加密密文为:

在本实施例中,通过在电子病历共享过程中,由代理节点对存储在分布式数据库中的电子病历进行二次加密后才共享给第三方医疗机构,从而有效的保证了电子病历共享时的安全性。另外,区块链的代理节点只有在向目标共享患者申请到重加密密钥关键值的合法委托后,才能生成升级后的重加密密钥,进而对电子病历进行二次加密,如果没有申请到重加密密钥关键值的合法委托,则无法完成电子病历的二次加密,因而第三方医疗机构无法得到其所申请共享的目标共享电子病历,即只有得到目标共享患者的授权,才能共享电子病历。进一步的保护了目标共享患者的隐私。

在本发明的又一种实施例中,区块链为可编辑区块链,区块链包括多个区块,其中,一个区块对应存储在分布式数据库中的一个或多个电子病历密文。本发明涉及的区块链用如下方式表示:认定DPoS共识机制下的区块链C

在现有技术中,区块链每个区块记为三元组B

s

其中,区块链中D∈N是区块链当前难度,q是每轮共识过程最大允许的哈希请求数,用

而在本发明的实施例中,通过对上述现有技术中的区块结构进行扩展,在区块中增加y

进一步的,如图3、图7所示,在上述的可编辑区块链的基础之上,在电子病历编辑阶段,方法还包括:

步骤S201:若就诊患者在A科室进行第N次就诊,就诊结束后,由就诊患者的就诊医院的客户端为就诊患者生成在A科室就诊的第N次电子病历,并对第N次电子病历进行加密,生成第N次电子病历密文并将第N次电子病历密文存储在分布式数据库中。具体的N为大于等于2。

在本实施例中,A科室并非特指,仅是为了说明就诊患者在某一种科室就诊时的电子病历编辑过程而设置的。

步骤S202:在就诊患者的就诊医院的客户端为就诊患者生成在A科室就诊的第N次电子病历后,就诊患者的客户端根据就诊患者的指令向区块链中的代理节点发送编辑请求,代理节点按照预设合法性验证策略验证就诊患者身份的合法性以及待编辑区块B

在本实施例中,电子病历共享系统中的电子病历是按照科室种类存储在分布式数据库中,当就诊患者第一次到A科室就诊后,则为就诊患者生成A科室对应的电子病历,后续就诊患者第二次或第N次到A科室进行就诊,得到新的电子病历,即对存储在分布式数据库中的A科室对应的旧电子病历进行编辑更新。

具体的,在本实施例中,编辑请求包括(h

待编辑区块B

进一步的,代理节点按照预设合法性验证策略验证就诊患者身份的合法性以及待编辑区块B

步骤S203:若就诊患者的身份以及待编辑区块B

具体的,构建方法为区块链定位待编辑电子病历密文的存储信息在区块的位置,根据编辑请求确定x

步骤S204:根据预设的候选区块检验策略检验候选区块B

具体的,区块链通过Apply检测该块的有效性。再对

步骤S205:区块链中的权威节点接收到候选区块B

当网络中的权威节点代理节点在收到B的编辑信息时,依据BasisofVoting对编辑请求进行审核。通过数据用户发送的编辑请求,进行同态哈希检测,并验证新链的合法性。当验证通过之后,执行算法WayofVoting(权威节点投票方式),进行投票。在本实施例中,权威节点即为上述所提及的区块链的代理节点。区块链中的权威节点会通过轮值的方式进行区块链的出块行为,即在特定的一个时间段,由一个权威节点将网络中的数据打包,产出新的区块。在足够多的区块出块过程中,每一个权威节点都会负责相应的区块出块任务。此中的权威节点的投票(广播)方式是:对于合法的编辑请求,有出块任务的权威节点将B

步骤S206:若投票通过,区块链删除分布式数据库中存储的就诊患者在A科室的第N-1次电子病历密文,将区块链中的待编辑区块B

具体的,在一种实施例中,可以采用投票结果审计算法进行投票结果的统计,判断投票是否通过。投票结果审计算法包括:系统检查在预先设定的l个区块长度里,仅当通过率达到ρ(本实施例中定为l=3,ρ=100%),才对该区块链进行编辑,并将新链

进一步地,本实施例中,当就诊患者需要进行病历二次更新(病历编辑)时,向转诊医院(二次就诊医院)申请区块链编辑,就诊患者向代理节点发送编辑请求(h

进一步地,本实施例中,由于病历的编辑需要就诊患者向代理节点提交病历假名h

在本实施例中提供的可编辑区块链的扩展结构,新增加的字段中y

在本发明的又一种实施例中,就诊患者、医院以及医疗机构分别通过各自的客户端进行注册之前,方法还包括由密钥生成中心进行系统初始化,系统初始化包括:密钥生成中心根据安全参数选取生成元为g的群G

进一步的,在本发明的又一种实施例中,在上一实施例的基础之上,如图4、图7所示,就诊患者以及医疗机构分别通过各自的客户端进行注册,从密钥生成中心获取密钥包括以下步骤:

步骤S301:在就诊患者第一次到一种类科室进行就诊,由就诊患者的客户端向密钥生成中心发送注册请求,就诊患者的客户端发送的注册请求包括就诊患者在该种类科室的病历假名h

具体的,就诊患者在该种类科室的病历假名h

步骤S302:密钥生成中心根据就诊患者在该种类科室的病历假名h

医疗机构的客户端向密钥生成中心发送注册请求,医疗机构的客户端发送的注册请求包括医疗机构的身份id,密钥生成中心根据医疗机构的身份id生成医疗机构的私钥SK=H

在本发明的又一种实施例中,如图5、图7所示,就诊患者所就诊的医院的客户端对就诊患者的电子病历进行加密生成电子病历密文,并将电子病历密文存储在分布式数据库中,将电子病历密文的存储信息上传至区块链包括:

步骤S401:就诊患者所就诊的医院的客户端选取随机数r

进一步的,令

步骤S402::将电子病历密文c

在本发明的又一种实施例中,根据预设重加密密钥生成策略制作重加密密钥包括:生成医院的客户端选取随机数r

具体的,第三方医疗机构的共享标识符h

在本发明的又一种实施例中,重加密密钥关键值

在本发明的又一种实施例中,根据升级后的重加密密钥对目标共享电子病历的电子病历密文进行二次加密生成重加密密文包括:通过目标共享电子病历的电子病历密文c

在本发明的又一种实施例中,第三方医疗机构的客户端接收到重加密密文后,根据预设重解密策略进行解密,获得目标共享电子病历的明文包括:第三方医疗机构的客户端接收到重加密密文c

根据(C

在本发明的又一种实施例中,如图6、图7所示,方法还包括:

步骤S501:若就诊患者进行第N次就诊,由就诊患者的第N次就诊医院的客户端验证就诊患者的身份信息。

具体的,这里的N大于等于2。就诊患者第N次就诊医院与之前几次的就诊医院可以相同,也可以不同。在就诊患者前往第N次就诊医院进行就诊,需要提供身份信息和病历信息。进而就诊患者的第N次就诊医院的客户端即可根据就诊患者的身份信息验证身份信息是否合法。其中身份信息即为就诊患者的身份id,病历信息指的是病历假名,检测是否合法即检测该真实身份是否是该病历的拥有者。

步骤S502:使用就诊患者的自身合法身份通过相关访问控制策略在区块链上查询就诊患者第N-1次就诊生成的第N-1次电子病历密文的哈希值和以及第N-1次就诊生成的第N-1次电子病历密文在分布式数据库中的存储地址。

步骤S503:根据第N-1次电子病历密文在分布式数据库中的存储位置在分布式数据库中获取第N-1次电子病历密文并根据第N-1次电子病历密文的哈希值对第N-1次电子病历密文进行完整性验证。

步骤S504:就诊患者的第N次就诊医院的客户端根据就诊患者提供的私钥进行解密,得到第N-1次电子病历明文。

在本实施例中,当就诊患者进行第二次就诊或者第N次就诊时,就诊患者参与其中,因而就诊患者的二次就诊或N次的医院可以根据就诊患者提供的信息直接从分布式数据库中获取到对应的电子病历密文。

本发明提供的基于区块链的电子病历共享方法,在电子病历共享过程中,由代理节点对存储在分布式数据库中的电子病历进行二次加密后才共享给第三方医疗机构,从而有效的保证了电子病历共享时的数据安全性。另外,区块链的代理节点只有在向就诊患者申请到重加密密钥关键值的合法委托后,才能生成升级后的重加密密钥,进而对电子病历进行二次加密,也即只有得到就诊患者得授权,才能共享电子病历。进一步的保护了目标就诊患者的隐私。另外本发明针对区块链的不可篡改性提出了患者二次就诊时电子病历的更新方法,通过对区块链的区块结构进行扩展,实现了对电子病历的编辑,就诊患者每次就诊之后无需再重新建立电子病历。

本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。

相关技术
  • 一种基于区块链的电子病历共享方法、电子病历接口及系统
  • 一种基于区块链的电子病历可信共享方法及系统
技术分类

06120112792758