一种面向医疗区块链数据的可验证搜索方法技术

技术编号:32907853 阅读:8 留言:0更新日期:2022-04-07 11:58
本发明专利技术涉及一种面向医疗区块链数据的可验证搜索方法,属于信息技术领域。该方法,包括:S1:医疗机构将患者的电子医疗数据上传到区块链;S2:根据区块链中数据的特点选取非关系型数据库MongoDB存储,并根据区块链中存储的医疗数据对MongoDB设计相应的数据结构;S3:医疗区块链系统将区块中的医疗数据经过处理后存储到非关系型数据库中;S4:用户向搜索方请求搜索医疗记录,其搜索过程包括客户端缓存,数据库搜索,以及链上搜索;S5:对医疗区块链系统进行数据验证,包括数据库定期验证阶段和搜索结果验证阶段。本发明专利技术能够使用户搜索任意类型的医疗数据并提高医疗区块链数据的搜索效率,同时兼顾数据的正确性和可靠性。同时兼顾数据的正确性和可靠性。同时兼顾数据的正确性和可靠性。

【技术实现步骤摘要】
一种面向医疗区块链数据的可验证搜索方法


[0001]本专利技术属于信息
,涉及一种面向医疗区块链数据的可验证搜索方法。

技术介绍

[0002]电子病历方便了医疗机构处理和记录医疗数据。最初,医疗机构由于本地服务器具有方便管理、高效安全的优点,将其存储在各自的服务器,但这造成了数据碎片化,不利于数据共享。云服务器作为一个可靠的存储中心,它既有利于节省本地存储成本,又有利于数据共享。但是以服务器为中心的云服务会不可避免的造成单点故障,因此医疗数据的正确性和可靠性无法得到保证。
[0003]自中本聪专利技术数字加密货币比特币以来,其底层区块链技术由于其分布式、防篡改、透明性以及溯源性等特点,开始进入大众视野,它在双方不可信的情况下提供了一种可信的环境。区块链已经在多个领域应用,例如能源、金融服务、供应链以及医疗。在医疗领域,利用区块链技术的这些特性很好的解决了传统的和基于云的电子医疗数据系统存在的缺点。在医疗区块链系统中,将患者医疗数据存储到区块链之后,多数工作采用访问控制策略以及加密等技术提供系统的安全性和隐私保护。那么在此基础上,有必要考虑用户如何按照自己的意愿任意搜索特定类型的医疗数据。
[0004]在区块链系统中,由于区块链的数据记录方式是线性结构的,使用的是按顺序依次遍历进行搜索的方法,即在搜索时需要遍历一条完整的区块链。然而,随着链的逐渐增长,每次搜索消耗的时间就会越来越长。有时,在搜索整条链之后,甚至没有符合要求的数据。以Ethereum为例,由于医疗数据是通过智能合约调用相关的函数上传到区块链中的一些额外数据,这些额外数据以十六进制的形式存在交易中的“input”字段中。在搜索特定类型的医疗数据的时候,一方面,需要先按顺序依次搜索区块,然后再搜索区块里面的交易内容,最后对交易中的“input”字段进行解码才能查看相关的医疗数据,并判断是否符合自己搜索的类型,这导致了搜索效率的低下。另一方面,目前的区块链系统中,大多数都支持对块、交易以及账户余额等的查询,很少有对区块链中存入的额外数据进行特定类型的搜索。因此,设计一种能够让用户按自己的意愿快速搜索链上医疗数据的搜索机制是一项非常重要的工作。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种面向医疗区块链数据的可验证搜索方法,能够使用户搜索任意类型的医疗数据并提高医疗区块链数据的搜索效率,同时兼顾数据的正确性和可靠性。
[0006]为达到上述目的,本专利技术提供如下技术方案:
[0007]一种面向医疗区块链数据的可验证搜索方法,具体包括以下步骤:
[0008]S1:医疗机构负责将患者的电子医疗数据上传到区块链;
[0009]S2:根据区块链中海量数据的特点选取非关系型数据库MongoDB存储,并根据区块
链中存储的医疗数据对MongoDB设计相应的数据结构;
[0010]S3:医疗区块链系统将区块中的医疗数据经过处理后存储到非关系型数据库中;
[0011]S4:用户向搜索方请求搜索医疗记录,其搜索过程包括客户端缓存,数据库搜索,以及链上搜索;即首先从本地客户端缓存查找有无相关的数据,接着通过智能合约请求医疗区块链系统,进行数据库搜索以及区块链搜索。
[0012]利用数据库的高效查询以及客户端缓存来提升区块链上医疗数据的搜索速度,并支持从链上搜索未处理区块的医疗数据,从而保证搜到更加全面的医疗数据;
[0013]S5:为了保证医疗数据的完整性和可靠性,对医疗区块链系统进行数据验证,包括数据库定期验证阶段和搜索结果验证阶段。
[0014]进一步,步骤S1中,医疗数据上传到区块链的规则是:首先判断数据的敏感性,并对敏感数据进行加密;其次判断数据的大小,对占用空间大或小的数据进行对应处理;最后将处理后的医疗数据作为附加的额外数据通过智能合约上传到区块链,生成一笔不可变的交易记录,医疗数据最终以十六进制的形式存储在交易的input字段中。
[0015]进一步,步骤S1中,所述对占用空间大或小的数据进行对应处理,具体包括:把占用空间大的数据(如CT图像)存储在医疗机构的本地云中,只将占用空间比较小的数据(如CT图像)的哈希值和存储位置保存在链中;其中,哈希值是由上传到区块链中的医疗数据拼接并进行哈希得到的。
[0016]进一步,步骤S2具体包括:将区块链中的医疗数据导入数据库之后,为了后期方便验证,将每份医疗数据对应的能够定位区块交易的信息也提取到数据库中。本专利技术使用一对一内嵌文档模型,一份电子医疗数据只对应一位患者,通过内嵌文档模型将四种信息作为单个文档内嵌在主文档中;添加、删除、修改、查询只需要操作一个集合即可。这样更易于管理,消除了因关联四个集合而带来的影响性能的操作。其中,四种信息包括患者个人信息(patientInfo)、医院的信息(hospitalInfo)、患者病历信息(EMRInfo)和区块信息(blockInfo)。
[0017]进一步,步骤S3具体包括:医疗区块链系统负责对区块链进行监听维护并充当搜索方;同时对区块链每个块中每笔交易包含的医疗数据经过处理后存储到设计好的非关系型数据库中;在此阶段,为了避免某些原因需要暂停工作导致需要从头处理区块的情况,本专利技术增加了一个持久化处理。
[0018]进一步,步骤S4中,用户向搜索方请求搜索医疗记录,其搜索请求是以s={[t1,t2],W}的形式存在,其中,[t1,t2]表示要搜索医疗数据生成的时间段,可以为空;W表示要搜索的关键词集;最终,由搜索方返回搜索结果集resultSet为:
[0019]resultSet={id
k
,t
i
,{patientInfo
k
,hospitalInfo
k
,EMRInfo
k
,blockInfo
k
}}
[0020]其中,t
i
∈[t1,t2],k∈1,2,

,n表示第k份医疗数据,n表示搜索的医疗数据的数量;id
k
表示第k份医疗数据的id,patientInfo
k
表示第k份医疗数据中包含的个人信息,hospitalInfo
k
表示第k份医疗数据中患者所住医院的信息,EMRInfo
k
表示第k份医疗数据的患者病历信息,blockInfo
k
表示第k份医疗数据所在区块信息。
[0021]用户通过智能合约输入搜索请求s并请求搜索方,搜索过程分三种情形:
[0022]客户端缓存:用户每次搜索都会优先查找本地缓存有无要查询的数据;
[0023]数据库搜索:搜索方根据s中的条件通过数据库进行查询,并返回相应结果集;
[0024]链上搜索:由于链上数据入库操作过程发生故障或网络延迟等原因,区块链数据会持续更新,从而导致更新后的数据没有及时处理。搜索方会保留处理的最终区块高度H
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向医疗区块链数据的可验证搜索方法,其特征在于,该方法具体包括以下步骤:S1:医疗机构将患者的电子医疗数据上传到区块链;S2:根据区块链中数据的特点选取非关系型数据库MongoDB存储,并根据区块链中存储的医疗数据对MongoDB设计相应的数据结构;S3:医疗区块链系统将区块中的医疗数据经过处理后存储到非关系型数据库中;S4:用户向搜索方请求搜索医疗记录,其搜索过程包括客户端缓存,数据库搜索,以及链上搜索;S5:对医疗区块链系统进行数据验证,包括数据库定期验证阶段和搜索结果验证阶段。2.根据权利要求1所述的可验证搜索方法,其特征在于,步骤S1中,医疗数据上传到区块链的规则是:首先判断数据的敏感性,并对敏感数据进行加密;其次判断数据的大小,对占用空间大或小的数据进行对应处理;最后将处理后的医疗数据作为附加的额外数据通过智能合约上传到区块链,生成一笔不可变的交易记录,医疗数据最终以十六进制的形式存储在交易的input字段中。3.根据权利要求2所述的可验证搜索方法,其特征在于,步骤S1中,所述对占用空间大或小的数据进行对应处理,具体包括:把占用空间大的数据存储在医疗机构的本地云中,只将占用空间小的数据的哈希值和存储位置保存在链中;其中,哈希值是由上传到区块链中的医疗数据拼接并进行哈希得到的。4.根据权利要求1所述的可验证搜索方法,其特征在于,步骤S2具体包括:使用一对一内嵌文档模型,一份电子医疗数据只对应一位患者,通过内嵌文档模型将四种信息作为单个文档内嵌在主文档中;其中,四种信息包括患者个人信息、医院的信息、患者病历信息和区块信息。5.根据权利要求1所述的可验证搜索方法,其特征在于,步骤S3具体包括:医疗区块链系统负责对区块链进行监听维护并充当搜索方;同时对区块链每个块中每笔交易包含的医疗数据经过处理后存储到设计好的非关系型数据库中;并增加一个持久化处理。6.根据权利要求1所述的可验证搜索方法,其特征在于,步骤S4中,用户向搜索方请求搜索医疗记录,其搜索请求是以s={[t1,t2],W}的形式存在,其中,[t1,t2]表示要搜索医疗数据生成的时间段;W表示要搜索的关键词集;最终,由搜索方返回搜索结果集resultSet为:resultSet={id
k
,t
i
,{patientInfo
k
,hospitalInfo
k
,EMRInfo
k
,blockInfo
k

【专利技术属性】
技术研发人员:甘臣权杨宏鹏祝清意贾家庆李昆鸿
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1