图片

本项目是专为医院护理部、信息科与医保办设计的输液给药闭环校验系统,解决「输液泵真实推注行为」与「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

 / HisAdapter

护理信息员或信息科工程师:将不同品牌泵导出的JSON、不同HIS厂商导出的Excel转JSON后的格式,统一映射到内部标准模型(如pump_schema.py定义泵事件必须含start_timedose_mlpatient_idhis_schema.py要求exec_timedrug_namedose_mlpatient_id

时间对齐引擎

TimeAlignmentEngine

质控专员:按患者ID分组后,以HIS执行时间为基准,向前向后扩展时间窗(默认15分钟),查找该窗口内是否存在匹配的泵事件;支持自定义容差,适应不同科室节奏(如ICU可设10分钟,普通病房设20分钟)

差异检测规则

DiffDetectionRules

医保办核查员:对已对齐的配对记录逐项比对,C类差异触发剂量阈值判断(默认±10ml),D类触发时间差绝对值判断,A/B类则直接标记未配对项;每类差异自动打标严重级别(critical/warning/info),便于优先处理

输出生成层

HtmlReportGen

 / LlmPhraseModule

护士长与质控科: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_idbed_nodrug_namedose_mlstart_time等公开字段;生成的每一段说明文都带固定前缀:“【LLM说明文草稿】本段内容由本地大模型根据输入数据生成,仅供参考,请务必结合临床实际与系统日志人工核实。”若Ollama服务未启动,系统自动回退至预设模板句式(如“A类差异:泵有记录但HIS无记账”),确保流程不中断。目前支持Ollama生态下的llama3.2qwen2.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)

    :虚拟环境隔离,依赖明确(requestspydanticjinja2plotly等共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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐