EHRXQA — AI-Ready Wikipedia

首个融合结构化电子健康记录与胸片图像的多模态问答基准——NeuralSQL 把视觉问答函数嵌进 SQL 执行流,417 个模板机器生成 46,152 道临床题,NeurIPS 2023 Datasets & Benchmarks 发表、PhysioNet v1.0.0 凭证获取

来源 MIMIC-IV v2.2(17 张结构化表:患者/入院/诊断/药物/检验等)+ MIMIC-CXR-JPG v2.0.0(227,835 张胸片元数据)+ Chest ImaGenome v1.0.0(胸片区域-异常结构化注释)合成的一体化 mimic_iv_cxr 数据库(18 张表,含 tb_cxr 桥表)+ 模板驱动生成的 46,152 道 (Question, SQL/NeuralSQL, Answer) 三元组发布时间: 2026-09-26最后更新: 2026-09-26 阅读 13
EHRXQA — AI-Ready Wikipedia

信息速览

数据集名称EHRXQA — AI-Ready Wikipedia
数据类型影像数据,时序数据,派生数据
规模一体化数据库 silver 800 患者(训练/验证,机器标注)+ gold 400 患者(测试,人工标注);三上游共享患者 19,264;QA 对 46,152(train 36,174 / val
接入方式MIMIC-IV v2.2(17 张结构化表:患者/入院/诊断/药物/检验等)+ MIMIC-CXR-JPG v2.0.0(227,835 张胸片元数据)+ Chest ImaGenome v1.0.0(胸片区域-异常结构化注释)合成的一体化 mimic_iv_cxr 数据库(18 张表,含 tb_cxr 桥表)+ 模板驱动生成的 46,152 道 (Question, SQL/NeuralSQL, Answer) 三元组
AI 就绪度

INFOBOX — EHRXQA 一屏速览

维度 内容
本质 首个融合结构化 EHR(表格模态)与胸片(图像模态)的多模态问答基准——模板生成的 (Question, SQL/NeuralSQL, Answer) 三元组集 + 一体化 SQL 数据库,非原始病历库
团队 KAIST 7 人(共同一作 Seongsu Bae & Daeun Kyung,通讯 Edward Choi)+ Microsoft Research(Lei Ji)等 11 人四机构
论文 NeurIPS 2023 Datasets & Benchmarks Track(arXiv:2310.18652;ACM Article No. 170, pp.3867-3880)
规模 46,152 QA 对 = Image 16,366 + Table 16,529 + Image+Table 13,257;417 模板 = 168 + 174 + 75;train/valid/test = 36,174/5,170/4,808
方法 NeuralSQL:SQL 内嵌 FUNC_VQA(question, image_id) 视觉问答函数,执行时暂停转调外部 VQA API,返回后 SQL 引擎继续
数据库 mimic_iv_cxr 一体化库 18 张表(MIMIC-IV 17 表 + tb_cxr 桥表);silver 800 患者(机器标注)+ gold 400 患者(人工标注)
上游 MIMIC-IV v2.2 + MIMIC-CXR-JPG v2.0.0 + Chest ImaGenome v1.0.0;三源共享 19,264 患者
附属 MIMIC-CXR-VQA:377,391 个 (Image, Question, Answer) 三元组、48 模板、110 答案标签(独立仓库)
核心发现 Image 模态 Acc_LF 87.3 但 Acc_EX
最佳基线 MIMIC-CXR-VQA:M³AE* 69.2±0.4;EHRXQA:ChatGPT+BM25 few-shot(Table 92.9 / I+T 65.9 / Image 48.2)
获取 PhysioNet v1.0.0(2024-07-23),DOI 10.13026/bp5y-qt70;三门槛:credentialed 账号 → CITI 课程 → 签三上游 DUA
许可 数据 PhysioNet Credentialed Health Data License 1.5.0|代码 MIT|预发布 JSON 故意无答案(隐私)
库内互链 mimiciv、mimic-cxr-jpg、chest-imagenome(三上游直系)、emrQA(名字近邻,需区分)、pathvqa、vqa-rad、slake

EHRXQA 是一个"让 SQL 学会看胸片"的数据集工程:它把 MIMIC-IV 的 17 张结构化临床表格和 MIMIC-CXR 的胸片注释拼进同一个 SQL 数据库,再用 417 个模板机器生成 46,152 道需要"查表 + 看图"才能回答的临床问题。回答图像问题的诀窍藏在查询语言本身——NeuralSQL 允许在 SQL 里直接写一个 FUNC_VQA(question, image_id) 函数调用,执行引擎跑到这里就暂停,把问题转交给视觉问答模型,拿到 true/false 后再继续跑剩下的关系逻辑。这个设计让它成为首个同时覆盖表格与图像两种模态的 EHR 问答基准,而它的评估结果还给出一个反直觉的结论:对大模型来说,看懂胸片(感知)比写出正确查询(推理)更难。

导语读法三则:

  1. 只想下数据:直奔 §6 获取与许可——三门槛一步都不能少,且 GitHub 上的预发布 JSON 故意不含答案,别下错了以为数据坏了。
  2. 关心方法设计:直奔 §3 NeuralSQL 与生成管线——FUNC_VQA 的执行语义、五阶段模板填充、时间过滤三类都在那里。
  3. 做模型评测:直奔 §4 与 §5——MIMIC-CXR-VQA 五基线表和 EHRXQA 三指标结果可直接对标,注意"感知瓶颈"结论的含义。

§0 导读:这个数据集解决什么问题

临床问答研究长期困在两座孤岛上。一座是表格孤岛:MIMIC-IV 这类结构化 EHR 里有患者人口学、入院记录、诊断、药物、检验值,回答"过去一年里有多少 60 岁以上患者做过冠脉搭桥"这类问题需要 Text-to-SQL——EHRSQL(Lee et al., NeurIPS 2023)已经证明这条路可行,但它一个问题都离不开表格。另一座是图像孤岛:VQA-RAD、PathVQA、SLAKE 这类医疗视觉问答基准围着单张图像打转,模型看不到图像之外的任何临床上下文。真实临床问题却是两栖的——“这位患者的胸片有没有显示心肥大?如果有,把他入院时的处方列出来”——前半句要看图,后半句要查表,两边模型各答一半。

EHRXQA 的回答分三层。第一层是数据融合:从 MIMIC-IV、MIMIC-CXR、Chest ImaGenome 三个 PhysioNet 数据集中筛出 19,264 个共享患者,把 MIMIC-IV 的 17 张表与胸片区域-异常注释合成一个 18 张表的 mimic_iv_cxr 一体化数据库——胸片信息以 tb_cxr 桥表进入关系模型,图像内容则通过外挂 VQA API 在查询执行时按需获取。第二层是查询语言扩展:NeuralSQL 在标准 SQL 语法里嵌入 FUNC_VQA 函数调用(灵感源自 Binder 的混合程序执行思路),让"视觉判断"成为查询计划里的一个可执行步骤。第三层是规模化出题:417 个模板经五阶段填充(视觉值→操作值→时间→条件值→执行验证)生成 46,152 道有唯一标准答案的题,再用 GPT-4 改写问句并人工审校,避免模型背模板。

这个数据集还附带一个方法论发现。评估中,Image 模态问题的逻辑形式准确率(Acc_LF)高达 87.3%——模型几乎总能写出结构正确的 NeuralSQL;但执行准确率(Acc_EX|pred)只有 48.2%——一半的查询死在 FUNC_VQA 给出错误的视觉判断上。论文据此提出:对多模态临床问答而言,视觉感知可能比逻辑推理是更大的路障。这个结论对后续所有"用大模型连表格带影像一起问"的路线都是一份提前预警。

§0 读法三则:

  1. 这个条目是"基准数据集+新查询语言+附属 VQA 基准"三合一:本体是 46,152 道 QA 对与 mimic_iv_cxr 数据库,方法贡献是 NeuralSQL,副产品是 MIMIC-CXR-VQA——三者获取方式不同(§6)。
  2. 全文统计数字均出自论文正文/表格与 PhysioNet 官方页面,两源逐项互证;唯一的官方表格内部不一致(Image valid 1,838 vs 细分加和 1,847)已在坑 3 存照。
  3. 检索时若把"emrQA"的结果当成 EHRXQA 会拿到完全不相干的数据集——两者只差一个字母,坑 7 有专门辨析。
相邻概念 30 秒辨析速览

EHR 问答领域名字相近的资源密度极高,检索与引用前先对齐这张表(详细辨析见 §7 谱系与避坑清单):

名字 是什么 一句话区分
EHRXQA(本条目) 表格+胸片多模态 QA 基准(2023) 唯一同时要查表和看图的
emrQA MIMIC-III 临床笔记 QA 语料(2018) 早年、纯文本、无执行验证——与 EHRXQA 无继承关系
EHRSQL 纯表格 text-to-SQL 基准(2022) EHRXQA 表格模板的上游;含不可答问题
MIMIC-CXR-VQA 纯图像胸片 VQA(2023) EHRXQA 的姊妹基准与视觉 API 训练集
DrugEHRQA 表格+临床文本 QA(2022) "多模态"先例但模态是文本不是影像
MIMIC-IV / MIMIC-CXR 原始数据集 EHRXQA 的两个上游数据源,本身不是 QA 基准
mimic_iv_cxr EHRXQA 内部数据库的 db_id 不是公开发布的独立数据集名——只在 EHRXQA 的 JSON 里出现

最后一条最容易被搜索坑到:mimic_iv_cxr 这个名字只作为 db_id 存在于 EHRXQA 样本字段中,把它当数据集名去 PhysioNet 搜是搜不到的。

§1 数据集速览:十问十答

Q1:EHRXQA 到底是什么?谁做的?
一个多模态临床问答基准:给定自然语言问题、一个融合了 MIMIC-IV 表格与胸片注释的 SQL 数据库(外加可调用的胸片 VQA API),要求模型生成并执行 SQL/NeuralSQL 得到答案。由 KAIST Graduate School of AI 的 Edward Choi 组主导,与 Microsoft Research、首尔大学盆唐医院等合作完成,11 位作者,NeurIPS 2023 Datasets & Benchmarks Track 发表,数据 2024-07-23 在 PhysioNet 正式发布(v1.0.0)。

Q2:46,152 道题怎么构成的?
按所需模态三分:纯图像(Image-related)16,366 道、纯表格(Table-related)16,529 道、图文混合(Image+Table-related)13,257 道——三者加和精确等于 46,152。全部由 417 个模板生成(Image 168 / Table 174 / Image+Table 75),按 36,174 / 5,170 / 4,808 划分训练、验证、测试。每道题自带标准 SQL/NeuralSQL 查询与标准答案,可直接算执行准确率。

Q3:NeuralSQL 是什么?
一种可执行查询表示:在标准 SQL 里嵌入 FUNC_VQA(question, image_id) 函数调用。执行时引擎遇到该函数就暂停,把括号里的问题与图像 ID 发给外部视觉问答 API,拿到 true/false(或列表)后把返回值代入 SQL 继续执行。灵感来自 Binder(Cheng et al., 2022)的"程序内嵌外挂模型"思路——区别是 Binder 外挂的是 LLM,这里外挂的是医疗 VQA 模型。

Q4:一体化数据库里有什么?
mimic_iv_cxr 数据库共 18 张表:17 张来自 MIMIC-IV v2.2(患者、入院、转科、诊断、处方、检验、微生学等),外加一张 tb_cxr 桥表(6 列:subject_id、hadm_id、study_id、image_id、studydatetime、viewposition),把患者-住院-胸片检查-图像实例四级关系接进关系模型。数据库有 silver(800 患者,机器标注,训练/验证用)与 gold(400 患者,人工标注,测试用)两个版本。

Q5:MIMIC-CXR-VQA 和 EHRXQA 是什么关系?
前者是后者的附属产物。造 EHRXQA 需要一个"给胸片提问"的组件,团队干脆用 Chest ImaGenome 注释自己造了一个纯图像 VQA 基准——377,391 个 (Image, Question, Answer) 三元组、48 模板、7 种内容类型、110 个答案标签——先在这个上头选出最佳 VQA 模型当 FUNC_VQA 的执行器,再把它嵌进 EHRXQA 的多模态题目。它有独立仓库 baeseongsu/mimic-cxr-vqa,可以单独使用。

Q6:题目是人工写的吗?
不是逐题手写,而是"模板+机器生成+人工把关":4 名研究生历时 2 个月手工编写并修订 SQL/NeuralSQL 模板;问题模板的临床效用经神经外科 board-certified 医学专家验证;模板填充后由 GPT-4 改写成自然问句、再人工审校。datasheet 明示没有众包工人(No crowd workers)。silver 数据库的图像标注则直接继承 Chest ImaGenome 的机器生成管线(500 份报告一致性 0.984)。

Q7:评估怎么做的?结果如何?
语义解析三指标:Acc_LF(生成的查询与标准查询精确匹配)、Acc_EX|gt(真值查询执行结果对比)、Acc_EX|pred(预测查询执行结果,端到端)。MIMIC-CXR-VQA 上最佳基线 M³AE* 达 69.2±0.4(* 表示在同语料上预训练);EHRXQA 上 ChatGPT + BM25 检索 few-shot 的 Image 模态 Acc_LF 87.3 / Acc_EX|pred 48.2——逻辑形式近乎满分,端到端掉一半,这就是感知瓶颈的直接证据。

Q8:我现在能拿到什么?
三条路径:① PhysioNet 正式版 v1.0.0(凭证获取:credentialed 账号 + CITI 课程 + 签三上游 DUA,含全部答案);② GitHub 仓库 baeseongsu/ehrxqa(MIT 代码 + 预发布 JSON——故意不含答案,需凭证运行 build_dataset.sh 本地重建);③ 论文与 MIMIC-CXR-VQA 独立仓库公开可读。注意:GitHub 上直接能下的 JSON 没有答案列,这是隐私设计不是数据损坏。

Q9:它和 emrQA、EHRSQL 是什么关系?
都不是同一个东西。emrQA(Pampari et al., 2018)是从 MIMIC-III 临床笔记派生的 QA 语料,只有文本模态,且比 EHRXQA 早五年——名字只差一个字母但完全两个数据集。EHRSQL(Lee et al., 2022)是纯表格 EHR 问答基准,EHRXQA 的 174 个 Table 模板正是从 EHRSQL 的 MIMIC-III 模板适配到 MIMIC-IV 而来(165 个可无缝移植)——可以把 EHRSQL 理解为 EHRXQA 的表格模态上游。

Q10:为什么它对 AI-Ready 重要?
它是"结构化数据库+可执行查询+标准答案"三件套的标杆样本:AI-Ready 的最高形态不是给一堆文档让模型自己读,而是把知识组织成可查询、可验证、可评分的形式。EHRXQA 把临床影像也拉进了这个范式——代价是获取门槛(三 DUA)与模板分布偏差(46,152 道题的覆盖面由 417 个模板决定)。它的 Acc_LF/Acc_EX 落差还提示了一个 AI-Ready 评测的普遍陷阱:查询写对不等于答对。

§2 数据构成与规格

2.1 总量、模态三分与官方表格口径

EHRXQA 总量 46,152 QA 对,由 417 个模板生成,按回答问题所需的数据模态三分。下表为论文 Table 2 与 PhysioNet 页面完全一致的官方数字:

模态 train valid test 合计 模板数
Image-related QA(纯图像) 12,860 1,838 1,668 16,366 168
Table-related QA(纯表格) 12,961 1,852 1,716 16,529 174
Image+Table-related QA(图文混合) 10,353 1,480 1,424 13,257 75
合计 36,174 5,170 4,808 46,152 417

三处加和全部精确吻合:16,366+16,529+13,257 = 46,152;36,174+5,170+4,808 = 46,152;168+174+75 = 417。这是可以在自己表格里放心复算的数字。唯一例外是 Image 模态 valid 一列——官方 Table 2 写 1,838,但 Table 3 的四个患者范围细分加和为 1,847,两者差 9 例,论文与 PhysioNet 两个一手来源在同一处不一致(详见坑 3);本条目总数一律以 Table 2 为准。

读这张表的三个要点:其一,三个模态的体量刻意均衡(各占三分之一强),这不是自然分布而是模板设计的产物——46,152 道题里"必须看图"与"不必看图"各半,避免了"多模态基准里 90% 其实是单模态"的常见注水;其二,valid 与 test 的体量(5,170/4,808)远小于 train,但 test 承载了金标准评估(gold 数据库只有 400 患者),别被"test 只有 4,808 题"误导成"评测集小"——每道题都带可执行的标准查询;其三,模板数与题目数的比值(417:46,152 ≈ 1:111)提示了数据的高度模板聚集性——按模板分层抽样评测比全局平均更能暴露模型的真实施力。

三类模态各有来历:

  • Image 168 模板:由附属基准 MIMIC-CXR-VQA 的 48 个模板"注入目标图像表达"扩展而来——同一个视觉问题在 EHRXQA 里要改写成从数据库语境出发的问法。
  • Table 174 模板:从 EHRSQL 的 MIMIC-III 模板适配到 MIMIC-IV——其中 165 个可无缝移植,其余因两个版本 schema 差异取舍。
  • Image+Table 75 模板:全新设计,覆盖三类时序场景——表格与胸片同现(同时段)、胸片之后才有表格事件、表格事件之后才拍胸片。

2.2 患者范围细分:Table 3 全录

每个模态内部再按患者范围(patient scope)细分:none(不针对特定患者)、single(单个患者)、group(患者群聚合)。这是官方 Table 3(与论文附录 Table C9 一致)的完整数字:

模态 患者范围 train valid test
Image single(1 图像) 6,615 (18.3%) 945 (18.3%) 840 (17.5%)
Image single(2 图像) 3,410 (9.4%) 488 (9.4%) 468 (9.7%)
Image single(N 图像) 1,890 (5.2%) 279 (5.2%) 240 (5.0%)
Image group 945 (2.6%) 135 (2.6%) 120 (2.5%)
Table none 396 (1.1%) 54 (1.0%) 50 (1.0%)
Table single 8,219 (22.7%) 1,151 (22.3%) 1,080 (22.5%)
Table group 4,346 (12.0%) 647 (12.5%) 586 (12.2%)
Image+Table single 9,517 (26.3%) 1,362 (26.3%) 1,210 (25.2%)
Image+Table group 836 (2.3%) 118 (2.3%) 214 (4.5%)

这张表藏着两个使用提示。其一,Image 模态的 single 按"这次查询最多涉及几张图"再分三档(1 图 / 2 图 / N 图),多图问题对 VQA 执行器的要求陡增——基线上 N 图场景端到端准确率掉到 39.6%(§5.3)。其二,percentile 分布并非完全均匀:Image+Table 的 group 类在 test 里占 4.5%(214 例),高于 train 的 2.3%(836 例)——测试集略微加大了最难题型的权重,复现对比时别假设各 split 同分布。

2.3 一体化数据库:18 张表与 tb_cxr 桥接

mimic_iv_cxr 数据库是 EHRXQA 的"考场"——所有查询都在它上面执行。它由 18 张表组成:17 张继承自 MIMIC-IV v2.2(患者、入院、转科、诊断、处方、检验等临床域的关系表),外加一张tb_cxr 桥表把胸片维度接进关系模型。

tb_cxr 只有 6 列,却完成了三源缝合的关键一跳:

列 语义
subject_id 患者 ID(与 MIMIC-IV patients 表主键一致)
hadm_id 住院 ID(关联 admissions 表)
study_id 胸片检查 ID(对应 MIMIC-CXR 的 study)
image_id 图像实例 ID(对应 Chest ImaGenome 注释的图像)
studydatetime 检查时刻(用于时间过滤类问题)
viewposition 投照体位(AP/PA 等,本身就是 110 个答案标签里的 4 个)

有了这张桥表,"某患者某次住院期间拍的胸片"就成了一条标准 SQL JOIN 路径;而"胸片上有没有显示某异常"则交给 FUNC_VQA 在执行时现场判断——结构化部分进数据库,视觉部分走外挂 API,两不相扰。

数据库发布为 silver 与 gold 两个版本,各含 18 张 CSV 表与一个 mimic_iv_cxr.sql 建库脚本:

版本 患者数 标注来源 用途
silver 800 机器生成(Chest ImaGenome 管线,报告级一致性 0.984) 训练 + 验证
gold 400 人工标注 测试(唯一金标准)

注意两个易混数字:gold 数据库是 400 患者(PhysioNet Files and Structure 明示),而 Chest ImaGenome 自己的 gold 队列是 500 患者——EHRXQA 取的是其子集;MIMIC-CXR-VQA 的测试图像池也是 500 张,三处"gold/500"含义各不相同(坑 4 有对照)。

17 张 MIMIC-IV 表逐表速查

对表格模态使用者,提前了解每张表承载的查询域可以省大量摸索时间(表名与 MIMIC-IV v2.2 原库一致,字段未做改名):

表 承载的查询域 典型模板话题
patients 人口学:性别、年龄 “多少岁以上的患者……”、gender 过滤槽
admissions 入院/出院时间、住院类型 “本次住院期间”"去年入院"类时间锚定
icustays ICU 入住时段 重症时段内的事件限定
transfers 院内转科记录 "转到 XX 病房的患者"类
diagnoses_icd + d_icd_diagnoses 诊断编码与字典 “死亡率最高的诊断”“患有 XX 病的患者”
procedures_icd + d_icd_procedures 操作/手术编码与字典 “做过冠脉搭桥”“导管插入术”
prescriptions 处方:药名、剂量、时间 "开出肼屈嗪后……"类跨模态锚点(样例画廊高频主角)
cost 费用 “药价是多少”(Table none 类样例)
labevents + d_labitems 化验事件与项目字典 “镁化验”“白细胞计数”
chartevents + d_items 床旁记录与条目字典 生命体征、床旁评估
inputevents / outputevents 输液/出入量 “输了多少……”
microbiologyevents 微生物培养 MIMIC-IV 特有表(MIMIC-III 模板适配时的增量来源)

两个 schema 层面的提示:其一,tb_cxr.viewposition 的取值(AP/PA)恰好是 MIMIC-CXR-VQA 110 个答案标签里 4 个 extras 的一部分——表格列与视觉答案空间在此处有意打通,plane 类问题才能"用表格答影像题";其二,所有表保持 MIMIC-IV 原名与主键,因此针对 MIMIC-IV 写过 SQL 的团队几乎零迁移成本,但时间过滤必须用 EHRXQA 的虚拟历法(§2.4)。

表间主键-外键地图(写 JOIN 前先看这张)
patients (subject_id)
├── admissions (hadm_id) ──┐
│   ├── icustays           │
│   ├── transfers          │
│   ├── prescriptions      │
│   ├── procedures_icd     │
│   ├── cost               │
│   └── tb_cxr (subject_id, hadm_id)
│        └── study_id / image_id → MIMIC-CXR-JPG 图像
├── diagnoses_icd (subject_id, hadm_id)
├── labevents (subject_id, hadm_id)
├── chartevents / inputevents / outputevents (subject_id, hadm_id)
└── microbiologyevents (subject_id, hadm_id)

字典表(与事件表按 item_id/code 关联):
d_icd_diagnoses ↔ diagnoses_icd · d_icd_procedures ↔ procedures_icd
d_labitems ↔ labevents · d_items ↔ chartevents

跨模态查询的标准路径即沿 patients → admissions → tb_cxr 下钻取得 image_id,再交给 FUNC_VQA;时间类条件在 admittime / studydatetime / charttime 三类时间列上施加。所有事件表都同时携带 subject_id 与 hadm_id,"本次住院期间"就是 hadm_id 等值连接——EHRXQA 的 [time_filter_within] 模板全部建立在这条捷径上。

2.4 时间轴压缩与"当前时刻"锚定

MIMIC-IV 原版去标识把真实时间平移到 2100-2200 年的假想窗口。EHRXQA 在此基础上再压缩一步:把时间跨度收窄到 2100-2105 五年,并设定"当前时刻"为 2105-12-31 23:59:00——所有"最近一年""去年以来"式的时间过滤都以这个锚点计算。没有出院时间的在院患者,则视为仍住在医院。使用含义:数据里的一切时间差都是相对这个虚构历法成立的,别拿去做任何真实时间跨度分析,也别和上游 MIMIC-IV 的 2100-2200 时间戳直接混算。

2.5 上游三源与共享患者

上游 版本 贡献 原始采集期
MIMIC-IV v2.2 17 张结构化临床表(表格模态全部内容) 2008-2019
MIMIC-CXR-JPG v2.0.0 胸片检查元数据(study/图像实例) 2011-2016
Chest ImaGenome v1.0.0 胸片区域-异常结构化注释(silver/gold 队列来源) 同 MIMIC-CXR

三个源的采集窗口并不重合,各自独立去标识后能对上的患者有限——三者交集为 19,264 个共享 patient ID,EHRXQA 的 QA 对全部构建在这个交集上。这也是为什么获取 EHRXQA 必须分别签三个上游数据集的 DUA(§6):它本质上是三份数据的派生组合,任何一份的授权都不能替代另外两份。

交集数字的两层含义值得展开。对数据规模预期:MIMIC-IV 有约 30 万患者、MIMIC-CXR 约 6.5 万,但三者共同覆盖且带 Chest ImaGenome 注释的只有 19,264 人——EHRXQA 再从中取 silver 800 / gold 400 建库,所以它的患者覆盖面远小于任一上游,单患者可出题量被模板槽位与有效答案约束双重限制(46,152 题 / 1,200 库内患者 ≈ 人均 38 题)。对抽样代表性:能同时进三个集合的患者隐含"住院期间拍过胸片 + 影像可被 ImaGenome 管线处理"的选择条件,存在轻度健康使用偏倚——从 EHRXQA 得出的任何人群级统计结论,外推到全院患者群都要打折扣。

2.6 三类模态问题的完整样例

三类模态的问题长什么样、答案怎么来,各看一个构造样例(查询为示意改写,非逐字官方样本;官方样本见 §3.5 的 15 字段 JSON):

样例一:Table 模态(单患者)

项 内容
问题 这位患者这次住院期间被诊断出最严重的贫血程度是什么?
模态 Table(患者范围 single,无视觉环节)
查询路径 patients → admissions → diagnoses_icd/d_labitems,按时间窗过滤后取极值
答案形式 单值(如具体检验值或诊断名)

样例二:Image 模态(单患者单图)

项 内容
问题 该患者的胸片是否显示胸腔积液?
模态 Image(患者范围 single·1-image)
查询路径 tb_cxr 定位 image_id → FUNC_VQA(‘…pleural effusion?’, image_id) 判真伪
答案形式 yes / no

样例三:Image+Table 模态(图文混合)

项 内容
问题 有多少女性患者在最近一次住院期间拍过显示气胸的胸片?
模态 Image+Table(患者范围 group)
查询路径 patients(性别过滤)→ admissions(最近住院)→ tb_cxr(检查关联)→ FUNC_VQA(逐图判断气胸)→ COUNT 聚合
答案形式 数值

三个样例对应三种难度梯度:样例一纯关系逻辑,成熟 Text-to-SQL 即可处理;样例二只有一个视觉谓词,成败系于 FUNC_VQA 一次判断;样例三两者叠加还要跨患者聚合——这正是 group 类端到端准确率只有 1.7% 的原因(§5.3)。

§3 NeuralSQL 与问题生成管线

3.1 NeuralSQL:在 SQL 里调用视觉问答

EHRXQA 的任务形式按模态二分:Table 模态走标准 Text-to-SQL;Image 与 Image+Table 模态走 Text-to-NeuralSQL。NeuralSQL 的全部魔力在一个函数:FUNC_VQA(question, image_id)。

它的执行语义:

  1. SQL 引擎正常解析并执行查询;
  2. 遇到 FUNC_VQA 时暂停,把括号内的问题文本与图像 ID 发给外部视觉问答 API;
  3. VQA 模型看图返回 true/false(或答案);
  4. 返回值代入谓词,SQL 引擎继续执行余下的关系逻辑。

一个示意性的多模态查询长这样(结构仿照论文示例,非逐字引用):

SELECT COUNT(DISTINCT P.subject_id)
FROM patients AS P
JOIN admissions AS A ON P.subject_id = A.subject_id
JOIN tb_cxr AS C ON P.subject_id = C.subject_id
WHERE A.admittime BETWEEN '2105-01-01' AND '2105-12-31'
  AND FUNC_VQA('Does the chest X-ray show pleural effusion?', C.image_id) = true
  AND P.gender = 'F';

这条查询里,“60 岁以上”“女性”"某时间段入院"由数据库引擎解决,"胸片有没有胸腔积液"由 VQA 模型解决——一次查询、两种能力协作。实现层面,NeuralSQL 解释器用 sqlglot 解析 SQL,并对涉及多张图像的查询做分批推理(batch-wise inference),让"数一数有多少患者的胸片显示某征象"这类聚合问题可以实际跑起来。

设计灵感来自 Binder(Cheng et al., 2022):Binder 在程序里嵌入 LLM 调用来补齐自然语言推理步骤,EHRXQA 把被外挂的模型换成医疗 VQA,把程序换成 SQL。这个"查询语言即编排层"的思路,比后来流行的"工具调用 Agent"早了半年,而且给出了可复算的执行准确率定义。

官方实例逐行解剖(train 集 id=0)

PhysioNet 文档给出的官方示例是一条完整的 NeuralSQL,值得逐层读透——它同时展示了时间过滤、嵌套子查询与 FUNC_VQA 的配合:

SELECT 1 * ( strftime('%j',current_time) - strftime('%j',t1.studydatetime) )
FROM ( SELECT tb_cxr.study_id, tb_cxr.studydatetime
       FROM tb_cxr
       WHERE tb_cxr.study_id IN (
           SELECT DISTINCT tb_cxr.study_id FROM tb_cxr
           WHERE tb_cxr.subject_id = 18679317
             AND strftime('%y',tb_cxr.studydatetime) = '2105' )
     ) AS t1
WHERE FUNC_VQA('is the chest x-ray depicting any anatomical findings?',
               t1.study_id) = true
  • 对应问题:“患者 18679317 在 2105 年最近一次显示任何解剖学发现的胸片,距现在多少天?”;
  • 最内层子查询:按患者 ID + 年份过滤([time_filter_global] 的 SQL 化)圈出该患者 2105 年的全部胸片 study;
  • 中层:对每个 study 取检查时刻;
  • FUNC_VQA 层:对每个候选 study 调用视觉判断"是否显示解剖学发现"([category]=anatomicalfinding 的视觉值槽),只保留 true 的行——视觉判断在这里充当了一个"虚拟 WHERE 条件";
  • 最外层:对过滤后剩下的"最近一次"检查计算与 current_time(锚定 2105-12-31 23:59:00)的天数差([time_filter_exact] + 操作值槽 [unit_count]=days)。

这个实例还暴露了执行成本的真实形状:current_time 与 strftime('%j',...) 是 SQLite 方言——复现环境必须用 SQLite 或做方言转换;func_vqa 在子查询结果集的每一行上都要触发一次模型推理,"天数差"问题实际执行的 VQA 调用次数等于该患者当年全部胸片数。官方 README 的示例里 query 字段写 strftime('%J',...)(大写 J)与 PhysioNet 文档(小写 %j)略有出入,以 PhysioNet 文档为准(SQLite 的 %j 才是年内天序号)。

3.2 五阶段生成管线

46,152 道题不是人工逐题写的,而是模板经五阶段自动填充、再执行验证筛出的:

阶段 做什么 例子
Stage 0 选定模板 “统计 [time_filter_global] 胸片显示 [attribute] 的 {gender} 患者”
Stage 1 视觉值采样 给 [attribute] 槽填入 lung opacity、support devices 等
Stage 2 操作值采样 给 [age_group] 填入 20s…60 or above 等操作数
Stage 3 时间模板 确定时间过滤子句与时间窗口
Stage 4 条件值采样 填 {gender}/{year} 等条件占位符

填充完成后立即在数据库上执行验证:只有能产出有效答案的 (Question, SQL/NeuralSQL) 对才能存活——这保证了每道题都有唯一、可验证的标准答案,没有"题目本身无解"的脏样本。人工环节在两头顶端:模板设计由 4 名研究生历时 2 个月手工编写修订、临床效用经神经外科 board-certified 医学专家验证;成品问句经 GPT-4 改写并人工审校。datasheet 明示全程无众包工人。

3.3 时间过滤三类

承袭 EHRSQL 的设计,模板里的时间子句分三型,决定了问题的难度与 SQL 写法:

  • [time_filter_global]:全局时间窗,如"去年"“2022 年内”——对应 WHERE 子句里的绝对/相对时间比较;
  • [time_filter_within]:窗口内聚合,如"同一次住院期间"——需要按 hadm_id 分组后比较事件先后;
  • [time_filter_exact]:精确时刻锚定,如"最近一次胸片检查"——需要先求最大时间戳再回查,往往产生嵌套查询。

时间过滤是 Table 与 Image+Table 模板的共同难点:三类模板的分布直接影响了"看似相似的题目实际 SQL 复杂度差一个量级"。

三类时间过滤的 SQL 形态对照
类型 自然语言样例 典型 SQL 形态 复杂度来源
[time_filter_global] “in 2105” / “last year” strftime('%y', col) = '2105' 或与 2105-12-31 锚点做区间比较 低——单层谓词
[time_filter_within] “within the same hospital visit” / “within the same day” 事件表自连接 + hadm_id 相等(或日期截断相等)判定 中——跨表 JOIN 且要对齐"事件锚点"
[time_filter_exact] “the last CXR study” / “2105-12-26 15:00:00” 嵌套子查询先求 MAX(studydatetime) 再回查该时刻的事件 高——"先定锚点、再查事件"两步依赖

对语义解析模型的实际影响:同一模态内,global 类问题 Acc 通常显著高于 exact 类——后者要求模型生成正确的嵌套结构。做误差分析时建议按"模态 × 时间过滤类型"二维切片,比只按模态切片更能定位问题:大量"解析错误"实际集中在 exact 类的嵌套结构上,而非 schema 理解本身。

3.4 GPT-4 改写与防背题设计

模板直接渲染出的问句风格机械(“统计……的数量”),模型可以靠句式捷径蒙混。EHRXQA 用 GPT-4 把模板问句改写成多样化自然问法、再人工审校,并把改写来源记在每个样本的 para_type 字段(machine / GPT-4)里。防背题的另一半靠统计:Prior(Question) 基线(只看问题文本猜最常见答案)在 MIMIC-CXR-VQA 上只有约 30% 的准确率——数据集的语言偏差低,靠语言先验作弊的空间很小(§5.3)。

把这套"防背题三件套"抽象出来,适用于一切模板生成型基准:

  1. 表层多样化:LLM 改写 + 人工审校,切断"句式 → 答案"的浅层关联;
  2. 先验可测:必须报告一个 language-only 基线(Prior/多数类/盲猜),让"不看图/不查库能拿几分"成为公开数字而不是悬案;
  3. 输出空间封闭:答案枚举化或可执行化,杜绝开放式生成里的"怎么说都对"。

三者的共同目标是让"分数高"尽可能等价于"能力真"——这是模板生成路线必须自证的清白,因为模板腔是这类数据集的原罪。

3.5 发布文件与 JSON 15 字段

PhysioNet 正式版与 GitHub 仓库的文件组织:

ehrxqa/
├── database/
│   ├── silver/            # 18 张 CSV + 建库脚本(训练/验证用,800 患者)
│   │   ├── admissions.csv
│   │   └── ...
│   └── gold/              # 18 张 CSV(测试用,400 患者,人工标注)
├── dataset/
│   ├── train.json         # 含答案(PhysioNet 正式版)
│   ├── valid.json
│   └── test.json
└── mimic_iv_cxr.sql       # 一体化数据库建库脚本

每个 QA 样本为 15 字段 JSON 对象:

字段 含义
db_id 固定为 mimic_iv_cxr
split train / valid / test
id 样本唯一标识
question 改写后的自然语言问题
template 填值后的完整模板
query 标准 SQL / NeuralSQL(含 FUNC_VQA)
value 模板填充值记录
q_tag / t_tag / o_tag / v_tag / tag 各层级标签(问题/模板/操作/视觉值/汇总)
para_type machine 或 GPT-4(改写来源)
is_impossible 是否无答案题
answer 标准答案列表(无答案题为空列表)

一个关键隐私设计:GitHub 仓库里的预发布版(_train/_valid/_test.json)故意不含 answer 字段——完整答案必须用 PhysioNet 凭证运行 bash build_dataset.sh 本地重建。首次下载者看到"没有答案"不是下载坏了,而是设计如此(坑 2 与 §6.3 详述)。

官方 JSON 实例全录(train 集 id=0)

把上面那条 NeuralSQL 放回它的 15 字段上下文,可以看清"标签链"如何逐级具体化(answer 字段按官方文档以 […] 略去):

{
  "db_id": "mimic_iv_cxr",
  "split": "train",
  "id": 0,
  "question": "how many days have passed since the last chest x-ray of patient 18679317 depicting any anatomical findings in 2105?",
  "template": "how many days have passed since the last time patient 18679317 had a chest x-ray study indicating any anatomicalfinding in 2105?",
  "query": "select 1 * ( strftime('%j',current_time) - strftime('%j',t1.studydatetime) ) from ( select tb_cxr.study_id, tb_cxr.studydatetime from tb_cxr where tb_cxr.study_id in ( select distinct tb_cxr.study_id from tb_cxr where tb_cxr.subject_id = 18679317 and strftime('%y',tb_cxr.studydatetime) = '2105' ) ) as t1 where func_vqa(\"is the chest x-ray depicting any anatomical findings?\", t1.study_id) = true",
  "value": {"patient_id": 18679317},
  "q_tag": "how many [unit_count] have passed since the [time_filter_exact1] time patient {patient_id} had a chest x-ray study indicating any ${category} [time_filter_global1]?",
  "t_tag": ["abs-year-in", "", "", "exact-last", ""],
  "o_tag": {"unit_count": {"nlq": "days", "sql": "1 * ", "type": "days", "sql_pattern": "[unit_count]"}},
  "v_tag": {"object": [], "category": ["anatomicalfinding"], "attribute": []},
  "tag": "how many [unit_count:days] have passed since the [time_filter_exact1:exact-last] time patient {patient_id} had a chest x-ray study indicating any anatomicalfinding [time_filter_global1:abs-year-in]?",
  "para_type": "machine",
  "is_impossible": false,
  "answer": [...]
}

标签链的读法是从抽象到具体逐级"填格子":q_tag 是骨架(槽位全部裸露)→ t_tag/o_tag/v_tag 分别记录时间、操作、视觉三个维度的采样值 → tag 把采样值回填进骨架得到中间形态 → template 注入数据库真实值(患者 ID、年份)得到最终规范问句 → question 是 GPT-4 改写后的自然形态。这条链对下游有三个实用价值:其一,可按 tag/q_tag 分组做模板级误差分析;其二,para_type 让你区分"机器句式"与"GPT-4 句式"两类输入分别评测;其三,value 字段保留了问题中引用的真实数据库值(此处的 patient_id),做数据血缘审计时不必重新解析问题文本。

3.6 一条 group 类查询的执行走查

官方实例(上一节)演示的是单患者精确时刻题;把难度抬到 group 类(跨患者聚合),执行时序长这样——以 §2.6 样例三为底(示意改写):

SELECT COUNT(DISTINCT P.subject_id) AS n_patients
FROM patients AS P
JOIN admissions AS A
  ON P.subject_id = A.subject_id
  AND A.admittime = (
      SELECT MAX(A2.admittime) FROM admissions A2
      WHERE A2.subject_id = P.subject_id          -- 最近一次住院
  )
JOIN tb_cxr AS C ON P.subject_id = C.subject_id
WHERE P.gender = 'F'
  AND FUNC_VQA('Does the chest X-ray show pneumothorax?', C.image_id) = true;

执行时序六步:

步 发生什么 能力归属
1 解析 SQL,识别 FUNC_VQA 占位 NeuralSQL 解释器(sqlglot)
2 执行关系部分:性别过滤、按患者取最近住院、JOIN 出候选 (patient, image) 集合 数据库引擎
3 收集全部待判图像 ID,分批(batch-wise)发给 VQA API NeuralSQL 解释器
4 VQA 模型逐图判断"有无气胸",返回 true/false 外部 VQA 模型(官方选型 M³AE*)
5 布尔值代回谓词,过滤候选集 数据库引擎
6 COUNT(DISTINCT) 聚合输出最终数值 数据库引擎

三个实现细节决定这套机制真的能跑:其一,FUNC_VQA 只返回封闭答案(true/false 或枚举),SQL 谓词才有确定语义;其二,分批推理把"N 张图的聚合判断"变成可并行任务——group 类问题一次查询可能触发数十上百次模型调用;其三,整条流程在固定 VQA 模型下是确定性的,Acc_EX 因此可复算。代价同样清楚:VQA 的一次误判会沿谓词传染整条查询,且 group 类把多次误判叠乘——这正是它在基线上只剩 1.7% 的机制根源(§5.3)。

§4 附属基准 MIMIC-CXR-VQA

4.1 为什么顺手造了一个新 VQA 基准

EHRXQA 的多模态题目需要一个可被 SQL 调用的胸片问答执行器。团队没有采用现成医疗 VQA 数据集(VQA-RAD、PathVQA 等要么规模小、要么模态不搭),而是直接用 Chest ImaGenome 的结构化注释自己造了一个:以 MIMIC-CXR 图像为底、以模板驱动方式生成大规模"看图答题"对,这就是 MIMIC-CXR-VQA。它身兼三职:FUNC_VQA 的训练与选型场、EHRXQA Image 模板的孵化器(168 个 Image 模板由它的 48 个模板扩展而来)、以及一个可独立使用的纯图像胸片 VQA 基准(独立仓库 baeseongsu/mimic-cxr-vqa)。

"为什么不用现成的"值得展开——把候选对象摆在一起,缺口一目了然:

候选 规模 为什么不够用
VQA-RAD 数百题 规模差三个数量级,且非 MIMIC-CXR 图像域
PathVQA 约 3.3 万题 病理切片图像,与胸片域不同;开放式答案不利于作 SQL 谓词
SLAKE 数千题 含中英双语但规模小、影像科检查混编
VQA-MED 竞赛题集 逐年变化、无稳定训练集;答案空间开放
自建 MIMIC-CXR-VQA 377,391 同图像域、封闭标签空间、可按模板切片——唯一同时满足三者

这个决策的副产品价值后来超过了初衷:MIMIC-CXR-VQA 以约 11 倍于 PathVQA 的规模成为当时最大的医疗 VQA 资源,其"封闭标签空间 + 内容类型切片"的设计也被后续医疗 VQA 工作反复引用。

4.2 规模与结构

属性 数值
(Image, Question, Answer) 三元组 377,391(论文正文与 datasheet 一致)
模板 48 个
内容类型 7 种:anatomy(解剖)/attribute(属性)/presence(存在性)/abnormality(异常)/plane(投照面)/gender(性别)/size(尺寸)
答案标签 110 个 = 36 objects + 68 attributes + 4 extras [‘M’,‘F’,‘AP’,‘PA’] + yes/no
图像池 训练 164,398 张 + 验证 8,653 张(95:5)+ 测试 500 张(gold 人工标注)
划分 按患者划分,无患者跨集泄漏

110 个答案标签的设计值得注意:答案空间封闭且小(是/否、体位、性别、解剖结构名、异常属性名),这让 VQA 任务可以按分类问题评测(F1 micro 0.73),也保证了 FUNC_VQA 返回值的确定性——SQL 谓词需要的是可比较的布尔/枚举值,不是自由文本。

从原始图像到数据集:五步预处理管线

377,391 个三元组不是直接从 MIMIC-CXR 堆出来的,论文附录 B.2.2 给出五步预处理,每一步都在塑造数据分布:

  1. 图像选择:只保留正位(PA/AP)投照;每个 study 按"最早检查时间"选一张代表图(同刻并列取 dicom_id 字母序第一)——一个 study 一图,控制图像粒度;
  2. 离群控制:每患者连续 study 数截断至 20;剔除任一解剖部位缺边界框的图像;剔除任一部位宽度偏离均值三倍标准差的图像;
  3. 标签池对齐:删除仅存在于 silver 集的 6 个属性(aortic graft/repair、artifact、bronchiectasis、diaphragmatic eventration、pigtail catheter、skin fold)与对象 left arm(并连带 right arm)——强制 silver 与 gold 的标签空间完全一致,否则测试集会出现训练时从未见过的类别;
  4. 本体传播:利用 Chest ImaGenome 的三类本体关系做标签精化——对象父子(左下肺野有肺炎 ⇒ 左肺有肺炎)、属性父子(肺癌 ⇒ 肺 opacity)、可行关系过滤("左肺 + 锁骨骨折"这类本体禁止组合被剔除);
  5. 划分:silver 队列按 95:5 切训练/验证图像池(164,398 / 8,653 张),gold 队列 500 张全部作测试,并平衡异常/正常图像比例。

第 3、4 步最容易被忽视却最影响复现:跳过标签池对齐会导致"测试集有训练没见过的标签";跳过本体传播会把"儿子部位有病、父亲部位没标"当作假阴性训练——两条都做对,才得到论文口径的 110 标签空间与 377,391 三元组。第 1 步"一 study 一代表图"则是把"同一检查多张图"的冗余压掉,代价是丢失同 study 内多视角信息——做影像侧研究时要知道这个取舍。

答案标签空间的四个象限
象限 内容 对应内容类型 考察能力
解剖结构(36 个) 左/右肺野各分上中下区、心影、纵隔、脊柱、肋膈角等 anatomy 定位感知
异常属性(68 个) 肺不张、胸腔积液、气胸、肺炎、心影增大、管线装置…… attribute / presence / abnormality 病征识别
技术属性(4 个) ‘M’ / ‘F’(性别)、‘AP’ / ‘PA’(体位) gender / plane 全局图像判断
布尔响应(2 个) yes / no presence 类验证题 判别输出格式

这一空间完全由 Chest ImaGenome 的注释体系决定——它既是 MIMIC-CXR-VQA 可规模化的原因(每个 object-attribute 对都有 563 个关系可出题),也是它"问不了肿瘤尺寸"这类精细视觉问题的天花板(§5.3 的局限)。用 MIMIC-CXR-VQA 训练出的模型,本质上是一个"36×68 结构化感知器 + 体位性别判别器",把它接进 FUNC_VQA 时要意识到它答不了标签空间之外的问题。

4.3 五基线结果

官方 Table 4(test 集 Acc,± 为标准差;* 表示在同语料上额外预训练):

基线 Acc
Prior (Most)——永远猜最常见答案 25.4
Prior (Question)——按问题文本猜最常见答案 32.4
PubMedCLIP 54.9±1.3
PubMedCLIP* 56.5±2.1
MedViLL* 63.6±0.1
M³AE 68.9±0.3
M³AE* 69.2±0.4(最佳,被选为 FUNC_VQA 执行器)

三条读数:其一,Prior(Question) 只有约 30%,说明靠语言先验无法作弊,答题必须真的看图;其二,同语料预训练带来稳定增益(PubMedCLIP→PubMedCLIP* +1.6,M³AE→M³AE* +0.3),领域适配在医疗 VQA 上依然有效;其三,即使最佳模型也只有 69%,离"可放心当 SQL 谓词用"还有距离——这个缺口直接传导为 EHRXQA 的端到端失分(§5.3)。除 Acc 外官方还报告 F1 micro 0.73,并提出 AUROC_rel(相对感知参考分数)作为排序稳定性指标。

AUROC_rel:给"感知上限低于 100%"的现实打补丁

传统 VQA 评测默认准确率上限是 100%,但胸片感知不是:放射科医生之间也存在观察者间差异,某些体征在图像上本就难以确定。论文据此为单图验证题设计了一个感知参考模型(针对每个 object-attribute 对的分类器),用它的 AUROC 作分母、被评模型的 AUROC 作分子:

AUROC_rel(o, a) = AUROC_VQA(o, a) / AUROC_ref(o, a)

读数含义:M³AE* 的 1.05±0.09 表示其感知判别力已略超这个保守参考基准;PubMedCLIP 的 0.82 则表示还差约两成。这个指标的价值不在绝对值,而在把"模型不行"细分为"模型没到人类参考线"与"参考线本身也不高"两种情形——对临床部署决策(什么感知任务可以放手给模型)是一个更诚实的标尺。

4.4 七种内容类型逐类拆解

48 个模板按考察的视觉能力分七类(示例问句为示意改写,方向与官方模板一致):

内容类型 考察什么 示例问句 在 EHRXQA Image 模板中的去向
anatomy(解剖) 识别图中解剖结构 “列出这张胸片上的所有解剖学发现。” 单图列举/验证类模板的主体
presence(存在性) 判断某结构/征象在否 “这张胸片显示心影了吗?” yes/no 谓词的主要来源,直接喂 SQL 布尔判断
abnormality(异常) 病征级判断 “该胸片是否显示胸腔积液?” FUNC_VQA 高频问题域(§2.6 样例二)
attribute(属性) 异常的属性描述 “心影增大了吗?” 属性比较/验证类模板
size(尺寸) 相对大小判断 “心影是否大于胸腔宽度的一半?” 少量专用模板
plane(投照面) 全局技术属性 “这是 PA 位片吗?” 与 tb_cxr.viewposition 列打通,可纯表格作答
gender(性别) 患者全局属性 “这是男性患者的片子吗?” 与 patients.gender 列冗余对齐,可交叉验证

两类"非视觉"类型(plane、gender)的设计最容易被低估:它们把图像级问题与数据库列(viewposition、gender)有意打通,使同一个问题可以走两条作答路径——这让评测能分离"真看图"与"查表猜"两种策略,也让 110 标签空间里的 4 个 extras(‘M’,‘F’,‘AP’,‘PA’)天然成为 FUNC_VQA 与 SQL 之间的语义桥梁。理解了这一点,才能解释为什么 MIMIC-CXR-VQA 的部分题目准确率高得"不像看图题"——它们本来就是可查表题。各标签的完整构成见附录 J。

§5 EHRXQA 评估:感知瓶颈论

5.1 三指标定义

指标 度量什么 含义
Acc_LF 预测查询与标准查询的逻辑形式精确匹配 语义解析质量(写对了吗)
Acc_EX\ gt 真值查询执行结果 vs 真值答案
Acc_EX\ pred 预测查询执行结果 vs 真值答案

Acc_LF 与 Acc_EX|pred 的组合是这套评估的灵魂:前者只考"查询写得对不对",后者还要过执行关——对多模态查询,执行关里就埋着 FUNC_VQA 的视觉判断。两者之间的落差大小,直接量化了"感知拖了多少后腿"。

四个实现细节决定了复现时数字能不能对上:

  1. Acc_LF 是归一化后的精确匹配——变量重命名、空白与大小写差异不应计为错误,复现时必须实现同级别的 SQL 规范化(官方用 sqlglot 解析后比较抽象语法树),否则会低估解析质量;
  2. Acc_EX|gt 在 Table 模态恒为 100%——真值查询本来就是把答案从库里查出来的,该指标只在图像模态才有信息量(此时它等于 VQA 模型在该题所需图像上的判断正确率,Image 模态 49.4);
  3. 答案以集合比较——answer 字段是列表,单答案题也要按集合语义比对,避免顺序噪声;
  4. Acc_EX|pred 对"预测查询执行报错"计为错——没有语法容错,这也是 Fixed prompt 策略端到端分数异常低的原因之一(解析崩 → 执行无从谈起)。

5.2 基线设置与主结果

官方 Table 5:ChatGPT(gpt-3.5-turbo-0613)+ M³AE(充当 VQA API),N=10 few-shot,两种示例选择策略:

模态 策略 Acc_LF Acc_EX\ pred
Image BM25 (train)——按问题相似度从训练集检索示例 87.3 48.2
Image Fixed prompt——固定示例 1.1 17.4
Table BM25 (train) 73.0 92.9
Table Fixed prompt 4.9 30.0
Image+Table BM25 (train) 72.5 65.9
Image+Table Fixed prompt 4.8 35.7

两个醒目的模式。第一,示例选择决定生死:Fixed prompt 下 Acc_LF 全线崩到个位数(Image 仅 1.1——模型连查询语法都拼不对),换成 BM25 检索相似问题的示例后 Acc_LF 跃升至 72-87。few-shot 检索不是锦上添花而是必要条件。第二,两种模态的失分位置相反:Image 模态 Acc_LF 87.3 → Acc_EX|pred 48.2,逻辑近乎满分、执行掉一半;Table 模态 Acc_LF 73.0 → Acc_EX|pred 92.9,写法只有 73 分但执行高达 93(等价 SQL 照样算对,且无视觉环节可出错)。

难度梯度切片:图像数量决定生死

论文 Section 6.2 按患者范围切片给出端到端准确率(Acc_EX|pred,BM25 策略),梯度清晰得近乎残酷:

场景 需判断的图像量 Acc_EX\ pred 失效机理
单患者单图(Image, single 1 图) 1 张 最高档 一次 VQA 判断,误差不累积
单患者双图对比(Image, single 2 图) 2 张 次之 两次判断 + 集合作差
单患者 N 图计数(Image, single N 图) 数张至二十张 39.6% 多次判断的误差按幂累积
群体聚合(Image/group、Image+Table group) 大量患者 × 各自图像 1.7% 成百上千次判断链式聚合,几乎必然出错

这组数字的工程翻译:FUNC_VQA 是一个"每次调用约 60-70% 可靠的布尔传感器"(M³AE* 的单图水平),任何要把它的输出串成长链的查询都会被误差累积压垮。想要在群体级问题上拿到可用精度,要么等单图感知接近放射科水平,要么把聚合逻辑改成"先 SQL 粗筛把图像量压到个位数再看图"——而后者恰恰是 Image+Table 反超纯 Image 的原因。

5.3 核心发现:感知是更大的路障

把 5.2 的落差与难度梯度放在一起,论文的核心结论浮出水面:

  • 多图场景(N-image scope)端到端准确率降至 39.6%;
  • group scope(跨大量图像聚合判断)仅 1.7%——几乎全军覆没;
  • Image+Table(65.9)反而高于纯 Image(48.2):表格条件缩小了图像搜索空间,视觉判断更容易命中。

论文原文表述为:“visual perception could be a bigger roadblock … than logical reasoning”——视觉感知可能比逻辑推理是更大的路障。对后续工作这条结论的推论相当具体:提升多模态临床问答,优先级最高的不是更强的 SQL 生成器,而是更可靠的胸片 VQA 执行器;而在执行器变强之前,把问题设计成"表格条件先行、缩小图像范围"(I+T 模式)比开放式纯图像问题更实用。

从这组实验还能引出三个未被论文明说、但数据支持的推论:

  1. 多模态不是平均用力:表格条件对视觉搜索的剪枝作用(I+T 65.9 > Image 48.2)意味着"先查后看"的系统架构天然优于"先看后查"——临床决策支持系统应把结构化过滤放在视觉验证之前;
  2. 感知误差在聚合场景被放大而非平均:单图 60-70% 的判断力,到 group 场景只剩 1.7%,说明评估医疗 VLM 不能只看单图指标,要按应用的真实调用链路(几次判断、如何聚合)折算有效精度;
  3. 解析侧的"已解决"是有条件的:87.3% 的 Acc_LF 依赖 BM25 检索到的同模板示例——对新模板/新 schema 的泛化仍未验证,把它读成"LLM 已掌握医疗 SQL"属于过度解读。

§6 获取与许可

6.1 三门槛获取流程

EHRXQA 数据本体在 PhysioNet(v1.0.0,2024-07-23 发布,DOI 10.13026/bp5y-qt70)凭证发放,获取流程三步,一步不能省:

  1. PhysioNet credentialed 账号:提交身份与机构信息,PhysioNet 审核签署通用 DUA;
  2. CITI 课程:完成 CITI Program 的 “Data or Specimens Only Research” 课程并上传证书;
  3. 分别签署三个上游 DUA:mimic-cxr-jpg/2.0.0、chest-imagenome/1.0.0、mimiciv/2.2——因为 EHRXQA 是三者的派生组合,每份上游授权各自独立生效。

全部通过后即可在项目页下载。注意 PhysioNet credential 政策对部分地区/IP 限制访问——页面在部分网络环境下会提示数据在您所在区域不可用,这属于平台合规设计而非数据缺失。项目联系人为两位共同一作(seongsu@kaist.ac.kr、kyungdaeun@kaist.ac.kr,PhysioNet Release Notes 明示)。

6.2 许可分层

层 许可
数据本体(QA 对 + 数据库) PhysioNet Credentialed Health Data License 1.5.0 + DUA 1.5.0(凭证获取,不得再分发原始数据)
三上游数据 各自的 PhysioNet DUA(MIMIC-IV 2.2 / MIMIC-CXR-JPG 2.0.0 / Chest ImaGenome 1.0.0)
GitHub 代码 MIT License
论文 NeurIPS 2023 会议论文,arXiv 公开可读

README License 节的原文口径:“The final output dataset (EHRXQA) is subject to the terms and conditions of the original datasets from Physionet”——即 EHRXQA 数据集最终受三个上游数据集条款约束。实践含义:你可以用 MIT 许可的代码复现构建流程,但产出的数据继承上游限制;二次分发自己构建的衍生统计结果时,也要对照上游 DUA 的再识别禁止条款。

合规使用场景速判

按 PhysioNet 凭证体系的通行规则(具体以签署的 DUA 文本为准)整理一张速判表,帮助团队在立项前快速排除合规风险:

使用场景 一般判断 注意点
学术研究 + 论文发表 通常允许 引用三件套:数据 DOI + NeurIPS 论文 + PhysioNet 平台
模型权重公开发布 视 DUA 条款 需确认权重是否被视为"衍生数据"(MIMIC 系 DUA 历来对此谨慎)
在线 demo 涉及真实查询 高风险 任何可能暴露患者记录的接口都要先过 DUA 与机构审查
商业产品内部评估 视 DUA 条款 MIMIC 系对商业用途有限制条款,逐条核对
委托云厂商托管数据 通常允许但需协议 数据不得离开约定环境,子处理者条款要核
再分发原始数据/答案文件 禁止 credentialed 体系的核心红线
发布聚合统计/误差分析结果 通常允许 遵守小单元格抑制(防再识别)惯例

表内"通常"字样的条目都以你签署版本的 DUA 原文为准——DUA 是唯一有法律效力的文本,条目与社区经验只做导航。

6.3 复现构建

拿到凭证后的本地重建路径:

  1. bash build_dataset.sh——输入 PhysioNet 凭证,自动下载三上游、预处理、构建 mimic_iv_cxr 一体化数据库、生成含答案的 train/valid/test.json;
  2. bash download_images.sh——图像本体不随 EHRXQA 分发,需另行连接 MIMIC-CXR-JPG 下载(涉及多模态与图像级实验时必跑);
  3. GitHub 仓库 2026-02-06 起迁移到 Python 3.12 + UV 包管理(历史版本要求 Python 3.8.5 + pandas 1.1.3,坑 8 有版本漂移说明)。

再次强调:GitHub 预发布 JSON 无答案列是隐私设计,正式答案以凭证重建为准;ML4H 2024 竞赛版数据规模(<40K/<6K/<5K)与官方 46,152 不同,是竞赛分阶段构建所致,勿混用口径(坑 6)。

凭证流程实操:顺序清单与常见卡点

给首次申请者的操作顺序(官方流程 + 社区通行经验,耗时段落非官方承诺):

顺序 动作 卡点提示
1 注册 PhysioNet 账号 邮箱验证即可
2 提交 credential application 需身份与机构/导师信息;学生与独立研究者路径不同,选对入口
3 完成 CITI “Data or Specimens Only Research” 证书必须上传到 PhysioNet,只留本地无效;注意有效期
4 签 mimic-cxr-jpg/2.0.0 DUA 三个 DUA 各自独立签署,缺一不可
5 签 chest-imagenome/1.0.0 DUA 最常被漏掉的一份——漏签则 build_dataset.sh 下载对应源时 403
6 签 mimiciv/2.2 DUA 认准版本号 2.2,勿点成最新版
7 下载或运行 build_dataset.sh 脚本提示输入 PhysioNet 用户名/密码;密码不回显属正常

两个高频疑问:其一,区域限制——部分国家/地区 IP 下载受保护文件会被拒(本条目核验时项目页即显示区域不可用提示),这是平台合规设计;其二,团队协作——凭证是个人级的,团队每人各自 credential,仓库里严禁提交含答案的 JSON 或凭证信息。

§7 生态与影响

7.1 ML4H 2024 竞赛

EHRXQA 发布后半年即被选为 ML4H 2024(Machine Learning for Health Workshop)Project 2 的竞赛题目——多模态临床 QA,官方配套仓库 baeseongsu/ehrxqa-2024-ml4h,开发阶段 2024-04-25 启动、测试阶段 2024-06-03 启动。这是 NeurIPS D&B 数据集"赛用化"的典型路径:竞赛用 EHRXQA 的结构与数据库,但数据规模按阶段构建(统计口径 train <40K / valid <6K / test <5K),与官方 46,152 不同——引用竞赛成绩时务必注明所用口径。

7.2 引用生态

论文发表后被三类后续工作引用:

  • 多模态胸片基础模型:CheXagent(Chen et al., 2024)等把 EHRXQA/MIMIC-CXR-VQA 纳入评测矩阵,检验"看懂胸片"到"回答临床问题"的迁移;
  • 多模态推理框架:WoLF(Kang et al., 2024)等以 EHRXQA 为多模态结构化推理的试验场;
  • 医学基础模型综述与基准盘点:Merlin(CT 基础模型)等工作在相关资源讨论中将其列为 EHR+影像融合的参照系。

在"表格+图像"这个具体交叉点上,EHRXQA 至今没有同规模替代品——后续同类工作(如 DrugEHRQA 的 EHR+临床文本组合)走的是不同模态搭配,这使它的基准地位在垂直方向上仍然独占。

7.3 适用与不适用场景

选型前先对齐射程——EHRXQA 适合与不适合的场景同样清晰:

适合:

  • 多模态语义解析评测:需要"查询可执行、答案可验证"的 Text-to-SQL/NeuralSQL 基准评测;
  • VQA 执行器选型与训练:MIMIC-CXR-VQA 部分独立可用,为 FUNC_VQA 式系统选感知组件;
  • 工具调用/Agent 评测:把 SQL 引擎与 VQA API 视作两个工具,评测编排能力;
  • 单中心成人 ICU 人群的时间锚定问答研究:2008-2019 采集窗口内的住院场景。

不适合:

  • 门诊、儿科、非胸片影像模态:数据边界就是 MIMIC 成人住院人群与胸片;
  • 真实时间跨度分析:虚拟历法 2100-2105 + 固定 current_time 锚点(§2.4);
  • 自由文本临床笔记问答:EHRXQA 不含笔记文本——那是 emrQA 及 MIMIC-Note 派生工作的地盘;
  • 开放域医疗问答:417 个模板决定的问题分布不覆盖模板外问法,用它声称"通用医疗问答能力"属于超范围解读。

§8 方法学启示

EHRXQA 值得其他医学数据集工程抄的作业有五条:

  1. 模板+执行验证=无限干净题目。五阶段填充后立即执行验证,只留有有效答案的题——规模可以堆,脏样本为逐条人工出题不可比。
  2. 查询语言当编排层。NeuralSQL 把"调用外部模型"写进 SQL 语法,比通用 Agent 工具调用更可验证:每道题的推理路径是一条可执行的查询,评估可以精确到步骤。
  3. silver/gold 双库分离。机器标注库(800 患者)承担训练/验证的规模需求,人工标注库(400 患者)只做测试金标准——用成本结构换取"训练够大、测试够硬"两头兼得。
  4. Acc_LF 与 Acc_EX 并报。只报端到端准确率会掩盖失分位置;两者落差直接定位瓶颈在解析还是在感知。这套双指标对一切"模型+工具"类基准都有借鉴价值。
  5. 防背题三件套。GPT-4 改写问句消除句式捷径、Prior(Question) 基线量化语言先验空间(仅约 30%)、封闭答案空间杜绝自由发挥——语言偏差控制有明确指标可查。

同样值得记取的教训是官方材料的小疏漏:两张官方统计表内部差 9 例(坑 3)、发布日期两个官方渠道差一天(坑 2)——再严谨的团队也会在交叉表维护上失手,引用者在关键数字上做加和自检永远值得。

五条经验的落地检查清单

把上面的经验转成可执行的自检问题,供设计下一个医学 AI 数据集/基准的团队对照:

  • [ ] 你的标签能否由程序从真值源机械生成?(能 → 模板+执行验证路线可行;不能 → 先解决标注一致性)
  • [ ] 人工投入是否集中在"生成器"(模板/schema/查询骨架)而非"生成物"(逐条标注)?
  • [ ] 解析与执行是否可分离评测?端到端数字之外,能否回答"错在哪一步"?
  • [ ] 训练库与测试库是否物理隔离(不同患者集、不同标注质量层)?
  • [ ] 语言先验有多大胆漏?(用一个只读问题的 Prior 基线量化它)
  • [ ] 时间/日期等语境变量是否有确定锚点?(EHRXQA 的做法:固定 current_time)
  • [ ] 预发布文件是否做了最小化处理(如去答案)以降低误分发风险?

§9 库内条目关系

9.1 三上游直系

库内条目 关系 EHRXQA 取用什么
mimiciv 表格模态上游 v2.2 的 17 张结构化表(患者/入院/诊断/处方/检验等)
mimic-cxr-jpg 图像上游 v2.0.0 的胸片检查元数据;图像本体需另行下载
chest-imagenome 注释上游 v1.0.0 的区域-异常结构化注释;silver/gold 队列直接来源

三者在患者 ID 层面取交集(19,264 人)后进入 EHRXQA。研究多模态 EHR 的完整谱系时,这三个条目是必读前置。

9.2 与 emrQA 的区分(重要)

**emrQA(Pampari et al., 2018)不是 EHRXQA 的前身,也与它无关。**两者只差一个字母,极易混淆:

维度 emrQA EHRXQA
年份 2018 2023
源数据 MIMIC-III 临床笔记(文本) MIMIC-IV 表格 + MIMIC-CXR 胸片
模态 纯文本 表格 + 图像多模态
形态 从 NLP 任务(i2b2 等)问题映射派生的 QA 语料 模板驱动生成 + 一体化 SQL 数据库 + 可执行查询
任务 阅读理解式问答 Text-to-SQL / Text-to-NeuralSQL 语义解析

检索与引用时建议连年份一起写(“EHRXQA (2023)”),避免与 emrQA 混淆。EHRSQL(Lee et al., 2022)则是表格模态的直接上游——EHRXQA 的 174 个 Table 模板中 165 个由它的 MIMIC-III 模板无缝适配而来。

9.3 医疗 VQA 同类与 EHR 数据库家族

库内相关条目逐一对位(互链时按此表取关系描述):

库内条目 与 EHRXQA 的关系 对比要点
mimiciv 表格模态上游 EHRXQA 的 17 张表即其 v2.2 子集 + 时间轴再压缩
mimic-cxr-jpg 图像上游 study/图像实例经 tb_cxr 接入;本体图像需另行下载
chest-imagenome 注释上游 silver/gold 队列与 110 标签空间的直接来源
emrQA 名字近邻、无实质关系 一字之差辨析(坑 7 / §9.2 专段)
mimiciii EHRSQL 的原始库 EHRSQL 的 165 个 Table 模板来自 MIMIC-III 语境
eicu-crd 危重症数据库家族 非同一人群,构成"结构化临床数据库"版图参照
pathvqa 医疗 VQA 同类(病理) 单图单模态、无数据库上下文
vqa-rad 医疗 VQA 同类(放射小集) 规模小、常作低资源对照
vqa-med 医疗 VQA 同类(挑战赛) 答案空间开放式,与 EHRXQA 封闭标签空间相反
slake 医疗 VQA 同类(双语+知识图谱) 结构化注释思路近亲,但无 SQL 执行闭环
ms-cxr 胸片报告衍生 同源 MIMIC-CXR 的另一条派生路线(报告对齐)
radgraph 胸片报告 NLP 结构化 "报告→结构"路线 vs EHRXQA 的"图像→结构"路线
mimic-iv-ecg 结构化 EHR+生理信号组合 与"结构化 EHR+影像"组合互为对偶

定位总结:在库内谱系中,EHRXQA 是唯一走完"图像→结构化注释→可执行查询→标准答案"全闭环的条目——上游三家提供原料,下游医疗 VQA 家族提供单模态对照,emrQA 与 EHRSQL 则分别代表它所超越的两条旧路线(纯文本 QA 与纯表格 QA)。

§10 避坑清单

以下是使用与引用 EHRXQA 时最容易踩的八个坑,全部经一手来源核验。

坑 1:官网 ehrxqa.github.io 可能无法访问

任务材料与部分文献把 ehrxqa.github.io 当作官网,但该域名在部分网络环境下 SSL 握手直接失败,内容无法加载。项目页的全部信息职能实际由 GitHub 仓库 README(github.com/baeseongsu/ehrxqa)承担——论文摘要里给的也是 GitHub 链接。打不开官网不是数据集出事了,直接去 GitHub 与 PhysioNet。

坑 2:发布日期两个官方口径差一天

PhysioNet 项目页写 “Published: July 23, 2024. Version 1.0.0”,GitHub 仓库 Updates 写 “07/24/2024 We released EHRXQA dataset on Physionet”。同一次发布的两个官方渠道相差一天(时区/记录口径差异)。本条目按 PhysioNet 页面口径写 2024-07-23;引用时选定一个口径并注明来源即可,别写成"7 月下旬"含糊带过。

坑 3:官方统计表内部不一致(1,838 vs 1,847)

Image 模态 valid 样本数:论文 Table 2 与 PhysioNet 表格均写 1,838;但同一来源的 Table 3(论文附录 Table C9)四个患者范围细分(945+488+279+135)加和为 1,847,差 9 例。这不是转录错误——论文与 PhysioNet 两个独立排版源在同一处一致地不一致,说明源自同一原始制表。处理原则:总数引用以 Table 2 为准(16,366 = 12,860+1,838+1,668 才能对上总量 46,152),细分表照录官方数字并加注。

坑 4:三个"gold/400/500"数字别混用

  • EHRXQA gold 数据库 = 400 患者(PhysioNet Files and Structure 明示,测试用);
  • Chest ImaGenome 自己的 gold 队列 = 500 患者(EHRXQA 取其子集,故不矛盾但易混淆);
  • MIMIC-CXR-VQA 测试图像池 = 500 张图(gold 标注)。

写文档时三处都要写全称(“gold 数据库 400 患者”),只写"gold 500"或"测试集 400"都会被读者拿去对错表。

坑 5:两位作者的机构双口径

论文角标与 PhysioNet Author Info 对两位作者给出不同机构:Eric I-Chao Chang 论文标 CPII(Centre of Perceptual and Interactive Intelligence)、PhysioNet 标 Taiwan Artificial Intelligence Foundation;Tackeun Kim 论文标 Seoul National University Bundang Hospital、PhysioNet 标 TALOS Corp.。可能是跨机构任职或口径更新。引用作者-机构映射时以论文版本为准并注 PhysioNet 差异;第三方汇总页(如把 Bae/Kyung 标成 Microsoft 的错误转述)一概不采信。

坑 6:竞赛数据规模 ≠ 官方数据规模

ML4H 2024 竞赛页统计口径为 train <40K / valid <6K / test <5K,与官方 46,152(36,174/5,170/4,808)不同——竞赛数据分阶段构建所致。引用"在 EHRXQA 上的成绩"时必须区分是在官方 split 还是竞赛 split 上跑的,两者不可直接比较。

坑 7:emrQA ≠ EHRXQA

一字之差,两个时代两个数据集:emrQA(2018)是 MIMIC-III 临床笔记派生的文本 QA 语料,EHRXQA(2023)是 MIMIC-IV+胸片的多模态可执行问答基准。搜索引擎与引文工具偶尔会把两者混排,库内两个条目并存。分辨口诀:看到 “MIMIC-III + i2b2 派生” 是 emrQA,看到 “NeuralSQL + FUNC_VQA + 胸片” 是 EHRXQA。

坑 8:环境要求已经漂移

官方仓库 2026-02-06 完成大迁移:Python 3.8.5 → 3.12,pandas 1.1.3 → 3.0.0+,包管理换 UV。而 ML4H 2024 竞赛仓库的 README 仍写 Python 3.8.5+。照旧教程装环境会撞版本墙:以官方仓库当前 README 为准(3.12+UV),竞赛复现另建 3.8 环境。

§11 总结

EHRXQA 用三层设计回答了"临床问答怎么同时用上表格和影像":数据层把 MIMIC-IV 的 17 张表与胸片注释缝成 18 张表的一体化数据库;语言层用 NeuralSQL 把视觉问答变成 SQL 里的一个可执行函数;评估层用 Acc_LF/Acc_EX 双指标把"写对查询"与"答对问题"分开计量——并由此给出那个反直觉的量化结论:感知比推理更是路障。46,152 道题、417 个模板、377,391 个附属 VQA 三元组,全部模板生成、执行验证、GPT-4 改写、专家把关,公开于 NeurIPS 2023 D&B 与 PhysioNet。

它的代价同样清楚:三重凭证门槛、模板覆盖面决定的问题分布、以及官方表格里那 9 例对不上的 valid 样本。但在"结构化+影像"的交叉点上,它仍然是唯一的同时具备规模、可执行性与标准答案的公开基准——只要你的问题落在 417 个模板的射程之内。

三句话记忆锚点:看见 46,152/417/18 表,想到"模板驱动+执行验证";看见 FUNC_VQA 与 strftime(‘%j’),想到"SQL 里的看图函数";看见 87.3 对 48.2,想到"感知比推理更是路障"。三条锚点分别对应数据、方法与结论——记不住细节时,抓住这三条就不会把 EHRXQA 讲错。

11.1 一页速记

把全条目压缩成一张递归卡片,适合评审/组会前 60 秒刷新记忆:

  • 是什么:结构化 EHR(MIMIC-IV 17 表)+ 胸片(MIMIC-CXR)→ 18 表一体化数据库 + 46,152 道 (Question, SQL/NeuralSQL, Answer) 三元组;
  • 怎么造:417 模板 → 五阶段填充 → 执行验证筛题 → GPT-4 改写 → 专家把关;训练库 silver(800 患者机器标注),测试库 gold(400 患者人工标注);
  • 怎么看图:NeuralSQL = SQL + FUNC_VQA(question, image_id),执行到函数暂停、转调视觉模型、返回布尔继续跑;
  • 考什么:Image 16,366 / Table 16,529 / Image+Table 13,257;指标 Acc_LF(写对没)与 Acc_EX|pred(答对没);
  • 结果:Table 92.9 / I+T 65.9 / Image 48.2(Acc_EX|pred,ChatGPT+M³AE+BM25);N 图 39.6、group 1.7——感知是瓶颈;
  • 怎么拿:PhysioNet v1.0.0(DOI 10.13026/bp5y-qt70)=凭证 + CITI + 三 DUA;代码 MIT;预发布 JSON 无答案是设计不是缺陷;
  • 别混淆:emrQA(2018 文本 QA)≠ EHRSQL(2022 表格)≠ EHRXQA(2023 多模态);
  • 适合谁:text-to-SQL 工程化、医疗 VLM 评测、多模态 agent 回归测试;不适合真实时间分析(虚拟历法 2100-2105)与标签外视觉概念。

常见问题 FAQ:32 问分组速查

A 组:基础认知(Q1-Q6)

Q1:EHRXQA 一句话是什么?
首个融合结构化电子健康记录(MIMIC-IV)与胸片图像(MIMIC-CXR)的多模态临床问答基准:模板生成 46,152 道 (Question, SQL/NeuralSQL, Answer) 题,配一个 18 张表的 mimic_iv_cxr 一体化数据库。

Q2:它解决的核心矛盾是什么?
表格 QA 模型不会看图、图像 VQA 模型不会查库,而真实临床问题(“胸片有积液的患者都开了什么药”)两样都要。EHRXQA 用 NeuralSQL 把两种能力编排在同一条查询里。

Q3:谁开发的?
KAIST Graduate School of AI Edward Choi 组主导(共同一作 Seongsu Bae 与 Daeun Kyung),联合 Microsoft Research(Lei Ji)等共 11 位作者、四机构。

Q4:发表在哪里?
NeurIPS 2023 Datasets and Benchmarks Track(poster,arXiv:2310.18652);数据本体 2024-07-23 在 PhysioNet 发布 v1.0.0。

Q5:NeuralSQL 中的 FUNC_VQA 是真实存在的函数吗?
是查询表示层面的可执行扩展:NeuralSQL 解释器(基于 sqlglot)在执行时识别该函数、暂停、转调外部 VQA API(官方实验里是 M³AE 模型)、拿回布尔值后继续执行 SQL。它不是数据库引擎自带函数。

Q6:EHRXQA 是开源数据集吗?
代码 MIT 开源;数据本体"公开元数据、凭证获取文件"——可自由查阅文档与论文,下载数据需通过 PhysioNet 三门槛(§6.1)。

B 组:数据构成与统计(Q7-Q12)

Q7:总规模和划分?
46,152 QA 对:train 36,174 / valid 5,170 / test 4,808。按模态:Image 16,366、Table 16,529、Image+Table 13,257。

Q8:417 个模板怎么分布?
Image 168 + Table 174 + Image+Table 75 = 417。Table 模板中 165 个从 EHRSQL 的 MIMIC-III 模板无缝适配。

Q9:患者范围(patient scope)是什么?
问题针对的对象范围:none(不针对特定患者,如查询表定义)、single(单个患者,Image 模态再按涉及 1/2/N 张图细分)、group(患者群聚合统计)。完整九行细分见 §2.2。

Q10:silver 和 gold 数据库的区别?
silver:800 患者、机器生成标注(继承 Chest ImaGenome,报告级一致性 0.984),用于训练与验证;gold:400 患者、人工标注,只用于测试。

Q11:数据里的时间是真的吗?
不是。MIMIC 系去标识时间本已平移至 2100-2200,EHRXQA 再压缩到 2100-2105,并把"当前时刻"锚定在 2105-12-31 23:59:00。

Q12:一个问题可以涉及多张胸片吗?
可以。Image 模态 single 类内分 1-image(6,615 train)/ 2-image(3,410)/ N-image(1,890)三档;另有 group 类跨患者聚合。多图场景是基线失分重灾区(39.6%)。

C 组:获取与许可(Q13-Q17)

Q13:拿到数据总共要过几关?
三关:PhysioNet credentialed 账号 → CITI “Data or Specimens Only Research” 课程证书 → 分别签署 MIMIC-IV 2.2、MIMIC-CXR-JPG 2.0.0、Chest ImaGenome 1.0.0 三个上游 DUA。

Q14:GitHub 上直接下载的 JSON 为什么没有答案?
隐私设计:预发布版 _train/_valid/_test.json 故意不含 answer 字段;完整答案需凭证运行 build_dataset.sh 本地重建。不是下载损坏。

Q15:图像文件在哪里?
不随 EHRXQA 分发。需要图像级实验时另跑 download_images.sh,从 MIMIC-CXR-JPG v2.0.0 下载原始胸片(同样需其 DUA)。

Q16:许可能否让我再分发数据?
不能。数据受 PhysioNet Credentialed Health Data License 1.5.0 约束且最终继承三上游条款;代码才可按 MIT 自由使用。

Q17:部分地区提示"数据不可用"怎么办?
PhysioNet credential 政策对部分地区/IP 限制访问,属平台合规设计。可按官方指引在合规网络环境下申请,或联系项目邮箱(seongsu@kaist.ac.kr / kyungdaeun@kaist.ac.kr)。

D 组:评估与基准(Q18-Q23)

Q18:三个评估指标怎么理解?
Acc_LF 考"查询写得对不对"(逻辑形式精确匹配);Acc_EX|gt 考"标准查询执行结果与标准答案是否一致"(自洽性检查,Table 模态恒 100%);Acc_EX|pred 考"预测查询执行后答对了吗"(端到端)。

Q19:MIMIC-CXR-VQA 上最强的基线是什么?
M³AE*,69.2±0.4(* 表示在同语料上额外预训练);纯文本先验基线只有 25-32 分,证明靠语言先验无法作弊。

Q20:EHRXQA 上 ChatGPT 的最好成绩?
BM25 检索 few-shot 下:Table Acc_EX|pred 92.9、Image+Table 65.9、Image 48.2。固定示例(Fixed prompt)则全线崩溃(Acc_LF 个位数)。

Q21:"感知是更大路障"的证据是什么?
Image 模态 Acc_LF 87.3(查询几乎都写对)但 Acc_EX|pred 48.2(执行后对答率掉半)——失分集中在 FUNC_VQA 的视觉判断环节;group 聚合类仅 1.7%。

Q22:为什么 Image+Table 反而比纯 Image 答得好?
表格条件先缩小了候选图像/患者范围,视觉判断的搜索空间更小(65.9 vs 48.2)。这也是设计多模态临床系统的实用启示。

Q23:论文还提出什么评估指标?
MIMIC-CXR-VQA 除 Acc 外报告 F1 micro(0.73)与 AUROC_rel(相对感知参考分数,衡量排序稳定性)。

E 组:库内关系与引用(Q24-Q28)

Q24:三个上游数据集各贡献什么?
mimiciv v2.2 出 17 张结构化表;mimic-cxr-jpg v2.0.0 出胸片检查元数据与图像关联;chest-imagenome v1.0.0 出区域-异常结构化注释与 silver/gold 队列。

Q25:三源患者能全部对上吗?
不能。各源采集窗口与去标识独立,交集 19,264 个共享 patient ID,EHRXQA 全部构建在该交集上。

Q26:emrQA 和 EHRXQA 什么关系?
没有关系。emrQA(2018)是 MIMIC-III 临床笔记派生的文本 QA 语料;EHRXQA(2023)是 MIMIC-IV+胸片多模态基准。一字之差、两个数据集(坑 7)。

Q27:EHRSQL 是什么角色?
表格模态直接上游:EHRXQA 的 Table 模板 165/174 由 EHRSQL 的 MIMIC-III 模板适配到 MIMIC-IV 而来,时间过滤三类设计也承袭自它。

Q28:引用格式怎么写?
见附录 G 的 BibTeX;惯用口径为 “Advances in Neural Information Processing Systems, 36”(2024),数据引用加 PhysioNet DOI 10.13026/bp5y-qt70。

F 组:复现与工程(Q29-Q32)

Q29:本地重建的完整流程?
凭证就绪后 bash build_dataset.sh(下载三源→预处理→建库→生成含答案 JSON);需要图像再 bash download_images.sh。

Q30:环境要求是什么?
官方仓库当前要求 Python 3.12 + UV(2026-02-06 迁移);旧教程的 3.8.5+pandas 1.1.3 已过时(坑 8)。

Q31:NeuralSQL 查询怎么实际执行?
官方实现基于 sqlglot 解析,FUNC_VQA 处暂停并分批调用 VQA API(处理多图问题),返回值代入后继续关系执行;复现可参照仓库 NeuralSQL 解释器模块。

Q32:竞赛版和官方版有什么区别?
ML4H 2024 竞赛版按阶段构建(<40K/<6K/<5K),官方版 46,152;两者 split 不同、成绩不可直接比较(坑 6)。

事实清单:40 条可独立验证的硬事实

以下每条均可溯源至论文(arXiv:2310.18652 / NeurIPS 2023)、PhysioNet 项目页或 GitHub 仓库三者至少其一,关键数字两源互证。

  1. EHRXQA 总量为 46,152 QA 对(论文 datasheet “about 46.2K”;PhysioNet Data Description 原文 46,152)。
  2. 46,152 = train 36,174 + valid 5,170 + test 4,808(PhysioNet Table 2,加和精确)。
  3. 模态三分:Image 16,366 / Table 16,529 / Image+Table 13,257(PhysioNet Data Description 原文;加和精确=46,152)。
  4. 模板总数 417 = Image 168 + Table 174 + Image+Table 75(PhysioNet 原文;加和精确)。
  5. Table 模板 174 个中 165 个由 EHRSQL MIMIC-III 模板无缝适配(论文 Question Template Construction 节)。
  6. Image 模板 168 个由 MIMIC-CXR-VQA 的 48 个模板注入目标图像表达扩展而来(论文同节)。
  7. mimic_iv_cxr 数据库共 18 张表 = MIMIC-IV 17 张 + tb_cxr 桥表(PhysioNet Files and Structure)。
  8. tb_cxr 桥表 6 列:subject_id、hadm_id、study_id、image_id、studydatetime、viewposition。
  9. silver 数据库 800 患者(机器生成标注,训练/验证);gold 数据库 400 患者(人工标注,测试)。
  10. Chest ImaGenome gold 队列本身为 500 患者,EHRXQA gold 取其子集(论文 B 节 vs PhysioNet)。
  11. 三上游共享患者 19,264(论文正文)。
  12. 上游版本:MIMIC-IV v2.2、MIMIC-CXR-JPG v2.0.0、Chest ImaGenome v1.0.0(PhysioNet Parent Projects 与 README DUA 链接双证)。
  13. MIMIC-IV 原始数据采集期 2008-2019;MIMIC-CXR 为 2011-2016(论文 datasheet A.3)。
  14. 数据库时间轴压缩至 2100-2105,当前时刻锚定 2105-12-31 23:59:00(论文/PhysioNet)。
  15. NeuralSQL 灵感源自 Binder(Cheng et al., 2022);FUNC_VQA 执行时暂停转调外部 VQA API(论文方法节)。
  16. NeuralSQL 解释器基于 sqlglot 实现,多图查询采用分批推理(论文附录 D)。
  17. 生成管线五阶段:模板→视觉值→操作值→时间→条件值,执行验证仅保留有效答案对(论文)。
  18. SQL/NeuralSQL 模板由 4 名研究生历时 2 个月手工标注修订(论文)。
  19. 问题模板临床效用经神经外科 board-certified 医学专家验证;GPT-4 改写后人工审校;无众包工人(datasheet)。
  20. 每样本 JSON 含 15 字段(db_id 至 answer,见 §3.5 表)。
  21. GitHub 预发布 _train/_valid/_test.json 故意不含答案(README 明示,隐私保护)。
  22. PhysioNet 发布版本 v1.0.0,页面标注 Published: July 23, 2024;GitHub Updates 记 07/24/2024(双口径,差一天)。
  23. 数据 DOI:v1.0.0 为 10.13026/bp5y-qt70,latest 为 10.13026/0mst-es16;RRID SCR_007345。
  24. 论文发表于 NeurIPS 2023 Datasets & Benchmarks Track(poster #73600,2023-12-12);ACM DL Article No. 170, pp.3867-3880。
  25. arXiv 编号 2310.18652(GitHub Updates 口径 2023-10-28 发布);NeurIPS 官方 hash 0c007ebef1d11fd48da6ce4f54687db6。
  26. GitHub 仓库 baeseongsu/ehrxqa initial commit 2023-06-14;2026-02-06 迁移至 Python 3.12 + UV。
  27. 数据许可:PhysioNet Credentialed Health Data License 1.5.0 + DUA 1.5.0;代码 MIT(README License 节)。
  28. 获取需签署三个上游 DUA:mimic-cxr-jpg/2.0.0、chest-imagenome/1.0.0、mimiciv/2.2。
  29. 项目联系邮箱:seongsu@kaist.ac.kr、kyungdaeun@kaist.ac.kr(PhysioNet Release Notes)。
  30. MIMIC-CXR-VQA 含 377,391 个 (Image, Question, Answer) 三元组、48 模板、7 内容类型、110 答案标签(36 objects + 68 attributes + 4 extras + yes/no)。
  31. MIMIC-CXR-VQA 图像池:164,398 训练 + 8,653 验证(95:5)+ 500 测试(gold)。
  32. MIMIC-CXR-VQA 最佳基线 M³AE* 69.2±0.4;Prior(Question) 32.4(Table 4)。
  33. EHRXQA 评估:BM25(train) few-shot 下 Image Acc_LF 87.3 / Acc_EX|pred 48.2;Table 73.0 / 92.9;Image+Table 72.5 / 65.9(Table 5)。
  34. Fixed prompt 下 Image Acc_LF 仅 1.1——few-shot 示例检索是必要条件(Table 5)。
  35. 多图场景 Acc_EX|pred 39.6%;group scope 仅 1.7%(论文分析节)。
  36. 论文核心结论原文:“visual perception could be a bigger roadblock … than logical reasoning”。
  37. ML4H 2024 竞赛采用 EHRXQA(baeseongsu/ehrxqa-2024-ml4h;dev 2024-04-25 / test 2024-06-03;竞赛口径 <40K/<6K/<5K)。
  38. Image 模态 valid:Table 2 写 1,838,Table 3 细分加和 1,847——官方两表自身不一致,差 9 例。
  39. Eric I-Chao Chang 机构:论文 CPII vs PhysioNet Taiwan Artificial Intelligence Foundation;Tackeun Kim:论文 SNUBH vs PhysioNet TALOS Corp.(双口径)。
  40. silver 标注可靠性 0.984(500 份报告 inter-annotator agreement,引 Chest ImaGenome 口径)。

术语表:30 条核心术语

术语 释义
Acc_EX\ gt
Acc_EX\ pred
Acc_LF 预测查询与标准查询逻辑形式精确匹配率(解析质量)
AUROC_rel 相对感知参考分数,MIMIC-CXR-VQA 提出的排序稳定性指标
Binder Cheng et al. 2022 提出的"程序内嵌 LLM 调用"执行框架,NeuralSQL 的灵感来源
BM25 (train) 从训练集按 BM25 相似度检索 few-shot 示例的策略,EHRXQA 评估的决定性设置
CITI Collaborative Institutional Training Initiative,PhysioNet 认可的人类受试者保护课程平台
credentialed account PhysioNet 的认证账号制度,签署 DUA 并通过审核后方可访问受保护数据集
DUA Data Use Agreement,数据使用协议
emrQA Pampari et al. 2018 从 MIMIC-III 临床笔记派生的 QA 语料,与 EHRXQA 无关(坑 7)
EHRSQL Lee et al. 2022 的纯表格 EHR 问答基准,EHRXQA 表格模态的上游
FUNC_VQA NeuralSQL 内嵌的视觉问答函数调用:FUNC_VQA(question, image_id)
gold database 400 患者人工标注数据库,仅用于 EHRXQA 测试集
group scope 患者群聚合类问题(如"统计有多少患者……"),基线最难题型
mimic_iv_cxr EHRXQA 一体化数据库的 db_id 名称
MIMIC-CXR-JPG MIT-LCP 发布的胸片 JPEG 数据集(v2.0.0),EHRXQA 图像上游
MIMIC-CXR-VQA EHRXQA 团队附属发布的纯图像胸片 VQA 基准(377,391 三元组)
MIMIC-IV MIT-LCP 发布的结构化电子健康记录数据库(v2.2),EHRXQA 表格上游
M³AE 多模态自监督预训练模型,MIMIC-CXR-VQA 最佳基线(69.2±0.4)
NeuralSQL 可执行查询表示:标准 SQL 内嵌 FUNC_VQA 外部调用,执行时暂停-转调-继续
patient scope 问题患者范围:none / single(1、2、N 图)/ group
para_type 样本字段,标记问句来源(machine 原始渲染 / GPT-4 改写)
PhysioNet MIT 计算生理学实验室运营的临床数据平台,EHRXQA 正式发布地
PubmedCLIP / MedViLL 医疗视觉-语言预训练基线模型,Table 4 参评
silver database 800 患者机器标注数据库,用于训练与验证
sqlglot Python SQL 解析库,NeuralSQL 解释器的底层实现
Table 3 细分 PhysioNet/论文的九行患者范围×模态统计表(§2.2 全录)
tb_cxr EHRXQA 桥表:以 6 列把患者-住院-检查-图像四级关系接入关系模型
Text-to-NeuralSQL 生成含 FUNC_VQA 的 NeuralSQL 的语义解析任务
time filter 时间过滤三类:global(全局窗)/ within(窗口内)/ exact(精确锚定)

附录

附录 A:一屏速查卡

维度 内容
类型 多模态 QA 基准 + 一体化数据库 + 附属 VQA 基准(三合一)
论文 NeurIPS 2023 D&B(arXiv:2310.18652;ACM No.170)
团队 KAIST 主导(通讯 Edward Choi)+ MSR 等 11 人
规模 46,152 QA 对 / 417 模板 / train 36,174-valid 5,170-test 4,808
数据库 mimic_iv_cxr:18 表(MIMIC-IV 17 + tb_cxr);silver 800 / gold 400 患者
上游 MIMIC-IV v2.2 + MIMIC-CXR-JPG v2.0.0 + Chest ImaGenome v1.0.0(共享 19,264 患者)
附属 MIMIC-CXR-VQA:377,391 三元组 / 48 模板 / 110 标签
评估 三指标(Acc_LF / Acc_EX\
许可 数据 PhysioNet Credentialed License 1.5.0|代码 MIT
抓取时点 2026-09-26
库内互链 mimiciv / mimic-cxr-jpg / chest-imagenome / emrQA(区分)/ pathvqa / vqa-rad / slake

附录 B:DAIMS 评估全表

维度 评分(1-10) 依据
D 可发现性 7 论文(arXiv+NeurIPS)与 PhysioNet 均可索引;但官网域名部分环境不可达(坑 1),名称与 emrQA 近邻易混(坑 7)
A 可获取性 4 三重凭证门槛(账号+CITI+三 DUA)+ 图像另下 + 预发布无答案——对合规研究者完整可得,对泛用场景门槛极高
I 可互操作 8 标准 SQL 数据库(CSV+建库脚本)+ JSON QA 对 + 15 字段结构化标签;数据库可直接导入主流引擎,图像需上游下载
M 元数据质量 8 论文表格完备、datasheet 规范(含 no-crowdworkers 声明);官方两表 9 例不一致(坑 3)与日期双口径(坑 2)微降分
S 可持续性 7 PhysioNet 平台长期维护(RRID 登记)、上游三数据集均为 PhysioNet 长期项目;GitHub 2026 年仍在活跃迁移维护
综合评级 6.8/10(中上) 互操作性与元数据是强项;可获取性被三重凭证拖低是最大失分项——这是受保护健康数据的固有代价而非工程缺陷

附录 C:逐项证据链自证

关键数字 来源 位置
46,152 / 三 split / 三模态 PhysioNet Data Description + 论文 Table 2 两源逐字一致
417 = 168+174+75 PhysioNet 原文 + 论文正文 两源一致
Table 3 九行细分 PhysioNet Table 3 + 论文 Table C9 两源逐字一致(含 valid 9 例不一致处)
19,264 共享患者 论文正文 PhysioNet Background 节同口径
18 表 / tb_cxr 6 列 PhysioNet Files and Structure 目录树实证
silver 800 / gold 400 PhysioNet Files and Structure 原文 “comprising 800 and 400 patients respectively”
0.984 一致性 论文 B 节(引 Chest ImaGenome) 500 份报告
377,391 / 48 / 110 论文正文+datasheet;PhysioNet Background 两源一致
164,398 + 8,653 + 500 图像池 论文 B 节 95:5 划分明示
Table 4 七行基线 论文 Table 4 ± 标准差全录
Table 5 六行结果 论文 Table 5 BM25 vs Fixed 双策略
39.6% / 1.7% 难度梯度 论文分析节 N-image 与 group 口径
“visual perception…” 原文 论文结论/分析节 英文原文抓取存档
DOI 10.13026/bp5y-qt70 PhysioNet 页面 v1.0.0 专属
NeurIPS hash 0c007ebef1d11fd48da6ce4f54687db6 papers.neurips.cc poster #73600
ACM Article No. 170, pp.3867-3880 ACM DL(doi:10.5555/3666122.3666292) NIPS '23 Proceedings
Published July 23, 2024 PhysioNet 页面 GitHub Updates 记 07/24(坑 2)
License 1.5.0 / DUA 1.5.0 / 三上游 DUA PhysioNet Access 节 + README 原文抓取
4 名研究生 2 个月 / 无众包 论文 + datasheet 原文
Python 3.12 + UV(2026-02-06) GitHub commits/README 历史口径 3.8.5(坑 8)

附录 D:数据获取决策树

你的需求是什么?
├── 只想读论文、了解方法
│   └── arXiv:2310.18652(公开直读)+ 本条目
├── 想跑 QA 评测
│   ├── 有 PhysioNet credential?
│   │   ├── 否 → 按 §6.1 三门槛申请(账号→CITI→三 DUA)
│   │   └── 是 → PhysioNet v1.0.0 下载 + build_dataset.sh 本地重建
│   └── 涉及图像级实验 → 另跑 download_images.sh(MIMIC-CXR-JPG DUA)
├── 只想用纯图像 VQA
│   └── MIMIC-CXR-VQA 独立仓库 baeseongsu/mimic-cxr-vqa(同一凭证体系)
├── 想参加官方背书的比赛
│   └── ML4H 2024 仓库 ehrxqa-2024-ml4h(注意竞赛口径 ≠ 官方口径,坑 6)
└── 只需要代码看实现
    └── baeseongsu/ehrxqa(MIT,Python 3.12 + UV,坑 8)

附录 E:许可细读

附录 D 补:最小评测工作台清单

跑通端到端评测(对齐论文 Table 5 口径)所需的最小组件与替代选项:

组件 官方选择 可替换项 备注
QA 数据 + 答案 PhysioNet v1.0.0 build_dataset.sh 本地重建 答案必须与所用数据库版本一致
执行引擎 SQLite(官方 query 为 SQLite 方言) 自建解释器需处理 FUNC_VQA 挂钩 strftime/current_time 是方言点
视觉 API M³AE*(在 MIMIC-CXR-VQA 训练) 任意胸片 VQA 模型(CheXagent 等) 换模型后数字不可直接对标论文
解析器 ChatGPT gpt-3.5-turbo-0613 任意 LLM 提示策略(Fixed/BM25)必须固定并报告
few-shot 库 BM25 从 train.json 检索 k=10 其他检索器(报告配置) 检索质量对 Acc_LF 影响巨大
图像文件 MIMIC-CXR-JPG v2.0.0 不可省略(图像题必需) 同一凭证体系另跑 download_images.sh

两条省算力路径:只评 Table 模态(16,529 题)可完全离线、无需任何图像与 GPU——它是检验解析器的最干净子集;只评解析(Acc_LF)则连执行引擎都可省,但要意识到这测的是"语法正确率"而非答题能力。

三层许可的现实含义:

  1. 数据层(PhysioNet Credentialed Health Data License 1.5.0):只授权签署 DUA 的研究者本人使用;不得再分发原始文件;不得尝试再识别患者;发表需按 DUA 引用来源。README 原文明确最终数据集"subject to the terms and conditions of the original datasets from Physionet"——即三上游条款叠加生效。
  2. 代码层(MIT):NeuralSQL 解释器、生成管线、评估脚本可自由使用与修改,保留版权声明即可。
  3. 论文层:arXiv 与 NeurIPS 版本公开可读可引。

常见问题:能否公开自己构建的衍生统计或模型权重?统计结果与模型权重一般可发表(非原始数据再分发),但导出任何含患者级内容的中间产物前应对照 DUA 再识别条款;拿不准时联系项目邮箱确认。

附录 F:双口径登记表

事项 口径 A 口径 B 本条目处理
PhysioNet 发布日 July 23, 2024(PhysioNet 页面) 07/24/2024(GitHub Updates) 按 PhysioNet 写 2024-07-23,注时区差(坑 2)
Image valid 总数 1,838(Table 2) 1,847(Table 3 细分加和) 总数以 Table 2 为准,细分照录加注(坑 3)
gold 患者数 400(EHRXQA gold 数据库) 500(Chest ImaGenome gold 队列 / MIMIC-CXR-VQA 测试图) 三处分写全称(坑 4)
Eric I-Chao Chang 机构 CPII(论文角标) Taiwan Artificial Intelligence Foundation(PhysioNet) 论文口径为主,注 PhysioNet 差异(坑 5)
Tackeun Kim 机构 SNUBH(论文角标) TALOS Corp.(PhysioNet) 同上(坑 5)
数据规模 46,152(官方) <40K/<6K/<5K(ML4H 2024 竞赛页) 官方为准,竞赛口径仅注(坑 6)
Python 要求 3.8.5+(竞赛/历史 README) 3.12 + UV(官方仓库当前) 当前口径为准,注历史(坑 8)

附录 G:BibTeX

@inproceedings{bae2023ehrxqa,
  title     = {EHRXQA: A Multi-Modal Question Answering Dataset for
               Electronic Health Records with Chest X-ray Images},
  author    = {Bae, Seongsu and Kyung, Daeun and Ryu, Jaehee and Cho, Eunbyeol
               and Lee, Gyubok and Kim, Tackeun and Kweon, Sunjun and Oh, Jungwoo
               and Ji, Lei and Chang, Eric I-Chao and Choi, Edward},
  booktitle = {Advances in Neural Information Processing Systems 36 (NeurIPS 2023),
               Datasets and Benchmarks Track},
  year      = {2023},
  note      = {arXiv:2310.18652}
}
@dataset{ehrxqa_physionet_2024,
  title       = {EHRXQA v1.0.0},
  author      = {Bae, Seongsu and Kyung, Daeun and {KAIST collaborators}},
  year        = {2024},
  publisher   = {PhysioNet},
  doi         = {10.13026/bp5y-qt70},
  url         = {https://physionet.org/content/ehrxqa/1.0.0/}
}

附录 H:FAIR 检查单

原则 达成情况
F 可发现 达成:DOI 10.13026/bp5y-qt70 + RRID SCR_007345 + NeurIPS/arXiv 双入口
A 可获取 部分达成:元数据与论文开放,数据本体凭证制(受保护健康数据的合规代价)
I 可互操作 达成:标准 SQL/CSV/JSON、15 字段 schema、sqlglot 兼容语法、db_id 命名规范
R 可复用 达成:许可明确(数据 License 1.5.0/代码 MIT)、来源追踪完整(三上游 DUA 链)、模板与查询全公开可验证

附录 I:缩写表

缩写 全称
D&B Datasets and Benchmarks(NeurIPS 赛道)
DUA Data Use Agreement(数据使用协议)
EHR Electronic Health Record(电子健康记录)
ICU Intensive Care Unit(重症监护室)
LF Logical Form(逻辑形式)
ML4H Machine Learning for Health(研讨会)
QA Question Answering(问答)
RRID Research Resource Identifier
SQL Structured Query Language(结构化查询语言)
VQA Visual Question Answering(视觉问答)

附录 J:MIMIC-CXR-VQA 标签空间全列表(110 标签的构成)

论文附录 Table B2 给出 ${object} 与 ${attribute} 两个槽位的完整取值域,即 110 个答案标签的主体。收录如下,供直接对照模型输出:

36 个解剖对象(${object}):

abdomen, aortic arch, cardiac silhouette, carina, cavoatrial junction, left apical zone, left breast, left chest wall, left clavicle, left costophrenic angle, left hemidiaphragm, left hilar structures, left lower lung zone, left lung, left mid lung zone, left shoulder, left upper lung zone, mediastinum, neck, right apical zone, right atrium, right breast, right chest wall, right clavicle, right costophrenic angle, right hemidiaphragm, right hilar structures, right lower lung zone, right lung, right mid lung zone, right shoulder, right upper lung zone, spine, svc(上腔静脉), trachea, upper mediastinum

68 个属性(${attribute}):

airspace opacity, alveolar hemorrhage, aspiration, atelectasis, bone lesion, breast/nipple shadows, cabg grafts, calcified nodule, cardiac pacer and wires, chest port, chest tube, clavicle fracture, consolidation, copd/emphysema, costophrenic angle blunting, cyst/bullae, elevated hemidiaphragm, endotracheal tube, enlarged cardiac silhouette, enlarged hilum, enteric tube, fluid overload/heart failure, goiter, granulomatous disease, hernia, hydropneumothorax, hyperaeration, ij line, increased reticular markings/ild pattern, infiltration, interstitial lung disease, intra-aortic balloon pump, linear/patchy atelectasis, lobar/segmental collapse, low lung volumes, lung cancer, lung lesion, lung opacity, mass/nodule (not otherwise specified), mediastinal displacement, mediastinal drain, mediastinal widening, multiple masses/nodules, pericardial effusion, picc, pleural effusion, pleural/parenchymal scarring, pneumomediastinum, pneumonia, pneumothorax, prosthetic valve, pulmonary edema/hazy opacity, rib fracture, rotated, scoliosis, shoulder osteoarthritis, spinal degenerative changes, spinal fracture, sub-diaphragmatic air, subclavian line, subcutaneous air, superior mediastinal mass/enlargement, swan-ganz catheter, tortuous aorta, tracheostomy tube, vascular calcification, vascular congestion, vascular redistribution

其余 6 个标签:4 个技术属性(‘M’/‘F’ 性别、‘AP’/‘PA’ 体位,来自 ${viewpos} 与 ${gender} 槽位)+ ‘yes’/‘no’ 布尔响应。

5 个类别槽(${category})(用于"列出所有 XX 类发现"式问题):anatomicalfinding(解剖学发现)、device(装置)、disease(疾病)、technicalassessment(技术评估)、tubesandlines(管线与置管)。

对照使用提示:这套列表即 FUNC_VQA 执行器的"能力边界清单"——凡不在表内的视觉概念(如病灶尺寸、分期),内置 VQA 模型答不了,NeuralSQL 里也别这么问;反之,把输出约束在这个标签空间内做分类校准,能直接提升 Acc_EX|gt。

附录 K:数据卡片(Datasheets for Datasets 式速答)

沿用 Gebru et al. 数据卡片框架回答数据集动机/构成/采集/维护四组核心问题(答案均出自论文 datasheet 与 PhysioNet 页面):

问题 官方回答
为什么造这个数据集? 推进多模态机器学习在"结构化 EHR + 胸片"上的问答应用;附属的 MIMIC-CXR-VQA 为医疗 VQA 提供基准
每条实例代表什么? EHRXQA:一条自然语言问题 + 对应 SQL/NeuralSQL 查询 + 答案;MIMIC-CXR-VQA:胸片图像 ID + 问题 + 答案
总量多少? EHRXQA 约 46.2K(16,366/16,529/13,257);MIMIC-CXR-VQA 约 377.4K
实例含哪些信息? 15 字段 JSON(见 §3.5);图像本体经 image_id 引用 MIMIC-CXR-JPG
有推荐划分吗? train/valid/test 36,174/5,170/4,808;测试库与训练库患者级隔离
数据有噪声吗? 模板渲染的问句可能有轻微语法瑕疵(如动词时态),官方如实声明
依赖哪些外部资源? MIMIC-IV 2.2、MIMIC-CXR 2.0.0、Chest ImaGenome 1.0.0(均 PhysioNet)
含敏感信息吗? 无——上游已去标识;不含种族/性取向/宗教/政治观点等敏感属性
涉及真人吗? 是(去标识患者);数据保留期限等适用规则随上游 MIMIC 协议
谁维护? 论文作者团队;联系 seongsu@kaist.ac.kr / kyungdaeun@kaist.ac.kr
更新计划? 持续扩充模板与实例;重大更新附完整说明;旧版本原则上只留最新,特殊情况保留前版至多一年
有 erratum 吗? 暂无

附录 L:60 分钟快速上手路线

对拿到凭证、第一次打开数据包的使用者,一条最小阻力路径:

分钟 动作 产出
0-10 建环境(Python 3.12 + UV,装 pandas/dask/sqlglot) 可运行 Python
10-20 加载 mimic_iv_cxr schema(mimic_iv_cxr.sql),浏览 18 表行数与主键 数据库心智模型
20-30 读 10 条 train.json 样本(对 q_tag→tag→question 链条逐级对照) 理解模板到问题的距离
30-40 只跑 Table 模态子集:把 5 道题的 query 在 SQLite 上手动执行,核对 answer 端到端正确性信任建立
40-50 跑通一个 FUNC_VQA 桩(返回恒 true/false),执行一条 Image+Table 查询 理解视觉调用点
50-60 换成真 VQA 模型(或只评 Acc_LF),跑通 valid 前 100 题 可复现的最小评测台

这条路线刻意跳过图像下载与 VQA 训练(各需数小时级),先建立"数据可信、查询可执行"的底座,再把重资源环节挂上去。

附录 M:错误分析工作流

基准的剩余价值在错误分析。对 EHRXQA 成绩单做归因时建议的四层下钻:

  1. 先按模态切:Table / Image / Image+Table 各自的 Acc_EX|pred——差距大说明瓶颈在跨模态环节;
  2. Image 内按图像数切:1 图 / 2 图 / N 图 / group 四档对照论文的 39.6% 与 1.7%——如果你的模型在 2 图档就崩,问题在多图推理而非感知本身;
  3. Table 内按时间过滤类型切:global / within / exact 三档——exact 类错误集中说明是嵌套查询结构问题,用 few-shot 里多给 exact 示例即可低成本修复;
  4. 最后按模板聚合:用 q_tag 字段把错误聚合到模板级,找出"系统性全军覆没"的模板——通常对应某类 schema 理解或某类视觉概念的整体缺失,这决定了下一步是补 few-shot 还是换视觉模型。

四层走完,改进方向基本可以从"感觉不行"收敛到"某个具体组件的具体子能力"。

附录 N:常见错误用法十例

来自官方文档、GitHub issues 主题与社区复述的"踩坑姿势"合集,用法自查:

  1. 把虚拟年份当真实年份——对 2100-2105 做时间趋势分析;正确姿势:时间只用于相对比较。
  2. 用 _train.json 训练并报告"answer 全错"——预发布文件本来就没有答案;正确姿势:PhysioNet 版或本地重建。
  3. gold 库当训练集——测试库污染,成绩不可信;gold 400 患者只许评测。
  4. 只在 Table 子集上调参后报全模态成绩——Image 与 I+T 的失败机理不同,需分开调参分开报告。
  5. FUNC_VQA 换成自由文本生成式 VQA 后直接对标论文数字——论文基线是封闭标签分类,接口语义变了,数字不可比。
  6. 按 question 字段去重——同模板同槽值可能产生不同改写;去重应以 (q_tag, value) 或 query 为键。
  7. 假设各 split 同分布——I+T group 类 test 占比 4.5% 高于 train 2.3%(§2.2),跨 split 指标要报置信区间。
  8. 忽略 is_impossible 字段——虽然本数据集设计上不含不可答题,过滤时仍应显式检查该字段而非假设恒为 false。
  9. 把 46,152 全部当作"独立题"统计准确率——模板级聚集(同模板成百上千题)会让标准差被低估;应报模板级 bootstrap 置信区间。
  10. 引用时写"ehrxqa.github.io"——实测不可达(坑 1),给 GitHub 仓库与 PhysioNet DOI 更稳。

每一条的共性:把"设计约束"误读为"数据缺陷"或反之。拿到任何新数据集,先读 datasheet 与 Usage Notes 再写第一行代码,是这份条目最想传递的元方法。

附录 O:同类基准对照大表

与 EHRXQA 相关的医疗 QA/VQA 基准横向对位(规模档位为定性口径,EHRXQA 家族数字为精确值):

基准 年份 模态 源数据 任务形式 规模档位
emrQA 2018 文本 MIMIC-III 临床笔记 + i2b2 任务映射 阅读理解式 QA 数万级问题
EHRSQL 2022 表格 MIMIC-III(Text-to-SQL) Text-to-SQL 万级 QA 对
DrugEHRQA 2022 表格+文本 MIMIC-IV + 处方文本 检索式 QA 万级内
ECG-QA 2023 信号+表格 MIMIC-IV-ECG 模板生成 QA 数万级
VQA-RAD 2017 图像 放射影像(人工标注) 开放式 VQA 数千级
PathVQA 2020 图像 病理切片图文对 开放式 VQA 数万级
VQA-MED 2018- 图像 医学图像挑战赛 开放式 VQA 年赛数千级
SLAKE 2021 图像+知识图谱 多模态医学影像 双语 VQA 万级内
MIMIC-CXR-VQA 2023 图像 MIMIC-CXR + Chest ImaGenome 模板生成 VQA(封闭答案) 377,391 三元组
EHRXQA 2023 表格+图像 MIMIC-IV + MIMIC-CXR + Chest ImaGenome Text-to-NeuralSQL(可执行) 46,152 QA 对

三条纵向观察:其一,EHRXQA 是表中唯一同时占"多模态+可执行+封闭答案"三格的基准——另两家多模态尝试(DrugEHRQA、ECG-QA)各自选了文本与信号作为第二模态;其二,医疗 VQA 同类全走开放式答案,EHRXQA 家族的封闭标签空间是为 SQL 谓词语义做出的关键取舍;其三,模板驱动+执行验证的生成方式在 ECG-QA 与 EHRXQA 上先后出现,可视为医学基准工程的一种收敛趋势。

附录 P:数据安全与合规要点

使用 EHRXQA 前后需要过的合规关,逐条列出:

  1. 去标识状态:数据源于 PhysioNet 已去标识的 MIMIC 系(日期平移+自由文本清除),EHRXQA 再做时间轴压缩(2100-2105)——按去标识口径交付,但"去标识"不等于"零风险",多表组合查询理论上存在再识别面。
  2. 再识别禁令:三上游 DUA 与 PhysioNet Credentialed License 均禁止任何再识别尝试;故意识别或接触已知个别患者信息即违约。
  3. 再分发禁令:数据文件(JSON/CSV/图像)不得上传公开仓库或网盘——包括"只含答案不含文本"的中间产物;团队内共享走各自凭证(附录"凭证流程实操"的团队协作条)。
  4. 发表义务:基于数据的成果需按 DUA 引用数据集与论文;引用 EHRXQA 建议同时给数据 DOI(10.13026/bp5y-qt70)与论文。
  5. 代码仓合规:仓库可放 MIT 代码与无答案预发布 JSON 的指针,不可放含答案文件、凭证或下载缓存。
  6. 模型发布:在数据上训练的模型权重公开前,应评估记忆/泄漏风险并遵守上游 DUA 衍生条款——通行做法是在 model card 中声明训练数据来源与合规依据。

附录 Q:条目维护计划

触发式维护——以下事件发生时复核本条目对应章节:

触发事件 复核范围 动作
PhysioNet 发布新版本(>1.0.0) 全部数字、DOI、license、坑 2/3 更新数字并重跑加和自检
GitHub 仓库大改动(如再次迁移环境) §6.3、坑 8、附录 L 跟进环境要求与脚本名
上游三源任一升级 §2.5、§6.1 的版本号 确认 EHRXQA 是否跟进适配
新的官方竞赛或榜单 §7.1、坑 6 登记新口径,勿与官方混写
官方 erratum 或 FAQ 更新 坑 3 等存照条目 若官方修正 1,838/1,847,同步更新

例行建议:每半年重跑 §2.1 三处加和自检与附录 C 证据链抽查;坑 1-8 每年复核一次是否仍成立。

附录 R:来源抓取与核验记录

本条目事实基线的抓取存档(2026-09-26):

来源 抓取方式 用途 状态
PhysioNet 项目页(physionet.org/content/ehrxqa/1.0.0/) curl + UA 全部表格数字、目录树、官方 JSON 实例、license、发布日期 成功
论文文本(arXiv:2310.18652 版) ar5iv 镜像 curl Table 2/C9、方法节、Table 4/5、AUROC_rel 定义、datasheet 成功
GitHub README(github.com/baeseongsu/ehrxqa) WebFetch 文件结构、license 节、预发布无答案说明、Updates 时间线 成功
NeurIPS 官方页(papers.neurips.cc) WebFetch hash 0c007ebef1d11fd48da6ce4f54687db6、poster #73600 成功
ACM DL(doi:10.5555/3666122.3666292) WebFetch Article No. 170, pp.3867-3880 成功
ehrxqa.github.io curl 项目页 SSL 握手失败(exit 35),未核验(坑 1)
PhysioNet 文件下载 凭证后访问 数据本体 区域限制提示,未获取(§6.1)

核验原则:关键数字以"论文+PhysioNet"双源互证为底线,GitHub 作第三源;第三方页面仅作线索不作证据;所有加和自检(46,152 三处、417、18 表清单)在定稿前全部重跑通过。

尾注

  1. 本条目事实核验时点为 2026-09-26;EHRXQA 版本以 PhysioNet v1.0.0(DOI 10.13026/bp5y-qt70)为准,后续版本更新请以官方页面为准。
  2. 全部统计数字来自论文(arXiv:2310.18652 / NeurIPS 2023 D&B)与 PhysioNet 项目页两个一手来源的逐项互证;三处加和自检(总量/split/模板)全部精确通过,唯一官方内部不一致(Image valid 1,838 vs 1,847)已在坑 3 存照。
  3. 双口径事项(发布日期、作者机构、gold 数字、竞赛规模、Python 环境)统一登记于附录 F,处理原则为"官方主渠道优先、差异加注"。
  4. 官网域名 ehrxqa.github.io 在部分网络环境不可达(坑 1);本项目页职能由 GitHub 仓库承担,条目内所有仓库信息均以 github.com/baeseongsu/ehrxqa 实测为准。
  5. 库内互链建议(按优先级):mimiciv、mimic-cxr-jpg、chest-imagenome(三上游直系);emrQA(区分辨析);pathvqa、vqa-med、vqa-rad、slake(医疗 VQA 同类);eicu-crd、mimiciii(EHR 数据库家族)。

相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • mimic-cxr — 共享标签:多模态 / X光影像
  • health-data-nexus — 共享标签:电子健康记录 / 多模态
  • latte-cxr — 共享标签:多模态 / X光影像
  • mimic-iv-clinical-database — 共享标签:电子健康记录 / 多模态
  • ehrshot — 共享标签:电子健康记录 / 医学问答与基准
  • rsna-series — 共享标签:多模态 / X光影像
  • padchest — 共享标签:多模态 / X光影像
  • copdgene — 共享标签:电子健康记录 / X光影像
  • ms-cxr — 共享标签:多模态 / X光影像
  • gmai-mmbench — 共享标签:医学问答与基准 / 多模态

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集