乐于分享
好东西不私藏

[医疗软件开源] 病历叙事连贯性追踪器:一款面向临床质控的开源医疗软件

[医疗软件开源] 病历叙事连贯性追踪器:一款面向临床质控的开源医疗软件

在电子病历广泛应用的今天,一份病历是否“写得对”,往往不只取决于单个段落是否规范,更取决于整份文档内部的逻辑自洽性。主诉说“胸痛1小时”,首次病程却记为“入院第3天”;一处写“无家族史”,另一处又提到“父亲有糖尿病”,这类语义矛盾难以被传统规则引擎捕获,却可能影响病情判断、质控评分甚至法律举证。而今,一个轻量、可本地部署、开箱即用的工具正试图填补这一空白。

项目概述:让病历自己“对质”

病历叙事连贯性追踪器是一个专为电子病历(EMR)设计的开源分析工具,核心目标是检测病历各章节之间的隐性语义矛盾,而非表面格式错误。它不替代医生书写,也不生成诊断建议,而是像一位不知疲倦的质控助手,在病历提交前自动完成一次跨章节的“内部交叉问询”。

项目将病历视为一个连贯叙事文本,聚焦五大维度进行一致性校验: – 时间序矛盾检测– 语义矛盾检测– 实体一致性检测– 医嘱-病历一致性检测– 综合连贯性评分与自然语言报告生成

所有检测结果最终汇总为一个0–100分的量化评分,并附带清晰定位的整改建议。评分标准明确分层:90–100分为「连贯」,70–89分为「轻微问题」,50–69分为「中等问题」,低于50则属「严重问题」。这种分级机制便于质控人员快速识别高风险病历,优先处理可能影响医疗质量的关键矛盾。

技术亮点:LLM驱动的轻量级质控架构

本项目并非重型AI系统,而是一套结构清晰、职责分明的模块化实现。其技术选型兼顾实用性与可维护性:

  • 大语言模型作为语义理解引擎:采用 OpenAI API 兼容接口,支持 GPT-3.5、GPT-4 等主流模型;同时预留私有化接入路径,可通过 .env 配置 API_BASE 指向本地部署的兼容服务(如 Ollama、vLLM 或 FastChat),满足医院对数据不出域的合规要求。

  • 检测能力解耦设计:各检测器独立封装于 src/detectors/ 目录下,包括 time_contradiction.pysemantic_contradiction.py 等。这种设计使得新增检测类型(如药物相互作用提示、检验指标趋势矛盾)只需扩展对应模块,不影响主流程。

  • 双模交互体验:既提供简洁高效的命令行接口(CLI),也内置基于 Streamlit 的 Web 界面。CLI 模式适合批量质检或集成进医院 ETL 流程;Web 界面则面向科室质控员,支持粘贴文本、上传 JSON/TXT/MD 文件,并以仪表盘+折叠卡片形式直观呈现矛盾详情。

  • 健壮的输入适配能力:支持标准 JSON 格式(含 chief_complaintfirst_notedaily_notes 等字段),也支持纯文本自动分节。分节逻辑由 src/parser.py 实现,可根据实际病历模板灵活扩展规则,无需修改核心引擎。

  • 可验证的开发实践:项目包含完整单元测试(pytest)、代码风格检查(ruff)及示例数据集(data/sample_data/),确保每次更新都经得起回归验证。开发者可一键运行全部示例病历测试,快速确认功能完整性。

应用场景:可用于临床质控、教学反馈与系统集成

本工具适用于多种医疗信息化相关场景,但需强调:它不参与任何临床决策过程,所有输出仅为辅助核查参考。

  • 可用于医院病案科或质控办的日常病历抽检,批量扫描出院小结与病程记录间的时间线断裂点,提升质控效率与覆盖广度。
  • 可用于医学院临床教学,帮助学生理解病历书写的内在逻辑要求,通过具体矛盾案例强化叙事连贯性意识。
  • 可用于 EMR 厂商的产品增强,嵌入到病历编辑界面中实现实时连贯性提示,从源头减少低级矛盾。
  • 可用于科研数据清洗,对回顾性研究使用的病历集进行预筛,剔除存在严重内部矛盾的样本,提升研究信度。

值得注意的是,项目 FAQ 明确指出:检测结果不可直接用于医疗决策;评分低于 70 的病历应被重点关注;API 调用失败时可启用 --dry-run 模式获取模拟结果。这些设计体现了对医疗场景严肃性的充分尊重。

使用指南:三步上手,两种模式任选

安装与使用极为简单,全程无需编译或复杂配置。

快速安装与配置

git clone https://github.com/nexorin9/emr-narrative-coherence-trackercd emr-narrative-coherence-trackerpython -m venv .venvsource .venv/bin/activatepip install -r requirements.txtcp .env.example .env

随后编辑 .env 文件,填入你的 API_KEY。若暂无密钥,可先用 --dry-run 模式体验全流程。

CLI 模式:高效批处理首选

适用于脚本调用或单份病历快速诊断:

python -m src.cli --input data/sample_data/sample_2_time_contradiction.json

支持丰富参数组合: – --model gpt-4 指定更高精度模型– --format json 输出结构化结果便于程序解析– --batch data/sample_data/ --output report.md 批量分析并生成 Markdown 汇总报告– --dry-run 跳过真实 API 请求,返回模拟响应

Web 界面模式:交互式分析体验

启动仅需一行命令:

streamlit run app.py

浏览器打开 http://localhost:8501 后,即可在左侧粘贴病历文本或上传文件,右侧实时显示评分仪表盘、矛盾列表与可展开的详细报告。界面支持切换 JSON 与 Markdown 输出格式,并提供一键下载功能。

总结:用工程思维守护病历的叙事可信度

病历不是碎片信息的堆砌,而是患者疾病发展的一段逻辑闭环叙事。当时间、症状、诊断、处置在不同章节中悄然错位,问题或许不会立刻显现,却可能在复盘、评审或纠纷中暴露无遗。病历叙事连贯性追踪器的价值,正在于它把原本依赖专家经验的“读一遍找矛盾”,转化为可重复、可量化、可集成的自动化环节。

它不追求替代人类判断,而是放大专业人员的洞察力;不强求一步到位的完美,而是提供一条从“发现矛盾”到“定位矛盾”再到“理解矛盾”的清晰路径。其开源属性、模块化设计与双模交互支持,也为后续社区共建留出了充足空间,比如适配更多中文医疗大模型、增加检验检查数值趋势一致性检测、对接主流 EMR 接口等。

项目免费开源,若您对项目有疑问、使用上的困惑或想深入交流,欢迎私信我们,或加入社群讨论。

免费开源项目地址:https://github.com/nexorin9/emr-narrative-coherence-tracker