信息速览

MC-MED — 斯坦福急诊多模态监护基准 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | MC-MED(斯坦福急诊多模态监护数据集) |
| 英文全称 | Multimodal Clinical Monitoring in the Emergency Department |
| 别名/简称 | MC-MED、mc-med、MCMED |
| 疾病分类 | 急诊全疾病谱(ICD-11:1G4Z 脓毒症 / CA4Z 肺炎 / BA00 原发性高血压 / 5A11 2 型糖尿病 / BC81.3 心房颤动等多系统疾病) |
| SNOMED CT | 10001005 Sepsis / 233604007 Pneumonia / 38341003 Essential hypertension / 44054006 Type 2 diabetes mellitus(详见 §2.1b) |
| 数据模态 | 结构化 EHR、分钟级数值生命体征、ECG/PPG/呼吸三通道波形(WFDB)、自由文本(放射报告) |
| AI 任务类型 | 分诊分级预测、失代偿预警、处置(入院/出院)预测、再就诊预测、波形信号分析、临床文本 NLP、多模态融合 |
| 样本总数 | 118,385 次急诊就诊 / 70,545 名患者 / 83,623 次就诊含生理波形 / 7 张主表 |
| 数据大小 | 官方未公布总量;numerics.csv 约 4,782 万行,波形分 10 个 ZIP 分卷(体积较大) |
| 数据格式 | CSV / WFDB(.dat + .hea)/ ZIP 分卷归档 |
| 许可证 | 数据经 PhysioNet DUA / Nightingale DUA 获取;数据描述论文以 CC BY-NC-ND 4.0 发布 |
| 访问级别 | 申请审核(PhysioNet Credentialed + CITI 培训 + 签署 DUA,或 Nightingale DUA + Globus 云端分析) |
| DUO 标签 | HMB, IRB, PUB |
| 语言 | 英文(临床文本与放射报告为英文) |
| 首发日期 | 2025-03-03(预印本在线发布)/ 2025-07-01(Scientific Data 论文发表) |
| 最后更新 | 2025-09-25(PhysioNet v1.0.1) |
| 发布机构 | 斯坦福大学计算机科学与急诊医学科 + 哈佛医学院生物医学信息学系;托管于 PhysioNet 与 Nightingale Open Science |
| 官方主页 | https://physionet.org/content/mc-med/1.0.1/ |
| 下载地址 | https://physionet.org/content/mc-med/1.0.1/ 或 https://doi.org/10.48815/N57P4G(Nightingale,经 Globus) |
| DOI | 10.1038/s41597-025-05419-5(论文)/ 10.13026/wvyw-g663(数据 v1.0.1)/ 10.48815/N57P4G(Nightingale) |
| 引用次数 | 14+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方双划分 + 完整数据字典 + 可视化示例代码;扣分项:波形采样率未公布、多模态对齐需自行实现、单中心 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(ICD-10 与 ICD-11/SNOMED CT 映射、急诊监护场景与临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(CSN/MRN 双主键体系、12 项分钟级测量)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MC-MED 要求用户持有 PhysioNet Credentialed 账号、完成 CITI Program 的 “Data or Specimens Only Research” 培训并通过 PhysioNet 凭证化申请、签署数据使用协议(DUA),或通过 Nightingale Open Science 签署 DUA 后在安全云环境分析。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? MC-MED 是斯坦福大学发布的急诊科多模态数据集,记录了 2020 年 9 月到 2022 年 9 月斯坦福 Health Care 成人急诊科监护床位上的 118,385 次成人急诊就诊、70,545 名患者。它把三类通常彼此割裂的数据第一次拼在了一条时间轴上:电子病历(诊断、医嘱、用药、检验结果)、床旁监护仪每分钟记录的生命体征,以及 ECG、PPG、呼吸三通道高分辨率波形,外加去标识的放射报告文本。
为什么重要? 急诊科是生理变化最快、数据最异构的诊疗场景,但公开的急诊数据集(如 MIMIC-IV-ED)只有每 1-4 小时一次的护理记录生命体征,波形数据几乎全部在研究用途中被丢弃。MC-MED 是第一个为大规模、多样化急诊人群同时保留连续监护数值与原始波形的公开数据集,也是第一个完全覆盖新冠疫情期间及之后急诊就诊的大规模数据集。
我能用它做什么? 你可以训练和评测急诊场景的临床 AI:用分诊数据预测患者是否会恶化(失代偿预警)、预测应该住院还是出院(处置预测)、预测 3-14 天内是否会再回急诊(再就诊预测),也可以做 ECG/PPG 波形信号分析、多模态融合研究、急诊运营与卫生服务研究。官方配套的 MC-BEC 基准给出了三类任务的基线成绩,可直接对标。
§1.1 技术摘要
MC-MED 由斯坦福大学计算机科学系与急诊医学科、哈佛医学院生物医学信息学系联合构建(Kansal 等, 2025, Scientific Data)。结构化临床数据取自斯坦福医学研究数据仓库 STARR(Epic EHR + 放射 PACS);连续生理数据取自 Philips IntelliVue 床旁监护仪,经 Philips PIC iX DWC Toolkit(C.03.31)提取后,按患者入室/离室时间把以床位为中心的监护流切分到以就诊(CSN)为中心的数据单元。数据以 7 张 CSV 主表(visits/orders/meds/pmh/rads/labs/numerics)+ 波形摘要表 + 10 个 WFDB 波形 ZIP 分卷组织,全部标识符经随机整数映射、时间戳按患者平移至 2150-2350 虚构年份、放射报告 PHI 由 BERT 去标识工具清洗并人工复核。数据发布含随机(80/10/10)与时序(78/11/11)两种官方划分,经 PhysioNet(v1.0.1,2025-09-25)与 Nightingale Open Science 双渠道托管。
§1.2 战略价值
维度一:填补急诊波形数据空白。 公开临床数据集中,ICU 数据(MIMIC-III/IV、eICU、HiRID、AmsterdamUMCdb)不含原始生理波形或仅覆盖 ICU 时段,而 ED 专用数据集(MIMIC-IV-ED)仅有稀疏的护理生命体征。MC-MED 以 83,623 次含波形就诊的规模首次把 ECG、PPG、呼吸三通道原始波形与完整的急诊临床轨迹(医嘱、给药、检验、影像、结局)逐分钟对齐,使“微事件”研究成为可能——例如给药后 10 分钟内的心率变异变化、转运中断监护的生理代价、或恶化前 60-120 分钟的波形前兆。
维度二:多模态融合的天然试验场。 MC-MED 同时具备结构化表格、时间序列数值、高频波形与自由文本四类模态,且以 CSN/MRN 双主键严格链接。MC-BEC 基准(Chen 等, 2023, NeurIPS)已经在该数据上系统量化了“加模态是否真的有用”:结果显示波形对失代偿预测贡献最大,而盲目堆叠模态会出现“模态竞争”导致性能下降——这使 MC-MED 成为研究多模态融合策略与缺失模态鲁棒性的理想基准。
§1.3 同类数据集横向对比
| 数据集 | 中心/来源 | 时间范围 | 患者数 | 就诊数 | 波形 | ED 覆盖 | 数值生命体征 | 自由文本 |
|---|---|---|---|---|---|---|---|---|
| MC-MED v1.0.1 | 斯坦福 Health Care 成人 ED | 2020-09 至 2022-09 | 70,545 | 118,385(83,623 含波形) | ECG/PPG/呼吸(WFDB) | ✅ 专属性 | 分钟级连续 | 放射报告 |
| MIMIC-IV-ED(v2.2) | 贝斯以色列女执事医疗中心 ED | 2008-2019 | — | 358,050 | ❌ | ✅ 专属性 | 每 1-4 小时护理记录 | — |
| MIMIC-IV ICU 模块 | BIDMC ICU | 2008-2019 | 299,712 | 73,181 次 ICU 入住 | ECG/PPG/血压 | ❌(ICU 内) | 不规则采样 | 临床笔记 |
| MIMIC-III | BIDMC ICU | 2001-2012 | 38,597(成人) | 53,423(成人) | ❌ | ❌ | 每小时护理核录 | 临床笔记 |
| eICU(v2.0) | 多中心 ICU | 2014-2015 | — | — | ❌ | ❌ | 分钟级部分指标 | — |
对比数字来源:MC-MED 论文 Table 1 与 PhysioNet 页面对比表(physionet.org/content/mc-med)。MIMIC-IV-ED 有更多就诊量但无 ED 波形;MC-MED 的差异化在于“连续监护 × 完整急诊临床事件”的组合。
§1.4 版本时间轴
| 日期 | 版本/事件 | 说明 |
|---|---|---|
| 2025-03-03 | 预印本在线发布 | Multimodal clinical monitoring in the emergency department (mc-med),Google Scholar 记录(截至 2026-09 被引 10) |
| 2025-07-01 | Scientific Data 论文发表 | Sci Data 12, 1094,DOI 10.1038/s41597-025-05419-5 |
| 2025 年(上半年) | Nightingale Open Science 收录 | 数据 DOI 10.48815/N57P4G,经 Globus 访问(doi.org/10.48815/N57P4G) |
| 2025-09-25 | PhysioNet v1.0.1 | 数据 DOI 10.13026/wvyw-g663;重新生成少量去标识 MRN 以避免与现存原始 MRN 意外重叠 |
§1.5 典型应用场景
- 失代偿早期预警:用 60/90/120 分钟预测窗内的监护数值与波形预测患者临床崩溃,MC-BEC 单任务基线 AUPRC 0.33-0.40(NeurIPS 2023)。
- 处置决策支持:基于就诊全程数据预测住院/出院/观察,基线 AUPRC 0.87,适合研究决策支持系统的过信任风险。
- 再就诊预测:预测 3/7/14 天内非计划重返急诊(AUPRC 0.11-0.24),是卫生服务研究与健康社会决定因素建模的难题基准。
- ECG/PPG/呼吸波形分析:83,623 次就诊的多段波形可用于心律失常检测、信号质量评估、生物信号基础模型预训练与评测(如 SignalMC-MED,arXiv 2603.09940)。
- 多模态融合与缺失鲁棒性研究:官方模态消融框架可量化每个模态的边际贡献与“模态竞争”效应。
§2 医学背景
§2.1 ICD 编码映射表
MC-MED 的主诊断与既往史以 ICD-9/ICD-10 双编码记录(CodeType 字段区分),并附 CCS(Clinical Classification Software)分类。下表给出数据集中高频诊断与 ICD-11 的映射示例:
| 数据集记录(ICD-10) | ICD-11 编码 | ICD-11 中文名 | 数据集中出现位置 |
|---|---|---|---|
| I10 | BA00 | 原发性高血压 | pmh.csv 既往史、visits.csv 主诊断 |
| E11.9 | 5A11 | 2 型糖尿病 | pmh.csv、visits.csv |
| J18.9 | CA4Z | 肺炎(病原体未特指) | visits.csv 主诊断 |
| A41.9 | 1G4Z | 脓毒症(细菌性未特指) | visits.csv 主诊断 |
| I48.9 | BC81.3 | 心房颤动 | visits.csv 主诊断、波形分析对象 |
| N39.0 | GC08 | 尿路感染(部位未特指) | visits.csv 主诊断 |
注:MC-MED 原始数据仅含 ICD-9/ICD-10 编码;ICD-11 映射为千方病案医学编辑部基于 WHO ICD-11 MMS 编写,供跨库检索使用,不构成官方映射。
§2.1b SNOMED CT 映射表
| 术语标签 | ICD-11 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| 原发性高血压 | BA00 | 38341003 | Essential hypertension (disorder) |
| 2 型糖尿病 | 5A11 | 44054006 | Diabetes mellitus type 2 (disorder) |
| 肺炎 | CA4Z | 233604007 | Pneumonia (disorder) |
| 脓毒症 | 1G4Z | 10001005 | Sepsis (disorder) |
| 心房颤动 | BC81.3 | 49436004 | Atrial fibrillation (disorder) |
| 尿路感染 | GC08 | 68566005 | Urinary tract infection (disorder) |
§2.2 疾病简介与流行病学
MC-MED 覆盖急诊科全疾病谱而非单一疾病,理解其临床背景需要理解急诊医学的三个基本事实。其一,未分化主诉:急诊患者常以胸痛、腹痛、呼吸困难、发热等非特异性主诉就诊,最终诊断在就诊过程中才逐步明确,因此分诊阶段(triage)的信息极少而后续信息密集增长,这决定了预测任务的“信息时间轴”设计。其二,生理动态性:急诊患者病情可快速演变,连续监护(而非每 1-4 小时一次的护理记录)是捕捉失代偿前兆的关键,这也是 MC-MED 相对既有数据集的核心临床立意(Nature Scientific Data)。其三,处置与回流:约 40.7% 的就诊以住院(24.90%)、观察(13.42%)或 ICU(2.34%)结束,出院患者中一部分会在数天至两周内非计划重返急诊,构成处置与再就诊两类预测任务的正例来源。
从流行病学构成看(PhysioNet Table 11,按 118,385 次就诊):女性占 54.29%(64,272 次);年龄横跨 18-90 岁,各十岁段分布 11.95%-16.49% 相对均匀;种族以 White 40.13%、Other 33.75%、Asian 16.41%、Black or African American 6.46% 为主,Hispanic/Latino 族裔占 27.45%,体现了湾区多元人群结构。分诊严重度(ESI)以 3 级(Urgent,65.26%)为主体,2 级(Emergent,23.55%)次之,1 级(Resuscitation)仅 0.90%——这一构成直接决定了分类任务的类别不平衡形态。
§2.3 临床任务定义
| 任务 | 临床问题 | 预测窗/标签 | 信息时间点 | 难点 |
|---|---|---|---|---|
| 分诊分级(ESI 预测) | 到诊时凭有限信息判断严重度 | Triage_acuity 1-5 | 到达时(人口学 + 分诊生命体征 + 主诉) | 1 级仅 0.9%,极端不平衡 |
| 失代偿预测 | 患者是否将在预测窗内临床崩溃 | 60/90/120 分钟窗 | 就诊过程中滚动预测 | 患病率 11-17%,需波形/监护信号 |
| 处置预测 | 住院/观察/出院 | ED_dispo | 就诊结束时(或滚动) | 信息泄漏风险高(医嘱即结局代理) |
| 再就诊预测 | 是否非计划重返急诊 | 3/7/14 天 | 离开急诊后 | 决定因素多在院外,AUPRC 天花板低 |
| 波形信号任务 | 心律失常/信号质量/呼吸不稳定 | 逐段标注 | 任意 | 多段不连续、采样率需自查 |
§2.4 患者人群表
| 维度 | 值 | 来源 |
|---|---|---|
| 数据来源 | 斯坦福 Health Care 成人急诊科监护床位(单一学术医疗中心) | Sci Data 论文 Methods |
| 采集时间 | 2020-09 至 2022-09(覆盖新冠疫情高峰后时段) | 同上 |
| 年龄 | ≥18 岁成人,均值 53 岁(SD 20);波形子集均值 55 岁(SD 20) | Nightingale 数据页 |
| 性别 | 女 54.29% / 男 45.68% / 未知 0.03%(按就诊) | PhysioNet Table 11 |
| 种族 | White 40.13% / Other 33.75% / Asian 16.41% / Black 6.46% / NHPI 2.08% / 其他 <1% | 同上 |
| 族裔 | Hispanic/Latino 27.45% | 同上 |
| 就医类型 | 成人急诊(含分诊 ESI 1-5 全谱);住院患者仅保留急诊轨迹与结局字段 | Sci Data 论文 |
§2.5 临床价值
对临床研究者,MC-MED 提供了第一个“急诊全程生理电影”:从入室到离院的每分钟数值与波形,可用来回答既往只能用稀疏护理记录粗略近似的问题——监护中断的生理代价、镇痛给药后的呼吸抑制窗口、分诊低估的早期信号。对 AI 研究者,它提供了带官方划分、官方模态消融与公平性评估的多模态基准,使“泛化急诊 AI 模型”的进步可以标准化度量。对卫生服务研究者,就诊时间戳(到达/入室/处置/离院)、ESI 分布与再就诊链路支持患者流与资源利用分析。数据发布团队在 PhysioNet Usage Notes 中明确建议的方向包括:危重症早期检测、患者风险分层、临床决策支持工具开发。
§2.6 金标准表
| 划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|
| 失代偿(60/90/120 分钟窗) | 由生命体征/监护数据与临床事件按 MC-BEC 规则自动推导 | 程序化(基于 EHR 定义) | 弱监督标签 |
| 处置(住院 vs 出院) | ED_dispo 字段直接取自 EHR | 系统记录 | 客观结局 |
| 再就诊(3/7/14 天) | 由 Hours_to_next_visit 与 Dispo_class_next_visit 推导 | 程序化(基于 EHR 定义) | 客观结局 |
| 分诊分级(ESI 1-5) | Triage_acuity 取自分诊护士评估 | 分诊护士(人工) | 人工评分,含评估者差异 |
| 放射报告 PHI 清洗 | BERT 去标识 + 逐份人工复核 | Stanford MIDRC Penn Deidentifier + 作者与非作者人工审核员 | 人工+自动混合 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本/渠道 | 理由 |
|---|---|---|
| 本地下载、批量训练、复现论文 | PhysioNet v1.0.1(10.13026/wvyw-g663) | 最新修正(去标识 MRN 重新生成),完整文件树,Credentialed 后可 wget 下载 |
| 不想下载、只做探索性分析 | Nightingale Open Science(10.48815/N57P4G) | 签 DUA 后在安全云环境经 Globus 分析,免本地存储压力 |
| 引用学术成果 | Scientific Data 论文 + PhysioNet/数据 DOI | 论文与数据双 DOI,引用规范见 §9 |
| 使用旧版本号文件/缓存 | 强烈建议弃用 v1.0.0 缓存 | v1.0.1 重新生成了部分去标识 MRN,新旧版本 MRN 不可混用 |
§3.1 模态详情
| 模态 | 内容 | 载体 | 覆盖 |
|---|---|---|---|
| 结构化 EHR | 就诊高层信息、医嘱、院内给药、家庭用药、既往史诊断、检验结果 | visits/orders/meds/pmh/labs.csv | 全部 118,385 次就诊 |
| 自由文本 | 放射检查名称 + 去标识印象(impression) | rads.csv | 156,866 行影像结果 |
| 分钟级数值 | 12 项生命体征测量(HR/RR/SpO2/SBP/DBP/MAP/Temp/Perf/Pain/LPM_O2/1min_HRV/5min_HRV) | numerics.csv | 全部就诊,4,782 万行 |
| 高频波形 | ECG(II 导联)、PPG(Pleth)、呼吸(Resp)多段 WFDB 记录 | waveforms/ 目录(10 个 ZIP 分卷) | 83,623 次就诊(70.6%) |
§3.2 按子集样本数表
| 子集/表 | 记录数 | 单位 | 备注 |
|---|---|---|---|
| visits.csv | 118,385 | 行(一次就诊一行) | 主键 CSN;含 70,545 个独立 MRN |
| 含波形就诊 | 83,623 | 次就诊 | 占 70.6%;对应 53,123 名患者 |
| orders.csv | 3,288,744 | 行(一单一行) | 医嘱类型含 lab/imaging/medication/consult 等 |
| labs.csv | 5,706,470 | 行(一组件结果一行) | 含正常范围与异常标志 |
| numerics.csv | 47,821,508 | 行(一分钟一测量一行) | 长表;Source 区分 Chart/Monitor |
| pmh.csv | 755,341 | 行(一诊断一行) | 按 MRN 组织 |
| meds.csv | 235,718 | 行(一药一行) | 家庭用药,按 MRN 组织 |
| rads.csv | 156,866 | 行(一影像结果一行) | Study + Impression 文本 |
| waveform_summary.csv | 188,315 | 行(一就诊一波形类型一行) | Segments 与总时长(秒) |
行数来源:Nightingale 数据字典。
§3.3 数据格式表
| 表/目录 | 格式 | 主键/组织方式 | 链接键 |
|---|---|---|---|
| visits.csv | CSV | CSN 唯一 | CSN→orders/labs/rads/numerics;MRN→meds/pmh |
| orders.csv | CSV | 一单一行 | CSN |
| meds.csv | CSV | 一药一行 | MRN |
| pmh.csv | CSV | 一诊断一行 | MRN |
| rads.csv | CSV | 一影像结果一行 | CSN |
| labs.csv | CSV | 一组件结果一行 | CSN |
| numerics.csv | CSV | 长表 | CSN |
| waveform_summary.csv | CSV | CSN × Type | CSN |
| waveforms/ | WFDB(.dat+.hea) | {CSN 末三位}/{CSN}/{II 或 Pleth 或 Resp}/{CSN}_ | CSN |
| split_*.csv | CSV | CSN 列表 | CSN |
§3.4 存储大小
官方文档未公布数据总大小(截至 2026-09 检索确认)。可参考的规模锚点:numerics.csv 47,821,508 行、labs.csv 5,706,470 行、orders.csv 3,288,744 行(Nightingale 数据字典);波形分 10 个 ZIP 分卷,官方 README 明确提示“波形数据很大,请预留足够存储空间”(GitHub dkimlab/MCMED)。工程建议:预留不低于 200 GB 磁盘并使用逐卷下载解压,勿一次性解压全部波形。
§3.5 标注方式
MC-MED 是观察性回顾数据集,无人工标注的诊断标签层:结局标签(处置、再就诊、失代偿)均由 EHR 字段程序化推导;ESI 分诊分级为分诊护士在临床流程中的人工评分(非研究标注);放射印象为临床文本经自动去标识后保留的原始临床书写。唯一的研究性“标注工作”是波形质量控制——恒定值 ≥10 秒的片段被自动剔除(详见 Sci Data 论文 Methods)。
§3.6 标注者资质与一致性
- 分诊护士:ESI 评级由急诊分诊护士按 ESI 五级标准执行,属常规临床流程,无研究性一致性系数发布。
- 去标识人工复核员:放射报告 PHI 清洗由作者与非作者人工审核员逐份复核(Sci Data 论文),未公布标注者间一致性指标。
- 波形质控:程序化规则(恒定值检测)执行,无人工环节,规则在论文 Methods 中完整公开,可复现。
§3.7 采集周期
2020 年 9 月至 2022 年 9 月,连续采集约 24 个月,覆盖新冠疫情期间与之后的急诊运营时段。这是首个完全落在此时间窗的大规模 ED 公开数据集,疫情相关偏倚见 §7.1。
§3.8 地域覆盖
单一中心:美国加利福尼亚州斯坦福的 Stanford Health Care 成人急诊科(学术医疗中心)。无多中心、无地理分层,外推性受限(见 §7.3)。
§3.9 设备规格
| 项目 | 规格 | 来源 |
|---|---|---|
| 床旁监护仪 | Philips IntelliVue 系列 | Sci Data 论文 Methods |
| 波形提取工具 | Philips PIC iX DWC Toolkit(C.03.31) | 同上 |
| 波形类型 | ECG(II 导联)、PPG(Pleth)、呼吸(Resp),WFDB 多段记录 | PhysioNet |
| 采样率 | 官方文档未公布统一数值;各段实际采样率以 .hea 头文件 fs 字段为准 | 截至 2026-09 检索确认未公布 |
| EHR 系统 | Epic(经 STARR 数据仓库)+ 放射 PACS | 同上 |
§3.10 深度溯源链
监护仪(Philips IntelliVue,床位级)→ 监护数据仓库 → PIC iX DWC Toolkit 提取 → 按入室/离室时间切分到 CSN → 恒定段过滤 → WFDB 导出;EHR(Epic)→ STARR 仓库 → 表级抽取(visits/orders/meds/pmh/labs/rads)→ MRN/CSN 随机映射 + 时间平移 + 文本去标识 → CSV 导出 → PhysioNet v1.0.0(2025)/ v1.0.1(2025-09-25)与 Nightingale Open Science(DOI 10.48815/N57P4G)双渠道发布 → GitHub 数据字典与可视化代码(dkimlab/MCMED)。每一步均有论文 Methods 或官方文档支撑,可直接引用。
§4 数据结构
§4.0 目录树
数据解压后的目录结构(GitHub README 与 Nightingale File Tree):
./
├── labs.csv # 检验结果(一组件结果一行,CSN 链接)
├── meds.csv # 家庭用药(一药一行,MRN 链接)
├── numerics.csv # 分钟级数值生命体征长表(4,782 万行)
├── orders.csv # 急诊医嘱(一单一行,CSN 链接)
├── pmh.csv # 既往史诊断(一诊断一行,MRN 链接)
├── rads.csv # 影像结果(Study + 去标识 Impression,CSN 链接)
├── visits.csv # 就诊高层信息(一次就诊一行,主表)
├── waveform_summary.csv # 波形可用性摘要(CSN × 波形类型)
├── split_random_train.csv # 随机划分 80%(按患者)
├── split_random_val.csv # 随机划分 10%
├── split_random_test.csv # 随机划分 10%
├── split_chrono_train.csv # 时序划分 78%
├── split_chrono_val.csv # 时序划分 11%
├── split_chrono_test.csv # 时序划分 11%
└── waveforms/ # 或 waveforms_0xx.zip … waveforms_9xx.zip 压缩包
└── {CSN 末三位}/ # 按就诊号末三位分目录
└── {完整 CSN}/
├── II/ # 心电 II 导联
│ ├── {CSN}_1.dat # WFDB 信号文件
│ └── {CSN}_1.hea # WFDB 头文件(含采样率 fs、增益、单位)
├── Pleth/ # PPG 光电容积描记
│ ├── {CSN}_1.dat
│ └── {CSN}_1.hea
└── Resp/ # 呼吸波形
├── {CSN}_1.dat
└── {CSN}_1.hea
§4.1 DAIMS 字段字典
核心字段 8 列视图(示例值取自 Nightingale 数据字典官方样例):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| visits.CSN | int | 就诊唯一标识(随机映射) | 99139687 | 样本主键、多模态链接 | 无(随机整数替换) | 无 | 8 位随机整数 |
| visits.Triage_acuity | int | ESI 分诊分级 | 3 | 分诊任务标签 | 护士间评分差异 | Unknown(527 例,0.45%) | 1-5 + Unknown |
| visits.ED_dispo | string | 急诊处置结局 | Discharge | 处置预测标签 | 记录准确性依赖 EHR 流程 | 无 | Discharge/Inpatient/Observation/ICU |
| visits.Hours_to_next_visit | float | 距下次急诊的小时数 | 47.5 | 再就诊任务标签 | 末次就诊为空 | 空=无后续就诊 | ≥0 或空 |
| numerics.Measure | string | 12 项测量之一 | SpO2 | 特征通道选择 | — | 无 | HR/RR/SpO2/SBP/DBP/MAP/Temp/Perf/Pain/LPM_O2/1min_HRV/5min_HRV |
| numerics.Source | string | 测量来源 | Monitor | 数据质量分层特征 | Chart 与 Monitor 口径不同 | 无 | Chart/Monitor |
| numerics.Value | float | 测量值 | 100.0 | 主特征 | 监护仪误差与噪声 | — | 依测量项而异 |
| numerics.Time | datetime | 测量时间(平移后) | 2247-05-09T06:40:42Z | 时间轴对齐 | 平移破坏绝对日期 | 无 | 2150-2350 虚构年份 |
| labs.Component_value | string | 检验数值化结果 | 1 | 检验特征 | 定性结果也数值化 | 含日期/姓名的结果已整行移除 | 依组件而异 |
| labs.Component_abnormal | string | 组件异常标志 | Normal | 弱监督标签 | 正常范围依实验室 | 无 | Normal/Abnormal |
| rads.Impression | string | 去标识放射印象 | “1. No acute cardiopulmonary disease.” | 临床文本 NLP | PHI 替换为 ___;BERT 工具误伤/漏检 | — | 自由文本 |
| waveform_summary.Duration | float | 该就诊该波形类型总时长(秒) | 119.984 | 波形可用性过滤 | 不等于在院时长(恒定段已删) | 无 | >0 |
| waveform_summary.Segments | int | 波形段数 | 1 | 段拼接逻辑 | — | 无 | ≥1 |
§4.2 标签分布
两个最常用标签的官方分布(PhysioNet Table 11,按 118,385 次就诊):
| 标签 | 取值 | 频数 | 占比 |
|---|---|---|---|
| ESI 分诊分级 | 3-Urgent | 77,259 | 65.26% |
| ESI 分诊分级 | 2-Emergent | 27,880 | 23.55% |
| ESI 分诊分级 | 4-Semi-Urgent | 10,973 | 9.27% |
| ESI 分诊分级 | 1-Resuscitation | 1,066 | 0.90% |
| ESI 分诊分级 | 5-Non-Urgent | 680 | 0.57% |
| ESI 分诊分级 | Unknown | 527 | 0.45% |
| ED 处置 | Discharge | 70,246 | 59.34% |
| ED 处置 | Inpatient | 29,483 | 24.90% |
| ED 处置 | Observation | 15,890 | 13.42% |
| ED 处置 | ICU | 2,766 | 2.34% |
失代偿与再就诊标签的患病率由 MC-BEC 给出:恶化预测窗内正例患病率约 11-17%,再就诊任务 AUPRC 基线 0.11-0.24(Chen 等, 2023, NeurIPS)。
§4.3 关键统计
- 人群:70,545 名患者中约 40% 有多次就诊(118,385 次就诊 / 70,545 患者 ≈ 1.68 次/患者)。
- 波形覆盖:83,623/118,385 = 70.6% 就诊含至少一种波形;单就诊波形时长不等,由 waveform_summary.csv 逐条给出(GitHub README)。
- 数值密度:47,821,508 行分钟级测量,覆盖全部就诊,平均每就诊约 404 行(含 12 种测量)。
- 检验密度:5,706,470 行组件结果,平均每就诊约 48 个组件结果行。
- 文本规模:156,866 条去标识放射印象(约 1.3 条/就诊),全部英文。
由官方数字可推导的工程参考值(千方编辑部计算,供容量规划):
| 推导指标 | 数值 | 计算口径 |
|---|---|---|
| 平均就诊次数/患者 | ≈1.68 | 118,385 ÷ 70,545 |
| 波形覆盖率 | 70.6% | 83,623 ÷ 118,385 |
| 波形子集平均就诊次数/患者 | ≈1.57 | 83,623 ÷ 53,123 |
| 分钟级测量行/就诊 | ≈404 | 47,821,508 ÷ 118,385 |
| 检验组件行/就诊 | ≈48 | 5,706,470 ÷ 118,385 |
| 医嘱行/就诊 | ≈28 | 3,288,744 ÷ 118,385 |
| 波形摘要行/含波形就诊 | ≈2.25 | 188,315 ÷ 83,623(<3 表明部分就诊缺少个别模态段) |
§4.4 数据层级
患者(MRN,随机整数)
└── 急诊就诊(CSN,随机整数;同一患者 1-N 次就诊)
├── 就诊级:visits(人口学/分诊/结局)、rads(影像结果)
├── 事件级:orders(医嘱)、labs(检验组件结果)
├── 时序级:numerics(分钟级 12 项测量)
└── 信号级:waveforms(II/Pleth/Resp 多段 WFDB 记录)
meds 与 pmh 挂在患者级(MRN),其余全部挂在就诊级(CSN);波形段是信号级的最小单元,同一就诊同一模态可有多个不连续段。
§4.5 缺失值与信息性缺失
| 缺失模式 | 位置 | 机制 | 处理建议 |
|---|---|---|---|
| 波形整体缺失 | 28.4% 就诊无任何波形 | 未入监护床位/记录不可用 | 非随机缺失;按“是否有波形”分层建模或只建波形子集 |
| 波形段内空隙 | 同一就诊内多段 | 转运/导联脱落,恒定 ≥10 秒段被删 | 用 waveform_summary 拼段;勿假设连续 |
| ESI Unknown | 527 例 | 分诊记录缺失 | 建模时单列类别或剔除并在论文说明 |
| 数值测量缺口 | numerics 时间轴 | 断连时段无 Chart/Monitor 记录 | 时间对齐时显式构造缺失 mask |
| labs 定性结果删除 | 少数行 | 含日期/姓名的结果整行移除 | 不视为测量缺失,是隐私过滤 |
| 再就诊字段为空 | 末次就诊 | 无后续就诊可链 | 再就诊任务样本界定时排除末次就诊 |
§5 数据划分与使用建议
§5.1 官方划分
MC-MED 提供两套官方划分(Sci Data 论文):
| 划分文件 | 比例 | 约束 | 适用场景 |
|---|---|---|---|
| split_random_{train,val,test}.csv | 80/10/10 | 同一患者的所有就诊在同一集合(按 MRN 分组) | 通用建模、横断面研究 |
| split_chrono_{train,val,test}.csv | 78/11/11 | 验证集就诊全部晚于训练集最后就诊、测试集晚于验证集;患者仍不跨集(13,007 次就诊因此被移除) | 时序泛化、模拟前瞻部署 |
§5.2 社区惯例划分
社区尚无大规模第三方划分惯例(数据 2025 年发布,截至 2026-09)。MC-BEC 基准在 MC-MED 的 102,731 次监护就诊子集上按任务构造预测窗样本,其评测协议(AUPRC + 95% CI bootstrap)是当前事实标准。
§5.3 划分策略建议与泄漏风险
- 必须按 MRN 分组:约 40% 患者有多次就诊,任何随机切分若不做患者级分组都会造成患者间泄漏;官方两套划分均已处理,自定义划分必须复用同样的 MRN 约束。
- 禁止用平移后日期自建时序划分:官方 README 明确警告——绝对日期是虚构的(2150-2350 年),仅季度季节性保留;自定义时序划分只能基于官方 chrono 划分或以 MRN/CSN 为准(GitHub README)。
- 处置预测的信息时间轴:医嘱、给药与检验发生在处置决定之前但在预测时未必可见;若不冻结特征时间点,模型将学到“已开住院单 ⇒ 会住院”的捷径。滚动预测设计参考 MC-BEC 的三个时间尺度框架。
- 波形子集与非子集的差异:含波形子集年龄均值 55 vs 全体 53(Nightingale),在波形子集上训练、在全量上评估(或反之)会引入选择偏倚;报告结果时必须注明子集。
- 交叉验证建议:在 random split 的训练集内做 GroupKFold(groups=MRN);时序泛化评估只用 chrono split,不要混用两套划分的文件。
§5.4 交叉验证建议
在 random split 的 80% 训练集内部调参时,用患者级分组交叉验证;chrono split 只做一次训练/验证/测试,不再内部折:
# 患者级分组 5 折交叉验证(在 split_random_train.csv 的 80% 内部调参用)
import pandas as pd
from sklearn.model_selection import GroupKFold
visits = pd.read_csv("data_root/visits.csv")
train_ids = pd.read_csv("data_root/split_random_train.csv")["CSN"]
df = visits[visits["CSN"].isin(train_ids)][["CSN", "MRN"]]
gkf = GroupKFold(n_splits=5)
for fold, (tr_idx, va_idx) in enumerate(
gkf.split(df, groups=df["MRN"])):
tr_csns = df.iloc[tr_idx]["CSN"]
va_csns = df.iloc[va_idx]["CSN"]
assert set(tr_csns).isdisjoint(set(va_csns)) # 门禁:患者不跨折
§5.5 外部验证建议
单中心数据(斯坦福学术急诊)的模型在社区医院、不同付费结构、不同监护设备环境下性能可能显著退化。建议有条件的团队在 MIMIC-IV-ED(结构化子任务可对齐)上做跨库验证,或与本院数据合作复测;引用 MC-BEC 的缺失模态鲁棒性框架评估部署环境下的传感器差异。
§6 AI 就绪指南 ⭐
§6.0 云端快速启动
若选择 Nightingale 渠道:在 nightingalescience.org 完成 DUA 签署后获得 Globus 端点访问权,数据可在其安全云计算环境中直接分析,无需本地下载(Sci Data 论文 Data Records)。若选择 PhysioNet:Credentialed 用户通过 wget 拉取(见 §6.2)。以下本地流程以 PhysioNet v1.0.1 为准。
§6.1 快速上手
目录结构预期:假设你已下载并解压,得到如下结构(data_root 指向该目录):
data_root/
├── visits.csv
├── numerics.csv
├── labs.csv
├── orders.csv
├── rads.csv
├── meds.csv
├── pmh.csv
├── waveform_summary.csv
├── split_random_train.csv … split_chrono_test.csv
└── waveforms/{CSN[-3:]}/{CSN}/{II,Pleth,Resp}/{CSN}_{seg}.dat|.hea
最小可用子集:visits.csv(就诊级标签)+ numerics.csv(分钟级特征)即可跑通“分诊/处置/再就诊”三个表格基线,无需解压任何波形 ZIP——这能把启动成本从 TB 级降到 GB 级。
# data_root = 数据根目录(visits.csv 等所在目录)。
# visits.csv 一次就诊一行,主键 CSN;split_random_train.csv 每行一个 CSN。
# 最小管道:读表 → 选官方划分 → 特征拼装 → 训练一个 LightGBM 分诊基线。
import pandas as pd
DATA_ROOT = "data_root" # 与上述目录结构一致
visits = pd.read_csv(f"{DATA_ROOT}/visits.csv")
train_ids = pd.read_csv(f"{DATA_ROOT}/split_random_train.csv")["CSN"]
val_ids = pd.read_csv(f"{DATA_ROOT}/split_random_val.csv")["CSN"]
feature_cols = ["Age", "Triage_HR", "Triage_RR", "Triage_SpO2", "Triage_SBP", "Triage_DBP", "Triage_Temp"]
X_train = visits[visits["CSN"].isin(train_ids)][feature_cols]
y_train = visits[visits["CSN"].isin(train_ids)]["Triage_acuity"]
# 分钟级特征可从 numerics.csv 聚合(pivot 后拼接),先跑通最小管道再扩展
from lightgbm import LGBMClassifier
clf = LGBMClassifier(random_state=42, class_weight="balanced")
clf.fit(X_train.fillna(X_train.median()), y_train)
§6.2 数据获取
| 步骤 | PhysioNet 渠道 | Nightingale 渠道 |
|---|---|---|
| 1. 账号 | 注册 PhysioNet 并申请 Credentialed 状态 | 注册 Nightingale Open Science |
| 2. 培训 | 提交 CITI “Data or Specimens Only Research” 完成证明 | 平台内协议流程 |
| 3. 协议 | 签署项目 DUA(physionet.org/content/mc-med/1.0.1) | 签署 DUA |
| 4. 获取 | wget 本地下载 | Globus 挂载/云端分析 |
# PhysioNet Credentialed 下载(经浏览器登录确认协议后,凭证为 PhysioNet 用户名/密码)
# 先只下载表格与划分(最小子集,不含波形)
wget --user=$PHYSIONET_USER --password=$PHYSIONET_PASS \
-P data_root/ \
https://physionet.org/files/mc-med/1.0.1/visits.csv
# 波形按末三位分卷下载(10 卷),逐卷解压、验证、删除压缩包以控制磁盘
for vol in 0xx 1xx 2xx 3xx 4xx 5xx 6xx 7xx 8xx 9xx; do
wget --user=$PHYSIONET_USER --password=$PHYSIONET_PASS \
-P data_root/ "https://physionet.org/files/mc-med/1.0.1/waveforms_${vol}.zip"
unzip -q data_root/waveforms_${vol}.zip -d data_root/waveforms_unzip/
rm data_root/waveforms_${vol}.zip
done
申请流程要点:Credentialed 审核通常需要数个工作日;机构无 CITI 账号时可用同等人体受试者研究培训证明替代(以 PhysioNet 官网当前要求为准,截至 2026-09)。
§6.3 预处理全流程
三步核心:numerics 长表转宽 → 波形段读取与拼接 → 多模态时间对齐。表格侧还有两个易漏步骤:检验值的异常标志对齐与文本掩码归一化。
# 步骤 0(表格侧):检验特征构造与文本掩码归一化
# labs.csv 一组件结果一行:Component_value 是数值化结果(定性结果也被赋值),
# Component_abnormal 是组件级异常标志;正常范围在 Component_nml_low/high。
import pandas as pd
import re
def build_lab_features(labs: pd.DataFrame, csn: int) -> pd.DataFrame:
sub = labs[labs["CSN"] == csn]
feats = (sub[["Component_name", "Component_value", "Component_abnormal"]]
.drop_duplicates("Component_name"))
wide = feats.set_index("Component_name")[["Component_value"]].T
wide["n_abnormal"] = (feats["Component_abnormal"] == "Abnormal").sum()
return wide.reset_index(drop=True)
def normalize_rad_text(text: str) -> str:
# PHI 已被替换为三个下划线 ___;归一化为单一特殊 token(坑点 7)
return re.sub(r"_{3,}", " [MASKED] ", str(text))
# 步骤 1:numerics.csv 长表 → 分钟级宽表(一次就诊一个时间索引矩阵)
# 注意:Temp 单位为华氏度;Source=Chart/Monitor 混合,建议先分层再融合
import pandas as pd
def build_numerics_wide(data_root: str, csn: int) -> pd.DataFrame:
sub = pd.read_csv(f"{data_root}/numerics.csv",
usecols=["CSN", "Measure", "Value", "Time", "Source"],
dtype={"CSN": "int64"}) # 生产环境建议整体读入后 groupby
sub = sub[sub["CSN"] == csn].copy()
sub["Time"] = pd.to_datetime(sub["Time"])
sub["Time"] = sub["Time"].dt.floor("min") # >1 次/分钟的记录官方已聚合,此处兜底
wide = sub.pivot_table(index="Time", columns="Measure",
values="Value", aggfunc="mean")
# 华氏度 → 摄氏度(Temp 为华氏度,见 Nightingale 数据字典)
if "Temp" in wide.columns:
wide["Temp_C"] = (wide["Temp"] - 32.0) * 5.0 / 9.0
return wide
# 步骤 2:波形段读取与拼接(依赖 wfdb 包:pip install wfdb)
# 关键:官方未公布统一采样率,每段采样率从 .hea 头文件 fs 字段读取;
# 恒定 ≥10 秒的段已被官方删除,段与段之间不连续,必须显式拼接。
import numpy as np
import wfdb
def load_waveform(data_root: str, csn: int, sig: str = "II") -> tuple[np.ndarray, float]:
record_pattern = f"{data_root}/waveforms/{str(csn)[-3:]}/{csn}/{sig}/{csn}"
try:
record = wfdb.rdrecord(record_pattern, smooth_frames=True) # 多段记录自动拼接
except FileNotFoundError:
return np.empty(0), 0.0
signals = record.p_signal[:, 0].astype(np.float32) # 单通道
return signals, float(record.fs) # fs 以头文件为准
# 步骤 3:多模态时间对齐(相对时间对齐,绝对日期不可用)
# 以 Arrival_time 为 t0,把 numerics/labs/orders/rads 时间戳转为相对小时数
def add_relative_hours(df: pd.DataFrame, visits: pd.DataFrame,
time_col: str, out_col: str) -> pd.DataFrame:
t0 = visits.set_index("CSN")["Arrival_time"]
df[out_col] = (pd.to_datetime(df[time_col])
- pd.to_datetime(df["CSN"].map(t0))).dt.total_seconds() / 3600.0
return df
§6.4 PyTorch DataLoader 完整代码
<details>
<summary>点击展开完整多模态 Dataset + DataLoader 代码(约 80 行)</summary>
# 目录结构预期:data_root/ 含 §6.1 列出的 8 张 CSV、6 个 split 文件与 waveforms/ 目录。
# data_root 拼接关系:所有 csv 路径 = f"{data_root}/{文件名}";波形路径 =
# f"{data_root}/waveforms/{csn[-3:]}/{csn}/{sig}/{csn}"(wfdb 自动加 .dat/.hea 后缀)。
# 最小可用子集:不加载 waveforms 时仅需 visits.csv + numerics.csv + split 文件。
import numpy as np
import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader
import wfdb
MEASURES = ["HR", "RR", "SpO2", "SBP", "DBP", "MAP", "Temp_C", "Perf",
"Pain", "LPM_O2", "1min_HRV", "5min_HRV"]
SEQ_LEN = 120 # 取离院前 120 分钟监护窗(可按任务改为预测窗对齐)
class MCMEDDataset(Dataset):
"""多模态急诊就诊样本:分钟级数值序列 + 就诊级静态特征 + 可选 ECG 波形段。"""
def __init__(self, data_root: str, split_file: str, load_waveform: bool = False):
self.root = data_root
self.visits = pd.read_csv(f"{data_root}/visits.csv")
with open(f"{data_root}/{split_file}") as f:
self.csns = [int(x) for x in f.read().split()]
self.visits = self.visits[self.visits["CSN"].isin(self.csns)]
self.load_waveform = load_waveform
# numerics 预聚合:生产环境建议离线物化成 per-CSN npy,避免每次 __getitem__ 全表扫描
self.numerics = pd.read_csv(f"{data_root}/numerics.csv",
usecols=["CSN", "Measure", "Value", "Time"])
self.numerics["Time"] = pd.to_datetime(self.numerics["Time"])
def __len__(self) -> int:
return len(self.visits)
def _sequence(self, csn: int) -> np.ndarray:
sub = self.numerics[self.numerics["CSN"] == csn]
wide = (sub.assign(Time=sub["Time"].dt.floor("min"))
.pivot_table(index="Time", columns="Measure",
values="Value", aggfunc="mean"))
if "Temp" in wide.columns:
wide["Temp_C"] = (wide["Temp"] - 32.0) * 5.0 / 9.0
wide = wide.reindex(columns=MEASURES).tail(SEQ_LEN)
arr = wide.to_numpy(dtype=np.float32)
if arr.shape[0] < SEQ_LEN: # 前侧零填充 + 缺失 mask
pad = np.zeros((SEQ_LEN - arr.shape[0], len(MEASURES)), dtype=np.float32)
arr = np.vstack([pad, arr])
return np.nan_to_num(arr, nan=0.0)
def _waveform(self, csn: int) -> np.ndarray:
try:
rec = wfdb.rdrecord(f"{self.root}/waveforms/{str(csn)[-3:]}/{csn}/II/{csn}",
sampto=240 * 60) # 最多读 60 分钟;fs 以 .hea 为准
sig = rec.p_signal[:, 0].astype(np.float32)
except Exception:
sig = np.zeros(1, dtype=np.float32)
if len(sig) < 240 * 60:
sig = np.pad(sig, (0, 240 * 60 - len(sig))) # 尾部零填充到固定长度
return sig
def __getitem__(self, idx: int):
row = self.visits.iloc[idx]
csn = int(row["CSN"])
seq = torch.from_numpy(self._sequence(csn))
static = torch.tensor([float(row["Age"]),
float(row.get("Triage_HR") or 0),
float(row.get("Triage_SpO2") or 0)],
dtype=torch.float32)
label = torch.tensor(float(pd.notna(row["Triage_acuity"]) and row["Triage_acuity"] <= 2),
dtype=torch.float32) # 示例标签:高分诊级
if self.load_waveform:
return seq, static, torch.from_numpy(self._waveform(csn)), label
return seq, static, label
def collate(batch):
if len(batch[0]) == 4:
seqs, statics, waves, labels = zip(*batch)
return (torch.stack(seqs), torch.stack(statics),
torch.stack(waves), torch.stack(labels))
seqs, statics, labels = zip(*batch)
return torch.stack(seqs), torch.stack(statics), torch.stack(labels)
if __name__ == "__main__":
ds = MCMEDDataset("data_root", "split_random_train.csv", load_waveform=False)
loader = DataLoader(ds, batch_size=32, shuffle=True, num_workers=4, collate_fn=collate)
for seq, static, label in loader:
break # 训练循环占位:模型前向 + 反向传播
</details>
实现要点:numerics 全表 4,782 万行,__getitem__ 内逐 CSN 过滤仅适用于原型验证;生产训练必须先按 CSN 离线物化为数组文件(parquet/npy),否则 DataLoader 将被 I/O 卡死。
§6.5 坑点 8 个
⚠️ 坑点 1:自定义划分忽略患者级分组,同一患者跨训练/测试集(分类:数据泄漏)
问题:MC-MED 中平均每名患者约 1.68 次就诊(118,385 次就诊 / 70,545 名患者),重复就诊者的临床特征高度相似;若按 CSN 随机切分,同一患者的多次就诊会分属训练与测试集,指标虚高。
症状:测试 AUPRC/AUROC 惊人地好,把同一患者的就诊全部归到一侧后指标骤降数个百分点。
解决:
- 简单方法:直接使用官方 split_random_*.csv(已按 MRN 分组)。
- 进阶方法:自定义划分用
sklearn.model_selection.GroupKFold(n_splits=5)且groups=visits["MRN"],保证患者不跨折。- SOTA 方法:同时报告 random 与 chrono 两套划分的结果;MC-BEC 证明两套划分下任务难度结构不同(时序划分更接近部署现实)。
参考:Sci Data 论文 Train-Validation-Test Splits;GitHub README Splits 节。
⚠️ 坑点 2:把平移后的时间戳当真实日期使用(分类:预处理陷阱)
问题:为满足 HIPAA,全部时间戳按患者平移到 2150-2350 年的虚构日期,仅保留季度季节性;星期几、节假日、具体疫情时间点等信息均已失真。
症状:按Time.dt.year做疫情前后分层得到 22 世纪的荒谬结果;跨患者比较“同一天的检验值”永远为空。
解决:
- 简单方法:所有时间分析改用相对时间(相对 Arrival_time 的小时数),患者内事件时序严格保留。
- 进阶方法:需要季节性特征时,用平移后日期的季度(官方保证首诊季度不变,多数复诊季度不变)构造
season特征。- SOTA 方法:涉及真实日历的研究问题(如疫情波段)不应使用本数据集回答,改用带真实时间戳的授权数据源。
参考:Springer Methods-Deidentification 节。
⚠️ 坑点 3:假设波形连续,忽视多段结构与被删除的恒定段(分类:预处理陷阱)
问题:患者转运、检查、导联脱落会造成监护中断;官方把恒定值 ≥10 秒(导数恒 0 ≥10 秒)的段整体删除,因此同一就诊同一模态是多个不连续的 WFDB 段,总时长小于在院时长。
症状:直接把首段当全程波形,模型在“监护中断”样本上特征全空;用在院时长除以波形样本数得到的“采样率”严重偏低。
解决:
- 简单方法:查 waveform_summary.csv 的 Segments/Duration,仅使用 Duration 达标(如 ≥60 秒)的样本。
- 进阶方法:用
wfdb.rdrecord(..., smooth_frames=True)拼接多段,并在特征里加入“监护覆盖时长/在院时长”作为质量协变量。- SOTA 方法:为波形编码器引入段间 gap embedding 或时间戳条件化,让模型显式感知不连续(参考 MC-BEC 对缺失模态的鲁棒性设计)。
参考:Sci Data 论文 Waveform and Vital Sign Preprocessing。
⚠️ 坑点 4:硬编码采样率(分类:工程陷阱)
问题:官方文档未公布 ECG/PPG/呼吸的统一采样率;不同监护配置下各段采样率可能不同,硬编码一个 Hz 值会造成时间轴缩放错误。
症状:波形可视化时间压缩/拉伸异常;以固定窗长(如“10 秒 = 2,500 点”)切片时窗长实际从 4 秒到 12 秒不等,下游模型尺度敏感。
解决:
- 简单方法:逐记录读取
.hea头文件record.fs,按fs计算窗长。- 进阶方法:入库时统一重采样到目标频率(如 125 Hz,
scipy.signal.resample_poly上/下采样因子取自fs与目标频率之比的最简分数)。- SOTA 方法:训练管线缓存
fs分布报告,把异常采样率段(如 <50 Hz 或 >1,000 Hz)进入人工审核清单。
参考:PhysioNet Waveforms 节;WFDB 头文件规范。
⚠️ 坑点 5:numerics 的 Chart/Monitor 混合来源与华氏度温度(分类:标签理解)
问题:numerics.csv 同一测量项混有两种来源——
Source=Chart(护士记录)与Source=Monitor(监护库直接导出),两者口径、时机与噪声特征不同;且 Temp 单位是华氏度。
症状:发热阈值用 38.0 判断将几乎筛不出任何患者(应为 100.4 华氏度);Chart 值在监护断连时段“看似连续”而 Monitor 值缺失,特征分布突变的根因难以排查。
解决:
- 简单方法:Temp 统一转摄氏度;对每项测量按 Source 分层查看分布后再决定融合策略。
- 进阶方法:把 Source 作为 categorical 特征输入模型,或优先用 Monitor 序列、Chart 填补空隙并加来源指示位。
- SOTA 方法:为 Chart/Monitor 双来源建立迁移校准(如按测量项拟合线性修正),并在数据卡中报告两者的系统差。
参考:Nightingale 数据字典 Numeric Monitoring Data。
⚠️ 坑点 6:把 83,623 个含波形就诊当成无偏全量(分类:偏倚陷阱)
问题:波形仅覆盖 70.6% 就诊,缺失与“是否入监护床位、病情轻重、转运次数”相关(非随机);含波形子集年龄均值 55 岁高于全量 53 岁。
症状:在波形子集上训练的模型部署到全量人群时,对轻症/年轻患者系统性变差;论文报告的患病率与全量不一致却找不到代码 bug。
解决:
- 简单方法:所有结果明确标注“波形子集(83,623 次就诊)”;表格任务与波形任务不混报。
- 进阶方法:做子集选择模型(预测“是否有波形”),检查其 AUC 与特征重要性,量化选择偏倚方向。
- SOTA 方法:用逆概率加权(IPW)或多重插补把波形子集结论外推到全量,报告加权前后差异。
参考:Nightingale Dataset Summary;PhysioNet Usage Notes 局限性。
⚠️ 坑点 7:直接把去标识文本喂给 NLP 模型(分类:预处理陷阱)
问题:rads.csv 的 Impression 由 BERT 系去标识工具处理,PHI 被替换为
___,含日期/姓名的检验定性结果被整行删除;___token 的位置与数量携带残留句法信息,且工具存在过删/漏删两种失败模式。
症状:tokenizer 把连续下划线切成大量#子词或 [UNK],嵌入被掩码 token 主导;某些报告中人名替代词漏网导致下游知识蒸馏时意外泄漏。
解决:
- 简单方法:预处理时把
___归一化为单个特殊 token(如[MASKED])并加入 tokenizer 词表。- 进阶方法:用
re.sub(r"_{3,}", " [MASKED] ", text)清洗后统计 [MASKED] 密度,把密度异常的报告隔离复核。- SOTA 方法:训练时对文本做二次扰动(随机遮蔽非 PHI 实体)降低模型对掩码位置的依赖,提升对外部真实报告的泛化。
参考:Sci Data 论文 Deidentification 节。
⚠️ 坑点 8:盲目堆模态——多模态竞争与缺失模态的误判(分类:评估误用)
问题:MC-BEC 系统实验显示“模态越多越好”不成立:对失代偿预测,加入检验与影像报告反而降低基线性能(模态竞争);移除监护模态时 60 分钟恶化预测 AUPRC 从 0.25 跌至 0.14——不同任务对模态的依赖结构完全不同。
症状:论文里“我的多模态大模型全面超越基线”,但按 MC-BEC 协议做模态消融后发现增益来自数据划分差异而非融合。
解决:
- 简单方法:复用 MC-BEC 的三任务(恶化/处置/再就诊)× 全模态/单模态消融矩阵报告结果。
- 进阶方法:训练时随机丢弃模态(modality dropout),提升部署时传感器缺失下的鲁棒性;以“缺失监控”场景作为最坏情况压力测试。
- SOTA 方法:对融合层做梯度冲突诊断(如 PCGrad),或按任务学习模态门控权重,显式缓解模态竞争。
参考:Chen 等, 2023, NeurIPS(arXiv 2311.04937)。
§6.6 数据增强
| 方法 | 安全性 | 说明 |
|---|---|---|
| 数值生命体征加性高斯噪声 | ✅ 安全 | 模拟监护仪测量噪声,σ 取各测量项生理噪声量级 |
| 随机时间裁剪/滑窗采样 | ✅ 安全 | 长就诊采样多个 120 分钟窗,等效样本扩增 |
| 段级波形随机丢弃(modality dropout) | ✅ 安全 | 模拟转运断连,MC-BEC 证明可提升缺失鲁棒性 |
| 波形时间伸缩(±10%) | ⚠️ 谨慎 | ECG 形态学诊断任务会改变心律判读,慎用 |
| 数值纵向镜像/翻转 | ❌ 危险 | 破坏生理因果方向(治疗后心率下降被翻转) |
| 检验值随机缩放 | ❌ 危险 | 破坏与正常范围(Component_nml_low/high)的相对关系 |
| 跨患者波形拼接 | ❌ 危险 | 制造临床上不存在的患者,且泄漏划分约束 |
§6.7 模型推荐
| 任务 | 推荐模型 | 理由 |
|---|---|---|
| 分诊/处置/再就诊(表格) | LightGBM / XGBoost | MC-BEC 官方基线即 LightGBM,表格临床数据强基线 |
| 失代偿预警(时序) | 1D-CNN / Transformer 时序编码器 + 波形编码器 | MC-BEC 证明监护与波形模态贡献最大 |
| 波形编码 | 专用 ECG/PPG Transformer(或生物信号基础模型,SignalMC-MED 评测显示领域专用 FM 优于通用时序模型) | 领域先验重要(arXiv 2603.09940) |
| 放射文本 | ClinicalBERT / RadBERT | MC-BEC 的文本特征化即采用 RadBERT |
| 多模态融合 | 专用编码器 + LightGBM 后融合(MC-BEC 架构)或注意力融合 | 后融合简单稳健,是复现首选 |
§6.8 硬件需求
| 场景 | 配置建议 |
|---|---|
| 表格基线(visits + numerics 聚合) | 16 GB 内存单机即可;numerics 建议分块读取或转 parquet |
| 波形特征工程(8.3 万就诊 × 3 模态) | 64 GB 内存 + 500 GB SSD;逐卷解压避免磁盘爆满 |
| 端到端多模态训练 | 单张 A100 40GB(或 2×3090 梯度累积);批次 32-64 |
| 大规模预训练(波形 FM) | 4-8 卡 A100/H100;SignalMC-MED 类评测可直接复用其协议 |
§6.9 评估指标代码
# MC-BEC 协议核心指标:AUPRC(类别不平衡下比 AUROC 更敏感)+ bootstrap 95% CI
import numpy as np
from sklearn.metrics import average_precision_score, roc_auc_score
def eval_with_ci(y_true: np.ndarray, y_score: np.ndarray,
n_boot: int = 1000, seed: int = 42) -> dict:
rng = np.random.default_rng(seed)
auprc = average_precision_score(y_true, y_score)
auroc = roc_auc_score(y_true, y_score)
idx = np.arange(len(y_true))
boots = []
for _ in range(n_boot):
b = rng.choice(idx, size=len(idx), replace=True)
if len(np.unique(y_true[b])) < 2:
continue
boots.append(average_precision_score(y_true[b], y_score[b]))
lo, hi = np.percentile(boots, [2.5, 97.5])
return {"AUPRC": round(auprc, 3), "AUPRC_95CI": (round(lo, 3), round(hi, 3)),
"AUROC": round(auroc, 3)}
# 报告规范:注明预测窗(60/90/120 分钟或 3/7/14 天)、划分(random/chrono)、
# 样本子集(全量 118,385 或波形子集 83,623)与患病率。
§6.10 MLOps 笔记
推荐的工程配置基线(可直接写入实验配置文件):
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| data_version | 1.0.1 | 写入每次实验记录;与 v1.0.0 缓存互斥 |
| split | split_random_* 或 split_chrono_* | 二选一并写入结果表头 |
| sequence_window | 120 分钟(可按任务调整) | numerics 预测窗 |
| waveform_fs | 逐记录读取 .hea | 禁止硬编码(坑点 4) |
| imputation | 前向填充 + 缺失 mask | 监护断连必须显式建模 |
| metrics | AUPRC + bootstrap 95% CI | MC-BEC 协议 |
- 版本化数据:在数据卡中固定
version=1.0.1与数据 DOI(10.13026/wvyw-g663);v1.0.0 与 v1.0.1 的 MRN 不可混用,任何缓存都要带版本号。 - 离线物化:numerics 长表与波形段应物化为按 CSN 索引的数组文件,训练只读物化层;原始 CSV/WFDB 目录设为只读。
- 划分防泄漏门禁:CI 中加入划分校验测试——训练/验证/测试集的 MRN 交集必须为空。
- 监控漂移:部署环境与 2020-2022 斯坦福急诊存在协变量漂移(就诊量结构、监护设备型号、ESI 构成),上线前用 §7.6 的漂移清单复测。
- 合规留痕:DUA 签署凭证、CITI 证明与数据访问日志按机构合规要求归档;禁止尝试重标识(含链接外部数据反推身份)。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 单中心偏倚 | 全部数据来自斯坦福学术急诊,转诊构成、临床流程、监护设备均为单一体系 | 高 | 跨库验证(MIMIC-IV-ED);报告部署环境差异 |
| 疫情时段偏倚 | 2020-09 至 2022-09 覆盖疫情高峰后时段,就诊结构(如呼吸道主诉比例)与常态不同 | 中 | 用平移日期的季度特征近似季节性;解释结果时声明时段 |
| 波形选择偏倚 | 70.6% 就诊有波形,缺失与监护配置和病情相关(子集均值年龄 55 vs 53) | 中 | 子集分层报告;IPW 校正(坑点 6) |
| 类别不平衡偏倚 | ESI 1 仅 0.90%、ICU 处置仅 2.34%、恶化患病率 11-17% | 中 | AUPRC 为主指标;类别加权/重采样 |
| 人口学代表性偏倚 | Black 6.46%、American Indian/Alaska Native 0.26%,少数族裔样本有限 | 中 | 公平性评估按 MC-BEC 分组 TPR 框架 |
| ESI 评估者偏倚 | 分诊分级由护士人工评定,存在机构内评估习惯差异 | 低-中 | 作为弱标签对待,避免当真值做强监督校准 |
| 监护来源混合偏倚 | Chart 与 Monitor 两种测量口径混合 | 低-中 | Source 分层建模(坑点 5) |
§7.2 标注质量
结局类标签(处置、再就诊)直接取自 EHR 客观记录,准确性高;失代偿标签为程序化定义(依赖生命体征/事件规则),定义敏感性取决于规则阈值;ESI 为人工评分,无标注者间一致性发布;放射文本 PHI 清洗经 BERT 工具 + 逐份人工复核双保险(Sci Data 论文),但工具的过删/漏检残余风险未量化。总体判断:客观结局可信度高,行为类标签(ESI)与文本需按弱监督对待。
§7.3 泛化性评估
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 社区医院/非学术急诊 | 高 | 单中心学术中心数据;病例组合与流程差异大 |
| 不同监护设备厂商 | 中-高 | 波形提取链路绑定 Philips IntelliVue/PIC iX;信号增益与单位可能不同 |
| 疫情后常态运营 | 中 | 数据全部来自 2020-2022,就诊结构含疫情特征 |
| 非英语地区 | 中 | 文本模态为英文;文本编码器跨语言迁移需评估 |
| 儿科 | 不可用 | 数据仅含 ≥18 岁成人 |
| 时序外推(部署当年晚于训练期) | 中 | chrono 划分专门模拟该场景;仍需本地验证 |
§7.4 伦理考量
数据发布经斯坦福大学 IRB(编号 58581)与 Secondary Data Use Committee 批准,豁免知情同意(回顾性、去标识、常规诊疗数据)(Springer Methods)。去标识满足 HIPAA 全要素:标识符随机映射、年龄扰动、日期平移、文本 PHI 清洗 + 人工复核。使用者的伦理义务:不做重标识尝试、不将数据用于商业非研究用途(DUA 约束)、衍生模型临床部署前须独立验证与监管路径。
§7.5 公平性
MC-BEC 的公平性分析(Chen 等, 2023, NeurIPS)按年龄、性别、种族、族裔分组比较真阳性率(TPR):恶化预测任务中老年患者 TPR 更高,意味着模型对年轻患者存在欠诊断(underdiagnosis)倾向——年轻患者的恶化更易被漏报。数据层面,Black(6.46%)与 American Indian/Alaska Native(0.26%)群体样本有限, subgroup 分析统计功效不足。实践建议:部署前复测分组 TPR/FPR 与校准斜率,对欠诊断组做阈值调整或代价敏感训练。
§7.6 数据漂移
需监控的漂移维度:(1) 就诊量与病例组合(季节性呼吸道高峰在数据中仅保季度信息);(2) 监护设备固件与导联配置变化影响波形分布;(3) EHR 升级导致医嘱/检验编码映射变化;(4) 检验参考区间随实验室更新;(5) 处置实践(观察单元使用率)随医保政策漂移。建议上线后每季度比较特征分布(PSI>0.2 报警)与任务患病率。
§7.7 DAIMS 数据质量评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式适用性 | ✅ | 数值长表提供 pivot 路径,visits 天然一次就诊一行 |
| 2 | 唯一标识符 | ✅ | MRN/CSN 双主键随机整数,跨表链接关系官方文档明确 |
| 3 | 特殊字符处理 | ✅ | 文本 PHI 统一替换为 ___;CSV 转义规范 |
| 4 | 重复行检查 | ✅ | 各表主键定义清晰;numerics 按分钟聚合避免重复 |
| 5 | 缺失编码一致性 | ✅ | 空值/Unknown 语义在数据字典中明确 |
| 6 | 标签标识明确性 | ✅ | ESI、ED_dispo、再就诊字段语义与取值官方定义 |
| 7 | 罕见类别分组 | ⚠️ | ESI 1 仅 0.90%、ICU 处置 2.34%,稀有层无官方合并建议 |
| 8 | 偏倚评估支持 | ✅ | 人口学/ESI/处置分布官方表格齐全,偏倚分析可复现 |
| 9 | 数据字典完备性 | ✅ | 逐表逐字段文档(PhysioNet + Nightingale + GitHub 三处) |
| 10 | 信息性缺失解释 | ✅ | 波形缺失、末次就诊再就诊字段为空等机制官方说明 |
| 11 | 设备元数据记录 | ⚠️ | 厂商/工具链记录清楚,但波形采样率未公布 |
| 12 | 共线性风险提示 | ✅ | MAP 与 SBP/DBP、HRV 与 HR 的派生关系在字典中说明 |
| 13 | 编码映射体系 | ✅ | ICD-9/10、NDC、CCS、CPT 映射多体系并存且标注 CodeType |
| 14 | 时间戳处理透明度 | ⚠️ | 平移机制透明可复现,但绝对日期不可用(虚构年份) |
| 15 | 官方划分建议 | ✅ | random 与 chrono 双划分,泄漏约束明确 |
| 16 | 泄漏风险讨论 | ✅ | 患者级分组理由、13,007 次就诊移除机制官方文档化 |
| 17 | 标签分布发布 | ✅ | ESI/处置/性别/种族/族裔完整分布表 |
| 18 | 测量偏倚说明 | ⚠️ | Chart/Monitor 双来源已标注,但两口径系统差未量化 |
| 19 | 外部验证建议 | ✅ | 论文与 Usage Notes 明示单中心局限与验证需求 |
| 20 | 版本记录规范 | ✅ | v1.0.0→v1.0.1 变更日志明确(MRN 重生成) |
| 21 | 预处理脚本 | ✅ | GitHub 提供读取/链接/可视化示例(utils.py、notebook) |
| 22 | 合规要求清晰 | ✅ | Credentialed + CITI + DUA 流程三渠道文档一致 |
| 23 | 多模态对齐支持 | ⚠️ | CSN/时间戳可对齐,但无官方统一对齐表,需自行实现 |
| 24 | 去标识化透明 | ✅ | 五要素去标识流程 + 人工复核,论文 Methods 完整公开 |
DAIMS 评分:21.5 / 24
评分解读:MC-MED 的文档完备性、标签规范与合规透明度达到了公开临床数据集的第一梯队(与 MIMIC 系列同级),5 个 ⚠️ 项中 4 项(罕见层分组、设备元数据细节、双来源测量口径、多模态对齐表)是“可用但需自行补齐工程胶水”的类型,1 项(时间戳平移)是隐私设计的固有代价而非缺陷。没有 ❌ 项说明没有结构性硬伤。
对你意味着什么:你可以把它当作“文档可信、可直接开跑”的数据集:第一天就能用官方划分跑通表格基线;但要在第二周之前自己完成三件工程——(1) 逐记录读取 .hea 获取采样率并统一重采样;(2) 用 waveform_summary 拼接多段波形并构造监护覆盖特征;(3) 为 numerics 建立 Chart/Monitor 分层的宽表物化层。这三项正是 DAIMS 里 5 个 ⚠️ 对应的工作量,做完后你的复现实验才算站在官方协议的同一起跑线。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| MC-BEC 多任务/单任务对照(同源子集 102,731 次监护就诊) | 斯坦福 Medicine(数据同源,协议独立) | 恶化 60/90/120 min、处置、再就诊 3/7/14 天 | AUPRC 0.33/0.35/0.40;0.87;0.11/0.16/0.24 | 单任务优于多任务 0.02-0.08 | 波形对恶化预测贡献最大;模态竞争真实存在 |
| SignalMC-MED(同源 22,256 次就诊波形子集) | 牛津等多机构团队(数据同源,任务独立) | 20 个生物信号任务 | 领域生物信号 FM 优于通用时序模型 | —(任务不可比) | ECG+PPG 融合与更长信号段持续提升性能(arXiv 2603.09940) |
注:截至 2026-09,MC-MED 尚无来自其他医疗机构、独立人群的跨中心外部验证报告;上表均为同源数据上的独立任务评测,不能替代真正的外部验证。这一空缺本身是重要的研究机会。
§8 基准性能与生态
§8.1 排行榜
以下结果全部基于 MC-MED/MC-BEC 官方协议(AUPRC,95% CI bootstrap)。数值不可直接横向比较:各行任务定义、预测窗、模态组合与子集规模不同,且部分为同一论文内的消融行。
| 排名 | 模型 | 任务/预测窗 | 性能(AUPRC) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|---|
| 1 | 单任务 LightGBM(全模态) | 恶化 120 min | 0.40(0.34-0.46) | 2023 | 专用编码器 + 任务 prompt + 后融合 | Chen, E., Kansal, A., Chen, J., Jin, B.T., Reisler, J., Kim, D.E., Rajpurkar, P., 2023, NeurIPS 36, 45794-45811. DOI: 10.48550/arXiv.2311.04937 | 官方论文协议 |
| 2 | 单任务 LightGBM(全模态) | 恶化 90 min | 0.35(0.30-0.41) | 2023 | 同上 | 同上 | 同上 |
| 3 | 单任务 LightGBM(全模态) | 恶化 60 min | 0.33(0.28-0.39) | 2023 | 同上 | 同上 | 同上 |
| 4 | 单任务 LightGBM(全模态) | 处置(住院 vs 出院) | 0.87(0.86-0.88) | 2023 | 同上;患病率基线 0.37 | 同上 | 同上 |
| 5 | 多任务 LightGBM(全模态) | 恶化 60/90/120 min | 0.25/0.32/0.35 | 2023 | 多任务共享编码器 | 同上 | 同上 |
| 6 | 多任务 LightGBM,移除监护模态 | 恶化 60 min | 0.14(0.12-0.17) | 2023 | 消融:监护数值贡献最大 | 同上 | 同上 |
| 7 | 单任务 LightGBM | 再就诊 3/7/14 天 | 0.11/0.16/0.24 | 2023 | 同上 | 同上 | 同上 |
| — | 生物信号基础模型对比 | 20 个波形任务(SignalMC-MED) | 相对结论:领域 FM > 通用时序模型 | 2026 | ECG+PPG 融合、10 分钟同步段 | Gustafsson, F.K., Gu, X., Carletti, M., Palo, P., Eyre, D.W., Clifton, D.A., 2026, arXiv:2603.09940 | GitHub |
§8.2 SOTA 总结与选型建议
当前“SOTA”格局以 MC-BEC 官方基线为锚:处置预测接近饱和(0.87),恶化预测是主战场(0.33-0.40 且远未饱和,患病率 0.11-0.17),再就诊是最难任务(≤0.24,决定因素多在院外)。指标选择上,全部主结果应报 AUPRC 而非 AUROC——在 0.9%-2.3% 的稀有层(ESI 1、ICU 处置)与 11-17% 患病率的恶化任务上,AUROC 会被类先验主导而失真。选型建议:(1) 表格任务直接用 LightGBM 复现官方协议再谈深度模型;(2) 恶化预测把监护数值与波形当作第一优先模态(消融证据明确);(3) 不要在多任务框架下刷单任务指标——官方数据显示多任务架构在恶化与处置上系统性低于单任务 0.02-0.08;(4) 波形方向关注生物信号基础模型路线(SignalMC-MED 显示领域专用 FM 显著优于通用时序模型)。
§8.3 评测协议
标准协议要点:使用官方 split 文件(随机或 chrono,二选一并声明);任务定义遵循 MC-BEC(恶化 60/90/120 分钟窗、处置、再就诊 3/7/14 天);主指标 AUPRC + bootstrap 95% CI(1,000 次);同时报告患病率基线;模态消融矩阵(全模态 + 逐模态移除);公平性按年龄/性别/种族/族裔分组 TPR。任何偏离(自建划分、不同窗口、不同子集)必须在结果表头明示。
§8.4 相关数据集表
| 数据集 | 关系 | 适合的互补用途 |
|---|---|---|
| MIMIC-IV-ED | 同为 ED 专用、无波形、更大就诊量(358,050) | 表格任务跨库验证、更大样本的处置/再就诊研究 |
| MIMIC-IV(ICU 模块) | ICU 时段连续数据 + 波形(MIMIC-IV-ECG/WAVE) | 恶化后的 ICU 轨迹延伸研究 |
| eICU | 多中心 ICU | 多中心泛化对照 |
| MIMIC-IV-ECG | 独立 ECG 波形库(BIDMC) | ECG 编码器预训练后迁移到 MC-MED |
| Nightingale 系列数据集 | 同一发布平台 | 跨手术/病房场景的 Nightingale 生态研究 |
§8.5 关键论文 Top 5
- Kansal, A., Chen, E., Jin, B.T., Rajpurkar, P., Kim, D.A., 2025. MC-MED, multimodal clinical monitoring in the emergency department. Scientific Data 12, 1094. DOI: 10.1038/s41597-025-05419-5 —— 数据集描述论文:采集、去标识、划分与对比表。
- Chen, E., Kansal, A., Chen, J., Jin, B.T., Reisler, J., Kim, D.E., Rajpurkar, P., 2023. Multimodal Clinical Benchmark for Emergency Care (MC-BEC): A Comprehensive Benchmark for Evaluating Foundation Models in Emergency Medicine. NeurIPS 36, 45794-45811. arXiv: 2311.04937 —— 官方基准:三任务协议、模态消融、公平性框架。
- Mullainathan, S., Obermeyer, Z., 2022. Solving medicine’s data bottleneck: Nightingale Open Science. Nature Medicine 28(5), 897-899. DOI: 10.1038/s41591-022-01804-4 —— 发布平台方法论:为何“结果锚定”的高质量临床数据库重要。
- Gustafsson, F.K., Gu, X., Carletti, M., Palo, P., Eyre, D.W., Clifton, D.A., 2026. SignalMC-MED: A Multimodal Benchmark for Evaluating Biosignal Foundation Models on Single-Lead ECG and PPG. arXiv: 2603.09940 —— 基于 MC-MED 的生物信号基础模型评测协议。
- Johnson, A.E.W., et al., 2023. MIMIC-IV, a freely accessible electronic health record dataset. Scientific Data 10, 1. —— 对照系:MC-MED 论文中主要对比对象(MIMIC-IV-ED)的母数据集。
§8.6 社区活跃度
数据集 2025 年发布,截至 2026-09:论文被引 14+(Google Scholar);官方 GitHub 仓库(dkimlab/MCMED)含数据字典、可视化 notebook 与工具代码;PhysioNet 页面提供标准引用块与论坛支持入口;Nightingale 平台提供云端分析入口。二次研究活跃度集中在两个方向:MC-BEC 系基准改进与生物信号基础模型评测(SignalMC-MED 已把 MC-MED 用作 20 任务评测场)。相比 MIMIC 生态,第三方工具与排行榜尚在早期,属于“先发优势窗口期”。
§8.7 生态快照表
| 资源 | 类型 | 链接 | 状态(截至 2026-09) | 推荐理由 |
|---|---|---|---|---|
| PhysioNet v1.0.1 | 官方数据托管 | physionet.org/content/mc-med/1.0.1 | 在线更新 | 权威下载渠道、完整文档与引用块 |
| Nightingale Open Science | 云端分析平台 | doi.org/10.48815/N57P4G | 在线 | 免下载云端分析 + 数据字典 |
| dkimlab/MCMED | 官方 GitHub | github.com/dkimlab/MCMED | 5 commits,稳定 | 数据字典、可视化 notebook、注意事项 |
| Sci Data 论文 | 数据描述论文 | nature.com/articles/s41597-025-05419-5 | 2025-07-01 发表 | Methods 全细节、对比表、引用依据 |
| MC-BEC(NeurIPS 2023) | 官方基准论文 | arxiv.org/abs/2311.04937 | 发表,被引 29+ | 任务协议与消融框架的事实标准 |
| SignalMC-MED | 第三方波形基准 | github.com/fregu856/SignalMC-MED | 2026 年发布 | 波形基础模型评测起点 |
| PhysioNet 论坛 | 社区支持 | physionet.org 官网论坛入口 | 活跃 | 数据问题官方答疑渠道 |
§9 相关资源与引用
§9.1 官方资源
- PhysioNet 数据主页(v1.0.1):https://physionet.org/content/mc-med/1.0.1/ —— 下载入口、数据字典、Usage Notes、引用块。
- Nightingale Open Science 数据页:https://doi.org/10.48815/N57P4G —— 文件树、逐表数据字典、Globus 访问指引。
- 官方 GitHub 仓库:https://github.com/dkimlab/MCMED —— README、data-dictionary.md、可视化 notebook(data_visualization.ipynb)、requirements.md、utils.py。
- 数据描述论文:https://www.nature.com/articles/s41597-025-05419-5 (开放获取,CC BY-NC-ND 4.0;PMCID: PMC12216331)。
- MC-BEC 基准论文:https://arxiv.org/abs/2311.04937 (NeurIPS 2023)。
- PubMed 收录:https://pubmed.gov/40593787/ —— PMID 40593787。
§9.2 BibTeX 完整引用
@article{kansal2025mcmed,
author = {Kansal, Aman and Chen, Emma and Jin, Boyang Tom and Rajpurkar, Pranav and Kim, David A.},
title = {{MC-MED}, multimodal clinical monitoring in the emergency department},
journal = {Scientific Data},
volume = {12},
pages = {1094},
year = {2025},
doi = {10.1038/s41597-025-05419-5}
}
@article{kansal2025mcmedphysionet,
author = {Kansal, Aman and Chen, Emma and Jin, Tom and Rajpurkar, Pranav and Kim, David},
title = {{Multimodal Clinical Monitoring in the Emergency Department (MC-MED)}},
journal = {PhysioNet},
year = {2025},
month = sep,
note = {Version 1.0.1},
doi = {10.13026/wvyw-g663}
}
@dataset{kansal2025mcmednightingale,
author = {Kansal, Aman and Chen, Emma and Jin, Boyang Tom and Rajpurkar, Pranav and Kim, David A.},
title = {{Multimodal Clinical Monitoring in the Emergency Department (MC-MED)}},
publisher = {Nightingale Open Science},
year = {2025},
doi = {10.48815/N57P4G}
}
@inproceedings{chen2023mcbec,
author = {Chen, Emma and Kansal, Aman and Chen, Jennifer and Jin, Boyang Tom and Reisler, Jonathan and Kim, David E. and Rajpurkar, Pranav},
title = {{Multimodal Clinical Benchmark for Emergency Care (MC-BEC)}: {A} Comprehensive Benchmark for Evaluating Foundation Models in Emergency Medicine},
booktitle = {Advances in Neural Information Processing Systems},
volume = {36},
pages = {45794--45811},
year = {2023}
}
@article{mullainathan2022nightingale,
author = {Mullainathan, Sendhil and Obermeyer, Ziad},
title = {Solving medicine's data bottleneck: {Nightingale} Open Science},
journal = {Nature Medicine},
volume = {28},
number = {5},
pages = {897--899},
year = {2022},
doi = {10.1038/s41591-022-01804-4}
}
@article{gustafsson2026signalmcmed,
author = {Gustafsson, Fredrik K. and Gu, Xiao and Carletti, Mattia and Palo, Patitapaban and Eyre, David W. and Clifton, David A.},
title = {{SignalMC-MED}: {A} Multimodal Benchmark for Evaluating Biosignal Foundation Models on Single-Lead {ECG} and {PPG}},
journal = {arXiv preprint arXiv:2603.09940},
year = {2026}
}
§9.3 引用指南
学术使用请同时引用三条:数据描述论文(kansal2025mcmed)、所用托管渠道的 DOI 条目(kansal2025mcmedphysionet 或 kansal2025mcmednightingale)、以及基准结果所依赖的 MC-BEC 协议论文(chen2023mcbec)。PhysioNet 官方还要求引用 PhysioNet 平台文献(Pollard 等, 2026, Nature Health, DOI: 10.1038/s44360-026-00096-z,见 PhysioNet 引用页)。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 模型 | 用途 |
|---|---|
| 大型语言模型(对话式 AI 助手) | 资料整合、初稿撰写与结构组织 |
§10.2 AI 参与范围
AI 用于检索结果汇总、章节初稿生成、表格整理与代码示例起草。所有事实性数字均来自 §10.3 所列来源并由人工交叉核对;对不确定的数字(如数据总大小、波形采样率)采取“宁缺毋错”原则省略或明确标注未公布。
§10.3 输入来源列表
- Kansal, A., Chen, E., Jin, B.T., Rajpurkar, P., Kim, D.A., 2025. MC-MED, multimodal clinical monitoring in the emergency department. Scientific Data 12, 1094. DOI: 10.1038/s41597-025-05419-5. https://www.nature.com/articles/s41597-025-05419-5
- PhysioNet, 2025. Multimodal Clinical Monitoring in the Emergency Department (MC-MED), version 1.0.1. DOI: 10.13026/wvyw-g663. https://physionet.org/content/mc-med/1.0.1/
- PhysioNet, 2025. Multimodal Clinical Monitoring in the Emergency Department (MC-MED), version 1.0.0. https://www.physionet.org/content/mc-med/1.0.0
- Nightingale Open Science, 2025. Multimodal Clinical Monitoring in the Emergency Department (MC-MED). DOI: 10.48815/N57P4G. https://doi.org/10.48815/N57P4G
- Kansal, A., Chen, E., Jin, B.T., Rajpurkar, P., Kim, D.A., 2025. MC-MED Dataset README. GitHub. https://github.com/dkimlab/MCMED
- Chen, E., Kansal, A., Chen, J., Jin, B.T., Reisler, J., Kim, D.E., Rajpurkar, P., 2023. Multimodal Clinical Benchmark for Emergency Care (MC-BEC). NeurIPS 36, 45794-45811. arXiv: 2311.04937. https://arxiv.org/abs/2311.04937
- National Library of Medicine, 2025. MC-MED, multimodal clinical monitoring in the emergency department. PubMed, PMID 40593787. https://pubmed.gov/40593787/
- Mullainathan, S., Obermeyer, Z., 2022. Solving medicine’s data bottleneck: Nightingale Open Science. Nature Medicine 28(5), 897-899. DOI: 10.1038/s41591-022-01804-4
- Gustafsson, F.K., Gu, X., Carletti, M., Palo, P., Eyre, D.W., Clifton, D.A., 2026. SignalMC-MED. arXiv: 2603.09940. https://github.com/fregu856/SignalMC-MED
- Google Scholar, 2026. Emma Chen 出版档案(MC-MED 与 MC-BEC 被引数据,截至 2026-09)。https://scholar.google.co.th/citations?user=89ANml4AAAAJ
- R Discovery, 2025. MC-MED 条目(license 类型:CC BY-NC-ND 4.0)。https://discovery.researcher.life/article/mc-med-multimodal-clinical-monitoring-in-the-emergency-department/c55dcc48088f350597376193158e66ba
- Springer Nature Link, 2025. MC-MED 论文页(Methods-Deidentification 全文)。https://link.springer.com/article/10.1038/s41597-025-05419-5
- Pollard, T., et al., 2026. PhysioNet as a global platform for biomedical research. Nature Health 1(8), 792-795. DOI: 10.1038/s44360-026-00096-z
- Nature, 2025. MC-MED 论文 Figures 1-2(多模态时间轴与去标识流程图说明)。https://www.nature.com/articles/s41597-025-05419-5
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| 规模数字(118,385/70,545/83,623/表行数) | 千方病案医学编辑部 | 与 PhysioNet/Nightingale/GitHub 三源交叉核对 | ✅ 已通过 |
| 版本与 DOI/日期 | 千方病案医学编辑部 | 与 PhysioNet 引用块与版本页核对 | ✅ 已通过 |
| 去标识与合规描述 | 千方病案医学编辑部 | 与论文 Methods 及 PhysioNet 访问要求逐条核对 | ✅ 已通过 |
| ICD-11/SNOMED 映射 | 千方病案医学编辑部 | 按 WHO ICD-11 MMS 与 SNOMED CT 标准术语核对 | ✅ 已通过 |
| MC-BEC 基准数字 | 千方病案医学编辑部 | 与 NeurIPS 2023 论文表格数值核对 | ✅ 已通过 |
| 代码示例可运行性 | 千方病案医学编辑部 | 依赖版本核对(wfdb/pandas/lightgbm 官方文档)+ 静态审查 | ✅ 已验证 |
| 坑点与偏倚描述 | 千方病案医学编辑部 | 与官方 README/论文/基准论文 limitations 对照 | ✅ 已通过 |
§10.5 AI 生成章节标注
初稿由 AI 生成,经人工编辑修订后发布的章节:§1 概览、§2 医学背景、§3 数据集规格、§4 数据结构、§5 划分建议、§6 AI 就绪指南(含 8 个坑点)、§7 质量评估、§8 基准与生态、§9 资源与引用。§0 免责声明与 §10 声明卡为固定模板 + 人工修订。
§10.6 最后人工审核日期
2026-09-05(与 §0.3 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
