一种基于区块链技术的医疗数据共享方法、装置、电子设备及存储介质与流程

专利2022-06-29  81


本发明涉及区块链技术领域,更具体地,涉及一种基于区块链技术的医疗数据共享方法、装置、电子设备及存储介质。



背景技术:

医疗数据包括医院的就诊记录、检查结果、治疗方案等,属于高度敏感的个人隐私信息。目前,电子病历在中国大中城市中已经广泛被采用,使得个人就诊记录能够在院方得到较好的保存。电子病历往往与各个医院的就诊卡关联,医生可以通过就诊卡中记录的信息跟踪病人的就诊情况。但是仍然存在的问题是,这些信息无法与其他医院的医生共享,甚至就诊卡的丢失可能会导致个人就诊信息的丢失。例如,张三在a医院拍摄的ct,如果需要去b医院就诊,张三无法授权b医院的医生查看a医院的拍摄结果,他只能选择自己携带胶片和检查结果,而如果上述纸件数据丢失,则只能重新拍摄。这种情况下,在不同医院的就诊记录不能通用和共享,如果更换就诊医院,就诊人只能持纸件病例和检验报告等供医生参考,病例案卷数据往往不易阅读,容易丢失。

此外,对于医疗数据缺乏有效的校验方式,导致很难杜绝利用医疗数据造假而进行医疗欺诈、保险欺诈的行为。针对这种行为,医疗和保险机构如果要核实医疗数据,往往需要大量的人力物力,从而承担了额外的损失。目前,解决医疗数据信任问题的成熟方案较少,医疗数据的校验、保存和共享仍然没有实现。

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,当前区块通常由前一个区块的哈希值、有效负载、贡献签名和时间戳等组成,以此来保证其不可篡改性和不可伪造性。它由区块链网络中的所有节点共同维护数据,每一个节点都会对数据进行备份。即使单个或少数节点上的数据被篡改或破坏,也不会对区块链存储的数据产生影响。区块链技术无须中介参与,也可以在互不信任或弱信任的参与者之间维系一套不可篡改的账本记录。

在医疗实践领域,区块链技术的去中心化和分布式存储、不可篡改等优点可以帮助有效解决以上所述的医疗数据存储和共享中存在的诸多问题。



技术实现要素:

本发明的目的在于:为了解决现有医疗数据存储和共享中存在的不宜获取和共享,无法保证数据真实和有效性的问题,提供一种基于区块链的医疗数据共享方法、装置、电子设备及非易失性计算机可读存储介质。

本发明为了实现上述目的具体采用的技术方案如下:

一方面,提供一种基于区块链技术的医疗数据共享方法,所述方法应用于医疗联盟链系统,所述方法包括:

s1:接收用户注册请求,

为用户分配唯一账户account,并为用户生成公私钥对,其中唯一账户account至少包括用户id,用户类型,用户权限信息,公钥为用户在医疗联盟链系统的公钥,私钥为用户的私钥;

s2:接收数据操作请求;

s3:根据所述操作请求,读取所述用户的唯一账户account,并与account对应的用户权限进行校验匹配;

s4:通过校验后,根据所述数据操作请求进行相应操作。

可选地,所述用户类型包括具备资质的医生,病人和第三方机构,所述第三方机构包括科研机构、药品研发单位和保险机构。

可选地,所述用户权限包括写入,读取和隐私设置;其中医生账户具有写入和读取权限,病人账户具有读取和隐私设置权限,第三方机构账户具有读取权限。

可选地,数据操作请求中包含唯一账户account的用户id,以及所请求的操作内容,所述操作内容包括写入数据、读取数据和对数据进行隐私设置。

可选地,所述用户是医生,其请求对数据进行写入操作,所述方法的s4步骤还包括:

s4a1:通过校验后,根据医疗数据的关键词生成索引信息,并且在所述索引信息的包头添加生成该医疗数据的医生的用户id信息以及该医疗数据所属病人的用户id信息;

s4a2:用所述医生用户的公钥对所写入的数据进行加密,形成医疗数据密文,将所述医疗数据密文存储到云服务器;

s4a3:将所述医疗数据密文的存储位置url和上述索引信息以映射的方式存储到医疗联盟区块链中。

可选地,所述用户是病人或第三方机构,其请求对数据进行读取操作,所述方法的s4步骤还包括:

s4b1:通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

s4b2:获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求;

s4b3:接收分发密钥

s4b4:区块链根据所述存储位置url获取医疗数据密文,根据所述分发密钥对所述医疗数据密文解密,将解密后的所述医疗数据发送给用户。

可选地,所述用户是病人,其请求对数据进行隐私设置操作,所述方法的s4步骤还包括:

s4c1:通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

s4c2:获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求;

s4c3:接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥kdoc{k2}经哈希算法获得的分发密钥khash;

s4c4:区块链根据所述存储位置url获取医疗数据密文,根据所述分发密钥对所述医疗数据密文解密;

s4c5:根据系统设置的数据项,为病人用户提供隐私设置选项,用所述病人用户的公钥k{k1}对其选择的隐私项进行加密;

s4c6:将进行隐私设置后的医疗数据返回所述医生用户,由所述医生用户再次加密后形成医疗数据密文,将所述医疗数据密文存储到云服务器。

另一方面,提供一种基于区块链技术的医疗数据共享装置,所述装置应用于医疗联盟链系统,所述装置包括:

注册模块,用于接收用户注册请求,

为用户分配唯一账户account,并为用户生成公私钥对,其中唯一账户account至少包括用户id,用户类型,用户权限信息,公钥为用户在医疗联盟链系统的公钥,私钥为用户的私钥;

校验模块,接收数据操作请求,根据所述操作请求,读取所述用户的唯一账户account,并与account对应的用户权限进行校验匹配;

操作模块,用于通过校验后,根据所述数据操作请求进行相应操作。

可选地,所述用户类型包括具备资质的医生,病人和第三方机构,所述第三方机构包括科研机构、药品研发单位和保险机构。

可选地,所述用户权限包括写入,读取和隐私设置;其中医生账户具有写入和读取权限,病人账户具有读取和隐私设置权限,第三方机构账户具有读取权限。

可选地,数据操作请求中包含唯一账户account的用户id,以及所请求的操作内容,所述操作内容包括写入数据、读取数据和对数据进行隐私设置。

可选地,所述用户是医生,其请求对数据进行写入操作,所述操作模块还包括:

医疗数据索引信息生成模块,用于通过校验后,根据医疗数据的关键词生成索引信息,并且在所述索引信息的包头添加生成该医疗数据的医生用户的account用户id信息以及该医疗数据所属病人的用户id信息;

医疗数据密文生成模块,用于使用所述医生用户的公钥对所写入的数据进行加密,形成医疗数据密文,将所述医疗数据密文发送到云服务器进行存储;

医疗数据索引信息存储模块,用于将所述医疗数据密文的存储位置url和上述索引信息以映射的方式存储到医疗联盟区块链中。

可选地,所述用户是病人或第三方机构,其请求对数据进行读取操作,所述读取操作请求应包含其希望获取的医疗数据的关键词,所述操作模块还包括:

索引搜索模块:用于通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

密钥请求模块,用于获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求,接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥k{k2}经哈希算法获得的分发密钥khash;

解密模块,用于区块链根据所述存储位置url获取医疗数据密文,根据所述分发密钥对所

可选地,所述用户是病人,其请求对数据进行隐私设置操作,所述操作模块还包括:

索引搜索模块,用于通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

密钥请求模块,用于获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求,接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥经哈希算法获得的分发密钥khash;

解密模块,用于区块链根据所述存储位置url获取医疗数据密文,根据khash恢复私钥kdoc{k2};

隐私设置模块,用于根据系统设置的数据项,为病人用户提供隐私设置选项,用所述病人用户的公钥k{k1}对其选择的隐私项进行加密。

另一方面,提供了一种基于区块链技术的医疗数据共享电子设备,所述电子设备包括:一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有可执行指令,所述可执行指令由所述一个或多个处理器加载并执行本申请所述基于区块链技术的医疗数据共享方法。

另一方面,提供了一种非易失性计算机可读存储介质,所述存储介质中存储有可执行指令,所述可执行指令由处理器加载并执行以实现本申请所述基于区块链技术的医疗数据共享方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

本发明通过区块链技术,使得医生是唯一能够修改医疗数据内容的用户,保证了联盟区块链上的数据真实可靠性,并且保证了共享数据的一致性;病人具有获取医疗数据和设置隐私的权限,保证了病人隐私信息的安全,避免了隐私泄露带来的种种问题;第三方机构通过联盟认证后,具有能够方便地获取可靠的医疗数据,便利性大大提高。

附图说明

图1是本发明具体实施方式的方法流程示意图;

图2是本发明所述一种基于区块链技术的医疗数据共享装置的结构图;

图3是本发明实施例的操作模块结构图;

图4是本发明实施例的操作模块结构图;

图5是本发明实施例的操作模块结构图;

图6是本发明所述一种基于区块链技术的医疗数据共享电子设备的结构图。

具体实施方式

为了本领域技术人员能够更好的理解和实施本发明,下面结合附图和以下实施例对本发明做进一步详细描述。应当注意,本申请所描述实施例仅为列举,而非穷举,本领域技术人员在没有做出创造性劳动的前提下所获得的其他实施方式,均属于本申请的保护范围。

根据区块链的开发对象不同,可以分为公有链、私有链和联盟链。其中,公有链对所有人开放,允许任何节点在无授权的情况下匿名对数据进行访问以及在区块链上发布数据。私有链对单独实体开放,仅供组织内部使用,其结构封闭,节点数量可控,读、写等记账行为均由组织内部约定规则。联盟链的形式则介于公有链和私有链之间,可以对经过认证的联盟成员开放。

在医疗数据共享场景中,由于医疗数据涉及个人隐私,需要对可访问节点进行有效的限制,并且由于医疗数据的共享可能涉及多个经过认证的机构,因此可以由权威机构在医疗机构、病人和第三方之间建立联盟区块链系统以实现确保数据安全前提下的数据共享的实现。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1是本发明实施例提供的一种基于区块链技术的医疗数据共享方法的流程图,该方法包括:

s1:接收用户注册请求,

为用户分配唯一账户account,并为用户生成公私钥对,其中唯一账户account至少包括用户id,用户类型,用户权限信息,公钥为用户在医疗联盟链系统的公钥,私钥为用户的私钥。

所述唯一账户用于标识注册用户,其包括用户id、用户类型和用户权限。其中用户id为系统为每个用户生成的唯一代码。

在本申请的一些实施例中,用户根据其身份不同,其用户类型可能为医生、病人或者第三方机构,相应的,唯一账户可以标识为accountdoc<用户id,用户类型,用户权限>、accountpatient<用户id,用户类型,用户权限>和accountsub<用户id,用户类型,用户权限>,用户密钥可以标识为kdoc{k1,k2}、kpatient{k1,k2}和ksub{k1,k2}。而用户权限则包括写入、读取和隐私设置等。医生是医疗数据的生成者,其用户权限包括写入和读取,通过写入权限的验证,来保证写入医疗联盟区块链中的医疗数据来源的可靠性,而读取权限的验证,则使得医生在病情诊断中能够获得其所需医疗记录。病人是医疗数据的拥有者。医疗数据是具有高度隐私性的个人数据,而非公共数据,病人能够通过读取权限来获得自己的医疗数据。所述医疗数据根据规则包含不同的字段,所述病人可以根据规则,对所述医疗数据中的敏感信息进行加密,以对其进行隐私设置。第三方机构可能包括科研单位、药品研发机构和保险机构等。这些单位由于工作需要涉及特定对象的医疗数据,因此可以具有读取权限。

s2:接收数据操作请求。

所述数据操作请求中包含唯一账户account中的用户id,以及所请求的操作内容,可以包括写入数据、读取数据和对数据进行隐私设置。

s3:根据所述操作请求,读取所述用户的唯一账户account,并与account对应的用户权限进行校验匹配。

由于每个用户的唯一账户中已经包含了其所具有的用户权限,因此其只能对数据进行特定类型的操作。数据操作请求中携带了用户id,利用该信息对用户类型及其权限进行验证,以保证用户对数据的操作符合系统设置。

s4:如果通过校验,则根据所述数据操作请求进行相应操作。

在本申请的一些实施例中,所述用户是医生,其请求对数据进行写入操作,所述方法的s4步骤还包括:

s4a1:通过校验后,根据医疗数据的关键词生成索引信息,并且在所述索引信息的包头添加生成该医疗数据的医生用户的accountdoc用户id信息以及该医疗数据所属病人的accountpatient用户id信息;

s4a2:用所述医生用户的公钥kdoc{k1}对所写入的数据进行加密,形成医疗数据密文,将所述医疗数据密文存储到云服务器;

s4a3:将所述医疗数据密文的存储位置url和上述索引信息以映射的方式存储到医疗联盟区块链中。

在本申请的一些实施例中,所述用户是病人或第三方机构,其请求对数据进行读取操作,所述读取操作请求应包含其希望获取的医疗数据的关键词,所述方法的s4步骤还包括:

s4b1:通过校验后,根据所述用户唯一账户的用户id和所述关键词,获得搜索凭证,所述搜索凭证包含了所述用户希望获取的所述医疗数据密文的存储位置url以及索引信息;

s4b2:获取所述索引信息中医生用户accountdoc的用户id,向所述用户id对应的用户发送密钥分发请求;所述医生用户会对发送来的请求进行权限审核,判断对方是否有权限读取其所请求的医疗数据,例如对于希望进行读取操作的病人用户,需判断其所希望读取的医疗数据是否属于其本人,若是,则会向其分发密钥。

s4b3:接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥kdoc{k2}经哈希算法获得的分发密钥khash;

s4b4:区块链根据所述存储位置url获取医疗数据密文,根据khash恢复私钥kdoc{k2},对所述医疗数据密文解密,将解密后的所述医疗数据发送给用户,完成读取操作。

在本申请的一些实施例中,所述用户是病人,其请求对数据进行隐私设置操作,所述方法的s4步骤还包括:

s4c1:通过校验后,根据所述用户唯一账户的用户id和所述关键词,获得搜索凭证,所述搜索凭证包含了所述用户希望获取的所述医疗数据密文的存储位置url以及索引信息;

s4c2:获取所述索引信息中医生用户accountdoc的用户id,向所述用户id对应的用户发送密钥分发请求;医生用户会对发送来的请求进行权限审核,判断对方是否有权限读取其所请求的医疗数据,例如对于希望进行读取操作的病人用户,需判断其所希望读取的医疗

s4c3:接收分发密钥,其中所述密钥为经所述医生用户许可后,由所述医生用户的私钥kdoc{k2}经哈希算法获得的分发密钥khash;

s4c4:区块链根据所述存储位置url获取医疗数据密文,根据khash恢复私钥kdoc{k2},对所述医疗数据密文解密;

s4c5:根据系统设置的数据项,为病人用户提供隐私设置选项,例如,病人可以选择对于姓名、身份信息、特定病种等隐私信息进行加密操作,使得第三方若需浏览该信息,则需要获得其许可;用所述病人用户的公钥kpatient{k1}对所选择的隐私数据进行加密;

s4c6:将进行隐私加密后的医疗数据提交给accountdoc的用户id对应的医生用户,由所述医生用户审核后,再次用所述医生用户的公钥kdoc{k1}对所写入的数据进行加密,形成医疗数据密文;将所述医疗数据密文存储到云服务器。

图2是本发明实施例提供的一种基于区块链技术的医疗数据共享装置的结构图,该装置包括:

注册模块,用于接收用户注册请求,

为用户分配唯一账户account,并为用户生成公私钥对,其中唯一账户account至少包括用户id,用户类型,用户权限信息,公钥为用户在医疗联盟链系统的公钥,私钥为用户的私钥;

所述唯一账户用于标识注册用户,其包括用户id、用户类型和用户权限。其中用户id为系统为每个用户生成的唯一代码。

在本申请的一些实施例中,用户根据其身份不同,其用户类型可能为医生、病人或者第三方机构,相应的,唯一账户可以标识为accountdoc<用户id,用户类型,用户权限>、accountpatient<用户id,用户类型,用户权限>和accountsub<用户id,用户类型,用户权限>,用户密钥可以标识为kdoc{k1,k2}、kpatient{k1,k2}和ksub{k1,k2}。而用户权限则包括写入、读取和隐私设置等。医生是医疗数据的生成者,其用户权限包括写入和读取,通过写入权限的验证,来保证写入医疗联盟区块链中的医疗数据来源的可靠性,而读取权限的验证,则使得医生在病情诊断中能够获得其所需医疗记录。病人是医疗数据的拥有者。医疗数据是具有高度隐私性的个人数据,而非公共数据,病人能够通过读取权限来获得自己的医疗数据。所述医疗数据根据规则包含不同的字段,所述病人可以根据规则,对所述医疗数据中的敏感信息进行加密,以对其进行隐私设置。第三方机构可能包括科研单位、药品研发机构和保险机构等。这些单位由于工作需要涉及特定对象的医疗数据,因此可以具有读取权限。

校验模块,用于接收数据操作请求,所述数据操作请求中包含唯一账户account中的用户id,以及所请求的操作内容,可以包括写入数据、读取数据和对数据进行隐私设置;根据所述操作请求,读取所述用户的唯一账户account,并与account对应的用户权限进行校验匹配,由于每个用户的唯一账户中已经包含了其所具有的用户权限,因此其只能对数据进行特定类型的操作。数据操作请求中携带了用户id,利用该信息对用户类型及其权限进行验证,以保证用户对数据的操作符合系统设置。

操作模块,用于如果通过校验,则根据所述数据操作请求进行相应操作。

根据图3,在本申请的一些实施例中,所述用户是医生,其请求对数据进行写入操作,所述操作模块还包括:

医疗数据索引信息生成模块,用于通过校验后,根据医疗数据的关键词生成索引信息,并且在所述索引信息的包头添加生成该医疗数据的医生用户的accountdoc用户id信息以及该医疗数据所属病人的accountpatient用户id信息;

医疗数据密文生成模块,用于使用所述医生用户的公钥kdoc{k1}对所写入的数据进行加密,形成医疗数据密文,将所述医疗数据密文发送到云服务器进行存储;

医疗数据索引信息存储模块,用于将所述医疗数据密文的存储位置url和上述索引信息以映射的方式存储到医疗联盟区块链中。

根据图4,在本申请的一些实施例中,所述用户是病人或第三方机构,其请求对数据进行读取操作,所述读取操作请求应包含其希望获取的医疗数据的关键词,所述操作模块还包括:

索引搜索模块:用于通过校验后,所述用户输入搜索关键词,根据所述用户唯一账户的用户id和所述关键词,获得搜索凭证,所述搜索凭证包含了所述用户希望获取的所述医疗数据密文的存储位置url以及索引信息。

密钥请求模块,用于从所述索引信息中获取医生用户accountdoc的用户id,向所述医生用户accountdoc的用户id发送密钥分发请求,所述医生用户会对发送来的请求进行权限审核,判断对方是否有权限读取其所请求的医疗数据,例如对于希望进行读取操作的病人用户,需判断其所希望读取的医疗数据是否属于其本人,若是,则会向其分发密钥;接收所分发的密钥,所述密钥为经所述医生用户许可后,由所述医生用户的私钥kdoc{k2}经哈希算法获得的分发密钥khash;

解密模块,用于区块链根据所述存储位置url获取医疗数据密文,根据khash恢复私钥kdoc{k2},对医疗数据密文解密并发送给用户,完成读取操作。

根据图5,在本申请的一些实施例中,所述用户是病人,其请求对数据进行隐私设置操作;所述操作模块还包括:

索引搜索模块,用于通过校验后,根据所述用户唯一账户的用户id和所述搜索关键词,获得搜索凭证,所述搜索凭证包含了所述用户希望获取的所述医疗数据密文的存储位置url以及索引信息。

密钥请求模块,用于从所述索引信息中获取医生用户accountdoc的用户id,向所述医生用户accountdoc的用户id发送密钥分发请求,所述医生用户会对发送来的请求进行权限审核,判断对方是否有权限读取其所请求的医疗数据,例如对于希望进行读取操作的病人用户,需判断其所希望读取的医疗数据是否属于其本人,若是,则会向其分发密钥;接收所分发的密钥,所述密钥为经所述医生用户许可后,由所述医生用户的私钥kdoc{k2}经哈希算法获得的分发密钥khash;

解密模块,用于区块链根据所述存储位置url获取医疗数据密文,根据khash恢复私钥kdoc{k2};

隐私设置模块,用于根据系统设置的数据项,为病人用户提供隐私设置选项,例如,病人可以选择对于姓名、身份信息、特定病种等隐私信息进行加密操作,使得第三方若需浏览该信息,则需要获得其许可;用所述病人用户的公钥kpatient{k1}对所选择的隐私数据进行加密。

所述病人用户对隐私数据加密后,需要将进行加密后的医疗数据提交给accountdoc的用户id对应的医生用户,由所述医生用户审核后,然后再次发送给所述医疗数据密文生成模块,用所述医生用户的公钥kdoc{k1}对所写入的数据进行加密,形成医疗数据密文,并将所述医疗数据密文存储到云服务器。

根据图6,本申请实施例提供一种基于区块链技术的医疗数据共享电子设备,所述电子设备包括:一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有可执行指令,所述可执行指令由所述一个或多个处理器加载并执行以实现本申请实施例提供的基于区块链技术的医疗数据共享方法。

本申请实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有可执行指令,所述可执行指令由处理器加载并执行以实现本申请实施例提供的基于区块链技术的医疗数据共享方法。

在一些实施例中,存储介质可以是ram、rom、prom、eprom、闪存、光盘、或cd-rom等存储器。

在一些实施例中,可执行指令可以采用程序、软件、脚本或代码的形式,可以被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。此外,所述可执行指令可以被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。


技术特征:

1.一种基于区块链技术的医疗数据共享方法,所述方法应用于医疗联盟链系统,所述方法包括:

s1:接收用户注册请求,为用户分配唯一账户account,并为用户生成公私钥对,其中唯一账户account至少包括用户id,用户类型,用户权限信息,公钥为用户在医疗联盟链系统的公钥,私钥为用户的私钥;

s2:接收数据操作请求;

s3:根据所述操作请求,读取所述用户的唯一账户account,并与account对应的用户权限进行校验匹配;

s4:通过校验后,根据所述数据操作请求进行相应操作。

2.根据权利要求1所述方法,所述用户类型包括具备资质的医生,病人和第三方机构,所述第三方机构包括科研机构、药品研发单位和保险机构。

3.根据权利要求1所述方法,所述用户权限包括写入,读取和隐私设置;其中医生账户具有写入和读取权限,病人账户具有读取和隐私设置权限,第三方机构账户具有读取权限。

4.根据权利要求1所述方法,数据操作请求中包含唯一账户account的用户id,以及所请求的操作内容,所述操作内容包括写入数据、读取数据和对数据进行隐私设置。

5.根据权利要求1所述方法,所述用户是医生,其请求对数据进行写入操作,所述方法的s4步骤还包括:

s4a1:通过校验后,根据医疗数据的关键词生成索引信息,并且在所述索引信息的包头添加生成该医疗数据的医生的用户id信息以及该医疗数据所属病人的用户id信息;

s4a2:用所述医生用户的公钥对所写入的数据进行加密,形成医疗数据密文,将所述医疗数据密文存储到云服务器;

s4a3:将所述医疗数据密文的存储位置url和上述索引信息以映射的方式存储到医疗联盟区块链中。

6.根据权利要求1所述方法,所述用户是病人或第三方机构,其请求对数据进行读取操作,所述方法的s4步骤还包括:

s4b1:通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

s4b2:获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求;

s4b3:接收分发密钥

s4b4:区块链根据所述存储位置url获取医疗数据密文,根据所述分发密钥对所述医疗数据密文解密,将解密后的所述医疗数据发送给用户。

7.根据权利要求1所述方法,所述用户是病人,其请求对数据进行隐私设置操作,所述方法的s4步骤还包括:

s4c1:通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

s4c2:获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求;

s4c3:接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥k{k2}经哈希算法获得的分发密钥khash;

s4c4:区块链根据所述存储位置url获取医疗数据密文,根据所述分发密钥对所述医疗数据密文解密;

s4c5:根据系统设置的数据项,为病人用户提供隐私设置选项,用所述病人用户的公钥k{k1}对其选择的隐私项进行加密;

s4c6:将进行隐私设置后的医疗数据返回所述医生用户,由所述医生用户再次加密后形成医疗数据密文,将所述医疗数据密文存储到云服务器。

8.一种基于区块链技术的医疗数据共享装置,所述装置应用于医疗联盟链系统,所述装置包括:

注册模块,用于接收用户注册请求,为用户分配唯一账户account,并为用户生成公私钥对,其中唯一账户account至少包括用户id,用户类型,用户权限信息,公钥为用户在医疗联盟链系统的公钥,私钥为用户的私钥;

校验模块,接收数据操作请求,根据所述操作请求,读取所述用户的唯一账户account,并与account对应的用户权限进行校验匹配;

操作模块,用于通过校验后,根据所述数据操作请求进行相应操作。

9.根据权利要求8所述装置,所述用户类型包括具备资质的医生,病人和第三方机构,所述第三方机构包括科研机构、药品研发单位和保险机构。

10.根据权利要求8所述装置,所述用户权限包括写入,读取和隐私设置;其中医生账户具有写入和读取权限,病人账户具有读取和隐私设置权限,第三方机构账户具有读取权限。

11.根据权利要求8所述装置,数据操作请求中包含唯一账户account的用户id,以及所请求的操作内容,所述操作内容包括写入数据、读取数据和对数据进行隐私设置。

12.根据权利要求8所述装置,所述用户是医生,其请求对数据进行写入操作,所述操作模块还包括:

医疗数据索引信息生成模块,用于通过校验后,根据医疗数据的关键词生成索引信息,并且在所述索引信息的包头添加生成该医疗数据的医生用户的用户id信息以及该医疗数据所属病人的用户id信息;

医疗数据密文生成模块,用于使用所述医生用户的公钥对所写入的数据进行加密,形成医疗数据密文,将所述医疗数据密文发送到云服务器进行存储;

医疗数据索引信息存储模块,用于将所述医疗数据密文的存储位置url和上述索引信息以映射的方式存储到医疗联盟区块链中。

13.根据权利要求8所述装置,所述用户是病人或第三方机构,其请求对数据进行读取操作,所述读取操作请求应包含其希望获取的医疗数据的关键词,所述操作模块还包括:

索引搜索模块:用于通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

密钥请求模块,用于获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求,接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥k{k2}经哈希算法获得的分发密钥khash;

解密模块,用于区块链根据所述存储位置url获取医疗数据密文,根据所述分发密钥对所述医疗数据密文解密,将解密后的所述医疗数据发送给用户。

14.根据权利要求8所述装置,所述用户是病人,其请求对数据进行隐私设置操作,所述操作模块还包括:

索引搜索模块,用于通过校验后,根据所述读取操作请求返回搜索凭证,所述搜索凭证包括所述读取操作对应的医疗数据密文的存储位置url以及索引信息;

密钥请求模块,用于获取所述索引信息中医生用户的用户id,向所述用户id对应的用户发送密钥分发请求,接收分发密钥,其中所述分发密钥为经所述医生用户许可后,由所述医生用户的私钥经哈希算法获得的分发密钥khash;

解密模块,用于区块链根据所述存储位置url获取医疗数据密文,根据khash恢复私钥k{k2};

隐私设置模块,用于根据系统设置的数据项,为病人用户提供隐私设置选项,用所述病人用户的公钥对其选择的隐私项进行加密。

技术总结
本发明一种基于区块链技术的医疗数据共享方法、装置、电子设备及存储介质,其中,该方法应用于医疗联盟链系统,包括:S1:接收用户注册请求,为用户分配唯一账户Account<用户ID,用户类型,用户权限>,并为用户生成密钥K{k1,k2},其中k1为用户在医疗联盟链系统的公钥,k2为用户的私钥;S2:接收数据操作请求;S3:根据所述操作请求,读取所述用户的唯一账户Account,并与Account对应的用户权限进行校验匹配;S4:通过校验后,根据所述数据操作请求进行相应操作,所述接入节点将公钥发往区块链节点,本发明通过区块链技术,使得医生是唯一能够修改医疗数据内容的用户,保证了联盟区块链上的数据真实可靠性,并且保证了共享数据的一致性;病人具有获取医疗数据和设置隐私的权限,保证了病人隐私信息的安全,避免了隐私泄露带来的种种问题;第三方机构通过联盟认证后,具有能够方便地获取可靠的医疗数据,便利性大大提高。

技术研发人员:钱京;崔可;陆道如
受保护的技术使用者:江苏恒宝智能系统技术有限公司
技术研发日:2020.01.19
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-34932.html

最新回复(0)