[开源] 抗菌药物监测网上报数据自动导出器:面向药学部与信息科的国家监测网格式对齐工具,支持DDD计算、送检率统计与HTML自查报告生成
本项目是专为麻醉科、手术室及医院质控部门设计的转运交接信息完整性分析系统。它不依赖人工抽查,而是通过对接手麻系统末段监护数据、PACU入室护理评估单、HIS计费节点这三类真实业务数据源,自动识别全身麻醉患者从手术室转入PACU过程中的6类信息断点,包括趋势断崖、节点缺失、时间倒置、数据延迟、数据矛盾、评估缺失。系统以SPC EWMA(指数加权移动平均)量化监护趋势异常程度,用统一时间轴对齐多源时间戳,并输出0–100分的交接信息完整度评分、结构化整改清单和HTML可视化看板。交付形态为命令行工具(CLI)+ 独立HTML文件,技术栈采用Python实现核心引擎,TypeScript/Node.js构建交互层,全程无需数据库或服务器部署,开箱即用。
定位与能力范围
我们不做通用医疗数据平台,也不覆盖术前准备或术后随访全链路。本系统聚焦一个明确切口:全身麻醉患者从手术室转入PACU这一关键交接环节的信息断点。这个环节在《三级公立医院绩效考核操作手册》《围术期护理质量评价标准》中被反复强调,但长期缺乏可量化的客观抓手。传统方式靠人工翻查纸质单或零散系统截图,效率低、难复盘、无法横向比对。而本系统把“交接是否完整”转化成可计算、可排序、可归因的问题:
- 是否存在监护数据突变(如出室5分钟内SpO₂下降超15%)?
- PACU入室评估单是否漏填呼吸频率、意识状态等必选项?
- HIS计费节点是否晚于实际入室时间20分钟以上?
- 手麻系统记录的出室时间是否早于PACU系统记录的入室时间?
所有判断均基于三源数据交叉验证,而非单点采信。边界清晰:只处理已落地的结构化数据(非自由文本),不介入临床决策,不修改原始系统,仅生成分析结果与整改建议。
核心功能模块
系统能力由五层引擎协同完成,每层职责分明,全部封装为可调用、可审计的逻辑单元:
|
模块 |
职责 |
关键机制 |
|---|---|---|
| 三源数据适配层 |
统一读取并解析手麻末段监护数据、PACU入室评估单、HIS计费节点 |
支持CSV/JSON格式,字段映射规则内置在 |
| 时间对齐引擎 |
将三源时间戳投射至同一时间轴,识别延迟、缺失、倒置 |
以手术结束时间为锚点,向前向后扩展±30分钟窗口,自动校准时区与毫秒精度 |
| SPC EWMA引擎 |
检测监护参数(血压、心率、SpO₂等)的趋势断崖 |
权重α=0.3,对近3次测量值加权,偏离阈值超2.5σ即触发告警 |
| 断点检测规则引擎 |
执行6类断点判定,每类含可配置阈值与扣分权重 |
如“时间倒置”默认容忍±5秒误差,超限即判为critical,扣20–30分 |
| 评分与清单生成器 |
计算每位患者的完整度总分,生成带优先级的整改条目 |
总分=100−各类型扣分之和;整改清单按严重程度(critical > high > medium)和频次双排序 |
所有引擎输出均沉淀为标准JSON结构(detect_result.json),确保下游报告与可视化模块可无损消费。
使用与配置流程
整套流程共四步,全部通过命令行驱动,无图形界面依赖,适合嵌入现有质控工作流:
# 1. 生成模拟数据(首次运行或测试时使用)
python -m src.cli generate -d ./data -n 100
# 2. 执行断点检测(核心分析步骤)
cd cli
node dist/index.js detect -d ../data -o ../detect_result.json
# 3. 生成统计报告(控制台摘要+JSON汇总)
node dist/index.js report -i ../detect_result.json -o ../report.json
# 4. 生成HTML可视化(单文件,浏览器直接打开)
node dist/index.js visualize -i ../detect_result.json -o ../html/visualization.html
其中关键参数可按需调整:
- detect 命令支持 -v 查看逐患者分析日志,定位具体哪一行数据触发了“趋势断崖”;
- report 命令输出含评分分布直方图(如“60–80分区间占45%”),便于快速把握整体水位;
- visualize 生成的页面包含科室雷达图,可直观对比麻醉科、骨科、妇科等不同手术科室的交接质量差异。
所有输出文件语义清晰:detect_result.json 是原始分析结果,report.json 是聚合统计,visualization.html 是交互式看板,三者互为支撑,不重复、不遗漏。
工程结构与技术选型
我们坚持“核心稳、接口轻、交付简”原则:
- Python承担所有计算密集型任务:SPC EWMA需实时滑动窗口计算,时间对齐涉及大量时间序列插值,pandas + numpy组合成熟可靠;
- TypeScript负责人机交互层:CLI命令行工具用commander构建,支持子命令自动补全;HTML看板用D3.js渲染,不依赖任何CDN或后端服务,所有图表数据内联在HTML中;
- 零外部依赖部署:visualization.html 是纯静态文件,双击即可在Chrome/Firefox中打开,适合质控会议现场投屏;
- 目录即契约:src/core/下每个Python模块对应一类引擎,cli/src/下每个TS文件对应一个子命令,html/仅存放最终产物,结构即文档。
这种分层不是为炫技,而是让一线质控员能看懂、信得过、改得动,比如护士长发现某类“评估缺失”误报率高,可直接修改src/core/rules.py中对应规则的字段校验逻辑,无需碰前端代码。
环境与运行要求
本地运行仅需两套环境,安装简单、版本锁定明确:
Python环境(推荐3.9+)
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或 venv\Scripts\activate # Windows
pip install -r requirements.txt
|
依赖包 |
版本要求 |
作用说明 |
|---|---|---|
|
numpy |
≥1.21 |
监护数据向量化计算基础 |
|
scipy |
≥1.7 |
EWMA权重迭代与统计检验 |
|
pandas |
≥1.3 |
三源数据清洗、合并、时间对齐 |
|
faker |
≥13.0 |
生成符合国内医院命名规范的模拟患者数据 |
|
click |
≥8.0 |
Python CLI参数解析框架 |
Node.js环境(推荐18.x)
cd cli
npm install
npm run build
|
依赖包 |
版本要求 |
作用说明 |
|---|---|---|
|
typescript |
^5.0 |
编译CLI与可视化逻辑 |
|
commander |
^11.0 |
构建 |
|
d3 |
^7.8 |
渲染直方图、雷达图、饼图、时间线四类图表 |
两套环境完全解耦,Python部分可单独用于批量分析,Node.js部分可单独用于结果展示。
数据输入与输出规范
系统不强制要求数据来自特定厂商系统,只要满足字段语义即可接入。输入数据需为CSV或JSON,字段名可映射(映射表见项目文档):
|
数据源 |
必需字段示例 |
说明 |
|---|---|---|
|
手麻末段监护数据 |
patient_id
, |
time
需为ISO格式,支持毫秒级精度 |
|
PACU入室评估单 |
patient_id
, |
consciousness
需为预定义枚举(清醒/嗜睡/昏睡等) |
|
HIS计费节点 |
patient_id
, |
charge_item
需含“PACU监护费”“麻醉恢复费”等关键词 |
输出严格遵循单一职责:
- detect_result.json:每位患者的断点详情、扣分明细、原始数据快照;
- report.json:科室平均分、断点类型TOP5、高风险患者名单;
- visualization.html:所有图表数据内联,无外部请求,离线可用。
所有字段含义、取值范围、示例值均在项目文档中逐条说明,不设隐藏约定。
适用角色与典型场景
本系统直接服务于四类角色,每类都有明确交付价值:
- 麻醉科/PACU护士长:每日晨会用visualization.html查看本科室评分雷达图,快速定位“评估缺失”高发时段;
- 手术室转运组长:导出detect_result.json,筛选has_critical=true患者,回溯交接录像核查原因;
- 医院质控办人员:用report.json生成季度对比报表,向院领导呈现“时间倒置类断点同比下降12%”;
- 信息科工程师:监控detect命令执行耗时与失败率,及时发现手麻系统接口超时问题。
它不替代人工判断,而是把模糊的“感觉交接不顺畅”变成清晰的“P003患者存在时间倒置(手麻出室时间比PACU入室时间晚8分钟)”,让整改有据可依、闭环可溯。
项目地址:
https://github.com/nexorin9/pacu-handoff-breakpoint-detector
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)