在医疗信息化持续深化的今天,病历质量是医疗安全与质控管理的核心抓手。但传统质控多依赖「提交后人工抽检」或「系统事后校验」,医生常需反复返工修改,既消耗精力,又影响书写效率。病历质控实时预判系统正是为解决这一痛点而生,它不替代医生判断,也不介入诊疗决策,而是将质控关口前移,在医生书写过程中就提供即时反馈,真正实现「边写边改、未交先查」。
项目概述:从被动检查到主动预防
该系统是一款面向医院信息科、质控办与临床科室的轻量级开源工具,核心目标明确:变事后质控为事前预防。它不处理影像、检验等非文本数据,专注分析结构化病历文本(如主诉、现病史、诊断依据等字段),在提交前给出质控通过概率与可操作整改建议。
系统采用「规则引擎 + 大语言模型」双层分析架构,兼顾确定性与灵活性。一方面,通过内置规则库快速识别时间逻辑错位、必填项缺失、互斥字段冲突等硬性问题;另一方面,调用 LLM 深度理解语义矛盾、前后描述不一致等软性缺陷。所有分析均本地运行,原始病历不出内网,保障数据隐私。
其输出结果清晰分层: - 质控通过概率(0–100%),按区间划分风险等级,便于医生快速决策是否提交; - 结构化问题列表,含类型、严重程度与整改建议,表述贴合《病历书写基本规范》要求; - 多格式报告支持,满足不同角色使用习惯:CLI 表格适合快速自查,JSON 便于 HIS 系统集成,HTML 报告则提供科室排名、问题分布等可视化洞察。
技术亮点:高效、可控、易集成
本项目虽定位为辅助工具,但在工程实现上具备扎实的技术纵深,尤其在性能与可靠性方面做了针对性优化。
双层分析与智能降级
规则引擎先行过滤,仅对规则无法覆盖的问题才触发 LLM 分析。当规则已检出 3 个以上严重问题时,系统自动跳过 LLM 调用,直接返回结果。这不仅降低 API 成本,也避免因模型响应波动影响关键流程。
响应缓存与并发控制
内置基于请求内容哈希的智能缓存,默认保存 1000 条记录,TTL 为 1 小时。重复分析相同病历时,毫秒级返回结果。同时支持配置最大并发请求数(默认 3),配合信号量机制规避 API 限流风险。
# 查看当前缓存统计mr-qc analyze -f data/sample_records.csv --show-cache-stats模块化设计与开放扩展
目录结构清晰,src/rules/、src/llm/、src/output/ 各司其职。规则库以 JSON 格式定义,支持自定义添加;LLM 提示词按场景拆分为 analyzePromptTemplate、suggestFixesPrompt 等多个模板,可独立调整;输出模块支持 HTML 模板替换与 ECharts 图表定制。
{ "id": "custom_rule_001", "name": "入院记录时间完整性检查", "type": "required", "fields": ["admission_time", "chief_complaint_time"], "severity": "error"}全链路中文友好
LLM 调用全程使用中文提示词,输出为结构化 JSON,无英文术语干扰;HTML 报告采用中文字体与本土化图表标签;CLI 错误提示、帮助文档、规则说明全部使用简体中文编写。
应用场景:适配医院多角色工作流
本系统不追求大而全,而是精准切入三类典型使用场景:
临床医生日常书写通过 CLI 流式分析(
mr-qc stream),在草稿阶段粘贴一段文本即可获得即时反馈,避免因格式或逻辑疏漏导致返修。质控办批量质控分析支持 CSV 或 JSON 批量导入,一键生成 HTML 科室质控报告,直观呈现各科室问题类型分布与趋势变化,辅助管理决策。
信息科系统集成部署提供模块化 API 接口与 REST 封装能力,可作为中间件嵌入电子病历系统,在医生点击「提交」前自动调用分析服务,实现无缝质控拦截。
此外,系统支持 OpenAI 兼容 API,可对接国内主流大模型服务平台或本地部署的 vLLM、LocalAI 等推理框架,满足不同医院对算力部署与合规性的差异化需求。
使用指南:三步上手,开箱即用
项目基于 Node.js 构建,安装与运行门槛低,无需复杂环境配置。
第一步:安装与配置
克隆项目后安装依赖,并复制环境模板文件:
git clone https://github.com/nexorin9/mr-qc-realtime-predictor.gitcd mr-qc-realtime-predictornpm installcp .env.example .env编辑 .env 文件,填入 LLM 服务商提供的 API Key 与基础地址(如使用 OpenAI 官方接口,仅需配置 LLM_API_KEY)。
第二步:尝试单条分析
使用内置示例数据快速验证功能:
mr-qc analyze -f data/sample_records.csv -F cli也可直接输入 JSON 文本进行流式测试:
mr-qc stream -i '{"patient_id":"P001","department":"心内科","record_text":"患者男性,58岁,因胸闷入院..."}'第三步:生成可视化报告
批量分析后生成 HTML 报告,便于科室协同改进:
mr-qc analyze -f data/sample_records.csv -F html -o report.html打开 report.html 即可查看交互式图表,包括科室通过率排名、问题类型占比饼图、时间趋势折线图等。
如需复用已有分析结果,可使用 report 子命令二次生成不同格式输出:
mr-qc report -f result.json -F all总结:让质控回归服务本质
病历质控不应是悬在医生头上的“达摩克利斯之剑”,而应成为提升书写质量的“脚手架”。该项目没有堆砌高大上的技术名词,而是聚焦真实工作流中的微小但高频的痛点,时间写错、主诉遗漏、术语不一致……它用规则守住底线,用大模型补足盲区,用缓存保障效率,用多格式适配角色。
它不宣称替代人工质控,而是强调“辅助”与“前置”;不绑定特定云厂商,而是保持 API 开放与本地可控;不追求黑盒智能,而是把每一条问题、每一句建议都解释清楚。这种克制而务实的技术路径,恰恰是医疗软件落地的关键。
项目当前免费开源,若您对项目有疑问、使用上的困惑或想深入交流,欢迎私信我们,或加入社群讨论。
项目地址:
https://github.com/nexorin9/mr-qc-realtime-predictor
夜雨聆风