当前位置: 首页 > news >正文

[开源] 院感手卫生数字孪生仿真系统:面向感控科的干预效果事前推演工具

本项目是专为医院感染管理科感控科设计的决策支持系统基于 SIQR易感-感染-隔离-康复传染病动力学模型将手卫生依从性、科室人员流动与院内感染率三者建模为可计算、可干预、可对比的动态关系。我们不提供事后归因报告也不做静态台账统计而是构建一个可交互的数字沙盘感控科人员在 Web 仪表盘中调整「手卫生依从率提升幅度」系统实时运行 Monte Carlo 仿真输出未来 3090 天的院感率变化曲线、不同干预强度下的投入产出比如每提升 5% 依从率对应院感下降百分点把资源分配从“凭经验拍板”转向“看仿真下注”。它同时支持 CLI 命令行快速复现科室场景、批量对比多科室响应差异并内置 ICU/外科/内科三类默认配置和 WHO 指南映射规则。技术栈以 Python 科学计算NumPy/SciPy为核心仿真引擎Dash 构建 Web 可视化层TypeScript 封装跨平台 CLI 工具所有参数、科室配置、结果导出均结构化为 YAML 与 JSON便于审计、复用与对接院内数据中台。定位与能力范围我们明确聚焦于感控科日常最常面对的一类问题“如果我把手卫生培训预算增加 20%或者给护士加配酒精速干手消毒剂三个月后 ICU 的院感率能降多少”这不是流行病学研究软件不拟合历史暴发数据也不替代院感监测上报系统它的边界非常清晰只回答「干预措施 → 手卫生行为改变 → 感染传播链扰动 → 院感率变化」这一条因果链的量化推演。因此它不处理耐药菌基因分型、不接入 HIS 实时床位数据、不生成 PDCA 整改报告但能把 WHO《医疗机构手卫生指南》中“依从率每提升 10%接触传播风险降低约 15%”这类定性结论转化为可拖拽调节、可叠加误差带、可横向比对的动态曲线。适用对象严格限定为具备基础流行病学理解能力的感控专职人员而非一线护士或信息科工程师界面里出现的 β感染率、σ隔离率、δ隔离折减率等参数均在仪表盘中以「影响强度滑块」形式封装原始符号仅保留在说明文档供溯源。核心机制SIQR 模型与手卫生映射SIQR 是 SIR 模型的临床适配扩展关键在于引入 QQuarantined隔离隔室更贴合院内感染中“发现疑似→单间隔离→采样送检→确诊转科”的实际处置节奏。四个状态人群随时间连续演化由一组耦合微分方程驱动dS/dt -β * S * I / N dI/dt β * S * I / N - γ * I - σ * I dQ/dt σ * I - δ * γ * Q dR/dt γ * I δ * γ * Q其中手卫生干预不直接修改 I 或 Q 的数量而是通过降低接触传播效率线性调减 β 值。例如当前 ICU 基准 β0.45若设定「手卫生依从率提升 25%」系统依据 WHO 文献映射为 β 下调 22.5%即新 β0.35再重跑全周期仿真。这种映射非固定比例而是查表式data/siqr_params.yaml中预置了不同科室类型ICU/外科/内科对应的基准 β 区间与敏感度系数确保外科换药场景与 ICU 插管操作的手卫生价值不被等同折算。隔室临床对应人群是否受手卫生直接影响S易感未感染医护人员、陪护家属、其他患者是减少接触传播入口I感染已确诊院内感染患者否已发病手卫生不阻断其体内复制Q隔离已隔离的疑似/确诊患者是降低隔离病房内交叉风险R康复康复并获短期免疫者否不参与传播链该设计保证所有干预效果最终收敛于「降低有效接触率」这一临床共识避免模型黑箱化。使用方式Web 仪表盘与双 CLI 路径系统提供三种使用入口按场景刚性匹配日常策略推演用 Web 仪表盘。启动后访问http://127.0.0.1:8050选择科室ICU/外科/内科、拖动「手卫生依从率提升」滑块0%50%、设定仿真天数30/60/90点击运行即时生成带 95% 置信区间的院感率曲线图并自动计算「每提升 1% 依从率对应的院感下降中位数」。图表支持导出 PNG 与交互式 HTML。批量方案比选用 Python CLI。适用于感控科向院领导汇报多个预算档位效果时python -m src.cli.main scenario --department ICU --intervention 10,20,30,40输出四组仿真结果 JSON自动对比峰值院感率降幅与达峰时间差结论直指“投入临界点”。跨科室资源倾斜决策用 TypeScript CLINode.js 环境。适合已有自动化脚本流程的单位node dist/index.js simulate --department surgery --intervention 25 --days 60输出结构化 JSON字段含baseline_infection_rate,intervened_infection_rate,delta_rate,monte_carlo_std可直接喂入 BI 工具做科室热力图。数据与配置体系所有业务逻辑依赖两套 YAML 配置文件全部开源可审data/default_config.yaml定义科室人口基数、日均流动频次、基础手卫生设施覆盖率。例如 ICU 配置含staff_count: 32,patient_count: 12,handwashing_stations_per_bed: 1.2外科则强调procedure_count_per_day: 8.5。data/siqr_params.yaml固化模型参数基线与手卫生映射规则。关键字段包括字段说明示例值ICUbeta_baseline未干预时感染率0.45beta_sensitivity依从率每提升 1%β 下调百分比0.9gamma_range恢复率蒙特卡洛抽样区间[0.08, 0.15]sigma_fixed隔离率视为管理刚性参数0.08示例数据存于data/examples/含icu_example.json等四份真实仿真输出字段与 CLI 输出完全一致可作测试基准或培训素材。工程结构与模块职责代码组织严格按能力域切分无交叉污染目录职责关键文件src/siqr/核心数学逻辑siqr_model.pyODE 求解、intervention.pyWHO 映射、monte_carlo.py1000 次随机抽样src/dash/Web 层交互app.py服务启动、callbacks.py滑块联动逻辑、figures.pyPlotly 图表工厂src/cli/Python 命令行入口main.pyCommander.js 风格子命令路由data/静态配置与示例default_config.yaml,siqr_params.yaml,examples/所有模块通过Pandas DataFrame传递中间数据确保仿真结果可追溯、可序列化、可验证。测试套件tests/覆盖 ODE 数值解稳定性、参数边界检查、CLI 输入解析三类核心路径。环境与运行要求无需 GPU 或高性能服务器普通办公电脑即可运行Python 环境3.9依赖见requirements.txt核心为numpy1.21,scipy1.7,dash2.10Node.js 环境16.14用于构建 TypeScript CLInpm run build编译至dist/内存占用单次 Monte Carlo 仿真1000 次峰值约 450MB90 天仿真耗时 12 秒i5-1135G7安装仅两步pip install -r requirements.txt npm install npm run buildWeb 启动路径固定为src/dash/app.pyCLI 主入口统一为python -m src.cli.main无隐藏配置或环境变量依赖。限制与说明我们坦诚说明当前能力边界- 不支持自定义新增隔室如加入“潜伏期 E”模型结构锁定为 SIQR 四隔室- 手卫生映射仅覆盖 WHO 指南明确的接触传播路径飞沫/空气传播需另行建模- Monte Carlo 误差带反映参数不确定性不包含人为执行偏差如护士漏登记隔离时间- Web 仪表盘默认单机运行未内置用户权限、审计日志或 SSO 集成所有参数取值范围、文献依据、映射算法细节均在项目文档中逐条列出不设黑盒接口。感控科可随时比对siqr_params.yaml中的beta_sensitivity与 WHO 原文第 4.2.3 节描述是否一致这是本项目可被信任的基础。项目地址https://github.com/nexorin9/infection-digital-twin-simulator
http://www.zskr.cn/news/1353069.html

相关文章:

  • 深圳连续模五金冲压件
  • 生成模型选型实战指南:Diffusion、GAN、VAE如何按需选用
  • Unity Live2D模型提取实战:AssetBundle二进制解析与资源还原
  • 国产DSP FT-M6678中断开发避坑指南:从CIC配置到向量表编写的完整流程
  • 如何识别并拒绝AI领域虚假技术信息
  • Stacking模型集成实战:Python中防泄漏的K折交叉验证实现
  • Unity层级窗口可视化增强:Hierarchy Decorator原理与实战
  • GPT-4V算卡路里准不准?我们拿它和薄荷健康、MyFitnessPal做了次硬核对比评测
  • 手把手教你用232串口连接欧姆龙G9SP安全PLC与NB触摸屏(含接线图与配置避坑)
  • Keil MDK自定义Flash算法开发与调试技巧
  • 告别手动移植!用Simulink PSP工具箱给Pixhawk飞控写算法,保姆级配置流程(附避坑点)
  • 告别图形界面:用C语言命令行工具测试CY7C68013A的USB批量传输(Bulk Loop)
  • sqli-labs第14关:双引号闭合下的POST报错注入实战解析
  • 量子计算与化学模拟:混合架构实践与优化
  • 避坑指南:在Quartus II里搞定矩阵键盘与数码管,这些细节决定成败(附代码)
  • 信贷风控客户分层模型:LightGBM可解释性实战指南
  • 从传感器到轨迹:手把手教你用ZED 2和VINS-Fusion在Ubuntu 18.04上搭建完整的视觉惯性里程计系统
  • 银河麒麟SSH MaxStartups参数调优实战指南
  • kswapd0高CPU真相:Linux内存回收机制与挖矿误判分析
  • Linux驱动开发:proc接口原理、实现与调试实战
  • 告别SDK Manager卡顿:用命令行flash.sh为Jetson TX2刷入JetPack 4.6.4系统镜像
  • 3D-DIC与三维激光扫描在桥梁修复评估中的实战应用
  • 告别环境配置焦虑:保姆级教程带你搞定博流BL616 RISC-V开发环境(Windows/Linux双平台)
  • 钡特电源 VF3-12S03P 与金升阳 WRF1203P-2WR3 同属工业高可靠:封装引脚与可靠性对比
  • Python机器学习实战演进:从模型准确率到业务可干预性
  • STM32G4项目实战:巧用MCP2518FD实现多路CAN FD通信,附完整工程源码解析
  • HAMBURGER数据混合策略:提升多领域模型性能的关键
  • 告别梯形图!用SCL给西门子S7-300写个冒泡排序,效率提升看得见
  • MCGS组态软件连接Modbus TCP设备?别急,先搞懂网关的这5种工作模式怎么选
  • AXI总线安全访问机制与寄存器布局实践