在医疗质量监管实践中,「医保已扣重大感染费用,但院感系统未上报」是一类典型且高风险的漏报模式。这类案例往往暴露院内感染监测流程断点,既影响医院感染控制成效评估,也构成医保基金合规使用的重要审计线索。不良事件三角验证器(Adverse Event Triangulator) 正是为此场景而生,它不依赖大模型生成逻辑,不引入幻觉风险,而是通过纯规则驱动的三源数据交叉比对,精准枚举可疑漏报案例,并输出结构化、可追溯、可核查的 Ledger 式清单。
该项目面向医院信息科、院感科与医保办一线业务人员及数据工程师,提供 CLI 命令行与 Flask Web 双模式运行能力,所有处理逻辑均基于患者 ID 与时间窗口对齐,兼顾准确性与落地性。
项目核心定位与机制还原
本工具本质是一个轻量级、可审计、可复现的医疗数据一致性校验引擎。其价值不在于建模预测,而在于显式暴露系统间协同盲区。整个验证过程严格遵循四阶段闭环:
- 匹配阶段
以患者 ID 为核心键,在医保扣款、HIS 医嘱、院感上报三路数据中建立跨系统关联;支持多策略 ID 匹配(直接 patient_id、姓名+入院日期哈希、住院号) - 筛选阶段
从医保数据中识别「感染相关扣款」:依据内置关键词库(如脓毒症、败血症、菌血症、肺炎等)匹配 diagnosis_name 或 diagnosis_code 从 HIS 数据中识别「临床佐证行为」:提取 order_type 为「抗菌药物」或「抢救」的医嘱记录 - 验证阶段
当某患者在指定时间窗口(默认 72 小时)内同时满足以下条件时,标记为可疑漏报: 医保存在感染相关扣款 HIS 存在对应抗菌药物/抢救医嘱 院感系统无匹配上报记录 - 输出阶段
生成带序号、疑点等级、原始字段快照与核查建议的 Ledger 清单,支持 CSV/JSON/控制台三种格式
整个流程无状态依赖、无外部服务调用、无训练环节,全部基于 pandas 完成内存内数据操作,结果完全可复现、可回溯、可人工核验。
目录结构与模块职责
项目采用清晰分层设计,便于理解、调试与二次开发:
adverse-event-triangulator/├── data/ # 示例数据目录(含三路 CSV 样例)├── src/ # 核心源码│ ├── cli.py # Click 驱动的命令行入口│ ├── web_app.py # Flask Web 应用主模块│ ├── triangulation_engine.py # 三角验证核心逻辑(匹配+筛选+判定)│ ├── ledger_generator.py # Ledger 清单生成器(含疑点分级与字段映射)│ └── ... # 工具函数、配置加载、日志封装等├── templates/ # Jinja2 模板(首页、结果页、示例页)├── static/ # CSS/JS/图标等静态资源├── requirements.txt # Python 依赖声明(pandas>=1.5, click>=8.0, flask>=2.2)├── run.py # Web 启动脚本(封装端口、debug 等参数)└── api.py # API 模式入口(供程序化集成调用)所有模块解耦明确,triangulation_engine.py 是唯一业务逻辑核心,其余均为 I/O 适配层,利于医院信息科按需定制字段映射或扩展关键词库。
快速安装与启动
环境准备
确保已安装 Python 3.8+,执行依赖安装:
pip install -r requirements.txtCLI 模式:适合自动化、批量处理与 CI/CD 集成
完整参数示例(导出 CSV):
python -m src.cli triangulate \ --insurance data/medical_insurance_deduction.csv \ --his data/his_orders.csv \ --infection data/infection_report.csv \ --output results/suspicious_cases.csv \ --window 72 \ --format csv控制台实时输出(含统计摘要):
python -m src.cli triangulate \ --insurance data/medical_insurance_deduction.csv \ --his data/his_orders.csv \ --infection data/infection_report.csv \ --format consoleJSON 格式导出(便于下游系统解析):
python -m src.cli triangulate \ --insurance data/medical_insurance_deduction.csv \ --his data/his_orders.csv \ --infection data/infection_report.csv \ --output results/suspicious_cases.json \ --format json自定义时间窗口(单位:小时):
python -m src.cli triangulate \ --insurance data/medical_insurance_deduction.csv \ --his data/his_orders.csv \ --infection data/infection_report.csv \ --window 120 \ --format console启用详细日志(查看每一步匹配与过滤过程):
python -m src.cli triangulate \ --insurance data/medical_insurance_deduction.csv \ --his data/his_orders.csv \ --infection data/infection_report.csv \ --verbose查看数据集基础统计(无需运行验证,快速掌握数据规模与分布):
python -m src.cli stats \ --insurance data/medical_insurance_deduction.csv \ --his data/his_orders.csv \ --infection data/infection_report.csv获取帮助:
python -m src.cli --helppython -m src.cli triangulate --helpWindows 用户可直接运行示例脚本:
scripts\run_example.batWeb 模式:适合科室协作、临时核查与演示
启动服务(默认端口 5000):
python run.py指定端口与调试模式:
python run.py --port 8080 --debug访问 http://localhost:5000 后,即可:
上传三路 CSV 文件(医保扣款、HIS 医嘱、院感上报) 点击「开始三角验证」触发分析 查看结果页:含 Ledger 表格、统计摘要(总记录数、漏报数、各感染类型分布) 一键导出 CSV 或 JSON 结果
Web 页面还提供「使用示例数据」按钮,点击后自动加载 data/ 下预置样例,无需手动上传即可完成全流程体验。
数据格式要求与准备要点
三路数据必须满足以下最小字段契约,否则验证将跳过无效记录:
医保扣款数据(medical_insurance_deduction.csv)
必需字段:
patient_id admission_date diagnosis_code diagnosis_name deduction_amount timestamp
可选字段(增强匹配鲁棒性):
hospital_number patient_name discharge_date surgery_code surgery_name deduction_reason
HIS 医嘱数据(his_orders.csv)
必需字段:
patient_id admission_date order_type order_name order_time
可选字段:
hospital_number patient_name execute_time doctor department
院感上报数据(infection_report.csv)
必需字段:
patient_id admission_date infection_site report_date
可选字段:
hospital_number patient_name infection_type contagion_level handler
其他注意事项
文件编码:UTF-8 或 GBK(推荐 UTF-8) 日期格式:兼容 YYYY-MM-DD、YYYY/MM/DD、YYYY-MM-DD HH:MM:SS等常见格式患者 ID 对齐:三文件中 patient_id字段值应保持一致,作为跨系统关联主键时间窗口:默认 72 小时,可通过 --window参数调整,单位为小时感染关键词:内置词库可覆盖主流感染诊断,亦支持在代码中扩展 triangulation_engine.py中的INFECTIOUS_KEYWORDS列表
技术栈与可维护性说明
Python 3.8+:语言基座,保障长期兼容性 pandas:承担全部数据读取、清洗、合并、时间窗口计算与布尔筛选,性能稳定、API 明确 Click:构建结构清晰、参数完备、文档自生的 CLI 接口 Flask:提供轻量 Web 层,无数据库依赖,零配置启动,适合医院内网部署
项目无第三方 AI 服务依赖,无网络外呼,无敏感数据上传,所有运算均在本地完成,符合医院数据安全与等保要求。
总结:一个务实、可嵌入、可审计的医疗数据协查工具
不良事件三角验证器不是通用医疗 AI 平台,也不是抽象的数据治理框架。它是一个聚焦具体问题、交付具体结果、适配具体工作流的工具型软件。它的价值体现在:
- 问题导向明确
直指「医保扣款与院感上报不一致」这一高频监管痛点 - 逻辑透明可信
纯规则引擎,无黑箱,每条可疑案例均可反向追溯原始三源字段 - 交付形式务实
Ledger 式清单天然适配院感科台账管理习惯,CSV/JSON 支持导入 Excel 或对接 OA 系统 - 部署门槛极低
单机运行,无服务依赖,CLI/Web 双模式覆盖不同使用场景 - 二次开发友好
模块职责清晰,关键词库、时间窗口、匹配策略均可按院内规范调整
对于正在推进院感监测数字化、医保合规精细化、质控数据一体化的医疗机构,它是一把开箱即用的「数据协查小锤子」,不大,但准;不炫,但实。
项目地址:https://github.com/nexorin9/adverse-event-triangulator国内仓库:https://gitee.com/nexorin9/adverse-event-triangulator欢迎交流使用问题或提出医院现场适配需求。
夜雨聆风