临床决策支持系统

基于多代理架构的临床决策支持系统,用于从电子健康记录中检索证据、解释实验室结果并生成临时诊断。

  • by sanjramku
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 sanjramku/AI_Guild_Task3

使用说明

多智能体临床决策支持系统

执行摘要

该项目是一个多代理临床决策支持系统,旨在解释和综合来自合成电子健康记录(EHR)数据的信息。

它利用Synthea合成EHR数据集,由1000名患者的训练队列和100名患者的测试队列组成。

主要目标是展示一个模块化和可重复的管道,作为高级临床人工智能应用的基础。

核心任务

  • 检索临床问题的证据。
  • 解读实验室结果和生命体征。
  • 生成临时诊断。

关键技术

  • 用于综合搜索的混合检索。
  • 交叉编码器重新排序以提高精度。
  • 模型上下文协议(MCP)用于编排专用代理。

技术实施

数据准备

数据摄入

提供的Synthea CSV文件(包含人口统计、遭遇、观察、状况和药物)被加载到pandas DataFrames中。

代码段生成

通过将医疗记录格式化为描述性句子,将原始结构化数据转换为可搜索的文本语料库。

这将数据转换为NLP友好的格式。

元数据和代码

每个片段都丰富了以下内容:

  • 唯一ID
  • 患者编号
  • 数据类型

这允许精确过滤。

医疗代码,例如:

  • LOINC(用于实验室)
  • ICD-10(用于疾病)

直接嵌入到片段中以实现精确匹配。


检索系统设计

混合架构

联合

  • BM25(用于精确关键字/代码匹配的稀疏检索)
  • 密集向量嵌入

密集嵌入

预训练的SentenceTransformer模型:

emilyalsentzer/Bio_ClinicalBERT

生成捕获文本语义含义的嵌入。

FAISS索引建立在这些嵌入之上,用于快速相似性搜索。

互易秩融合(RRF)

将BM25和密集检索中的排名列表合并为一个连贯的排名。

这提供了一组比单独使用任一检索方法更稳健的结果。

交叉编码器重新排序

使用交叉编码器模型对检索到的顶部结果进行细化:

cross-encoder/ms-marco-MiniLM-L-6-v2

该模型深入分析了查询文档关系,并对最相关的片段进行了优先级排序。


MCP工具集成

标准化接口

工具被封装在自定义中 MCP_EHR 类。

这为代理与底层EHR数据交互提供了一致的接口。

关键功能

该框架包括以下基本工具:

  • ehr.search_evidence
  • ehr.get_labs
  • ehr.get_vitals
  • ehr.get_conditions
  • ehr.get_medications

临床计算器

专用工具包括:

  • calc.qsofa
  • calc.egfr

例如,qSOFA评分基于以下因素确定感染风险:

  • 低血压
  • 高呼吸频率
  • 改变

安全与合规

工具包括:

  • 模式验证
  • 错误处理
  • 可追溯性机制

这些保护措施有助于防止不正确的数据处理,并支持可审计性。


多代理编排和工作流

该系统遵循顺序编排模式。

一个中央框架协调专门的代理,将输出从一个阶段直接传递到下一个阶段。

1.临床QA代理

工作流的入口点。

责任:

  • 接收用户查询。
  • 使用混合检索系统收集相关证据。
  • 生成由源记录引用支持的答案。

2.分类代理人

分析:

  • 实验室结果
  • 生命体征数据

责任:

  • 计算临床评分(例如qSOFA和eGFR)。
  • 标记异常发现。
  • 生成结构化输出以支持临床决策。

3.诊断试剂

综合以下信息:

  • 实验室
  • 条件
  • 药物

责任:

  • 生成临时诊断。
  • 输出ICD-10代码。
  • 分配置信度分数。
  • 保持透明和可审计的推理。

评估和结果

评估方法

该系统使用加权量规进行评估,该量规优先考虑:

  • 建筑质量(70%)
  • 实证结果(30%)

这有利于稳健的设计和清晰的文档。

输出

系统成功生成所有必需的输出文件:

  • retrieval_results.jsonl
  • qa_results.jsonl
  • triage_results.jsonl
  • diagnosis_results.jsonl
  • system_metrics.json

这展示了完整的端到端功能。

卓越建筑

模块化设计、强大的检索系统和MCP集成使该系统:

  • 易于调试
  • 易于扩展
  • 易于维护
  • 适用于未来的生产部署

结论

该项目成功交付了一个功能齐全、结构良好的临床决策支持系统,满足任务3的所有核心要求。

它有效地结合了NLP技术和代理系统设计,以:

  • 检索信息
  • 解读临床数据
  • 生成临时诊断

模块化架构为未来涉及更复杂模型和高级临床推理能力的增强提供了坚实的基础。

这一发展的一个关键点是,清晰的文档和坚实的架构设计是成功实施的基本属性。