这是一篇开放获取的文章,根据创作共用署名许可协议(https://creativecommons.org/licenses/by/4.0/)发布,该协议允许在任何媒体上不受限制地使用、分发和复制,前提是要正确引用最初发表在《医学互联网研究杂志》上的原始作品。必须包括完整的书目信息,//www.mybigtv.com/上的原始出版物链接,以及版权和许可信息。
对于许多新兴的医疗保健应用程序来说,跨多个医疗保健设施的数据协调变得越来越重要。不信任被认为是这类应用成功的一个关键障碍。利用区块链技术可以提供潜在的解决方案,通过利用区块链的安全性、不可变性、匿名性、去中心化和智能合约等属性,在数据提供者和接收者之间建立信任。许多卫生技术已经通过经验证明,区块链设计很好地符合卫生保健应用的需求,并取得了一定程度的成功。然而,缺乏健壮的体系结构来为开发人员提供一个实用的框架,以实现应用程序并使用标准区块链设计测试稳定性、效率和可伸缩性的性能。卫生保健界需要一个通用的区块链模型来采用区块链技术并及时开发应用程序。
本研究旨在构建一个通用的区块链体系结构,为广泛的医疗保健应用程序开发提供数据协调功能,包括数据请求、许可授予、数据交换和使用跟踪。
在私有区块链网络上建立了一个增强的3层区块链架构。这三层从下到上分别是:(1)将区块链基础设置和智能合约设计整合到数据采集中;(2)使用Node.js和web3.js实现区块链与医疗应用开发环境的交互;(3)一个灵活的开发平台,支持web技术,如HTML、https和各种编程语言。在我们的设计中开发了两个示例应用程序,健康信息交换(HIE)和临床试验招募,以证明分层架构的可行性。通过案例研究来测试区块链系统的稳定性、效率和可伸缩性方面的性能。
通过这个分层区块链体系结构,总共成功验证了来自40,000名患者账户的331,142个模拟HIE请求,平均交换时间为11.271 (SD 2.208)秒。我们还模拟了一个临床试验招募场景,使用相同的患者集和不同的招募标准来匹配使用相同架构的潜在受试者。潜在受试者以平均3.07秒的时间成功接收到临床试验招募信息,并允许试验主办方访问其健康记录。
本研究提出了一个通用的分层区块链体系结构,为应用程序开发提供了卫生技术社区区块链功能,而不需要开发人员具有丰富的区块链技术经验。案例研究测试了我们设计的性能,并实证证明了该架构在2个相关的健康应用领域的可行性。
医疗保健业从各种来源获得丰富的健康数据[
面对数据协调的挑战,区块链被认为是一种颠覆性技术,适合许多医疗保健应用程序的需求[
由于去中心化交易验证的特征——确保数据来源、数据共享、数据集成和智能合约的灵活性——非常适合许多医疗保健应用程序的需求,因此已经有许多努力将区块链应用于医疗保健领域,如HIE、药品供应链和临床试验管理[
这是对以前区块链应用程序设计的扩展研究和对新的通用分层体系结构的探索,如图所示
与传统的区块链体系结构相比,本研究提出了一个适用于广泛的医疗保健应用的跨站点数据协调的广义区块链系统。分层体系结构提供了一个区块链平台,该平台具有预定义的数据收集功能,开发人员可以在没有区块链丰富经验的情况下实现医疗保健应用程序。我们在方法部分解释了区块链环境设置和新的分层体系结构,然后在结果部分介绍了案例研究和模拟结果,以演示用于医疗保健应用程序开发的体系结构的可行性、可伸缩性和兼容性。
区块链整体分层架构。事务层由2个智能合约组成,用于管理数据访问任务。接口层与区块链环境、图形用户界面和其他区块链适配器交互。应用层为医疗保健应用程序开发提供了一个灵活的平台。该图显示了使用该体系结构的数据请求的一般流程。电子健康记录。
区块链网络在管理数字资产方面具有优势[
由于区块链是一个完全分布式的系统,我们在区块链私有网络的顶部建立了3层:
从一个卫生设施到另一个卫生设施的数据请求触发智能合约的某些功能
为了建立区块链系统,每个医疗机构需要提供至少一个区块链节点,这是一个可以安装区块链系统的电子设备。在我们的设置中,每个节点在Ubuntu Linux服务器上运行以太坊协议的官方Go实现。为了将区块链与电子病历系统连接起来,我们开发了区块链适配器,这是一个区块链节点,旨在遵守个别医疗机构制定的本地数据访问政策[
为确保医疗保健资料的安全及配合现时电子病历运作的需要,我们的区块链系统并没有储存病人资料。这主要有两个原因。首先,由于医疗保健设施共享健康信息的政策和区块链存储限制,在区块链中存储大量医疗保健数据是不现实的[
每个区块链用户,包括区块链适配器,由由区块链生成的公钥派生的哈希值(帐户地址)表示[
我们分层架构的基础是一个私有的以太坊区块链,它涉及一个不可变的数据块链,由提交的账本和多个区块链节点组成,同步维护相同的数据块链。在整个体系结构中,这一层确保了数据的不可变性、去中心化共识、数据透明性和可跟踪性。私有区块链从一个具有特殊设置的起始节点启动,以使区块链独一无二。在构建私有区块链时,智能合约通过开始节点部署。所有来自医疗保健设施的参与节点必须获得起始节点的权限才能加入系统。此程序将禁止未经授权的用户加入系统。当参与节点加入到系统中时,区块链将自动为它们的区块链适配器生成帐户。所有其他用户,如患者和卫生保健提供者,都需要通过卫生保健机构选择加入该系统。一旦申请人的身份得到证实,将为每个保健设施的用户生成区块链帐户。
私人区块链存储(1)患者和批准、撤销和拒绝访问其电子病历数据的医疗保健设施的所有交易;(2)对患者和医疗保健提供者进行认证,以检索电子病历数据;(3)医疗保健设施存储患者就诊的元数据。事务将通过区块链适配器将接收方、发送方、包含的数据和时间戳记录到块中。用户还可以通过区块链节点在后端区块链控制台进行交易。这些交易仍然需要通过智能合约法规才能生效。的图形用户界面(gui)与大多数用户进行交互
的
的
定义元数据结构的电子健康记录管理器智能合约代码的主要部分。区块链适配器必须提取信息并计算加密密钥,然后将它们存储到智能合约中。该记录将自动与适配器的区块链ID相关联。
从EHR数据集中提取患者ID。
从中查找与患者关联的公钥
生成一个随机
使用数据密钥加密电子病历数据集,并将加密后的数据存储到
使用患者的公钥对数据密钥进行加密。将加密的数据密钥称为“密钥密码”。
向区块链提交以下元数据:
患者ID。
作为URL的加密数据集位置。
关键的密码。
关联的区块链适配器ID。
区块链适配器将使用Node.js按照Diffie-Hellman协议生成公钥和私钥对。数据加密和解密设置确保只由生成数据的医疗保健设施解密属于患者的数据。密钥密码使数据密钥更加安全,只有在知道数据所有者的情况下才能计算数据密钥。
通过区块链检索患者元数据的示例。信息由基于web的Remix集成开发环境解码,该环境连接到检索区块链节点。患者的元数据包含数据位置、密钥密码、数据集ID、数据集描述和创建时间。
本节将描述一个场景,以展示医疗保健提供者X检索患者A的EHR的过程。通过带有生物特征认证的移动应用程序或web浏览器,患者a可以通过应用程序接口(API)向医疗保健提供者X授予访问权限,以设置数据权限
验证医疗保健提供者X访问患者A记录的许可
检索病人A的元数据
通过区块链适配器提供的https服务从远程医疗保健设施请求加密的EHR数据集。
使用EHR元数据中的加密数据集位置信息检索加密数据。
解密EHR数据集。该步骤涉及使用患者的私钥解密密钥密码,以获得解密EHR数据集的数据密钥。
类似的流程将用于卫生保健机构之间的数据共享和患者检索自己的电子病历记录。整个过程将通过区块链适配器自动执行。
的
我们将区块链适配器实现为node .js应用程序,并使用web3.js包与区块链节点和https.js包进行接口,以实现https安全web服务。web3.js也可以作为web3.py在Python库中使用。基于http的web服务主要用于区块链适配器之间的通信。区块链适配器是作为软件嵌入的,它将自动安装缺少的组件,如node.js和web3.js。
区块链适配器组件和函数。区块链适配器从电子健康记录中提取元数据,对电子健康记录进行加密,将加密的电子健康记录存储到安全的数据存储中,并将患者ID和数据ID映射到区块链帐户。区块链适配器使用https与其他适配器交互,并通过区块链接口与基础私有区块链网络通信。API:应用程序接口;电子健康记录。
从安全性和可靠性的角度来看,区块链适配器严格遵循以下设计指导原则:
区块链适配器被建模为一个非人类区块链用户,当建立区块链帐户或地址时,它有自己的私钥和公钥对。方法将公钥公之于众
https服务使用单独的密钥和证书文件。
数据集加密采用Diffie-Hellman密钥协议。
当一个区块链适配器故障时,与关联组织的事务(数据集交换)将被中断,但所有其他组织之间的事务不会受到影响。
与上述
为了测试分层体系结构的可行性,我们构建了一个区块链环境,其中包含1个起始节点和4个医疗保健设施节点。所有节点都安装了Ubuntu 18.04.2操作系统和默认PoW设置的Go以太坊。每个节点都安装了一个区块链适配器,以与区块链和它自己的安全数据存储通信,这是使用MongoDB实现的。我们为来自监测、流行病学和最终结果数据库的患者记录的每个卫生保健设施节点创建了100个卫生保健提供者帐户,并为10000个患者帐户[
在设置好环境之后,我们实现了两个应用程序来与区块链系统交互。应用程序是链下构建的,但可以使用node.js与区块链系统通信。这两个应用程序是可能使用分层区块链体系结构的示例。我们测试了系统的准确性、可伸缩性和速度。我们做了以下假设来模拟这两个过程:(1)每个临床站点向系统提供了至少一个节点,(2)每个临床站点同意将区块链适配器连接到安全的数据存储,以及(3)患者已授权区块链系统和两个应用程序访问他们的健康记录。
此应用程序为用户提供一个接口,以管理对个人医疗保健记录的访问
模拟只包含与区块链相互作用的周期。检索数据是通过https门户进行的链下处理,并且根据不同的医疗保健设施而有所不同。从我们的模拟结果来看,当规模达到每秒14个事务(TPS)时,系统在某一点上崩溃。我们模拟了331,142个访问授权事务。由于达到以太坊的可伸缩性限制,除了最后一秒的14个事务外,所有的事务都成功检索了记录。将事务写入块的平均时间为11.271 (SD 2.208)秒。我们没有发现TPS和验证时间之间的相关性。所有卫生保健提供者平均在1.73秒内收到元数据。
在本研究中,通过区块链适配器测试了区块链使用从1到14 TPS的各种事务频率的可伸缩性。
每秒1到13个事务组的模拟结果的箱形图。这些方框显示了与每秒不同事务规模相关的时间成本的不同分位数。
为了证明我们分层区块链系统的兼容性,我们实施了另一个应用,作为临床试验的受试者招募。该应用程序涉及发布标准、授予权限和数据交换。要使用该应用程序,每个临床试验主办方需要提供至少一个区块链节点,并安装区块链适配器。所有想要参与临床研究的患者都需要选择加入申请,这样他们才能收到招募标准。此申请涉及以下程序:
临床研究招聘者将向入选的患者发送招募标准
接受标准的患者可以检查是否匹配。如果他们对临床研究感兴趣,他们可以验证临床研究招聘人员以访问他们的EHR。
区块链将通知招聘者是否有任何患者授予访问其数据的权限。然后,他们将检索患者数据进行精确匹配。
如果匹配成功,招聘人员将通知患者,并发送进一步的指示。
我们实现了一个GUI来演示这个应用程序的用法。患者需要选择此申请来接收当前临床试验招募信息。我们随机选择了4个赞助商,使用他们的区块链适配器通过区块链发布他们的招聘标准
患者的图形用户界面,允许临床试验发起人访问他们的数据。图形用户界面显示了患者的区块链地址、选择加入状态、当前招募试验的基本招募标准和许可选项。当患者选择招募试验并单击提交时,发起人将通过区块链适配器添加到USER管理器智能合约中的访问列表中。
本文描述了一个正在开发的增强的分层区块链系统,用于大多数医疗保健应用程序,涉及跨多个医疗保健设施的数据协调。这种分层体系结构的设计为应用程序开发人员提供了通用函数和方法,以安全地从不同来源收集数据,而不需要区块链技术的丰富经验。分层体系结构允许用户审计以前发生的事务的合法性,但阻止用户修改区块链中的任何组件。区块链的特性为当前的数据协调挑战提供了解决方案。基于区块链的方法将EHR数据集的所有权扩展到每个患者。该方法基于点对点交易的区块链技术去中心化的特点,可以大大减少医疗保健数据集的签署和发布。区块链和智能合约规范的数据交换的不可变性也保证了数据的安全性和真实性。
通过我们的仿真过程,我们的系统实证证明了该体系结构在医疗保健应用中的可行性。我们还测试了区块链系统的可伸缩性,并提供了一个避免区块链可伸缩性限制的最佳解决方案。我们未来的工作将继续评估验证机制,以提高区块链的性能,并在
我们的方法的主要限制是来自每个参与站点的设置要求。每个卫生保健设施必须向系统提供至少一个区块链节点,并在注册患者的操作EHR之外保留一个加密的EHR,以存入可与区块链适配器通信的安全数据存储中。患者可能还需要提供移动设备等区块链节点,以交换和存储其个人医疗设备生成的个人健康记录。模型的性能会受到区块链节点的属性的影响。如果单个节点通过区块链适配器同时创建大量事务,该操作将耗尽所有内存,并在节点被发送到区块链之前中断该节点。
人工智能
应用程序接口
电子健康记录
图形用户界面
卫生信息交流
台湾科技部
工作证明
每秒事务数
本研究部分由密苏里大学信息学和数据科学研究计划(YZ和CS)、台湾科技部(MOST)支持,资助号为MOST 108-2634-F-468-001和MOST 108-2511-H-468 -002,由普及人工智能研究实验室(YC和ZS)提供。
没有宣布。