《基于 Spark 的平替药品智能推荐方法》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍

文章目录

    • 写在前面的话
    • 发明目的
    • 具体方案
    • 技术补充
    • 总结陈词

CSDN.gif

写在前面的话

本篇文章将介绍,基于 Kafka + Spark + Redis 等技术,在药品开单的过程中,实现一种智能推荐平替药品的方案。

标题:


发明目的

本专利发明的目的是基于 Kafka + Spark + Redis 等技术,在药品开单的过程中,实现一种智能推荐平替药品的方案。
该方案可以实现海量药品的平替药品推荐值管理,同时可以不断自动校准相关推荐值,进而优化医院的药品管理,更好的服务于医护和患者。

具体方案

本专利是基于 Kafka + Spark + Redis 实现平替药品智能推荐功能,具体技术方案实现如下。

一、前置环境准备
1、部署 Kafka 环境,程序引入 Kafka 相关依赖,并进行相关配置与功能集成,定义“危急值发送”和“危急值反馈”事件,同时配置事件的消息入参格式与XSD校验文本,这两个事件将作为 Kafka 的两个主题 Topic,其中,Kafka 用于充当消息中间件,负责提供生产者和消费者的协作模式;
2、部署 Redis 环境,程序引入 Redis 相关依赖,并进行相关配置与功能集成,Redis 定义若干存储结构,将作为目标药品、平替药品、推荐值等内容的存储,并利用 Sorted Sets 结构,进行统计分析;
3、部署 Spark 环境,程序引入 Spark 相关依赖,并进行相关配置与功能集成,Spark 充当呈上启下的衔接角色,一方面用于消费 Kafka 投递的主题消息,另一方面,通过相关 API,将数据运算后,输出存储到 Redis 当中;
4、药品基础数据准备,根据院内药品字典,维护药品平替关系库,并设置平替初始推荐值;

二、核心服务实现
1、提供对外的消息生产者接口
开发消息中心生产者接口,并对外部系统开放,该接口可以用于“药品扣库存”和“平替药品推荐”这两个场景。
主要逻辑是,针对消息入参进行合理性校验、解析和处理,再通过调用 Kafka API 进行消息发送,利用生产者单例去完成消息发送。

2、利用 Spark 消费 Kafka
利用 Spark 相关的API,添加 Kafka 作为数据来源,并订阅“药品扣库存”和“平替药品推荐”这两个 Topic。
针对拉取到的消息,添加消息消费处理的代码块。

3、利用 Spark 加工流数据
Spark 通过加工引擎从Kafka中消费出数据流,在 Spark Streaming 流式计算引擎中,通过编写不同规则的脚本,对实时的数据链路进行计算,得到药品各项指标数据,保证并发的效率,又可保证数据的准确性,这样才能可以使我们系统保持稳定的进行数据的批处理。
核心内容是从 Redis 提取出目标药品的关联数据和历史数据,同时根据医生的推荐状态进行相应的推荐值运算,最终再更新回Redis中,该流程不影响药品主流程的运行。
根据医生的推荐结果,具体方案包含但不限于如下:
3.1、医生从平替药品列表中,选择某药品A进行平替,说明智能推荐是有效的,程序将加大药品A的推荐指数,并更新目标药品的 Redis 相应存储信息;
3.2、医生拒绝从平替药品列表中使用任何药品平替,继续沿用原来的目标药品,则该目标药品的还没有办法用该药品平替,程序将降低平替药品的推荐指数,并更新目标药品的 Redis 相应存储信息;
3.3、医生新增了额外的平替药品A作为替换,则目标药品的平替药品列表将新增药品A,同时设置初始值和增加推荐指数,并更新目标药品的 Redis 相应存储信息;

三、与用户门户的交互实现
1、药品开单的时候,开单界面再显示平替药品推荐列表,上面会显示药品名称、药品库存、药品推荐指数等关键信息;
2、医生若选择某项平替药品,后端推荐服务将被触发,向Kafka投递相应Topic信息,传递目标药品信息、平替药品信息、以及其他患者本次就诊相关信息等参数;
3、推荐服务消费到Kafka消息后,将从Redis 提取出相关历史数据,根据推荐状态进行运算:

四、推荐值核对扩展模块
1、增加平替药品推荐值定时服务,定期遍历提取出药品相关平替信息,进行推荐值排列更新以及平替药品的关联结构,原则上非实时的大运算都放在定时服务执行;
2、通过实时推荐和定时推荐服务的运作,将产生所有目标药品的完整推荐值清单,提供前端平替药品盘点页面,让药房管理人员,进行人工盘点审核,去除不合理的选项,进一步增加平替药品推荐库的可靠性;

技术补充

1、基于 Kafka + Spark 组合实现,利用了大数据流式引擎技术的优势,针对关联平替药品的推荐值运算,实现高可靠、高效实时、高扩展性的数据加工,最终实现平替药品清单的智能推荐;
2、将消息中心事件驱动机制应用于平替药品推荐值运算场景,从海量的诊疗事件中,为药品推荐相关的关键节点建立消息事件,通过动态订阅的方式为事件指定订阅服务,流程清晰可插拔。

{"全局配置": {"单次推荐缺省添加值" : 5,"单次不推荐缺省扣除值" : 5,"同医生重复推荐模式" : "allow","同医生重复推荐增加值" : 1,"推荐同步计算模式" : "high","推荐药品展示模式" : "common",...
},"药品A的配置": {"药品A的平替药品清单": [{...}],.... /*配置包含全局配置,优先级覆盖全局配置*/
},
}

总结陈词

💗 后续会逐步分享企业实际开发中的实战经验,有需要交流的可以联系博主。

CSDN_END.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/407144.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型物流运输无人机技术详解

随着科技的不断进步和电子商务的蓬勃发展,大型物流运输无人机作为未来物流体系的重要组成部分,正逐步从概念走向实际应用。这类无人机以其超大的载重能力、高效的运输效率和广泛的覆盖范围,为解决远距离、大批量货物运输难题提供了创新方案。…

电机知识汇总

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言1、电机发展史2、电机入门①、书籍②、视频③、开发文档④、博客 3、什么是步进电机4、基本结构和工作原理4、负载…

深入探讨量子计算领域在发展过程中所遇到的难题及其解决方案。

一、引言 量子计算作为未来科技的重要方向,其潜力巨大,但同时也面临着诸多技术挑战。这些挑战不仅制约了量子计算的进一步发展,也考验着科学家和工程师们的智慧和毅力。本文将探讨量子计算面临的主要技术挑战,并分析其可能的解决…

【前缀和算法】--- 一维和二维前缀和模板

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Journey 本文开始,博主开始讲解有关前缀和的算法,本篇博客我们先来了解一下有关前缀和的两个模板。 🏠 一维前缀和模板 &…

【YashanDB知识库】共享集群YAC换IP

【标题】共享集群YAC换IP 【需求分类】安装部署,配置变更 【关键字】安装部署,更换IP,运维,配置变更,高可用,YAC 【需求描述】客户需要将已经部署的YAC集群更换IP,从测试网段切换生产网段 【…

【通信协议】I2C总线(一主多从)

目录 I2C简介 硬件电路 软件模拟初始化 基本单元 起始信号 停止信号 发送一个字节 接收一个字节 发送应答 接收应答 I2C基本单元代码 MyI2C.h MyI2C.c 完整数据帧 主机发送数据到指定从机 主机接收从机数据 主机发送后接收数据 学习资料分享 本博客使用软件模…

ARM工作模式

ARM ARM架构ARM七个工作模式寄存器异常向量表存储格式(内存大小端)汇编指令 ARM架构 RAM:随机访问存储器 ROM:只读访问存储器 AHB:先进高速总线 APB:先进外设总线 USB:统一串行总线 norflash&am…

Mac电脑遇到DNS解析失败,ip可以访问,域名无法访问

当Mac电脑遇到DNS解析失败的问题时,可以尝试以下几个解决方法‌: 1.检查网络连接‌:确保Mac已连接到可用的网络,并且网络连接正常。可以尝试重新连接Wi-Fi或使用有线连接来排除网络问题。 2.清除DNS缓存‌:打开终端应…

《通义千问AI落地—中》:前端实现

一、前言 本文源自微博客且已获授权,请尊重版权. 书接上文,上文中,我们介绍了通义千问AI落地的后端接口。那么,接下来我们将继续介绍前端如何调用接口以及最后的效果;首先看效果: 上述就是落地到本微博客以后的页面效果…

Java常用的网络IO模型与限流算法总结

什么是IO(Input/Output)? IO(输入/输出)指的是计算机系统中数据的输入和输出操作。它涉及从外部设备(如硬盘、网络、键盘、鼠标)读取数据(输入)和将数据发送到这些设备(输出)。IO操…

WPF如何获取DataGrid的选中行

在DataGrid中加入这一行 <MouseBindingCommand"{Binding OpenWindowCommand}"CommandParameter"{Binding ElementNameNewPlanDataGrid, PathSelectedItem}"Gesture"LeftDoubleClick" /> </DataGrid.InputBindings> 然后ViewModel中…

[每周一更]-(第111期):从零开始:如何在 CentOS 上源码编译安装 PHP 7.4

文章目录 系统信息&#xff1a;0、安装版本&#xff1a;1、下载/解压2、安装依赖3、配置autoconf4、配置参数5、编译和安装6、验证安装的插件6.1、配置php.ini6.2、配置opcache 7、错误7.1 Failed to connect to 2a03:2880:f10e:83:face:b00c:0:25de: Network is unreachable7.…

2024年最新Flink教程,从基础到就业,大家一起学习--Flink运行架构底层源码详解+实战

本文涉及到大量的底层原理知识&#xff0c;包括运行机制图解都非常详细&#xff0c;还有一些实战案例&#xff0c;所以导致本篇文章会比较长&#xff0c;内容比较多&#xff0c;由于内容太多&#xff0c;很多目录可能展示不出来&#xff0c;需要去细心的查看&#xff0c;非常适…

VS项目写完执行exe隐藏调试用的黑窗口(控制台)

在vs创建完项目&#xff0c;我们只希望运行显示界面&#xff0c;不显示控制台&#xff0c;控制台就是这样的黑色窗口&#xff0c;他可以在我们调试的时候打印一些东西来判断辅助编程。 1、首先修改为窗口模式 2、在你的main文件里最上面加入一行代码&#xff1a; #pragma comme…

【hot100篇-python刷题记录】【滑动窗口最大值】

R6-子串篇 目录 Max Sort 单调队列法&#xff1a; Max 完了&#xff0c;我好像想到python的max class Solution:def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:ret[]left,right0,kwhile right<len(nums):ret.append(max(nums[left:right]))ri…

信刻光盘摆渡系统安全合规实现跨网数据单向导入/导出

在当今信息化、数字化时代&#xff0c;各种数据传输和储存技术发展迅速&#xff0c;各安全领域行业对跨网数据交互需求日益迫切&#xff0c;数据传输的安全可靠性对于整个过程的重要性不可忽视。应如何解决网络安全与效率之间的矛盾&#xff0c;如何安全合规地实现跨网数据单向…

分支电路导体的尺寸确定和保护

本文旨在确定为分支电路负载供电的导体的尺寸和保护。 支路额定电流 NEC 第 210 条规定了分支电路导体尺寸和过流保护的一般要求。 允许额定电流或过流保护装置的设置确定了分支电路额定值 (210.18)。电路的安培额定值取决于保护导体的断路器或保险丝的额定值&#xff0c;而…

江协科技STM32学习- P5 GPIO输出

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

车载T-Box通信稳定性弱网测试方案

作者介绍 T-Box&#xff08;Telematics Box&#xff0c;车载终端&#xff09;是一种安装在汽车上的控制器&#xff0c;用于实现车辆的远程监控、数据采集、通信和控制等功能。T-Box是连接汽车与外部世界的关键节点之一&#xff0c;在汽车网联中扮演着重要的角色。通过T-Box&…

二分图总结

二分图总结 前言二分图总结二分图基本概念什么是二分图&#xff1f;二分图图的性质染色法判断是否有奇环 二分图匹配算法匹配概念匈牙利算法二分图最小点覆盖2&#xff0c;3号边1&#xff0c;4号边小结 二分图最小边覆盖二分图最小路径覆盖二分图最大独立集 前言 这篇文章是作者…