[开源] 输液泵与HIS给药记录交叉核验系统:面向临床质控和医保对账的自动化比对工具

本项目是专为医院护理部、信息科与医保办设计的输液给药闭环校验系统,解决「输液泵真实推注行为」与「HIS系统给药记账记录」之间长期存在的时序错位、漏记、多记、剂量偏差等隐性差异问题。我们不做单向校验,而是以患者ID为锚点,在时间轴上双向对齐泵事件波形数据与HIS医嘱执行记录,支持15分钟(可调)时间窗容差匹配,并严格区分四类差异:A类(泵有HIS无)、B类(HIS有泵无)、C类(剂量不一致)、D类(时间差超限)。输出形态覆盖CLI文本/JSON、HTML交互报告、甘特图时间线可视化,并可选集成本地LLM生成差异说明文草稿,所有内容均供人工核查使用,不替代临床判断,不参与定责定性。核心引擎用Python实现,CLI提供Python与TypeScript双版本,前端页面纯静态部署,技术栈轻量可控,无服务端依赖。
定位与能力范围
我们聚焦一个具体而高频的临床管理断点:当护士在床旁操作输液泵完成推注,系统是否真的完成了HIS记账?反过来,HIS显示已执行的医嘱,泵是否确实完成了输注?这不是理论问题,而是每日ICU、急诊、肿瘤科都在发生的实操落差。本系统不试图重建整个临床信息系统,也不接入实时数据库,而是以「离线JSON文件」为唯一输入接口,接受两类结构化数据:输液泵导出的事件日志(含开始/暂停/结束时间、剂量、速率、泵ID、患者ID),以及HIS导出的给药执行记录(含医嘱ID、药品名、剂量、执行时间、患者ID、床号)。所有比对逻辑基于时间窗对齐与字段映射展开,不依赖任何中间库或中间表,不修改原始数据,不产生新业务单据。它的交付物不是“告警”,而是可追溯、可筛选、可导出的差异台账,以及辅助人工撰写说明的措辞建议。
核心功能模块
系统能力分层清晰,每一层都对应一线人员的真实动作流:
|
模块层级 |
功能组件 |
对应角色与用途 |
|---|---|---|
|
数据适配器层 |
PumpAdapter
/ |
护理信息员或信息科工程师:将不同品牌泵导出的JSON、不同HIS厂商导出的Excel转JSON后的格式,统一映射到内部标准模型(如 |
|
时间对齐引擎 |
TimeAlignmentEngine |
质控专员:按患者ID分组后,以HIS执行时间为基准,向前向后扩展时间窗(默认15分钟),查找该窗口内是否存在匹配的泵事件;支持自定义容差,适应不同科室节奏(如ICU可设10分钟,普通病房设20分钟) |
|
差异检测规则 |
DiffDetectionRules |
医保办核查员:对已对齐的配对记录逐项比对,C类差异触发剂量阈值判断(默认±10ml),D类触发时间差绝对值判断,A/B类则直接标记未配对项;每类差异自动打标严重级别(critical/warning/info),便于优先处理 |
|
输出生成层 |
HtmlReportGen
/ |
护士长与质控科:HTML报告含可筛选台账表格(按类型、患者、床号、药品)、甘特图时间线(蓝/橙/绿三色条直观展示泵运行、暂停、HIS执行状态,红线标差异点);LLM模块在Ollama本地运行,生成中性、非归因的说明草稿(如“该时段泵有完整推注曲线,但HIS未见对应记账操作”),明确标注“需人工核实” |
使用与配置方式
系统提供三种即用入口,无需部署服务器,开箱即可跑通全流程:
- Python CLI(主力推荐)
:适合信息科批量处理、夜间定时任务、与现有ETL流程集成
- TypeScript CLI
:适合前端工程师快速验证、嵌入Web自动化脚本
- HTML可视化页面
:适合护士长现场演示、医保办临时抽查、科室晨会复盘
所有CLI均支持相同参数体系,关键参数含义如下:
|
参数 |
说明 |
示例值 |
是否必填 |
|---|---|---|---|
--pump-data |
输液泵事件JSON路径 |
data/samples/pump_events.json |
是 |
--his-data |
HIS给药记录JSON路径 |
data/samples/his_records.json |
是 |
--time-window |
时间对齐容差(分钟) |
30 |
否(默认15) |
--dose-threshold |
剂量差异判定阈值(ml) |
5 |
否(默认10) |
--output-html |
生成带甘特图的HTML报告 |
output/report.html |
否 |
--include-llm-descriptions |
启用本地LLM生成说明文 |
(无值,开关式) |
否 |
运行示例(Python CLI):
python -m src.cli \
--pump-data data/samples/pump_events.json \
--his-data data/samples/his_records.json \
--time-window 20 \
--dose-threshold 3 \
--output-html output/icu_audit_20240315.html
HTML页面使用更简单:打开web/index.html → 点击「加载数据」→ 分别选择泵与HIS的JSON文件 → 自动渲染台账与甘特图 → 可按类型筛选(如只看A类)、导出CSV用于进一步分析。
LLM辅助说明的设计边界
我们明确把LLM定位为“措辞协作者”,而非“判断代理”。它不接触患者隐私字段(如身份证号、手机号),仅读取已脱敏的patient_id、bed_no、drug_name、dose_ml、start_time等公开字段;生成的每一段说明文都带固定前缀:“【LLM说明文草稿】本段内容由本地大模型根据输入数据生成,仅供参考,请务必结合临床实际与系统日志人工核实。”若Ollama服务未启动,系统自动回退至预设模板句式(如“A类差异:泵有记录但HIS无记账”),确保流程不中断。目前支持Ollama生态下的llama3.2、qwen2.5等中文轻量模型,不依赖联网API,符合医院内网安全要求。
工程结构与扩展性
整个项目按职责分层组织,目录即文档:
infusion-pump-verifier/
├── src/ # Python核心(可独立pip install)
│ ├── data_adapters/ # 适配器可插拔:未来加新泵型号,只需新增pump_xxx_adapter.py
│ ├── engines/ # 引擎可替换:时间对齐算法、差异规则均可单独升级
│ ├── output/ # 报告格式可扩展:后续可加PDF、Excel导出模块
│ └── cli.py # CLI统一入口,参数解析与调度中枢
├── cli/ # TypeScript CLI(npm管理,与Python解耦)
├── web/ # 静态前端(零构建,浏览器直跑)
├── data/samples/ # 开箱即用样本数据,含真实字段结构示意
└── requirements.txt # 明确Python依赖(无AI框架硬依赖,LLM为可选)
这种结构让医院信息科能按需选用:若只需夜间批处理,只装Python环境;若需嵌入现有Web运维平台,可复用web/下全部JS逻辑;若要对接新HIS,只需在data_adapters/下新增适配器,不触碰核心引擎。
环境与运行准备
本地运行仅需两套基础环境,无GPU、无K8s、无Docker:
- Python环境(≥3.9)
:虚拟环境隔离,依赖明确(
requests,pydantic,jinja2,plotly等共12个包) - Node.js环境(≥18)
:仅TypeScript CLI需要,
cli/目录下独立管理
安装步骤极简:
cd infusion-pump-verifier
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cd infusion-pump-verifier/cli
npm install
LLM为可选增强模块,仅需额外三步: 1. 安装Ollama(官网下载或brew install ollama) 2. 拉取模型:ollama pull qwen2.53. 启动服务:ollama serve
全程无网络外连,所有数据停留本地,符合医疗数据不出域要求。
限制与说明
我们坦诚说明当前能力边界,避免误用:
-
不支持实时流式接入:所有输入均为静态JSON文件,暂不对接HL7/FHIR接口或数据库直连
-
不处理非结构化数据:无法解析扫描件、手写单、PDF医嘱单,需先由医院完成结构化转换
-
不覆盖全部输液场景:当前适配持续泵注类药物(如多巴胺、去甲肾上腺素),未覆盖推注针剂、间歇性冲洗等模式
-
差异判定基于字段显式值:若HIS记录中
dose_ml为空或为“遵医嘱”,系统标记为C类并归入info级,不强行填充或猜测
差异类型的判定逻辑已在项目文档中明确定义,例如A类是否升为critical,取决于该药品是否属于医保重点监控目录(此规则未来可通过配置文件注入,当前为代码内建)。
项目地址:
https://github.com/nexorin9/infusion-pump-verifier
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)