基于区块链和机器学习的医疗系统CluniacChain
1. 引言
当前,大量电子病历(EMRs)的处理依赖于健康信息系统(HISs)。这些系统是集中式的,提供诸如患者调度、入院/出院/转诊日志和计费信息等多种功能。然而,这种集中式基础设施的主要缺点是缺乏透明度、数据泄露风险增加以及修复成本较高。而且,HIS通常只处理单个医院的电子病历,患者来自多家医院和医生的累积报告不在EMR范围内,而电子健康记录(EHR)能提供患者健康的整体、长期视图,是更好的选择。
区块链原本是存储信息的数据库,随着加密货币的出现,它变得非常流行,是任何加密货币或去中心化系统的核心。本文提出了一种联盟区块链来支持透明的电子健康记录,并增强疾病预测系统。该架构利用智能合约原理,在保持匿名性的同时确保透明度。其主要亮点包括将多家医院组织成医院集群(HCs),根据七个参数聚合医院,这些参数为专科、位置、阈值评级、平均治疗成本、容量、死亡率和康复率。这些医院集群形成一个共享联盟区块链的去中心化网络,并且每个医院集群都有一个与之匹配的聊天机器人与用户界面相结合。该架构的主要目标如下:
- 基于规则的患者信息收集。
- 透明且清晰的电子健康记录维护。
- 在账本上安全存储适当的信息。
2. 聊天机器人与系统增强
在电子商务和医疗服务领域,通过实时聊天界面与客户沟通已成为提供实时客户服务的流行方式,客户可以通过聊天服务获取信息、寻求帮助或咨询预约。添加聊天机器人来收集用户输入可以进一步增强系统。
聊天机器人的功能基于至少四种不同的结构:
- 自然语言处理:理解用户需求。
- 知识管理:处理相关细节并提供答案。
- 深度学习:帮助聊天机器人在每次交互中改进响应。
- 情感分析:检测用户的沮丧情绪并将其转接给人工。
用户在聊天机器人的输入部分输入症状,聊天机器人从给定文本中找到关键词,并使用状态跟踪系统更新对话状态。用户提供完所有输入后,聊天机器人将结果转换为自然语言并以用户能理解的形式输出。
3. 现有区块链医疗系统及相关研究
区块链的应用涵盖药品追溯、数据共享、临床试验和设备跟踪等领域。但医疗数据通过第三方、保险公司和医疗服务提供商传递时,面临着很高的风险,因此医疗数据交换是一个问题。只有当系统考虑到隐私时,数据共享和互操作性才能协同工作。
目前,将预测系统与区块链技术相结合的应用有限,区块链技术在医疗领域的应用存在诸多障碍,其中一个突出的障碍是人们对改变现有做法并转向区块链的固有抵触情绪。一些服务致力于构建全球电子健康记录系统,还有一些举措将人工智能/机器学习结合起来改善医疗服务,也有系统通过发行智能卡将EHR数据与基于区块链的身份关联起来,或者以去中心化的方式管理数据的权限和授权。
在区块链安全和挑战方面,有研究通过多签名技术确保安全交易,也可以使用加密算法(如AES)来增强数据安全性。此外,将聊天机器人与医疗系统结合可以提升应用效果,医疗系统还可以采用聚类技术对医院进行分组,其中并行K - Mean算法比简单K - Mean算法更高效。
4. 疾病预测
聊天机器人以自然语言形式获取用户输入,患者描述自身感受,机器学习模型利用这些自然语言描述来预测疾病。疾病会映射到一个专科,这是推荐医院集群时考虑的参数之一。用于此目的的数据集来自UCI机器学习库的药物评论数据集,模型在27453个数据实例和七个属性上进行训练,其中我们关注的三个属性为:
- UniqueId:每个数据实例的唯一ID。
- Condition:诊断出的疾病。
- Review:患者用自然语言描述的病情。
机器学习模型使用谷歌开发的基于NLP的先进模型BERT算法,在测试集上的准确率为80.37%。在预处理时,会从用户输入中去除停用词,只向模型提供关键词,同时也会去除连词和介词等不必要的词。
患者也可以手动选择想去的科室。此外,用户还需输入自己的位置,这是为患者推荐医院集群的核心参数之一,其他额外输入包括期望的最低医院评级和预算。疾病预测完成后,患者会被分配到相应的专科,然后系统进行集群分配和医院选择。
5. 推荐系统
推荐系统是CluniacChain的关键组件之一,它使用聚类算法将医院分类为多个集群,可根据以下参数进行选择:
|序号|参数|描述|
| ---- | ---- | ---- |
|1|专科|医院的专科领域|
|2|位置|医院的经纬度/地理跟踪|
|3|阈值评级|患者反馈|
|4|平均治疗成本|任何程序的中位治疗成本|
|5|容量|座位可用性|
|6|死亡率|医院的死亡人数|
|7|康复率|平均存活出院率|
不同聚类算法的时间复杂度如下表所示:
|算法|复杂度|
| ---- | ---- |
|K Means|O(n^2)|
|Mean Shift|O(n^2)|
|Agglomerative Clustering|O(n^3)|
|Affinity Propagation|O (n^2 * T),T = 迭代次数|
通过在二维数据上测试不同算法的区分能力,以及在具有不同数据点数量的基准数据集上测试算法的可扩展性,最终选择K - Means聚类作为推荐系统的理想聚类算法。
K - Means算法在医院聚类中的步骤如下:
1. 选择k个集群。
2. 从医院数据集中随机选择k个质心。
3. 计算每家医院到每个质心的欧几里得距离d:
[d = \sqrt{(s_1 - s_2)^2 + (l_1 - l_2)^2 + (t_1 - t_2)^2 + (a_1 - a_2)^2 + (c_1 - c_2)^2 + (f_1 - f_2)^2 + (r_1 - r_2)^2}]
其中,下标(1)表示质心的值,下标(2)表示要聚类的医院的数据点属性值,s为专科(分类变量),l为位置,t为阈值评级,a为平均治疗成本,c为容量,f为死亡率,r为康复率。
4. 根据计算出的最小距离d,将医院分组到k个集合中。
5. 计算每个集群中每个属性的平均值。
6. 更新质心的属性值为分配到该集群的医院的平均值。
7. 重复步骤3和6,直到质心不再更新。
8. 得到最终的集群。
如果有新医院加入CluniacChain系统,它将使用上述K - Means算法被分类到具有相似属性的医院集群中。当聚类医院数量与未聚类医院数量的比例严重偏离预设阈值时,系统会重新对医院进行聚类。对于新患者,CluniacChain的推荐系统通过计算查询与每个质心的欧几里得距离进行集群分配,分配后会向患者展示所选集群中距离最近的医院列表。
6. 区块链规格
系统使用的是联盟区块链(也称为联合区块链),医院集群作为联合实体负责将数据推送到区块链上。患者需要提供同意医院访问其医疗记录的许可。电子健康记录保存在集群数据库中,并创建指向医疗记录的指针,仅将这些指针作为医院与患者之间的智能合约推送到区块链网络,这样可以避免因医疗记录数据量大而导致区块链网络效率低下。
集群数据库中的数据以加密形式存储,加密基于属性颁发者颁发的属性进行。患者对数据进行加密和签名后,将其存入集群数据库。应用程序的数据库使用Firebase管理,这是一个NoSQL云托管数据库,可根据需求进行扩展,它为应用程序提供了无缝集成的CRUD API。患者记录在推送到Firebase之前会使用AES算法进行加密,加密和解密数据的密钥是Firebase提供的用户文档密钥。
由于系统是联盟区块链,所以使用的共识算法是权益证明(PoS)。为了验证一个区块,会根据医院集群的年龄因素选择另一个医院集群,年龄越大,被选中的机会越大。完成验证任务后,该医院集群的年龄会重置为零以避免饥饿。向区块链推送欺诈交易的医院在推荐系统中会被给予低优先级,系统会为每个医院设置一个计数器,当欺诈交易次数超过阈值时,该医院将被从系统中移除。
以下是PoW和PoS在共识、最终性、延迟、吞吐量和可扩展性方面的比较:
|参数|PoW|PoS联盟|
| ---- | ---- | ---- |
|共识|无监督权限|需要监督权限|
|最终性|无法保证|可以保证|
|延迟|6个区块时间|网络延迟|
|吞吐量|每秒交易数少|每秒交易数多|
|可扩展性|大量矿工|少量验证者|
7. 权限属性密钥的颁发
在流行的加密哈希函数(如SHA - 1、BLAKE2、SHA - 3和MD5)中,BLAKE2是理想的选择,原因如下:
- 适用于分布式系统,能快速计算大量安全哈希数据。
- 在单核CPU上也非常高效。
- 目前是唯一没有遭受过成功攻击的哈希函数。
为确保只有患者授权的实体才能访问其数据,需要对数据进行加密和签名。生成属性密钥的相关步骤如下:
设患者的私钥为K1,公钥为K2,密钥颁发者为KI(在本系统中为医院集群),集群根据授予的权限生成不同的密钥(读/写/更新/删除),秘密密钥为Skey,属性密钥集为AKS,患者的电子健康记录为EHR,对密文应用哈希算法BLAKE2b后生成的最终签名为ζ。
生成密文的过程如下:
- (T = AES (Skey, EHR))
- 若用户有多个由密钥颁发者KI颁发的属性密钥,密文表示为:(U = {ABE (AKS_1, Skey), ABE (AKS_2, Skey) …, ABE (AKS_n, Skey)})
其中,(AKS_1)可能是用户读权限的秘密密钥,(AKS_2)是写权限的秘密密钥,依此类推。
对密文进行哈希处理:(V = blake2b (T, U))
最后,使用ED25519生成签名:(\zeta = Sign (K1, V))
生成签名后,密文T、U和签名ζ就可以上传到数据库。如果医生想访问患者的EHR,需要下载密文和签名ζ。若签名ζ有效,且医生拥有加密时使用的所需属性作为属性密钥,就可以解密U以获得Skey,进而解密T中的EHR。
通过比较不同加密和哈希算法组合生成密钥和签名所需的时间,发现AES与Blake2b的组合对于CluniacChain是理想的选择。集群权限表存储签名ζ、属性密钥U以及包括患者ID、医院ID和为每个患者颁发的密钥的权限列表。
8. 系统操作
患者的电子病历与额外信息结合形成电子健康记录,对EHR进行加密存储可确保数据安全,数字签名可确保EHR的完整性。加密和签名是一个多阶段的过程,医院集群作为属性颁发机构,负责为患者颁发秘密密钥。用户授权医院具有特定的权限(如读、写、更新和删除),医院集群根据允许的属性颁发相应的属性密钥,这四种操作会同步到区块链上。
-
记录读取和添加(读和写)
- 患者的秘密密钥对EHR进行加密。
- 患者对加密文本进行签名以确保数据完整性。
- 使用医院和患者之间商定的属性密钥集,同时对患者的秘密密钥进行加密。
- 用户将加密的EHR上传到服务器。
- 服务器将加密数据的信息作为智能合约发送到区块链。
- 验证后,将新块添加到区块链。
- 将加密数据存储在数据库中,患者收到信息添加通知。
如果另一家医院想读取加密数据,患者需要通过医院集群授予其读权限,创建用于信息检索的智能合约,验证并添加交易块后,医院可以使用读属性密钥获取解密EHR的秘密密钥。
-
记录更新(更新)
- 患者需要更新属性密钥。
- 患者上传修改后的EHR到服务器。
- 像记录读取和写入操作一样,使用患者的秘密密钥对EHR进行加密并签名。
- 服务器将加密EHR的信息作为智能合约发送到区块链。
- 验证后,将新块添加到区块链。
- 通过取消链接和重新链接,用新EHR替换旧EHR。
- 删除旧EHR并在数据库中添加新EHR,患者收到信息更新通知。
-
记录删除(删除)
- 患者需要删除属性密钥。
- 患者和医院之间授权删除EHR。
- 患者确认删除操作。
- 服务器将EHR删除信息作为智能合约发送到区块链。
- 验证后,将新块添加到区块链。
- 取消链接并从数据库中删除EHR,患者收到信息删除通知。
9. 系统实现
新用户要使用CluniacChain提供的服务,需先注册,注册后提交血型、出生日期、电子邮件ID、姓名和地址等信息,并映射到一个生成的唯一ID。假设用户通过输入头痛、恶心和畏光等症状来识别所患疾病,CluniacChain推荐系统会预测为偏头痛并开出布洛芬处方。如果用户对药物满意,其医疗记录将通过记录读取和添加操作存储在CluniacChain中;否则,用户可以预约医生。
预约时,系统使用用户注册时的地址,搜索附近的医院集群并根据患者需求分配医院。例如,用户被分配到医院集群A中的神经科医院进一步诊断偏头痛,预约请求发送到预约队列,由医院管理员处理。预约确认后,医生会开药,患者的EHR通过记录更新操作进行更新。
10. 结论
该系统结合区块链技术存储医疗记录,利用基于属性的加密方法对用户的EHR进行签名,确保只有授权人员可以使用指定的属性密钥检索EHR,保证了EHR的安全性,防止未经授权的访问。
用户可以输入位置,根据评级和预算筛选医院,系统会匹配最佳的医院集群,用户可以从列表中选择喜欢的医院。医院访问EHR需要得到用户通过共享属性密钥的授权。如果用户不想去医院,可以使用聊天机器人描述症状,系统会使用BERT算法根据输入给出可能的疾病,并推荐专科医生。若用户不满意,可以预约最近的专科医生。
系统中的惩罚机制确保权限不被滥用,当医院的违规分数超过预设阈值时,将被禁止使用该系统。此外,系统使用全局集群连接器来跟踪不同的集群。通过区块链实现的数据安全是该系统的主要优势,数据得到保护,降低了数据泄露的可能性。
基于区块链和机器学习的医疗系统CluniacChain
11. 系统优势总结
- 数据安全可靠 :采用区块链技术,结合基于属性的加密方法和数字签名,确保电子健康记录(EHR)的安全性和完整性。数据以加密形式存储在集群数据库中,只有拥有相应属性密钥的授权人员才能访问,有效防止数据泄露和篡改。
- 透明度与隐私保护兼顾 :利用智能合约原理,在保证系统透明度的同时,维护患者的匿名性。患者可以自主控制医院对其医疗记录的访问权限,实现了隐私保护与数据共享的平衡。
- 高效的疾病预测与推荐 :通过机器学习模型(如BERT算法)和聚类算法(K - Means),实现了准确的疾病预测和个性化的医院推荐。能够根据患者的症状、位置、预算等多方面因素,快速匹配到最合适的医院和专科医生。
- 实时交互与服务提升 :引入聊天机器人,实现了与患者的实时交互,提升了用户体验和服务效率。患者可以通过聊天机器人方便地获取信息、咨询问题和预约医生。
12. 系统架构可视化
为了更清晰地展示CluniacChain系统的工作流程,下面给出一个mermaid格式的流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([用户注册]):::startend --> B(提交个人信息):::process
B --> C{输入症状}:::decision
C -->|是| D(疾病预测):::process
D --> E{对预测结果满意?}:::decision
E -->|是| F(存储医疗记录):::process
E -->|否| G(预约医生):::process
C -->|否| H(手动选择科室):::process
H --> G
G --> I(搜索附近医院集群):::process
I --> J(分配医院):::process
J --> K(发送预约请求):::process
K --> L(医院管理员处理):::process
L --> M{预约确认?}:::decision
M -->|是| N(医生开药):::process
N --> O(更新EHR):::process
M -->|否| P(重新选择医院):::process
P --> I
这个流程图展示了用户从注册到使用系统进行疾病预测、预约医生和更新电子健康记录的整个过程,清晰地呈现了系统各模块之间的交互关系。
13. 系统性能分析
-
聚类算法性能
:在推荐系统中,对不同的聚类算法进行了时间复杂度和可扩展性的比较。K - Means算法在时间复杂度和聚类效果上表现出色,适用于大规模医院数据的聚类。以下是不同聚类算法的时间复杂度对比表格:
|算法|复杂度|
| ---- | ---- |
|K Means|O(n^2)|
|Mean Shift|O(n^2)|
|Agglomerative Clustering|O(n^3)|
|Affinity Propagation|O (n^2 * T),T = 迭代次数|
通过在不同规模的数据集上进行测试,K - Means算法在处理大量数据时具有明显的优势,能够快速准确地将医院分类到不同的集群中。
-
共识算法性能
:系统采用权益证明(PoS)共识算法,与工作量证明(PoW)算法相比,具有更高的效率和更低的资源消耗。以下是PoW和PoS在不同性能指标上的对比表格:
|参数|PoW|PoS联盟|
| ---- | ---- | ---- |
|共识|无监督权限|需要监督权限|
|最终性|无法保证|可以保证|
|延迟|6个区块时间|网络延迟|
|吞吐量|每秒交易数少|每秒交易数多|
|可扩展性|大量矿工|少量验证者|
PoS算法避免了PoW算法中大量的计算资源浪费,更适合联盟区块链的应用场景,能够确保系统的快速响应和高效运行。
14. 未来发展方向
- 集成更多医疗数据来源 :目前系统主要依赖于医院的电子健康记录和患者提供的症状信息。未来可以考虑集成更多的医疗数据来源,如可穿戴设备的数据、基因检测数据等,以提供更全面的健康评估和个性化的医疗服务。
- 加强人工智能技术应用 :进一步提升机器学习和深度学习模型的性能,如引入更先进的自然语言处理技术和图像识别技术,实现更精准的疾病诊断和治疗建议。同时,可以利用人工智能技术进行医疗数据的挖掘和分析,为医疗决策提供更有力的支持。
- 拓展系统应用范围 :除了疾病预测和医院推荐,系统可以拓展到更多的医疗领域,如远程医疗、健康管理、药物研发等。通过与其他医疗系统和机构的合作,实现更广泛的数据共享和协同工作,推动医疗行业的数字化转型。
- 优化用户体验 :不断改进聊天机器人的功能和交互方式,提高用户与系统的沟通效率和满意度。同时,优化系统的界面设计和操作流程,使普通用户能够更方便地使用系统的各项服务。
15. 总结
CluniacChain系统是一个创新的基于区块链和机器学习的医疗系统,它结合了区块链的安全性和去中心化特性,以及机器学习的智能分析能力,为医疗行业带来了新的解决方案。通过实现高效的疾病预测、个性化的医院推荐和安全可靠的数据存储,该系统有望改善患者的就医体验,提高医疗服务的质量和效率。
在未来的发展中,随着技术的不断进步和应用场景的不断拓展,CluniacChain系统有望在医疗领域发挥更大的作用,为人们的健康保障做出更大的贡献。同时,我们也期待更多的研究者和开发者能够关注和参与到这个领域,共同推动医疗技术的创新和发展。
超级会员免费看

被折叠的 条评论
为什么被折叠?



