跳转至

Towards Error-Free EHRs: Reasoning-Intensive Consistency Verification Between Clinical Notes and Structured Tables in Electronic Health Records

会议: NeurIPS 2026
arXiv: 2605.26463
OpenReview: https://openreview.net/forum?id=q9O85I1Yqn
领域: 其他
关键词: 电子病历, 临床文本, 表格推理, 一致性验证, 大语言模型 Agent

一句话总结

针对临床叙述文本与结构化医疗表格间浅层匹配无法捕捉医学解释、复合事件关系及动态时序变化的问题,本文提出了包含 8,048 个实体的高质量深度推理基准 EHR-ReasonCon,并设计了结合病历切分、患者记录与层次本体双阶段实体抽取及表格探索工具的 EHR-Inspector 框架,在严苛与宽容评估下均取得 SOTA 验证性能。

研究背景与动机

电子健康档案(EHR)是现代医疗决策与患者安全的核心基石,其数据主要以两种互补形式存在:非结构化的临床叙述文本(如出院小结、病程记录、护理记录)与结构化表格(如生命体征、实验室检验、医嘱与处方)。临床医生根据客观检验指标与患者床旁观察共同制定诊疗方案并撰写病历,两者高度交织。然而在实际医疗流程中,由于分散的系统架构、繁重的手动记录负担以及广泛存在的“复制-粘贴”操作,临床文本与结构化数据库之间经常出现事实冲突或信息遗漏。此类不一致不仅干扰临床判断,还可能引发严重医疗差错甚至法律风险。因此,自动化检验病历与表格之间的一致性至关重要。

现有临床一致性检测方法(如早期的基于特定领域的规则/分类器,以及近期扩展到关系型数据库的 EHRCon 基准)普遍停留于浅层的字面匹配,即仅检查病历中提及的具体数值(如白细胞计数 WBC 10.0)或孤立离散事件(如万古霉素给药)是否在数据表中原样出现。这种表层对齐严重脱离了真实临床记录的复杂语境:首先,临床文本常记载抽象的“医学解释”,例如记录“入院时贫血”或“呼吸急促”,而表格中仅记录连续的血红蛋白测量值或呼吸频率,验证必须依据权威临床医学指南进行合规推理;其次,临床叙述常涉及跨多个表格的“复合事件关系”,例如痰培养检出肺炎链球菌且对特定抗生素敏感,需要联合检验菌种、标本来源、药敏定性等多列数据;再者,病历记录往往包含具有时间跨度的“动态时序趋势与干预”(如“术后第 3 天起体温平稳,第 6 天再发高热”),需要跨多条时序记录进行趋势分析,而非单一时间戳的比对。

为了填补这一关键鸿沟,自动化验证亟需从表层字面比对迈向深度的医学认知推理与多表动态检索。核心 idea:本文提出了一个深度推理级的一致性验证基准 EHR-ReasonCon(涵盖 8,048 个专家深度标注实体、14 张 MIMIC-III 表格与 58 个字段),并构建了模拟人类临床专家核查工作流的 Agent 框架 EHR-Inspector,通过文本结构化切分、全局时间锚定、患者记录与层级本体引导的两阶段实体抽取、时间作用域过滤,以及 8 种专业表探索工具与验证缓存(Validation Cache),实现了跨长程时序与异构医疗表格的深度一致性验证。

方法详解

整体框架

EHR-Inspector 的设计旨在复现临床专家在核查病历与表格一致性时的系统化推演过程。输入为一篇非结构化临床病历 \(x\) 与患者对应的 14 张关系型医疗数据库表格(如 MIMIC-III 的 CHARTEVENTS、LABEVENTS、PRESCRIPTIONS 等)。输出为从病历中识别出的各临床实体的一致性标签(Consistent / Inconsistent)及其对应的表格检索证据。整个流水线分为四个串行阶段:首先将整篇长病历切分为局部连贯的语篇段落并解析全局相对时间引用;接着通过患者个性化记录与全局层次化本体实现两阶段候选实体抽取;随后通过时序属性推理过滤掉既往病史与出院未来规划,仅保留当次住院的活跃实体;最后调用 8 种表探索工具进行多步检索与临床规则推理,并借助验证缓存复用同源观察结果。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入临床文本与 14 张 EHR 结构化表"] --> B["病历切分与时间引用全局解析<br/>主题连贯切片 + 相对时间锚定"]
    B --> C["患者记录与层次本体引导的两阶段实体抽取<br/>患者记录对齐 + 层次本体候选召回"]
    C --> D["时间作用域过滤与状态判定<br/>排除既往病史与未来计划,锁定 Active 实体"]
    D --> E["工具增强表格探索与验证缓存<br/>8 种表探索工具协同检索与临床解释推理"]
    E <--> F["验证缓存机制<br/>滑动窗口复用同观测证据,减少冗余调用"]
    E --> G["输出一致性判定与行级证据<br/>Consistent / Inconsistent"]

关键设计

1. 病历切分与时间引用全局解析:解决长文本注意力分散与相对时间漂移

临床长文本(如动辄数千词的出院小结)包含极为密集的临床事件交错,直接将整篇长文本输入大模型会导致推理上下文混杂并降低信息捕获精度。为此,EHR-Inspector 首先使用大模型将整篇文本 \(x\) 划分为多个语义独立的事件切片 \(X = \{x_1, x_2, \dots, x_T\}\),使后续的实体抽取与证据核验能够在聚焦的局部语境中进行。然而,单纯切分会导致跨段落的相对时间表达式(如“术后第 3 天”或“出院前夕”)与其参考事件(如手术确切日期、入院时间)脱节。为了保持严格的时间解释自洽性,模型首先在全篇层面提取全局绝对时间锚点(如手术时间、入出院日期),并在各切片内部将所有相对时间描述标准化解析为具体的时间范围与绝对时间戳。

2. 患者记录与层次本体引导的两阶段实体抽取:化解万级候选空间计算瓶颈

临床表格系统定义了超过 14,000 个结构化检验与医嘱项目(Item),直接将全量项目列表喂给大语言模型进行匹配在计算上不可行,且极易引发幻觉。EHR-Inspector 提出两阶段自适应抽取方案,兼顾高召回率与运算效率: - 患者专属记录抽取(Patient-specific Extraction):首先圈定该患者本次住院实际记录的项目子集 \(L_P \subseteq L\)。对每个切片 \(x_t\),向模型提供切片文本、\(L_P\) 以及每个项目在全球数据库中的高频数值分布画像 \(TopV(l)\)(即 top-\(K\) 最常出现的值)。\(TopV(l)\) 为模型提供了关键的语义类型线索(例如收缩压 SBP 的常现值为 [110, 120, 130],模型据此可知其为连续数值而非分类型属性),从而准确抽取与已有表格记录对齐的实体集合 \(E_{\text{patient}}\)。 - 层次本体引导抽取(Ontology-guided Hierarchical Extraction):单纯比对 \(L_P\) 会遗漏表格中未予记录但病历中提及的事实(这类缺失往往正是“缺失型不一致”的关键证据)。为在海量补集 \(L \setminus L_P\) 中高效检索,系统构建了包含 12 个顶级领域组(如 Procedure、Hemodynamics、Diagnostics)与多级子组的层次化本体。模型在段落级别先粗粒度筛选相关组与子组,再在收敛后的候选候选子集内抽取实体 \(E_{\text{ontology}}\)。最终合并形成全量可核查实体集合 \(E_{\text{extract}} = E_{\text{patient}} \cup E_{\text{ontology}}\)。

3. 时间作用域过滤与状态判定:精准剔除既往病史与出院未来计划

EHR 结构化数据表严格记录当次住院期间的检查与处置,而临床文本通常包含大量既往病史(如既往高血压、家族遗传病史)以及出院后的后续随访计划(如出院后继续口服抗生素)。若将这些实体送入表格核验,因表格未收录当次住院之外的记录,系统将产生大量虚假的“不一致”误报。EHR-Inspector 为此设计了时间作用域分类器:针对每个抽取的候选实体 \(e \in E_{\text{extract}}\),模型提取其发生时刻、持续时长与结束时间等线索,结合全局时间锚点将其归类为三种时间状态之一:\(C(e) \in \{\text{Past}, \text{Active}, \text{Plan}\}\)。最终仅保留属于当次住院正在进行的活跃实体 \(E_{\text{scope}} = \{e \in E_{\text{extract}} \mid C(e) = \text{Active}\}\) 进入验证阶段。

4. 工具增强表格探索与验证缓存:模拟临床核查与消除重复查询冗余

EHR-Inspector 赋予大模型 8 个专门定制的表格探索工具,覆盖三个职能维度: - 实体到表格项目对齐工具:Lexical_Search(集成 C4-WSRS 医疗缩写库的 N-gram 检索,可精准展开 WBC、BP 等缩写)与 Semantic_Search(基于语义嵌入识别“神志清醒”与“意识水平”的深层概念关联); - 数据库架构与取值剖析工具:Get_Item_Value_Distribution(查询字段 top-10 取值分布)与 Analyze_Category_Trend(分析表格内部类别归属与结构分布); - 时序与条件记录检索工具:Get_Item_Status_History(支持精确时间戳、模糊时间窗口如入院前后 1 天、时段区间检索)、Get_Item_Value_History(支持数值比较算子如大于、小于、介于)、Analyze_Value_Trend(分析跨时间变化趋势)、View_General_Timeline(提取特定日期的全量记录)。

在验证执行时,多实体联合往往源自同一项临床观察(例如病历记录“腹部:平软、轻度膨隆”,抽取出的实体包含“腹部”、“平软”、“膨隆”)。逐个独立调用工具会导致重复扫描同一行数据库记录。为此,系统引入容量为 \(m=5\) 的滑动窗口验证缓存(Validation Cache)。首个实体“腹部”触发工具调用并获取床旁评估记录后,该条记录及其包含的全部属性(平软、膨隆)被存入缓存;后续实体“平软”与“膨隆”在核验时直接命中缓存证据完成判定,无需重复发出工具调用,大幅提升了验证效率并保证了同观测实体判定的一致性。

一个完整示例

假设病历切片记载:“入院时血压 145/92 mmHg,患者主诉头痛,腹部触诊:平软、无压痛;化验回报 WBC 18.5,考虑急性感染,给予左氧氟沙星静滴。” 1. 切分与时间锚定:将该句切分为当次入院事件,解析“入院时”为住院第 1 天(例如 2026-05-01 08:00 至 2026-05-02 08:00)。 2. 两阶段抽取:在 \(L_P\) 中命中 SBP、DBP、WBC;通过层次本体在抗感染药物子组中命中左氧氟沙星(Levofloxacin);抽取实体包括:血压、头痛、腹部、平软、无压痛、WBC、左氧氟沙星。 3. 作用域过滤:所有实体均发生在入院期,均被标记为 Active 保留。 4. 工具调用与缓存复用: - 检验“腹部”:调用 Get_Item_Status_History(Admission, Abdomen Assessment),检索到记录 [Status: Soft, Tenderness: None],写入验证缓存。 - 检验“平软”与“无压痛”:直接从验证缓存命中上述腹部体检记录,判定为 Consistent,工具调用次数为 0。 - 检验“WBC 18.5”:调用 Get_Item_Value_History(Admission, WBC),检出数值 18.5 且 FLAG 字段标注为 ABNORMAL,判定为 Consistent。 - 检验“左氧氟沙星”:查询 PRESCRIPTIONS 与 INPUTEVENTS,若发现医嘱实际开具的是头孢唑林而非左氧氟沙星,判定为 Inconsistent 并输出不一致的药品名称证据。

实验关键数据

主实验

实验采用 4 种基座大模型(开源模型 GPT-OSS 20B、MedGemma 27B、Qwen3-32B 与商业模型 Gemini 2.5 Flash),在严苛(Harsh,要求与标注标签完全一致)和宽容(Lenient,认可医学上合理的推理差异)两种 LLM-as-a-judge 评估准则下,对 CheckEHR 与 EHR-Inspector 进行全面对比。

基座模型 方法 出院小结 Lenient 病程记录 Lenient 护理记录 Lenient 出院小结 Harsh 病程记录 Harsh 护理记录 Harsh
召回率 / 精确率 召回率 / 精确率 召回率 / 精确率 召回率 / 精确率 召回率 / 精确率 召回率 / 精确率
GPT-OSS 20B CheckEHR 29.40 / 60.19 24.91 / 39.23 24.00 / 55.85 26.50 / 50.70 23.00 / 35.30 22.20 / 47.20
EHR-Inspector 30.00 / 59.12 27.53 / 55.01 28.38 / 61.40 26.99 / 52.45 22.17 / 49.33 24.49 / 51.77
MedGemma 27B CheckEHR 17.95 / 55.19 6.60 / 35.09 5.56 / 32.54 16.41 / 43.23 6.10 / 32.71 4.80 / 26.09
EHR-Inspector 48.68 / 44.99 28.63 / 33.44 50.31 / 47.46 42.74 / 39.51 26.93 / 30.55 45.57 / 41.50
Qwen3 32B CheckEHR 26.05 / 62.57 27.55 / 48.64 24.05 / 58.10 23.04 / 54.02 25.31 / 43.95 22.12 / 52.14
EHR-Inspector 56.18 / 65.29 55.34 / 65.21 60.36 / 62.88 50.89 / 56.12 49.21 / 58.98 51.58 / 52.69
Gemini 2.5 Flash CheckEHR 48.80 / 65.14 28.05 / 35.86 38.07 / 64.48 44.89 / 55.01 26.38 / 30.61 35.16 / 55.59
EHR-Inspector 77.36 / 71.67 79.58 / 71.81 72.53 / 71.59 69.28 / 62.81 73.14 / 66.11 65.26 / 62.59

消融实验

基于 Gemini 2.5 Flash 基座在验证集上对框架核心模块、实体抽取策略及工具类别进行消融分析。

消融配置 Lenient Rec (%) Lenient Prec (%) Lenient F1 (%) Harsh Rec (%) Harsh Prec (%) Harsh F1 (%)
EHR-Inspector (完整模型) 77.36 72.31 74.75 67.84 61.46 64.49
- 去除病历切分 (Segmentation) 69.32 70.19 69.75 (-5.00) 61.41 60.09 60.73 (-3.76)
- 去除时间作用域过滤 (Filtering) 79.95 62.92 70.04 (-4.71) 71.09 53.52 60.63 (-3.86)
实体抽取方式对比
替换为微调 NER (Trained MedGemma) 52.64 79.21 63.20 (-11.55) 46.65 71.34 56.06 (-8.43)
替换为 BERT 集成 (BERT Ensemble) 72.24 64.99 68.35 (-6.40) 62.15 54.41 58.02 (-6.47)
替换为 CheckEHR 实体抽取 70.71 64.35 67.27 (-7.48) 61.41 53.60 57.24 (-7.25)
工具类别消融分析
去除实体-项目对齐工具 79.00 73.23 76.00 (+1.25) - - -
去除数据库结构与取值画像工具 77.41 71.70 74.45 (-0.30) - - -
去除时序与条件记录检索工具 72.58 69.96 71.25 (-3.50) - - -

关键发现

  1. 时序与条件检索工具是性能中枢:工具消融实验中,去掉“时序与条件记录检索工具”导致 F1 大幅下跌 3.50%,说明时序窗口和条件过滤(Get_Item_Status_History、Get_Item_Value_History 等)是支撑深度临床推理最不可或缺的底层支柱。
  2. 人类设计工具集与大模型认知特性的反直觉冲突:意外的是,移除“实体-表格项目对齐工具”反而使 Lenient F1 从 74.75% 提升至 76.00%。深入分析表明,人类标注员因工作记忆有限,需要先通过对齐工具缩小搜索范围;而拥有百万级上下文窗口的大模型直接在较大范围内检索更高效,强行引入对齐工具反而诱发了大模型的过早收敛(Premature Conclusion)错误。
  3. 领域微调模型 vs 通用推理模型的能力倒挂:针对医学微调的 MedGemma 27B 在基准任务上的表现显著逊于通用开源推理模型 Qwen3-32B,在 CheckEHR 基线中甚至低于通用开源模型。这表明临床一致性验证的瓶颈不仅在于医学专业术语记忆,更在于对结构化表格证据的多步符号推理与逻辑规划能力。
  4. 作用域过滤对平衡精确率与召回率的关键作用:去除时间作用域过滤虽然使召回率上升(77.36% \(\to\) 79.95%),但精确率暴跌近 10 个百分点(72.31% \(\to\) 62.92%),证实了将非当次住院历史与未执行计划过滤掉的必要性。

亮点与洞察

  • 多维度深度推理基准突破:EHR-ReasonCon 是首个系统化超越字面精确匹配、涵盖医学解释、多表复合关系与时间演变趋势的临床一致性验证数据集,8,048 个实体经由 4 位临床专家的双盲独立标注与裁决,标注一致性高达 0.888。
  • 两阶段本体分层收敛机制:将 14,000+ 临床概念拆解为“患者实际开立记录”加“12 大领域层次本体粗细粒度筛选”,配合数值分布画像 \(TopV(l)\),在极低计算开销下实现了高精度实体抽取。
  • 验证缓存的滑动窗口工程复用:针对临床记录多词同指同一体检操作的语言学特征,设计了滑动窗口验证缓存,将连续实体的工具调用量显著压缩,兼顾推理速度与判断自洽性。

局限与展望

  • 数据源与样本规模局限:EHR-ReasonCon 基于 MIMIC-III 的 105 份代表性脱敏病历构建,尽管实体量达 8,048 个,但单一重症监护数据源对不同医疗机构多样化书写习惯的覆盖仍有待扩展。
  • 真实临床错误复杂度的仿真约束:数据集依托真实数据经过清洗与专家标注构建,真实世界中医生书写别名、口误、模糊断句和突发撤销医嘱等极端复杂情况可能更加动态。
  • LLM-as-a-judge 评估偏见与演进:尽管严苛与宽容评估准则分别取得了 99.46% 和 95.35% 的临床专家高度共识,且通过 GPT-5 进行了交叉去偏,但在复杂临界病例上依然需要探索更低成本的高可信度专家闭环验证机制。

相关工作与启发

  • vs EHRCon [Kwon et al., 2024]: EHRCon 率先在 MIMIC-III 上探索多表一致性,但局限于浅层数值字面对应(如检查数字或简单事件匹配);本文建立的 EHR-ReasonCon 拓展至医学解释、复合事件与时序动态推理,标注字段从孤立的数值/时间扩展到 14 张表的 58 个复杂属性。
  • vs CheckEHR [Kwon et al., 2024]: CheckEHR 采用生成固定 SQL 查询的 8 阶段流水线;本文提出的 EHR-Inspector 采用交互式 Agent 工具探索模式,结合病历切分、本体引导抽取、时间作用域过滤与验证缓存,召回率和 F1 获得代际级飞跃(Lenient F1 在各模型上平均提升 15-30%)。
  • vs 通用表格推理 Agent (TableMind, TableZoomer 等): 通用表格问答 Agent 假定输入为明确的问题和预定义的局部表格;EHR-Inspector 直面真实的无约束长篇临床病历,自主从长文本中解构验证单元并跨 14 张千万级时序数据表检索关联证据。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次系统性提出超越浅层字面匹配的电子病历文本与多表格深度推理一致性基准 EHR-ReasonCon,涵盖临床解释、复合事件关系与时序演变。
  • 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 4 种代表性开源/闭源基座模型,在 14 张临床表、8,048 个实体上进行严苛与宽容双重 LLM-as-a-judge 评测,并通过多轮专家盲审与交叉验证。
  • 写作质量: ⭐⭐⭐⭐⭐ 逻辑结构严谨,图表完备,附录提供了详尽的标注协议、本体构建细节、工具定义及提示词模板。
  • 价值: ⭐⭐⭐⭐⭐ 解决医疗 AI 在真实临床落地中“幻觉”与“病历-表格矛盾”的核心安全隐患,对减少医疗差错与临床质控具有重大现实意义。