乐于分享
好东西不私藏

[医疗软件开源] 检验标本四时间戳完整率台账工具:面向医疗质量管控的纯规则型数据稽核系统

[医疗软件开源] 检验标本四时间戳完整率台账工具:面向医疗质量管控的纯规则型数据稽核系统

在检验医学流程中,一个标本从采集、交接、接收,到最终上机检测,需跨越护理系统、护工系统、LIS 和检测系统四个环节。每个环节的时间戳不仅是操作留痕,更是判断标本质量、追溯流程瓶颈、支撑等级评审的关键证据。但现实中,时间戳缺失、逆序、超时等问题普遍存在,人工排查效率低、口径不统一、难以形成闭环改进依据。

specimen-four-timestamp-ledger 正是为此而生,一款专为检验科与护理部设计的「检验标本四时间戳完整率台账」工具。它不依赖大模型,不生成幻觉,仅基于可验证的时间逻辑与业务阈值,对采集、交接、接收、上机四环节时间戳进行完整性、时序性、时效性三重校验,并输出符合中式管理习惯的 Ledger 式台账,直接服务于质量分析与流程优化。

该项目完全开源,采用 Python 实现,提供 CLI 与 Web 双界面,支持 CSV/Excel/SQL 多源输入,输出含违规明细、统计摘要与环节分析的结构化台账,已在实际医院质量管控场景中落地验证。

核心能力:三类规则驱动的标本时间流稽核

工具以「纯规则引擎」为核心设计理念,所有判断均基于确定性逻辑,无任何概率模型或黑盒推理。其能力覆盖以下三个正交维度:

  • 完整性检测检查采集、交接、接收、上机四个字段是否为空(None 或空字符串),识别 MISSING 类型违规

  • 时序逆序检测对相邻环节时间戳进行大小比较:若 交接时间 < 采集时间接收时间 < 交接时间 或 上机时间 < 接收时间,则判定为 OUT_OF_ORDER

  • 超时阈值检测计算相邻环节时间差(单位:分钟),并与预设阈值比对:collection_to_handoff(采集→交接)handoff_to_receive(交接→接收)receive_to_analysis(接收→上机)   超出即标记为 TIMEOUT

所有违规记录统一归入 Ledger 台账,字段严格对齐临床管理需求:

序号
患者ID
标本条码
违规类型
违规描述
涉及环节
建议操作

其中「建议操作」为固定文案,如 补录时间戳核查交接记录检查 LIS 接收日志 等,不依赖上下文生成,确保可执行性。

技术实现:轻量、可嵌入、零幻觉

项目采用成熟稳定的 Python 生态栈构建,兼顾开发可维护性与部署简易性:

  • 后端:Flask 提供 Web 接口,Click 构建 CLI 入口
  • 数据处理:pandas 完成清洗与计算,openpyxl 支持 Excel 写入
  • 前端:Bootstrap 实现响应式布局,ECharts 渲染统计图表
  • 配置管理:.env 文件集中定义超时阈值,支持运行时覆盖

目录结构清晰分层,各模块职责单一:

src/├── models.py          # 标本实体定义与时间字段标准化├── config.py          # 默认阈值、常量、环境变量加载├── data_loader.py     # 统一入口:CSV/Excel/SQL 表读取与列映射├── specimen_merger.py # 多源数据按标本条码合并(如 LIS 与护理系统分离存储)├── completeness_checker.py  # 缺失检测逻辑├── order_checker.py   # 逆序检测逻辑├── timeout_checker.py # 超时检测逻辑├── rule_engine.py     # 串联三类检查,生成原始违规事件流├── statistics.py      # 汇总完整率、各环节违规数、瓶颈排名等指标├── ledger_generator.py # 将违规事件格式化为台账(console/excel/csv)├── cli.py             # Click 命令行接口└── webapp.py          # Flask Web 应用主模块

所有规则逻辑均为函数式实现,无状态、无副作用,便于单元测试与审计。例如 order_checker.py 中核心判断仅为:

def is_out_of_order(collection_time, handoff_time):    return handoff_time and collection_time and handoff_time < collection_time

快速开始:CLI 与 Web 两种启动路径

安装依赖

pip install -r requirements.txt

CLI 使用:面向脚本化与批量分析

基础分析(控制台输出):

python -m src.cli analyze --input data/mock_specimens.csv --format console

带统计摘要的分析:

python -m src.cli analyze --input data/mock_specimens.csv --format console --summary

导出 Excel 台账(含多工作表):

python -m src.cli analyze \    --input data/mock_specimens.csv \    --output data/output_ledger.xlsx \    --format excel \    --summary \    --thresholds collection_to_handoff=30 handoff_to_receive=20 receive_to_analysis=60

CLI 参数说明如下:

参数
说明
示例
--input
-i
输入数据文件路径(CSV/Excel)
--input data/mock_specimens.csv
--output
-o
输出台账文件路径
--output output_ledger.xlsx
--format
-f
输出格式:console/excel/csv
--format console
--summary
-s
显示统计摘要
--summary
--thresholds
覆盖默认超时阈值(分钟)
--thresholds collection_to_handoff=45

Web 界面:面向日常质量巡查

启动方式:

# Windows.\run_web.ps1# Linux/Mac./run_web.sh

服务启动后访问 http://localhost:5000,即可使用图形化界面:

  • /
    上传 CSV 或 Excel 文件
  • /ledger
    查看可筛选、可排序的违规台账表格
  • /stats
    查看完整率趋势、各环节违规分布柱状图、瓶颈环节排名
  • /export
    一键导出 Excel 台账(含「违规台账」「统计摘要」「环节分析」三张工作表)

Web 界面不依赖数据库,所有计算在内存中完成,上传即分析,适合单机快速质检。

配置与定制:通过 .env 控制业务语义

超时阈值是临床质控的核心参数,项目支持两种配置方式:

  1. 命令行参数动态覆盖(优先级最高)
  2. .env
     文件全局配置(推荐用于生产环境)

在项目根目录创建 .env 文件,内容如下:

COLLECTION_TO_HANDOFF_MINUTES=30HANDOFF_TO_RECEIVE_MINUTES=20RECEIVE_TO_ANALYSIS_MINUTES=60

该配置将作为所有分析任务的默认阈值,无需每次命令行指定,也便于团队统一标准。

输出示例:即开即用的质控交付物

Console 输出(精简可读)

=== 检验标本四时间戳完整率台账 ===【统计摘要】总标本数:50完整率:68.0%(34/50)采集缺失:3  交接缺失:2  接收缺失:1  上机缺失:4逆序违规:5  超时违规:8【违规台账】序号 | 患者ID      | 标本条码    | 违规类型     | 违规描述                              | 涉及环节-----+------------+-------------+--------------+--------------------------------------+----------1    | P001       | SPC20260401 | MISSING      | 缺少上机时间戳                        | analysis2    | P002       | SPC20260402 | OUT_OF_ORDER | 交接时间早于采集时间(逆序)           | collection→handoff3    | P003       | SPC20260403 | TIMEOUT      | 采集到交接超45分钟(阈值30分钟)      | collection→handoff4    | P004       | SPC20260404 | MISSING      | 缺少采集时间戳                        | collection5    | P005       | SPC20260405 | OUT_OF_ORDER | 接收时间早于交接时间(逆序)           | handoff→receive【瓶颈环节排名】1. 采集环节 - 12起违规(24.0%)2. 上机环节 - 8起违规(16.0%)3. 交接环节 - 6起违规(12.0%)

Excel 输出(符合管理规范)

导出的 output_ledger.xlsx 包含三张工作表:

  • 违规台账
    全量记录,字段同上,支持 Excel 原生筛选与排序
  • 统计摘要
    各环节完整率、逆序率、超时率数值汇总表
  • 环节分析
    使用 ECharts 渲染的横向柱状图,直观呈现各环节问题占比

所有输出均遵循《医疗质量管理办法》对过程记录可追溯、可量化、可改进的要求。

适用场景:直击医疗质量管控真实痛点

本工具已明确适配以下典型场景:

  • 检验科日常标本全流程质量监控与月度分析报告生成
  • 护理部对标本采集与交接环节的专项整改支持
  • 等级医院评审与飞行检查前的数据自检与台账准备
  • LIS、HIS、护理系统间时间戳一致性交叉验证

它不替代系统改造,而是作为独立的质量探针,在不侵入现有系统前提下,提供客观、可复现、可归因的数据稽核能力。

项目地址:https://github.com/nexorin9/specimen-four-timestamp-ledger国内仓库:https://gitee.com/nexorin9/specimen-four-timestamp-ledger欢迎交流使用问题,或提交 issue 反馈实际业务中的时间逻辑扩展需求。