MIMIC-BR — 巴西 ICU 匿名化 OMOP 临床数据库 AI-Ready Wikipedia | 千方病案医数集

2.88 万名成人患者、3.42 万次住院的巴西首个公开 ICU 匿名化 EHR 数据库

来源 Hospital Israelita Albert Einstein(PhysioNet 托管) url: https://physionet.org/content/mimic-br/1.0.1/发布时间: 2026-09-08最后更新: 2026-09-08 阅读 4

信息速览

数据集名称MIMIC-BR — 巴西 ICU 匿名化 OMOP 临床数据库 AI-Ready Wikipedia | 千方病案医数集
数据类型约 2.88 万名成人患者,11 张 OMOP-CDM 核心表,约 408 万行结构化记录,CSV + ATHENA 词汇表,免费申请审核获取
规模2.88 万名成人患者(28,799)
接入方式Hospital Israelita Albert Einstein(PhysioNet 托管) url: https://physionet.org/content/mimic-br/1.0.1/
AI 就绪度

数据集封面

MIMIC-BR — 巴西首个公开 ICU 匿名化临床数据库 AI-Ready Wikipedia

INFOBOX

字段 内容
数据集名称 MIMIC-BR(Medical Information Mart for Intensive Care Brazil)
英文全称 Medical Information Mart for Intensive Care Brazil (MIMIC-BR): a Brazilian Dataset of Anonymized Hospital and ICU Clinical Data
别名/简称 MIMIC-BR;Brazilian MIMIC;MIMIC 巴西版
疾病分类(ICD-11) ICU 全谱系,重点覆盖脓毒症(1G40)、急性肾损伤(GB60)、急性呼吸窘迫综合征(5A77)、COVID-19(1D06)等
SNOMED CT 诊断映射 SNOMED CT;检验映射 LOINC;药物映射 RxNorm;操作映射 TUSS/SIGTAP(经 OMOP CONCEPT_RELATIONSHIP)
数据模态 结构化电子健康记录(生命体征、实验室检验、用药、诊断、操作、转科)
AI 任务类型 住院时长预测、ICU 转移预测、患者表型分类、药物利用研究、模型外部验证、OHDSI 观察性研究
样本总数 28,799 名成人患者(≥18 岁);34,217 次住院(v1.0.1)
数据格式 CSV(主数据)+ ZIP 内 CSV(OMOP 标准词汇表,经 ATHENA 下载)
许可证 PhysioNet Contributor Review Health Data License 1.5.0
访问级别 申请审核(Contributor Review 逐案审核 + 签署 DUA + CITI 培训)
语言 葡萄牙语(源系统与 SUS 术语);发布版仅含结构化数据,自由文本已全部排除
首发日期 2026-05-21(v1.0.0)
最后更新 2026-08-09(v1.0.1)
发布机构 Hospital Israelita Albert Einstein(巴西圣保罗,PhysioNet 托管,MIT LCP 支持)
官方主页 https://physionet.org/content/mimic-br/1.0.1/
下载地址 https://physionet.org/content/mimic-br/1.0.1/#files(需凭证登录)
DOI 10.13026/mkg6-8h16(v1.0.1)
AI 就绪度评分 ⭐⭐⭐(3/5)— OMOP-CDM 标准结构与词汇映射齐全,但无官方数据划分与预处理脚本,需自建队列定义与长表转宽表流程
页面状态 published

§0 E-E-A-T 审核与免责声明

医学审核:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11/SNOMED CT 映射、ICU 疾病谱与流行病学)、§7 偏倚分析(私立三级医院人群代表性、k-匿名化对标签的影响)。

数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。MIMIC-BR 要求用户完成 CITI Program 的 “Data or Specimens Only Research” 培训,通过 PhysioNet Contributor Review 审核并签署 Contributor Review Health Data Use Agreement 1.5.0。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。


§1 数据集概览

§1.0 📌 30 秒速览

这是什么? MIMIC-BR 是巴西圣保罗顶尖私立医院 Hospital Israelita Albert Einstein 发布的匿名化 ICU 与住院临床数据库,2026 年 5 月起通过 PhysioNet 分两版发布(v1.0.0 与 v1.0.1),是巴西首个公开的同类数据集。它收录了 28,799 名 18 岁以上患者、34,217 次住院的结构化记录,覆盖生命体征、实验室检验、用药、诊断、手术操作和院内转科,全部按照国际通用的 OMOP 通用数据模型(OMOP-CDM)组织,共约 408 万行数据。

为什么重要? 全球医疗 AI 研究长期被欧美数据垄断——MIMIC-III/IV 来自波士顿,eICU 来自美国, HiRID 来自瑞士。疾病谱、种族构成、医保体系和诊疗习惯在拉丁美洲截然不同,在欧美数据上训练的模型到拉美患者身上可能失效。MIMIC-BR 用严格的 LGPD 合规匿名化(日期偏移、k-匿名性、第三方认证)换来了数据开放,让拉美人群第一次有了可审计、可互操作的公开 ICU 数据,也为 MIMIC 家族模型提供了真正的外部验证场。

我能用它做什么? 如果你做 ICU 时序建模,可以用 138 万条 measurement 记录构建生命体征/检验预测模型;如果你做表型识别,可以借 SNOMED CT 概念层级(CONCEPT_ANCESTOR)定义脓毒症、急性肾损伤等队列;如果你做过 MIMIC-IV 上的模型,可以把 MIMIC-BR 当作跨大洲的外部验证集。注意三件事:没有自由文本(NLP 不可行)、死亡标签只有 87 条(死亡率预测不可行)、日期经过逐患者偏移(禁止绝对时间分析)。

§1.1 技术摘要

MIMIC-BR 的生产流程分四步。采集:从院内 OMOP-CDM 仓库(整合 EHR、实验室信息系统 LIS 与编码系统)中筛选 2015-2025 年间连续三年内入院的 18 岁以上成人队列(含病房、ICU 与急诊入院;v1.0.1 收窄为至少一次 ICU 住院的患者)。准备:将全量 OMOP 表重组织为简化发布结构,剔除敏感属性、聚合罕见类别、归一化单位,同时保持与 OHDSI 工具链的兼容性。去标识化:按巴西 LGPD 执行——移除直接标识符与可逆密钥、逐患者日期偏移、≥89 岁年龄聚合、患者数少于 20 的 LOS 类别合并、对准标识符施加 k-匿名性/l-多样性/t-紧密性、以 [REDACTED] 显式标记被压制值;整个管道由独立第三方机构审查认证。发布:以 11 张 CSV 表 + ATHENA 标准词汇包的形式经 PhysioNet 以 Contributor Review 模式发布。源诊断编码为 ICD-10(巴西版 CID-10),经 CONCEPT_RELATIONSHIP 映射到 SNOMED CT;检验用 LOINC、药物用 RxNorm、操作用巴西 TUSS/SIGTAP 术语。

§1.2 战略价值

维度一:拉美人群代表性的补位。巴西占拉丁美洲人口约三分之一,但此前的公开 ICU 数据库(MIMIC-III/IV、eICU、HiRID、SICdb)无一来自拉美。疾病谱差异是真实存在的:登革热、恰加斯病、镰状细胞病等在巴西三级医院的比例显著高于波士顿,而欧美模型的跨人群泛化失效已被大量迁移研究证实。MIMIC-BR 为全球模型提供了第一个拉美压力测试场,也为本地团队提供了无需自建数据基础设施的起点。

维度二:OMOP 生态的原生入口。与 MIMIC-IV 的自有模式不同,MIMIC-BR 生而基于 OMOP-CDM,配套 14 类标准词汇(SNOMED CT、LOINC、RxNorm、ICD10、ATC、巴西 SUS 的 SIGTAP 等)。这意味着用 OHDSI 工具链(Atlas、Hades、CohortMethod)可以直接开展跨库研究——把 MIMIC-IV 经 OHDSI/MIMIC ETL 转换为 OMOP 后与 MIMIC-BR 做标准化对比,是零额外映射成本的现实选项。对药企与监管科学研究(RWE)而言,这是进入巴西真实世界数据的最低门槛。

维度三:隐私工程范本。k-匿名性/l-多样性/t-紧密性三重防护加第三方认证,在公开 ICU 数据库中属于最严格的匿名化规格,为未来拉美多中心数据联合(官方明确表示未来版本将纳入更多巴西数据库)确立了可复制的技术-法律模板。

维度四:MIMIC 家族的"全球复制"方法论验证。MIMIC-BR 的诞生路径(datathon 工作坊共创设计、与 K-MIMIC 平行推进、MIT LCP 持续支持)证明 MIMIC 模式可以在完全不同的法律环境(LGPD vs HIPAA)与语言环境中复刻。对正计划开放数据的亚洲、中东医院而言,MIMIC-BR 的匿名化管道与发布流程是一份现成的实施蓝本——这也是本 Wiki 花费大量篇幅解析其"标签抑制""类别聚合"副作用的原因:这些副作用是所有后来者都将面对的工程现实。

§1.3 同类数据集横向对比

数据集 地区 患者规模 数据模型 自由文本 访问方式 与 MIMIC-BR 的差异化
MIMIC-BR (v1.0.1) 巴西圣保罗 28,799 患者/34,217 住院 OMOP-CDM 无(已排除) Contributor Review 唯一拉美来源;原生 OMOP
MIMIC-III 美国波士顿 46,520 患者/61,532 ICU 住 自有模式 208 万条笔记 Credentialed (CITI) 有文本;ICD-9 编码;2001-2012
MIMIC-IV 美国波士顿 逾 25 万患者(v2.2) 自有模式 有(MIMIC-IV-Note) Credentialed (CITI) 规模大;ICD-9/10;2008-2019
eICU-CRD 美国多中心 约 20 万患者 自有模式 Credentialed (CITI) 多中心远程监护视角
HiRID 瑞士伯尔尼 约 3.3 万住院 自有模式+映射表 Credentialed 高时间分辨率生理信号
SICdb 奥地利萨尔茨堡 27,350 住院 自有模式 部分 开放/Credentialed 欧洲单一 ICU 中心
BRATECA 巴西 葡萄牙语三级医疗队列 表格化 有(葡语文本) Credentialed 提供葡语文本,但粒度与规模较小
K-MIMIC 韩国 韩国多中心 ICU MIMIC 对齐 Credentialed 东亚对照组,设计思路同源

§1.4 版本时间轴

版本 发布日期 DOI 关键变更
v1.0.0 2026-05-21 10.13026/0vk7-vw29 首次发布:30,599 名患者、37,978 次 visit_occurrence,含病房/ICU/急诊入院
v1.0.1 2026-08-09 10.13026/mkg6-8h16 修正队列筛选器:仅保留至少一次 ICU 住院的患者,移除意外保留的非 ICU 住院记录;官方声明结构、变量与队列定义无变更

注意:两版表行数差异远超"仅剔除非 ICU 患者"的直觉预期(如 condition_occurrence 从 125,570 行降至 40,734 行,death 从 46 条变为 87 条),详见坑点 1。

§1.5 典型应用场景

  1. 住院时长(LOS)类别预测:以 visit_occurrence 的聚合 LOS 类别为标签、入院前 48 小时 measurement 时序为特征,构建多分类模型,辅助床位资源规划。
  2. ICU 转移预测:利用 visit_detail 的 113,099 条病房/ICU 转科记录,预测普通病房患者未来 24-48 小时内是否需要转入 ICU(早期预警)。
  3. OMOP 表型队列定义:用 CONCEPT_ANCESTOR 在 SNOMED 层级下定义脓毒症、急性肾损伤、心力衰竭等队列,与 OHDSI Phenotype Library 的 PhenoDID/Phenotype 定义复用。
  4. 跨大洲模型外部验证:将在 MIMIC-IV(转 OMOP 后)训练的模型在 MIMIC-BR 上校准,量化欧美-拉美偏移(distribution shift)。
  5. 药物利用与 drug_era 分析:基于 89 万条 drug_exposure 与 68 万条 drug_era 记录研究私立三级医院的处方模式与连续暴露时长。
  6. 去标识化方法论研究:以本库为对象研究 k-匿名性对下游建模的实际代价(标签稀疏化、类别聚合),为隐私保护发布(privacy-preserving publication)领域提供真实案例。

§2 医学背景

§2.1 ICD-11 编码映射表

MIMIC-BR 源诊断采用 ICD-10(巴西版 CID-10)并在发布时映射至 SNOMED CT。下表给出该数据集 ICU 场景中最核心疾病的 ICD-11 参照编码,供研究者跨术语体系对齐:

疾病/状态 ICD-11 编码 ICD-11 中文名 在 ICU 数据中的角色
Sepsis 1G40 脓毒症 ICU 死亡与器官衰竭的首要驱动因素,表型研究核心结局
Acute kidney injury GB60 急性肾损伤 ICU 高发并发症,常见于脓毒症与术后患者
Acute respiratory distress syndrome 5A77 急性呼吸窘迫综合征 机械通气需求的主要指征之一
COVID-19 1D06 COVID-19 官方参考文献披露 Einstein 中心在疫情期间的 CDM 经验
Acute myocardial infarction BA41 急性心肌梗死 心源性 ICU 收治与操作(PCI)分析对象
Heart failure BD10 心力衰竭 高频再入院与容量管理研究对象

§2.1b SNOMED CT 映射表

术语 ICD-11 SNOMED CT 码 说明
Sepsis(脓毒症) 1G40 10001005 SNOMED “Septic disorder”,OMOP 标准概念可经 CONCEPT_ANCESTOR 聚合其子类
Acute kidney injury(急性肾损伤) GB60 299014006 SNOMED “Acute kidney injury”(肾前性/肾性/肾后性子类经层级查询获取)
Acute respiratory distress syndrome(急性呼吸窘迫综合征) 5A77 67782005 SNOMED “Acute respiratory distress syndrome”
COVID-19 1D06 840539006 SNOMED “Disease caused by SARS-CoV-2”
Acute myocardial infarction(急性心肌梗死) BA41 57054005 SNOMED “Acute myocardial infarction”,含各壁亚型子概念
Heart failure(心力衰竭) BD10 84114007 SNOMED “Heart failure”

上述 SNOMED 码为国际标准参考码;在 MIMIC-BR 中请始终以 CONCEPT 表的 concept_id 与 CONCEPT_RELATIONSHIP 的 ICD-10→SNOMED 映射为准,切勿硬编码。

§2.2 疾病背景与流行病学

ICU 数据库的价值取决于其覆盖的临床谱系。脓毒症是全球 ICU 死亡的首要原因,年全球估计约 4,890 万例、死亡 1,100 万例(占全球死亡约 19.7%)。巴西作为人口逾 2 亿的中高收入国家,其重症医学格局有两个鲜明特征:其一,公立 SUS 系统与私立补充医疗系统(Suplementar)双轨并行,私立三级医院(如 Einstein)由补充医疗保险支付主导;其二,传染病负担(登革热、恰加斯病、结核)与慢性病负担并存,构成与欧美 ICU 不同的疾病谱混合。COVID-19 大流行期间,Einstein 中心积累了大规模 ICU 真实世界数据并参与了通用数据模型(CDM)在重症医学中的实践(官方参考文献 [11])。MIMIC-BR 的三年窗口位于 2015-2025 区间内(具体年份未公开),因此可能覆盖大流行前、中、后的任意组合,这也是其人群构成需要谨慎解读的原因之一。

从建模视角看,这套数据对以下临床问题最有信息量:其一,私立三级医院的疾病谱定量画像——ICD-10 诊断记录经 SNOMED 标准化后,可直接回答"圣保罗私立 ICU 收治构成与波士顿 MIMIC 有多少重叠"这类基准问题;其二,检验与用药强度——138 万条 measurement 与 89 万条 drug_exposure 摊到 3.4 万次住院,密度高于多数公开库,适合研究检查驱动的诊疗模式(ordering behavior);其三,院内转科动力学——11.3 万条 visit_detail 记录完整刻画了病房↔ICU 的双向流动,这是 eICU 之外较少被公开库充分覆盖的维度。需要提醒的是,登革热、恰加斯等"巴西特色"疾病在本库中的占比完全取决于三年窗口的流行病学年份(未公开),不能以 MIMIC-BR 单库推断拉美热带病的 ICU 负担。

§2.3 临床任务定义

  • 住院时长分级(triage 分层任务):定义——按 visit_occurrence 的聚合 LOS 类别将住院划分为短/中/长程;输入——入院时人口学 + 早期测量时序;输出——类别概率。意义——床位周转与人力资源规划。
  • ICU 转移预警(early warning 任务):定义——预测普通病房患者在给定时间窗内转入 ICU 的风险;输入——病房阶段 measurement 时序;输出——二分类风险。意义——脓毒症等恶化状态的早期识别代理。
  • 患者表型识别(phenotyping 任务):定义——基于 ICD-10→SNOMED 诊断记录判定是否属于脓毒症/AKI/心衰等表型队列;输入——condition_occurrence + condition_era;输出——多标签。意义——队列构建与后续流行病学分析的基础。
  • 机械通气/操作预测(treatment prediction 任务):定义——由早期生命体征与检验预测是否发生特定 TUSS/SIGTAP 操作;输入——时序特征;输出——二分类。意义——资源需求预估。
  • 模型外部验证(transportability 任务):定义——将在 MIMIC-IV 等外部数据训练的模型在 MIMIC-BR 上评估区分度与校准度;意义——量化跨医疗系统泛化衰减。

§2.4 患者人群

维度 内容
来源机构 Hospital Israelita Albert Einstein(圣保罗,拉美顶尖私立三级医院)
采集时间 2015-2025 年间的连续三年(官方不公开具体年份以强化隐私保护)
年龄 仅成人 ≥18 岁;≥89 岁统一聚合为上限类别
性别 OMOP gender_concept_id(8532 女性 / 8507 男性等标准概念)
种族/族裔 race_concept_id / ethnicity_concept_id(仅"可得时"收录;部分为空列)
就医类型 病房、ICU 住院(v1.0.1 队列要求至少一次 ICU 住院);急诊就诊数据当前不可用
语言/编码环境 葡萄牙语源系统;ICD-10(CID-10)、TUSS、SIGTAP 等巴西本地术语

§2.5 临床价值

对临床研究者,MIMIC-BR 首次让"巴西 ICU 患者"成为可公开复核的研究对象:私立三级医院的入 ICU 标准、抗菌药物选择、检查频次都可以与欧美文献定量对比。对 AI 工程师,它是检验模型人群外推性的天然测试床——一个在 MIMIC-IV 上 AUROC 0.87 的模型,在圣保罗私立 ICU 上掉多少分,本身就是有发表价值的研究问题。对公共卫生与卫生经济学者,TUSS/SIGTAP 编码天然携带巴西医保支付视角,使诊疗强度与费用结构的跨国比较成为可能。

§2.6 金标准参考

任务 划分方式 标注方式 标注者/来源 性质
LOS 分级 按患者随机 80/10/10(社区惯例,无官方划分) visit_occurrence 聚合类别即标签(自动) 官方去标识化管道 弱监督、确定可复现
ICU 转移预警 按住院划分防泄漏(社区惯例) visit_detail 转科记录即标签(自动) 官方 ETL 弱监督、事件驱动
表型识别 不适用(队列定义任务) ICD-10→SNOMED 映射(自动+词表人工维护) OHDSI Vocabulary Team + 本地编码员 规则标注、可审计
外部验证 不适用 保留外部数据原标签 各原始数据集 独立参照

§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐版本 大小 理由
新研究/新模型开发 v1.0.1 凭证登录后查看 官方当前版;队列定义已修正(仅含 ICU 患者),数字与文档一致
复现基于 v1.0.0 的已发表结果 v1.0.0 凭证登录后查看 与早期论文/预印本的 30,599 患者口径一致;但注意其含非 ICU 住院记录
跨版本稳健性/敏感性分析 两个版本都取 两份下载 两版表行数差异显著,适合做版本敏感性研究(见坑点 1)
OMOP 生态/OHDSI 工具链研究 v1.0.1 + ATHENA 最新词汇 词汇 ZIP 另计 词汇版本独立于数据版本,务必在论文中同时报告两者版本号

§3.1 模态详情

MIMIC-BR 是单一模态数据集:结构化临床数据(structured EHR)。具体包括五类信号:(1) 时序生理与检验(measurement,138 万行,含心率、血压、血氧饱和度、体温及 LOINC 化验);(2) 诊断事件(condition_occurrence 40,734 行 + condition_era 95,938 行的疾病时段聚合);(3) 用药暴露(drug_exposure 89 万行 + drug_era 68 万行);(4) 操作事件(procedure_occurrence 14.4 万行,TUSS/SIGTAP 编码);(5) 层级就诊结构(visit_occurrence 3.4 万行 + visit_detail 11.3 万行的病房/ICU 转科树)。没有影像、波形、基因组或自由文本模态;官方明确说明临床笔记、影像与病理报告在本版全部排除。

各信号域的建模适配性如下表:

信号域 承载表 时间分辨率 建模适配性
生命体征 measurement 事件级(偏移后日期字符串) ICU 预警/转移预测主特征通道;无小时级保证,需按事件密度自适应窗口
实验室检验 measurement 事件级 LOS/表型特征;分类型结果通道(value_as_concept_id)为空列,仅数值可用
诊断 condition_occurrence/era 日期级 队列定义与表型标签;era 已做时段聚合,勿当事件流
用药 drug_exposure/era 日期级 处方模式与暴露时长;era 汇总了连续暴露,早期预测任务应回退 occurrence
操作 procedure_occurrence 日期级 医保驱动操作分析(TUSS/SIGTAP 语义)与治疗预测标签
转科结构 visit_occurrence/visit_detail 日期级 住院内分段建模(病房段 vs ICU 段)与转移标签

§3.2 子集样本数

表(v1.0.1) 行数 One row per 主键
person 28,799 患者 person_id
visit_occurrence 34,217 住院/就诊事件 visit_occurrence_id
visit_detail 113,099 院内转移/子就诊 visit_detail_id
condition_occurrence 40,734 诊断事件 condition_occurrence_id
condition_era 95,938 疾病时段 condition_era_id
procedure_occurrence 144,367 操作事件 procedure_occurrence_id
drug_exposure 891,732 用药记录 drug_exposure_id
drug_era 681,129 连续用药时段 drug_era_id
measurement 1,384,509 检验/生命体征 measurement_id
observation 663,814 临床观察 observation_id
death 87 院内死亡事件 person_id
合计 约 408 万行

v1.0.0 参考值:person 30,599;visit_occurrence 37,978;visit_detail 118,115;condition_occurrence 125,570;condition_era 158,205;procedure_occurrence 181,608;drug_exposure 853,730;drug_era 695,168;measurement 1,337,890;observation 640,612;death 46。

§3.3 数据格式

组件 格式 说明
11 张临床数据表 CSV 字符串存储日期(含 YYYY-MM-DD 与 9999 占位);UTF-8;官方教程演示 Spark spark.read.csv 读取
OMOP 标准词汇 ZIP 内 9 张 CSV CONCEPT、CONCEPT_ANCESTOR、CONCEPT_CLASS、CONCEPT_RELATIONSHIP、CONCEPT_SYNONYM、VOCABULARY、RELATIONSHIP、DOMAIN、DRUG_STRENGTH
词汇获取方式 ATHENA 平台导出 14 类词汇(SNOMED、LOINC、RxNorm、ICD10、ATC、SUS、Gender、Race、Ethnicity、Multum、RxNorm Extension、Specimen Type、Episode Type、OMOP Extension);专有词汇需点 “License required” 单独申请

§3.4 存储大小

数据文件物理体积未在公开页面披露(受控访问,文件索引需凭证登录)。以行数估算:11 张表合计约 408 万行,加 9 张词汇表 CSV,解压后预期在数 GB 量级;确切大小以下载后的 Files 页面为准。

§3.5 标注方式

MIMIC-BR 没有"人工标注标签集"。所有可用标签均为自动弱监督派生:(1) 结局标签(LOS 类别、ICU 转移、死亡)直接来自运行数据经去标识化转换;(2) 表型标签来自 ICD-10→SNOMED 概念映射(词表由 OHDSI Vocabulary Team 维护、本地编码员录入 ICD-10 源码);(3) drug_era/condition_era 由官方 ETL 按规则窗口聚合。这意味着"标注质量"等于"数据录入质量 + 映射质量",不存在标注者间一致性系数,也不存在金标准人工复核层。

§3.6 标注者资质与一致性

数据源头为 Einstein 医院的常规临床录入(医生、护士、编码员),匿名化管道由院内数据团队(作者团队)实现,去标识化流程经独立第三方机构正式审查与认证(含再识别风险评估)。ICD-10 编码依赖院内病案编码流程。无单独的 AI 任务标注者体系,无 kappa 一致性指标可报告。

§3.7 采集周期

连续三年,窗口位于 2015-2025 区间内,具体年份不公开。数据为常规诊疗(routine care)产生的回顾性真实世界数据(RWD)。跨患者不可比绝对时间,但单患者内事件的相对间隔保持真实(日期偏移不改变间隔)。

§3.8 地域覆盖

单一地理单元:巴西圣保罗市的 Hospital Israelita Albert Einstein(拉丁美洲规模最大、学术产出最活跃的私立医疗集团之一,旗下圣保罗主院区为三级转诊中心)。患者地理来源未披露细分(患者可能来自圣保罗都会区乃至全国转诊)。官方将本项目定位为巴西数字健康战略 2020-2028 的组成部分,并明确表示未来版本计划纳入更多巴西国内数据库,届时地域覆盖有望从单一机构扩展为多机构网络。

§3.9 设备规格

不适用。MIMIC-BR 不含设备原始信号(无监护仪波形、无呼吸机参数流)。生命体征以测量值(measurement 行)形式进入数据,设备型号、itemid、报警参数等元数据均不在发布范围内。

§3.10 深度溯源链

院内 EHR/LIS/编码系统 → 院内 OMOP-CDM 集成仓库 → 队列筛选(三年窗口、成人、ICU)→ 简化 OMOP 结构重组织(删敏感属性、聚合罕见类、归一化单位)→ LGPD 匿名化管道(标识符移除→日期偏移→年龄/类别聚合→k/l/t 三重防护→[REDACTED] 标记)→ 独立第三方审查认证 → IRB 批准(#93984125.1.0000.0071,豁免个体知情同意)→ PhysioNet 发布(v1.0.0 2026-05-21 → v1.0.1 2026-08-09)。每一环均有官方文档背书,但源系统到 OMOP 仓库的 ETL 细节(如检验单位归一规则)未完全公开。


§4 数据结构

§4.0 目录树

数据为受控访问,以下为按官方文档描述整理的结构示意(确切的文件名与文件清单请在凭证登录后的 PhysioNet Files 页核对):

mimic-br-1.0.1/
├── person.csv                     # 28,799 行:患者人口学(年龄 ≥89 聚合、性别、种族/族裔)
├── visit_occurrence.csv           # 34,217 行:住院事件(入院类型、来源/去向、病房/ICU、LOS 聚合类别)
├── visit_detail.csv               # 113,099 行:院内转移(病房↔ICU 子就诊树)
├── condition_occurrence.csv       # 40,734 行:诊断事件(ICD-10 源码 → SNOMED CT concept_id)
├── condition_era.csv              # 95,938 行:疾病时段聚合
├── procedure_occurrence.csv       # 144,367 行:手术/非手术操作(TUSS / SIGTAP → OMOP 标准)
├── drug_exposure.csv              # 891,732 行:用药处方/给药(RxNorm)
├── drug_era.csv                   # 681,129 行:连续用药时段
├── measurement.csv                # 1,384,509 行:实验室检验 + 生命体征(LOINC)
├── observation.csv                # 663,814 行:人体测量等补充观察
├── death.csv                      # 87 行:院内死亡(日期已偏移)
└── vocabulary/                    # 经 ATHENA 单独下载的 OMOP 标准词汇(ZIP 解压)
    ├── CONCEPT.csv                # 概念主表(concept_id → 名称/域/词汇/标准标记)
    ├── CONCEPT_ANCESTOR.csv       # 概念层级(队列定义核心表)
    ├── CONCEPT_CLASS.csv
    ├── CONCEPT_RELATIONSHIP.csv   # ICD-10 → SNOMED 等跨词汇映射
    ├── CONCEPT_SYNONYM.csv
    ├── VOCABULARY.csv
    ├── RELATIONSHIP.csv
    ├── DOMAIN.csv
    └── DRUG_STRENGTH.csv

§4.1 DAIMS 字段字典(核心表 8-15 行)

字段 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
person.person_id Integer 患者代理键 12,345,678 患者级分组/防泄漏 无(代理键稳定) 无缺失 正整数
person.year_of_birth Integer 出生年(与偏移锚定配套) 1954 年龄特征 ≥89 聚合致高位截断 89+ 聚合类别 1899-2007
person.gender_concept_id Integer 性别标准概念 8532(女)/8507(男) 分层公平性评估 极低 无缺失 OMOP Gender 域
person.race_concept_id Integer 种族概念(可得时才有) 38003516 偏倚分析 分类粒度受聚合限制 空列/0=无信息 OMOP Race 域
visit_occurrence.visit_concept_id Integer 就诊类型(9201 住院、9203 急诊等) 9201 队列过滤 无缺失 OMOP Visit 域
visit_occurrence.visit_start_date Text 入院日期(字符串,逐患者偏移) “2153-04-17” 相对时间轴构建 偏移锚点保密 无缺失 偏移后伪日期
visit_occurrence.visit_end_date Text 出院日期;9999 年=仍在院或不可恢复 “9999-12-31” LOS 标签;须过滤 9999 受 LOS 聚合重赋值 9999 占位 同上
measurement.measurement_concept_id Integer 检验/体征标准概念(LOINC 映射) 3027039(心率相关概念以 CONCEPT 为准) 特征选择 概念映射损耗见坑点 5 0=无映射 OMOP Measurement 域
measurement.value_as_number Float 数值型结果 98.6 主特征通道 RWD 会有不合理值(官方明示) NULL;value_as_concept_id 为空列 连续
measurement.unit_concept_id Integer 单位概念 8876 单位归一化前提 归一化不完整风险 NULL=未知 OMOP Unit 域
drug_exposure.drug_concept_id Integer 药物标准概念(RxNorm) 1,725,968 用药特征/era 聚合 源码映射损耗 0=无映射 OMOP Drug 域
condition_occurrence.condition_concept_id Integer 诊断标准概念(SNOMED) 10001005(脓毒症相关以 CONCEPT 为准) 表型标签 ICD-10→SNOMED 一对多损耗 0=无映射 OMOP Condition 域
death.person_id Integer 死亡患者键(仅 87 行) 不可靠结局标签 k-匿名化强烈抑制 表本身近乎全抑制

注:34 个 OMOP 结构性空列(如 cause_source_concept_id、visit_source_concept_id、admitting_source_concept_id、ethnicity_source_concept_id、value_as_concept_id)当前为空,属官方有意保留,建模时应直接跳过而非当作"全部阴性"。

§4.2 标签分布

官方未发布结局标签的完整分布统计。已知硬约束:death 表仅 87 行(约占 0.3% 患者),院内死亡率标签不可用;LOS 以聚合类别(患者数 <20 的独特类别已被合并)形式给出,类别的具体数量与边界官方页面未列举,需下载后 visit_occurrence 实测;visit_detail 的转科结构支持"是否发生 ICU 转移"标签,但 ICU 内→ICU 内转移与病房→ICU 的区分需按 visit_concept/层级字段自行判定。

§4.3 关键统计

  • 每名患者平均约 1.19 次 visit_occurrence(34,217/28,799),平均约 48 次 measurement(1,384,509/28,799)。
  • 每次住院平均约 26 条用药记录(891,732/34,217),私立三级医院的检查与用药密度可见一斑。
  • visit_detail(113,099)约为 visit_occurrence(34,217)的 3.3 倍,说明院内转科普遍存在,子就诊树建模有充足信号。
  • drug_exposure 与 drug_era 之比约 1.31(891,732/681,129),说明多数药物记录被聚合进较短的连续暴露时段,长期用药(如慢病维持治疗)占比有限。
  • condition_occurrence(40,734)与 condition_era(95,938)倒挂——era 行数反而更多,提示 era 聚合窗口按概念分段而非简单合并,使用前务必实测二者的对应关系。
  • death 表(87 行)与 condition 表(40,734 行)的比例提示:结局研究必须转向非死亡终点。
  • 以上均为由官方表行数推导的比值(v1.0.1),非官方发布统计。

§4.4 数据层级

person(患者,28,799)
└── visit_occurrence(住院事件,34,217;多级 1..n)
    ├── visit_detail(院内转移子树,113,099;病房/ICU 分段)
    ├── condition_occurrence / condition_era(诊断 → 疾病时段)
    ├── procedure_occurrence(操作,TUSS/SIGTAP)
    ├── drug_exposure / drug_era(用药 → 连续暴露时段)
    ├── measurement(时序检验/生命体征;挂靠 visit + 时间戳偏移)
    ├── observation(补充观察)
    └── death(院内死亡;87 行)
词汇层(ATHENA):CONCEPT → CONCEPT_ANCESTOR / CONCEPT_RELATIONSHIP(跨库可比性来源)

§4.5 缺失值与信息性缺失编码

编码/现象 出现位置 语义 处理建议
[REDACTED] 部分文本型字段 官方刻意压制的原值(隐私) 视为缺失,不得回猜;不要当作类别参与训练
9999 年日期 visit_end_date 等 仍在院或出院日期不可恢复 构建 LOS/结局前过滤;不可当极端值参与时间运算
NULL(value_as_number) measurement 分类型结果或未记录 数值通道剔除;分类结果走 value_as_concept_id(当前为空列,等于无分类通道)
34 个空列 多表的结构列 官方有意保留的 OMOP 结构 直接从特征集排除
age ≥89 聚合 person 隐私聚合 建模用有序类别而非连续年龄,或对 89+ 设哑变量
LOS 聚合类别 visit_occurrence <20 人独特类别被合并 按类别分类建模;禁止按日期差反推精确天数
race/ethnicity 部分为空 person “可得时才收录” 缺失本身有偏(与录入流程相关),公平性分析须声明

§5 划分与使用建议

§5.1 官方划分

官方未提供训练/验证/测试划分,也无官方 leaderboard 协议。这是"AI 就绪度评分 3/5"的主要扣分项。

§5.2 社区惯例与推荐划分

  • 按患者划分(person_id 分组):默认选择,杜绝同一患者跨集合泄漏。
  • 按时间划分(假设三年窗口内按相对时间切分):用于检验时间漂移,但由于绝对时间不可知,只能在"入序时间"意义上近似,需在论文中说明。
  • 按住院划分:仅适用于以住院为中心的任务(如 LOS),且需保证同一患者不跨集合。
  • 比例建议 80/10/10,分层变量用 LOS 类别或 ICU 转移标签,避免稀有层在测试集缺失。

重复入院患者的处理细节:约 12% 的患者(28,799 人贡献 34,217 次住院)有多于一次住院,这带来两个具体问题。第一,患者级划分后各集合的患者数与住院数比例不同(训练集可能集中了多次入院患者),评估指标的患者级加权应使用"以最后一次住院代表患者"或"患者级聚合指标"两种口径之一并声明。第二,同一患者的住院之间不独立(慢病患者反复入院携带相似的诊断组合),分组划分解决标签泄漏,但解决不了"患者记忆效应"——若研究目标是"再入院预测",则必须改为按首次入院划分并把后续住院转化为标签。

§5.3 泄漏风险清单(重点)

  1. 跨住院泄漏:28,799 患者贡献 34,217 次住院,约 4,000+ 患者多次入院——随机按住院划分必然泄漏,必须 person_id 分组。
  2. 标签时点泄漏:用全住院期的 measurement 预测 LOS 会把"住院后期信息"泄入特征;严格做法是只取入院后前 24-48 小时窗口。
  3. era 表泄漏:drug_era/condition_era 是全时段聚合,若作为早期预测特征,等效使用未来信息;应回退到 occurrence 级事件。
  4. 词汇层泄漏:CONCEPT_RELATIONSHIP 无时间性,可安全用于任何时点;但用它聚合到过于细的概念等价于过拟合源编码习惯,外部验证时会衰减。
  5. v1.0.0/v1.0.1 混用泄漏:两版人群重叠,若用 v1.0.0 调参、v1.0.1 测试,重叠患者会造成伪独立。

§5.4 交叉验证建议

5 折分组 CV(GroupKFold on person_id)+ 每折内 10% 内部验证用于早停;报告跨折均值±标准差;对稀有结局(如 ICU 转移)用分层分组 CV(StratifiedGroupKFold)。

§5.5 外部验证建议

  • 跨库同模态:MIMIC-IV→MIMIC-BR(后者作真外部集);两者都转 OMOP 后用同一套概念定义抽取特征是工程上最干净的路径。
  • 跨系统拉美验证:与巴西 SUS 体系医院合作开展内部私库验证时,MIMIC-BR 只能代表私立三级层,不可冒充"巴西全国基线"。
  • 校准优先:跨人群迁移中区分度(AUROC)往往衰减有限而校准衰减更大,务必报告校准曲线与 Brier 分数。
  • 报告"衰减分解":把性能差分解为人群构成差(case-mix)、编码映射差(concept drift)与测量惯例差(measurement drift)三类来源,这是审稿人最认可的外部验证分析框架。
  • 词汇版本对齐:跨库特征抽取必须声明两库各自的 OMOP 词汇版本;不同年份的词汇会改变 concept 映射结果,进而制造虚假的性能衰减。

§6 AI 就绪指南 ⭐

§6.0 云端快速启动

官方未提供 BigQuery/AWS 托管版本(与 MIMIC-III/IV 不同)。若需要云上 OMOP 生态,可用自行下载的数据构建本地 DuckDB/PostgreSQL 库(见 §6.3),或使用 OHDSI WebAPI 工具链。下载后数据量不大,单机即可完成绝大多数分析,云端启动非必需。

§6.1 快速上手

预期目录结构:你下载的数据解压后为 11 张临床 CSV(见 §4.0),词汇 ZIP 解压到 vocabulary/data_root 即包含这些 CSV 的目录路径。最小可用子集:person.csv + visit_occurrence.csv + CONCEPT.csv 三张表即可完成"入院类型分布 × 年龄分层"的第一份探索。

# 目录结构预期:
#   data_root/
#     person.csv
#     visit_occurrence.csv
#     measurement.csv
#     ...(其余 8 张临床表)
#     vocabulary/CONCEPT.csv, CONCEPT_ANCESTOR.csv, ...
# data_root 就是上述目录的路径,代码内所有 pd.read_csv 都在 data_root 下拼接。
# 最小可用子集:person + visit_occurrence + CONCEPT(约几 MB 级别,秒级加载)。

import pandas as pd
from pathlib import Path

DATA_ROOT = Path("data/mimic-br-1.0.1")   # ← 改成你的下载解压目录

person = pd.read_csv(DATA_ROOT / "person.csv")
visits = pd.read_csv(DATA_ROOT / "visit_occurrence.csv")
concept = pd.read_csv(DATA_ROOT / "vocabulary" / "CONCEPT.csv", low_memory=False)

# OMOP 日期是字符串:先解析,剔除 9999 占位(仍在院/不可恢复出院)
for col in ["visit_start_date", "visit_end_date"]:
    visits[col] = pd.to_datetime(visits[col], errors="coerce")
valid = visits[visits["visit_end_date"].dt.year != 9999]

# LOS 以聚合类别形式提供(官方去标识化:<20 人独特类别已合并)
# 若存在类别列(列名以实际下载为准,如 los_category),直接 value_counts 即可:
los_cols = [c for c in visits.columns if "length" in c.lower() or "los" in c.lower()]
print("LOS 相关列:", los_cols)

# 概念翻译:把 concept_id 映射到英文名,便于人读
concept_names = concept.set_index("concept_id")["concept_name"]
visits["visit_type"] = visits["visit_concept_id"].map(concept_names)
print(visits["visit_type"].value_counts().head(10))
print(f"有效住院(含可恢复出院日期):{len(valid):,} / {len(visits):,}")

§6.2 数据获取

获取流程(全部免费,但为申请审核制):

步骤 内容 地址
1 完成 CITI Program “Data or Specimens Only Research” 课程并取得完成报告 https://about.citiprogram.org/
2 注册 PhysioNet 账号,在 MIMIC-BR 页面提交 Contributor Review 访问申请,上传 CITI 证书、签署 Contributor Review Health Data Use Agreement 1.5.0 https://physionet.org/content/mimic-br/1.0.1/
3 等待贡献方(Einstein 团队)逐案审核 同上
4 获批后在 Files 页面下载主数据(CSV),或用带签名的 wget 递归下载 https://physionet.org/content/mimic-br/1.0.1/#files
5 另行在 ATHENA 下载 OMOP 词汇 ZIP(专有词汇需点 “License required” 申请) https://athena.ohdsi.org/search-terms/start
# 获批后:用 wget 递归下载(登录凭据在页面顶部的签名下载链接中也可获取)
wget -r -N -c -np --user=你的PhysioNet用户名 --ask-password \
     https://physionet.org/files/mimic-br/1.0.1/ -P data/

# 下载 OMOP 词汇(在 ATHENA 网页勾选 14 类词汇后导出 ZIP)并解压
unzip vocabulary_download.zip -d data/mimic-br-1.0.1/vocabulary/

注意事项:CITI 证书必须覆盖 “Data or Specimens Only Research” 模块;申请审核周期通常数个工作日;词汇表版本与数据版本相互独立,论文中须分别报告。

§6.3 预处理全流程

# 预处理 Pipeline:CSV → 清洗 → 标准化 → 患者级时序特征表
# 依赖:pandas, duckdb(pip install duckdb)

import duckdb
import pandas as pd
from pathlib import Path

DATA = Path("data/mimic-br-1.0.1")
con = duckdb.connect("mimic_br.duckdb")

# 1) 注册 CSV 为可 SQL 查询的视图(DuckDB 直接读 CSV,含词汇表)
for t in ["person", "visit_occurrence", "visit_detail", "condition_occurrence",
          "procedure_occurrence", "drug_exposure", "measurement", "observation", "death"]:
    con.execute(f"CREATE TABLE {t} AS SELECT * FROM read_csv_auto('{DATA}/{t}.csv')")
con.execute("CREATE TABLE concept AS "
            "SELECT * FROM read_csv_auto('data/mimic-br-1.0.1/vocabulary/CONCEPT.csv')")
con.execute("CREATE TABLE concept_ancestor AS "
            "SELECT * FROM read_csv_auto('data/mimic-br-1.0.1/vocabulary/CONCEPT_ANCESTOR.csv')")

# 2) 过滤无效出院(9999 占位)——LOS/结局研究的强制前置
con.execute("""
CREATE TABLE valid_visits AS
SELECT * FROM visit_occurrence
WHERE visit_end_date IS NOT NULL
  AND CAST(SUBSTR(visit_end_date, 1, 4) AS INTEGER) <> 9999
""")

# 3) 用 CONCEPT_ANCESTOR 定义脓毒症队列(SNOMED 10001005 的全部后代概念)
con.execute("""
CREATE TABLE sepsis_visits AS
SELECT v.visit_occurrence_id, v.person_id
FROM valid_visits v
JOIN condition_occurrence co USING (person_id)
JOIN concept_ancestor ca
  ON co.condition_concept_id = ca.descendant_concept_id
WHERE ca.ancestor_concept_id = 10001005
""")

# 4) 时序长表:提取 ICU 队列前 48 小时的生命体征/化验(相对时间,非绝对时间!)
con.execute("""
CREATE TABLE early_features AS
SELECT v.visit_occurrence_id,
       m.measurement_concept_id,
       m.value_as_number,
       m.unit_concept_id,
       DATE_DIFF('day', CAST(v.visit_start_date AS DATE),
                 CAST(m.measurement_date AS DATE)) AS day_offset
FROM valid_visits v
JOIN measurement m USING (visit_occurrence_id)
WHERE m.value_as_number IS NOT NULL
  AND day_offset BETWEEN 0 AND 2
""")

# 5) 长转宽(OMOP 为长格式,模型需要宽格式):按概念聚合出首个值/均值
con.execute("""
CREATE TABLE wide_features AS
SELECT visit_occurrence_id,
       AVG(CASE WHEN day_offset = 0 THEN value_as_number END) AS d0_mean,
       COUNT(*) AS n_meas
FROM early_features
GROUP BY visit_occurrence_id, measurement_concept_id
""")

print(con.execute("SELECT COUNT(*) FROM wide_features").fetchone())

清洗规则要点:(1) 一切日期解析前先挡 9999;(2) [REDACTED] 字符串字段一律转 NaN;(3) value_as_number 的单位以 unit_concept_id 分组后分别标准化(官方做过全局单位归一,但 RWD 残差不合理值,官方明确提示需谨慎清洗,如用 per-concept 的 0.5%-99.5% 分位截断);(4) 跳过 34 个官方空列;(5) 罕见类别已被官方合并,无需二次合并,但要防止与外部数据的类别体系错位。

单位与异常值清洗的独立代码段(接上,可单独运行):

# 单位感知的异常值截断 + [REDACTED] 清理
import duckdb

con = duckdb.connect("mimic_br.duckdb")

# 1) per-concept-per-unit 分位截断:0.5% / 99.5%
#    单位不同的同名测量(如 mg/dL vs mmol/L 的血糖)必须分开截断
con.execute("""
CREATE TABLE clean_measurement AS
WITH bounds AS (
    SELECT measurement_concept_id, unit_concept_id,
          PERCENTILE_CONT(0.005) WITHIN GROUP (ORDER BY value_as_number) AS lo,
          PERCENTILE_CONT(0.995) WITHIN GROUP (ORDER BY value_as_number) AS hi
    FROM measurement
    WHERE value_as_number IS NOT NULL
    GROUP BY measurement_concept_id, unit_concept_id
)
SELECT m.*
FROM measurement m JOIN bounds b
  USING (measurement_concept_id, unit_concept_id)
WHERE m.value_as_number BETWEEN b.lo AND b.hi
""")

# 2) 字符串字段的 [REDACTED] 处理(观测/来源字段)
con.execute("""
CREATE TABLE clean_observation AS
SELECT *, NULLIF(observation_source_value, '[REDACTED]') AS observation_source_clean
FROM observation
""")

# 3) 建模前的空列黑名单过滤(34 个官方空列,直接物理剔除)
EMPTY_COLS = ["value_as_concept_id", "cause_source_concept_id",
              "visit_source_concept_id", "admitting_source_concept_id",
              "ethnicity_source_concept_id"]
cols = [r[0] for r in con.execute("DESCRIBE measurement").fetchall()]
keep = [c for c in cols if c.upper() not in [e.upper() for e in EMPTY_COLS]]
con.execute(f"CREATE TABLE model_ready_measurement AS SELECT {', '.join(keep)} FROM clean_measurement")

§6.4 PyTorch DataLoader 完整实现

# 任务示例:入院前 48 小时 measurement 时序 → 预测住院时长(LOS)类别
# 说明:LOS 标签取自 visit_occurrence 的聚合类别列(列名以实际下载为准);
#       这里以 los_category 为例演示完整可运行结构,须按 person_id 分组划分防泄漏。

import numpy as np
import pandas as pd
import torch
from torch.utils.data import Dataset, DataLoader
from sklearn.model_selection import train_test_split

class MIMICBRTrajDataset(Dataset):
    """患者住院时序数据集:把前 48h 的 (concept_id, value, day_offset) 打包成定长序列。"""

    def __init__(self, visits, features, concept_index, seq_len=64):
        self.seq_len = seq_len
        self.concept_index = concept_index          # concept_id → [1, V] 整数索引,0 = PAD
        self.samples, self.labels = [], []
        feat_by_visit = {k: v for k, v in features.groupby("visit_occurrence_id")}
        for _, row in visits.iterrows():
            f = feat_by_visit.get(row["visit_occurrence_id"])
            if f is None or pd.isna(row["los_category"]):
                continue
            ids = f["measurement_concept_id"].map(self.concept_index).fillna(0).to_numpy()
            vals = f["value_as_number"].to_numpy()
            days = f["day_offset"].to_numpy()
            # 三通道:概念索引 / 归一化数值 / 日偏移 → [T, 3]
            x = np.stack([
                np.pad(ids[-seq_len:], (seq_len - min(len(ids), seq_len), 0)),
                np.pad(vals[-seq_len:], (seq_len - min(len(vals), seq_len), 0)) * 0.01,
                np.pad(days[-seq_len:], (seq_len - min(len(days), seq_len), 0)) * 0.5,
            ], axis=1)
            self.samples.append(torch.tensor(x, dtype=torch.float32))
            self.labels.append(int(row["los_category_index"]))   # 类别索引需预先编码

    def __len__(self):
        return len(self.samples)

    def __getitem__(self, idx):
        return self.samples[idx], self.labels[idx]

# --- 组装与实例化(伪流程,需按实际列名适配)---
# visits = pd.read_csv(...)  # 含 visit_occurrence_id, person_id, los_category
# features = pd.read_csv(...)  # §6.3 的 early_features 表
# vocab = {c: i + 1 for i, c in enumerate(sorted(features["measurement_concept_id"].unique()))}
# visits["los_category_index"] = visits["los_category"].astype("category").cat.codes
#
# train_v, temp_v = train_test_split(visits, test_size=0.2,
#                                    stratify=visits["los_category_index"], random_state=42)
# # 关键:再按 person_id 做分组校验,确保同一患者不跨集合(详见 §5.3)
# train_ds = MIMICBRTrajDataset(train_v, features, vocab)
# train_loader = DataLoader(train_ds, batch_size=64, shuffle=True, num_workers=4)

class SeqClassifier(torch.nn.Module):
    def __init__(self, n_vocab, n_classes, d=64):
        super().__init__()
        self.embed = torch.nn.Embedding(n_vocab, d, padding_idx=0)
        self.lstm = torch.nn.LSTM(3 + d, d, batch_first=True, bidirectional=True)
        self.head = torch.nn.Linear(2 * d, n_classes)

    def forward(self, x):
        ids = x[:, :, 0].long() % self.embed.num_embeddings
        feat = torch.cat([self.embed(ids), x[:, :, 1:]], dim=2)
        out, _ = self.lstm(feat)
        mask = (ids != 0).unsqueeze(-1)
        pooled = (out * mask).sum(1) / mask.sum(1).clamp(min=1)
        return self.head(pooled)

§6.5 坑点(8 个真实特有失败模式)

⚠️ 坑点 1:v1.0.0 与 v1.0.1 队列口径变更,跨版本数字与结果不可比(分类:工程陷阱)

问题:v1.0.1(2026-08-09)修正了队列筛选器,仅保留"至少一次 ICU 住院"的患者并移除意外保留的非 ICU 住院记录;官方称"结构、变量与队列定义无变更",但两版表行数差异剧烈——condition_occurrence 从 125,570 行降到 40,734 行(-68%),death 从 46 条变为 87 条。任何基于 v1.0.0 的统计量、模型或论文结果都无法在 v1.0.1 上复现。
症状:用新版数据复核旧论文的队列规模对不上;混合下载两版数据后患者去重困难;综述引用"30,599 名患者"而你算出 28,799。
解决

  1. 简单方法:下载前固定版本——所有分析锁定 v1.0.1,论文明确写 “version 1.0.1, DOI 10.13026/mkg6-8h16”。
  2. 进阶方法:确需复现旧结果时单独拉取 v1.0.0,为两版各建独立 DuckDB/PostgreSQL schema,禁止共用中间表;对同一任务报告两版结果差作为敏感性分析。
  3. SOTA 方法:把"数据集版本"纳入 MLOps 元数据(DVC/LakeFS 打版本快照),并在论文报告 ATHENA 词汇版本 + 数据版本双版本号。
    参考https://physionet.org/content/mimic-br/1.0.1/ (Release Notes);https://physionet.org/content/mimic-br/1.0.0/

⚠️ 坑点 2:日期逐患者偏移且存为字符串,绝对时间分析全部失效(分类:预处理陷阱)

问题:去标识化对每名患者使用独立锚定日期与偏移量,所有日期以字符串存储(官方为规避 Spark 3.0+ 时间戳限制);不同患者的"2153-04-17"不对应任何真实日历日期,患者间日期不可比,跨患者时间轴拼接毫无意义。
症状:按年份做季节性分析(冬季呼吸衰竭更多?)得到完全虚假的结论;把 visit_start_date 当特征喂给树模型,模型学到的是偏移伪分布;跨患者聚合"2015-2025 趋势"直接报错或产出噪声。
解决

  1. 简单方法:全部时间特征转为相对值——入 ICU 后小时/天数(day_offset)、住院日序号、两次事件间隔天数。
  2. 进阶方法:需要"住院内时段"特征时以 visit_start_date 为零点归一:(event_date - visit_start_date).days;跨患者统计只用间隔分布而非日历分布。
  3. SOTA 方法:时序模型输入用 event-level 相对时间戳 + mask(如 DEAL/TimeFlow 类连续时间编码),从结构上禁止模型接触绝对日期。
    参考https://physionet.org/content/mimic-br/1.0.1/ (De-identification、Methods 章节)

⚠️ 坑点 3:death 表仅 87 条,院内死亡率标签不可用,稀有事件让评估指标失效(分类:标签理解)

问题:28,799 名患者中 death 表只有 87 行(约 0.3%),这是 k-匿名性/罕见类别聚合对死亡这一极高再识别风险字段的强烈抑制。用 death 做院内死亡率预测,正样本近乎为零;任何"死亡率 AUROC 0.9"的结果都是数据幻象或代码 bug。
症状:正类样本折间抖动剧烈,交叉验证折中某折正类为 0 直接报错;AUROC 的 95% 置信区间宽到失去意义(87 个事件的 bootstrap CI 可宽至 ±0.1 以上);loss 不收敛或全预测为负类。
解决

  1. 简单方法:放弃院内死亡标签,改用非死亡终点——LOS 类别、ICU 转移(visit_detail)、特定操作(procedure_occurrence)。
  2. 进阶方法:若必须研究死亡结局,按住院外时间窗(如出院后 30 天)在 death 表上做存活分析时,先声明样本量下限:n_event=87 时 Fisher 精确检验与事件数/变量数(EPV)规则都限制了可用协变量个数(EPV≥10 时最多约 8 个自变量)。
  3. SOTA 方法:稀有事件用惩罚化损失(focal loss、class-balanced loss)+ 分组 bootstrap 校准置信区间,并预注册"以事件数为约束的变量预算";或者转向与更大规模数据库(MIMIC-IV)的联合建模/迁移框架。
    参考https://physionet.org/content/mimic-br/1.0.1/ (Data Description:death n=87)

⚠️ 坑点 4:LOS 是聚合类别而非连续天数,日期差反推会得到被污染的标签(分类:标签理解)

问题:官方去标识化把"患者总数 <20 的独特 LOS 类别"合并为新的聚合类别,且这些患者的 visit_end_date 被按聚合类别定义重赋——也就是说,用 visit_end_date - visit_start_date 计算天数得到的不是真实住院天数,而是聚合后重赋的类别代表值。
症状:LOS 直方图出现诡异的离散尖峰;回归模型 RMSE 看似不错但残差呈阶梯状;短住院被系统性高估、长住院被系统性低估。
解决

  1. 简单方法:把 LOS 当作有序分类问题(ordinal classification)而非回归,用聚合类别本身做标签。
  2. 进阶方法:保留类别标签 + 以类别边界构造 ordinal target(cumulative link / CORAL 损失),可同时利用类别的有序性。
  3. SOTA 方法:对必须做连续 LOS 预测的场景,用 MIMIC-IV 做连续回归预训练,再在 MIMIC-BR 类别标签上做有序微调(knowledge transfer),并在论文中明确两库 LOS 语义差异。
    参考https://physionet.org/content/mimic-br/1.0.1/ (De-identification:LOS 聚合与 visit_end_date 重赋)

⚠️ 坑点 5:ICD-10→SNOMED CT 映射有损耗,MIMIC-III/IV 的 phenotype SQL 不能直接套用(分类:预处理陷阱)

问题:MIMIC-BR 源诊断是 ICD-10(巴西版 CID-10),发布时经 CONCEPT_RELATIONSHIP 映射到 SNOMED CT;MIMIC-III 的 phenotype 代码基于 ICD-9,MIMIC-IV 基于 ICD-9/10 与其自有映射。三者概念体系互不兼容:ICD-10→SNOMED 存在一对多、层级偏移与"未映射到标准概念(concept_id=0)"的情况。
症状:直接跑 MIMIC-III 脓毒症 SQL 返回空表;同一表型在 MIMIC-IV 与 MIMIC-BR 的队列规模差出数倍且不知谁对;condition_concept_id=0 的行在表型定义里悄悄丢失,造成选择性偏倚。
解决

  1. 简单方法:任何表型先写"源码层 OR 标准层"双通道定义:condition_source_value LIKE 'A41%' OR condition_concept_id IN (...),并报告 0 概念行占比。
  2. 进阶方法:用 CONCEPT_ANCESTOR 从根概念向下取后代集合(如 10001005 脓毒症的全部子类),配合 CONCEPT_RELATIONSHIP 的 equivalence 映射做跨库对齐;对齐后抽样 50 例人工核对。
  3. SOTA 方法:采用 OHDSI Phenotype Library 的已验证 cohort 定义(JSON/SQL 双格式),跨 OMOP 库零改动复用,并用 CALIBER/CHARYBDIS 类跨库校准流程报告各库召回差异。
    参考https://physionet.org/content/mimic-br/1.0.1/files/ (Usage Notes:词汇连接模式);Reich C et al., JAMIA 2024;31(3):583-590

⚠️ 坑点 6:自由文本全部排除,NLP/LLM 文本路线在此库上不可行(分类:工程陷阱)

问题:官方明确"Free-text fields were excluded from this release"——临床笔记、影像报告、病理报告一律不提供。习惯了 MIMIC-III(208 万条笔记)或 MIMIC-IV-Note 的研究者常默认存在 notes 表。
症状:找遍数据包没有 note/encounter 表后误以为下载不完整;把 Portuguese 临床 NLP 模型(BERTimbau 类)的评测计划整个落空;试图用 observation 表的字符串字段当文本信号,发现全是 [REDACTED] 或受控词。
解决

  1. 简单方法:把本库定位为纯结构化基准,文本相关研究切换到 BRATECA(葡萄牙语临床文本数据集,同一机构生态)或 MIMIC-IV-Note。
  2. 进阶方法:需要"结构化 + 文本"联合建模时,以 MIMIC-BR 为结构化主干、BRATECA 为文本侧参照做分离式评估,切勿假设两库患者可链接(匿名化后不可链接)。
  3. SOTA 方法:关注 MIMIC-BR 未来版本——官方声明后续发布可能增加数据量;用 PhysioNet 订阅该页面的版本通知,文本发布第一时间跟进。
    参考https://physionet.org/content/mimic-br/1.0.1/ (Methods/Usage Notes:Free-text fields were excluded)

⚠️ 坑点 7:私立顶级医院人群偏倚——它不代表"巴西患者",更不代表拉美(分类:偏倚陷阱)

问题:Einstein 是拉美最顶尖的私立三级医院,患者以商业补充医疗保险为主,社会经济地位、种族构成、就诊路径(可直接约专科)与公立 SUS 医院截然不同;官方也将"减少种族偏倚"列为动机之一,反过来说明其内部数据与巴西全国人群存在系统性差异。
症状:在 MIMIC-BR 上校准良好的模型部署到公立医院后区分度/校准双降;论文里写"巴西 ICU 人群"被审稿人质疑外部效度;把本库与 MIMIC-IV 的性能差全部归因于"人群差异"而忽略了"私立 vs 学医中心 + 医保驱动"的混杂。
解决

  1. 简单方法:论文措辞降级为"单一巴西私立三级医院 ICU 人群";在 Limitation 里列出医保结构、单中心、成人三项。
  2. 进阶方法:报告亚组性能(性别、年龄带、入院类型择期/急诊),并做 SE Bias 类敏感性分析;把 race/ethnicity 缺失本身作为偏倚协变量讨论。
  3. SOTA 方法:跨库校准再训练(recalibration in the wild):MIMIC-IV 训练 + MIMIC-BR 只做 Platt/isotonic 校准层,量化"结构差异可校准部分"与"不可校准部分"。
    参考https://physionet.org/content/mimic-br/1.0.1/ (Background:reduce racial and other types of bias)

⚠️ 坑点 8:OMOP concept_id 体系与 34 个空列——MIMIC 式 itemid 直觉会制造静默错误(分类:工程陷阱)

问题:MIMIC 家族用 chartevents.itemid + d_items 字典;MIMIC-BR 用 OMOP 的 concept_id 三件套(xxx_concept_id 标准 / xxx_source_concept_id 源映射 / xxx_source_value 原值),且 34 个列当前为空(如 value_as_concept_id、cause_source_concept_id)。用 MIMIC 直觉写查询(按 itemid 找心率)会失败;把空列当特征会把整个通道变成常数。
症状WHERE itemid = 220045 类查询直接报"列不存在";心率序列为空——因为你查的是源概念而不是 LOINC 标准概念;Sklearn 报告某特征 importance=0,其实是那列全空。
解决

  1. 简单方法:建模前先跑列扫描,删除常量列与官方空列(黑名单至少包含 value_as_concept_id、cause_source_concept_id、visit_source_concept_id、admitting_source_concept_id、ethnicity_source_concept_id)。
  2. 进阶方法:建立"标准概念优先"查询习惯:先在 CONCEPT 表按 concept_name/domain_id 检索(如 domain_id=‘Measurement’),拿到 concept_id 集合,再回查事实表;源概念仅用于审计映射质量。
  3. SOTA 方法:用 OMOP-on-FHIR 或 OHDSI WebAPI 把概念解析与事实查询解耦;团队内沉淀概念字典 YAML(概念集合 + 单位 + 正常范围),一次定义、多库复用(MIMIC-IV OMOP 版同样适用)。
    参考https://physionet.org/content/mimic-br/1.0.1/files/ (Step 3 — Connect OMOP Concept tables);Release Notes(34 empty columns)

§6.6 数据增强(安全与危险清单)

安全 ✅:

  • 单患者窗口内随机裁剪/时间抖动(保持相对间隔不变)。
  • 概念级 dropout(随机屏蔽 5-10% 测量值并置 mask=0),模拟缺失。
  • 单位内数值抖动(用 unit_concept_id 分组后加微高斯噪声)。
  • Mixup 仅在同类内插值(避免生成临床不可能的类别组合)。

危险 ❌:

  • 跨患者时间轴拼接或"日期平移"增强(破坏已偏移的时间语义)。
  • 数值外推到 per-concept 分位范围之外(RWD 残余异常值会被放大)。
  • 对 [REDACTED]/NULL 做插值填充(信息性缺失被破坏)。
  • SMOTE 式合成少数类样本用于 87 事件的死亡标签(产生临床上不存在的患者向量)。

§6.7 模型推荐

任务 推荐模型 起步理由 参考实现
LOS 类别预测 XGBoost / LightGBM(宽表特征) 4 万级住院样本树模型稳健、可解释 scikit-learn + §6.3 宽表
ICU 转移预警 时序 Logistic + LSTM/GRU visit_detail 标签充足;先做可解释基线 §6.4 SeqClassifier
表型识别 规则(CONCEPT_ANCESTOR)+ 弱监督校准 规则即标签,重点是映射质量而非模型 OHDSI Phenotype Library
用药模式挖掘 FP-Growth / 时序聚类 drug_era 天然适合时段模式发现 mlxtend / tslearn
跨库迁移 预训练(MIMIC-IV OMOP)+ 本库微调 结构一致(均 OMOP)时迁移最干净 HuggingFace + 自建 SQL 抽取

§6.8 硬件需求

场景 配置 说明
探索性分析(§6.1/6.3) 8 GB 内存笔记本 408 万行 CSV,DuckDB/pandas 单机无压力
时序建模全量训练 16-32 GB 内存 + 1 张 8 GB 显卡 定长截断 64-256 步即可覆盖绝大多数住院
全库入 PostgreSQL/OMOP 工具链 8 核 32 GB 词汇表 CONCEPT 数百万行,建议建索引

§6.9 评估指标代码

# 分组 bootstrap 置信区间:稀有事件/跨库评估的标配
# 87 个死亡事件这类规模下,单点 AUROC 无意义,必须报 CI。

import numpy as np
from sklearn.metrics import roc_auc_score, average_precision_score, brier_score_loss

def grouped_bootstrap_ci(y_true, y_score, groups, n_boot=2000, seed=42, alpha=0.05):
    rng = np.random.default_rng(seed)
    units = np.unique(groups)
    unit_ids = {g: np.where(groups == g)[0] for g in units}
    aurocs, auprcs = [], []
    for _ in range(n_boot):
        pick = rng.choice(units, size=len(units), replace=True)
        idx = np.concatenate([unit_ids[g] for g in pick])
        y, s = y_true[idx], y_score[idx]
        if len(np.unique(y)) < 2:          # 重采样后只有一类则跳过
            continue
        aurocs.append(roc_auc_score(y, s))
        auprcs.append(average_precision_score(y, s))
    q = (100 * alpha / 2, 100 * (1 - alpha / 2))
    return {
        "AUROC": (roc_auc_score(y_true, y_score), np.percentile(aurocs, q[0]), np.percentile(aurocs, q[1])),
        "AUPRC": (average_precision_score(y_true, y_score), np.percentile(auprcs, q[0]), np.percentile(auprcs, q[1])),
        "Brier": brier_score_loss(y_true, y_score),
    }

# 用法:以 person_id 为 groups —— 患者级重采样,防止多住院患者低估方差
# ci = grouped_bootstrap_ci(y, score, groups=df["person_id"])
# print(f"AUROC {ci['AUROC'][0]:.3f} [{ci['AUROC'][1]:.3f}, {ci['AUROC'][2]:.3f}]")

§6.10 MLOps 笔记

  • 双版本锁定:数据版本(v1.0.1 / DOI)与词汇版本(ATHENA 导出日期)必须成对写入实验跟踪(MLflow/W&B tag),坑点 1 的教训。
  • 相对时间不变式:在 CI 中加一条数据单测——任何特征表不得包含未减去锚点的原始日期列。
  • 泄漏门禁:训练前自动校验 train/val/test 的 person_id 交集为空,并在提交日志打印。
  • 概念字典治理:表型定义文件(SQL/YAML)入库 code review,修改必须附带两库(如 MIMIC-IV vs MIMIC-BR)队列规模对比,防止静默定义漂移。
  • 再识别红线:严禁将本数据与外部可识别数据做链接尝试;这违反 Contributor Review Health Data Use Agreement 1.5.0。
  • 可复现容器:DuckDB/pandas/PyTorch 版本钉死(requirements 锁定 hash),OMOP 词汇 ZIP 记录下载哈希——词汇更新(OHDSI 每年多轮发布)会静默改变概念映射结果。
  • 评估工件归档:每次实验保存"划分清单(visit_occurrence_id 列表)+ 标签映射 + bootstrap 种子",本库标签稀疏(如稀有类),复现结果对划分极其敏感。

一条可直接落地的 CI 检查(伪代码):

def check_invariants(features, split_ids):
    # 1) 无绝对日期列
    for col in features.columns:
        assert "date" not in col.lower() or features[col].dtype == object and \
               not features[col].astype(str).str.match(r"\d{4}-\d{2}-\d{2}").all(), \
               f"{col} 疑似未相对化的日期列"
    # 2) 划分互斥
    assert not (set(split_ids.train) & set(split_ids.test)), "person_id 跨集合泄漏"
    # 3) 9999 出院未混入标签
    assert (features["visit_end_year"] != 9999).all(), "9999 占位混入训练样本"

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
单中心偏倚 全部数据来自圣保罗一家私立三级医院,诊疗路径、编码习惯同质 外部验证;跨库迁移时报告性能衰减
人群代表性偏倚 私立医保人群的社会经济与种族构成异于公立 SUS 与全国人群 论文措辞限定;亚组分析;公平性审计
成年与 ICU 队列选择偏倚 仅 ≥18 岁且(v1.0.1)至少一次 ICU 住院;急诊就诊数据缺失 研究设计阶段明确适用人群边界
结局标签抑制偏倚 death 87 条、LOS 聚合、<20 人类别合并,标签层信息被系统性削减 改用非死亡终点;有序分类建模
源编码偏倚 ICD-10 病案编码质量与本地习惯、TUSS/SIGTAP 医保驱动的操作记录 源码+标准概念双通道定义表型;抽样人工核对
时间窗口不透明 三年窗口在 2015-2025 内不公开,可能含疫情期特殊诊疗模式 避免时代性结论;做时间序号敏感性分析
RWD 数值偏倚 官方明示常规诊疗数据可能含不合理值 低-中 per-concept 分位截断;单位分组校验

§7.2 标注质量

无人工任务标注层,标签质量取决于三处:临床录入质量(RWD 固有)、ICD-10 编码质量(院内病案编码流程)、OMOP 映射质量(OHDSI 词汇 + 本地映射)。去标识化管道经独立第三方认证,k-匿名性/l-多样性/t-紧密性参数未公开具体值,标签层面的噪声率无法定量估计——使用时应把"标签=过程记录的函数"作为前提,而非把标签当作临床金标准。

三处质量风险的具体表现与自查方法:

风险源 典型表现 自查方法
临床录入 生命体征单位错位、检验时间录错 per-concept 分布图检查双峰/单位簇
ICD-10 编码 编码不全(漏编并发症)、 specificity 不足 与用药/操作记录交叉验证(用了胰岛素却无糖尿病码?)
OMOP 映射 concept_id=0、映射到错误粒度 统计 0 概念占比;抽样 50 条人工核对源码

§7.3 泛化性

部署场景 失效风险 证据/理由
巴西公立 SUS 医院 医保支付、患者构成、可及性差异;本库为私立层样本
拉美其他医院 疾病谱相似但医疗系统、编码语言(西语)不同
美欧学术医疗中心 人群与诊疗强度反向不匹配;MIMIC 家族用户反向迁移同风险
圣保罗同级私立医院 单中心噪声与时间窗口差异仍在;编码习惯可能同源
疫情期/大流行压力场景 中-高 窗口不公开,疫情期诊疗模式占比未知
跨语言/跨编码体系部署 ICD-10 本地化版本与 TUSS/SIGTAP 不可直接映射到他国码表

§7.4 伦理

Einstein IRB 批准(#93984125.1.0000.0071)并豁免个体患者知情同意;去标识化遵循巴西 LGPD 与巴西数字健康战略 2020-2028;独立第三方机构对匿名化流程完成正式审查认证。获取侧约束:CITI 培训 + Contributor Review 审核 + Contributor Review Health Data Use Agreement 1.5.0 签署;再识别尝试与数据再分发被协议禁止。

§7.5 公平性

person 表含性别(gender_concept_id)与种族/族裔(可得时收录),支持分组公平性评估,但有三个前置警告:(1) 官方已将罕见类别聚合,最小亚组的样本量可能不足以支撑稳定估计;(2) race/ethnicity 部分缺失且缺失机制与录入流程相关,直接删除行会引入选择偏倚;(3) 巴西的种族分类体系(IBGE 类别)与美欧体系不同,跨库比较时类别语义不对齐。建议做法:报告性别/年龄带分层性能,种族维度仅做探索性披露,并注明聚合与缺失限制。

§7.6 数据漂移

三年窗口内部可能跨越疫情前/中/后(窗口不公开),诊疗模式(检查频次、抗菌药物选择、远程问诊)存在时变;官方承诺未来版本纳入更多巴西数据库,跨版本/跨机构漂移将不可避免。监控建议:以 per-concept 月度(相对时间)测量率、编码映射命中率为漂移指标;版本升级时用 PS (population stability index) 对比新旧版本特征分布。

§7.7 DAIMS 24 项数据质量评估

# 检查项 状态 说明
1 宽格式 ⚠️ OMOP 为长格式,模型用宽表需自行 pivot(§6.3 提供方案)
2 唯一标识 患者/就诊/事件三层代理键,跨表连接稳定且不可回链
3 特殊字符 日期字符串存储与 9999 占位均有官方文档明示,语义无歧义
4 重复行 era 类表为聚合视图,occurrence 类表以代理键保证行级唯一
5 缺失编码 [REDACTED] 显式标记压制值,NULL 语义清晰
6 标签标识 ⚠️ death 仅 87 条;LOS 为聚合类别;结局标签稀疏或降分辨率
7 罕见类分组 官方已按 <20 患者阈值合并罕见 LOS 类别与年龄 ≥89
8 偏倚评估 官方明示 RWD 特性、私立单中心与队列口径
9 数据字典 OMOP CDM v5 标准定义 + 官方逐表说明
10 信息性缺失解释 34 个空列、[REDACTED]、9999 占位均有官方解释
11 设备记录 无设备元数据、无原始波形、无呼吸机参数流
12 共线性 ⚠️ 未提供变量相关性/共线性指引,长表 pivot 后需自查
13 编码映射 CONCEPT_RELATIONSHIP 提供 ICD-10→SNOMED 等完整跨词汇映射
14 时间戳处理 ⚠️ 逐患者偏移 + 字符串存储,绝对时间不可用,需全链路相对化
15 划分建议 ⚠️ 无官方划分与评估协议
16 泄漏讨论 ⚠️ 无官方泄漏指引;多次住院患者的分组划分需自建
17 标签分布 ⚠️ 官方未发布结局标签分布统计,需下载后实测
18 测量偏倚 官方声明 RWD 惯例差异并提示不合理值需谨慎处理
19 外部验证建议 官方明确对标 MIMIC/K-MIMIC 的互操作定位,天然适合跨库验证
20 版本记录 Release Notes 逐版详述变更与动机
21 预处理脚本 无官方 ETL/特征脚本,仅词汇下载教程与 Spark 读取示例
22 合规要求 LGPD + IRB + CITI + DUA 链条完整明确
23 多模态对齐 仅结构化单模态,无文本/影像/波形可对齐
24 去标识化 k-匿名性 + l-多样性 + t-紧密性 + 第三方认证,公开 ICU 库中规格最高之一

DAIMS 评分:17.5 / 24

评分解读:结构化与合规维度接近满分——代理键、缺失编码、编码映射、版本记录、去标识化全部达标,说明"拿到手就能安全连接"的基础工程是可靠的。失分集中在三类:一是标签层被隐私机制重塑(死亡稀疏、LOS 聚合),这不可修复;二是工程配套缺位(无划分、无脚本、无泄漏指引),团队需自建管线;三是模态天花板(无文本/影像/设备信号),决定了它只能服务结构化任务。

对你意味着什么:(1) 若你的任务是结构化 ICU 建模(LOS、转移预警、表型、用药研究),本库合格且独特,按 §6.3 自建管线即可开工;(2) 若你的任务是文本 NLP、影像或死亡率预测,直接换库(BRATECA/MIMIC-IV);(3) 落地任何模型前,把 §5.3 的五条泄漏规则写进代码评审清单;(4) 论文与生产系统中固定 “v1.0.1 + 词汇版本” 双版本号,避免坑点 1 的不可复现。

§7.8 外部验证矩阵

截至 2026-09,数据集发布仅数月,尚无以 MIMIC-BR 为外部验证集的同行评审研究发表。此前提本身即机会:MIMIC 家族模型在拉美人群上的第一个正式外部验证仍处于空白状态。建议的最小验证设计:MIMIC-IV(转 OMOP)训练 LOS/转移模型 → MIMIC-BR 全量评估 → 报告 AUROC/AUPRC 衰减与校准斜率;本 Wiki 将在有同行评审结果发表后更新本矩阵。


§8 基准性能与生态

§8.1 排行榜

截至 2026-09,MIMIC-BR 尚无公开的 SOTA 排行榜或已发表的基准结果(数据集 2026-05 才首发,且需 Contributor Review 审核)。作为参考,MIMIC 家族同类任务(不同人群、不同编码体系、不同协议)的已发表水平如下——数值不可与 MIMIC-BR 上的结果直接比较,仅用于设定合理预期:

参考任务 模型 性能 年份 关键技术 完整引用 代码
MIMIC-IV 脓毒症院内死亡 XGBoost AUROC 0.874 2026 负责任 AI 框架 + SHAP 解释 + 动态滑窗 Oliveira TQ, et al., J Clin Med. 2026;15(6):2251. doi:10.3390/jcm15062251 未公开
MIMIC-IV 急性心梗恶性心律失常 28 天死亡 ML 集成(外部验证含中国队列) 见原文 2026 MIMIC 训练 + 中国队列外部验证的迁移范式 Yao J, Lin C, Xu Q, et al., Front Cardiovasc Med. 2026;13:1908251. doi:10.3389/fcvm.2026.1908251 未公开
MIMIC 家族通用可复现特征与概念 MIMIC Code Repository 社区标准 2017 社区共享 SQL 概念库 Johnson AEW, Stone DJ, Celi LA, Pollard TJ. J Am Med Inform Assoc. 2017;24(1):217-223. doi:10.1093/jamia/ocw080 github.com/MIT-LCP/mimic-code

再次强调:上表模型在 MIMIC-BR 上复测时,人群、编码(ICD-10→SNOMED)、时间语义(偏移)、标签语义(LOS 聚合)均不同,性能差距本身就是研究贡献点。

§8.2 SOTA 总结与选型建议

本库没有可追逐的 SOTA,这反而是早期进入者的红利。选型建议:先建可解释基线(Logistic/XGBoost + §6.3 宽表)确认数据管线无误;再用时序模型(LSTM/Transformer)榨取 measurement 的时序信息;最后做 MIMIC-IV→MIMIC-BR 迁移实验,这是当前文献空白且临床意义明确的选题。

按研究目的的选题-模型匹配参考:

研究目的 推荐选题 难度 空白程度
首篇引用本库的方法学论文 MIMIC-IV→MIMIC-BR 跨洲 LOS/转移模型外部验证 高(截至 2026-09 无同类发表)
隐私工程研究 k-匿名化对 ICU 时序建模的代价定量分析 中-高
OMOP 生态研究 本库与 OHDSI/MIMIC OMOP 版的概念级对齐评估
教学/datathon 48 小时 LOS 分级 datathon 任务包 中(官方 datathon 文化支持)
卫生服务研究 私立三级医院操作强度(TUSS/SIGTAP)跨国对比 中-高

§8.3 评测协议建议

  • 数据版本:v1.0.1(DOI 10.13026/mkg6-8h16)+ 词汇版本(ATHENA 导出日期),双版本声明。
  • 划分:GroupKFold(5) on person_id,分层变量=任务标签;报告跨折均值±标准差与分组 bootstrap 95% CI(§6.9)。
  • 指标:分类任务报 AUROC + AUPRC + Brier + 校准曲线;LOS 报有序分类的 macro-F1 与线性加权 kappa。
  • 透明度:报告 condition_concept_id=0 行占比、9999 出院占比、[REDACTED] 字段清单。

建议随论文发布的最小披露清单(reviewer 友好):

披露项 建议表述位置 目的
数据/词汇双版本号 Methods 第一句 复现性(坑点 1)
队列 SQL/概念集合 附录或代码仓库 表型可复现(坑点 5)
person_id 分组划分清单 补充材料 泄漏审计
分组 bootstrap CI 与事件数 结果表 稀有事件可信度(坑点 3)
LOS 类别语义声明 Methods 聚合标签澄清(坑点 4)
亚组性能与缺失说明 讨论 公平性与偏倚透明
数据集 来源 规模 与 MIMIC-BR 关系
MIMIC-IV 波士顿 BIDMC(PhysioNet) 逾 25 万患者(v2.2) 同族旗舰;转 OMOP 后可做跨洲迁移对
MIMIC-III 波士顿 BIDMC(PhysioNet) 46,520 患者/61,532 ICU 住 历史基线库;ICD-9 体系与本文不兼容
eICU-CRD 美国多中心(PhysioNet) 约 20 万患者 多中心视角补本库单中心短板
HiRID 伯尔尼大学医院(PhysioNet) 约 3.3 万住院 高分辨率生理时序对照
SICdb 萨尔茨堡(PhysioNet) 27,350 住院 欧洲单中心同规模对照
BRATECA 巴西(PhysioNet,2022) 葡萄牙语三级医疗队列 同国文本侧补充(本库无文本)
BRAX 巴西(Sci Data 2022) 巴西标注胸片 同国影像侧补充
K-MIMIC 韩国 韩国多中心 ICU 同为"MIMIC 设计理念复刻",东亚对照

§8.5 关键论文 Top 8

  1. Steil G, Brandão Lima Vanhoz A, Freitas ML, et al. Medical Information Mart for Intensive Care Brazil (MIMIC-BR): a Brazilian Dataset of Anonymized Hospital and ICU Clinical Data (version 1.0.1). PhysioNet. 2026. doi:10.13026/mkg6-8h16 —— 数据集本体与官方文档,一切数字的最终依据。
  2. Johnson AEW, Pollard TJ, Shen L, et al. MIMIC-III, a freely accessible critical care database. Scientific Data. 2016;3:160035. doi:10.1038/sdata.2016.35 —— MIMIC 范式奠基,理解本库设计目标必读。
  3. Johnson AEW, Bulgarelli L, Shen L, et al. MIMIC-IV, a freely accessible electronic health record database. Scientific Data. 2023;10:1-21. doi:10.1038/s41597-022-01856-6 —— 现役同族旗舰与迁移对照库。
  4. Reich C, Ostropolets A, Ryan P, et al. OHDSI standardized vocabularies—a large-scale centralized reference ontology for international data harmonization. J Am Med Inform Assoc. 2024;31(3):583-590 —— 理解 CONCEPT/CONCEPT_ANCESTOR 体系的理论底座。
  5. Reis EP, Paiva JPQ de, Silva MCB da, et al. BRAX: Brazilian labeled chest x-ray dataset. Scientific Data. 2022;9:487. doi:10.1038/s41597-022-01608-8 —— 巴西医学数据开放的先例与隐私治理参照。
  6. Dias H, Ulbrich AHDPd. BRATECA (Brazilian Tertiary Care Dataset): a clinical information dataset for the Portuguese language (version 1.0). PhysioNet. 2022. doi:10.13026/cmab-j041 —— 葡萄牙语临床文本补充库。
  7. Oliveira TQ, Carvalho LA, Sousa FRC, et al. Responsible AI for Sepsis Prediction: Bridging the Gap Between Machine Learning Performance and Clinical Trust. J Clin Med. 2026;15(6):2251. doi:10.3390/jcm15062251 —— MIMIC-IV 脓毒症预测的当前方法学参照。
  8. Johnson AEW, Stone DJ, Celi LA, Pollard TJ. The MIMIC Code Repository: enabling reproducibility in critical care research. J Am Med Inform Assoc. 2017;24(1):217-223. doi:10.1093/jamia/ocw080 —— 社区代码复用范式, phenotype 工程的最佳实践。

§8.6 社区活跃度

MIMIC-BR 发布仅数月,专属社区(issues/教程/第三方包)尚在起步期,但可继承整个 MIMIC/OHDSI 生态的基础设施:MIT-LCP/mimic-code 仓库高度活跃(截至 2026-07 已有 2,343 次提交,仍在持续维护 MIMIC 家族代码);OHDSI 论坛与 OHDSI/MIMIC ETL 仓库提供 OMOP 化的成熟工具链;PhysioNet 论坛(forum.physionet.org)是官方答疑渠道,MIMIC-BR 相关问题由贡献团队答复。引用跟踪建议在 Google Scholar 关注 “MIMIC-BR” 与通讯作者 Adriano Jose Pereira 的更新。

本库延续了 MIMIC 生态的 datathon 传统——官方背景章节明确说明 MIMIC-BR 的设计诞生于系列 datathon 与工作会议(与 K-MIMIC 同步推进),这意味着发布方对"围绕数据集组织教学活动"持开放态度;结合 OMOP 生态的 OHDSI 全球社区(年度 Symposium、本地 Chapter),巴西及拉美研究者有现成的协作网络可加入。对第三方贡献者,MIT-LCP/mimic-code 的贡献流程(fork + SQL 概念提交)是沉淀 MIMIC-BR 概念定义的合理路径。

§8.7 生态快照

资源 类型 链接 状态(截至 2026-09) 推荐理由
PhysioNet MIMIC-BR 主页 官方文档/下载 physionet.org/content/mimic-br/1.0.1/ v1.0.1 维护中 唯一权威来源
ATHENA 词汇平台 官方词汇下载 athena.ohdsi.org/search-terms/start 在线服务 词汇表必经入口
MIT-LCP/mimic-code 代码仓库 github.com/MIT-LCP/mimic-code 2,343 commits,活跃 MIMIC 家族概念与教程沉淀
OHDSI/MIMIC ETL 仓库 github.com/OHDSI/MIMIC v1.0.0 维护 MIMIC-IV→OMOP 转换,跨库对齐基础
OMOP CDM 文档 规范 ohdsi.org/data-standardization/ 长期维护 字段语义权威定义
PhysioNet 论坛 社区 forum.physionet.org 活跃 官方答疑
CITI Program 培训 about.citiprogram.org 长期运行 获取数据的强制前置

§9 相关资源与引用

§9.1 官方资源

按学习路径组织的使用顺序建议:先读官方主页的 Background/Methods/De-identification 三节(约 20 分钟)建立隐私语义;再做 CITI 培训与申请(等待审核期间可预研 OMOP CDM v5 文档与 ATHENA 操作);获批后第一周完成 §6.1 快速上手并产出"入院类型分布"验证包;第二周按 §6.3 建本地 DuckDB 并跑通第一个表型队列;此后再进入建模阶段。

§9.2 BibTeX 完整引用

@misc{steil_2026_mimic_br,
  title     = {Medical Information Mart for Intensive Care Brazil (MIMIC-BR):
               a Brazilian Dataset of Anonymized Hospital and ICU Clinical Data
               (version 1.0.1)},
  author    = {Steil, Gabriela and Brand{\~a}o Lima Vanhoz, Adhara and
               Freitas, Mateus de Lima and Barone de Andrade, Alice and
               Silva de Mendon{\c{c}}a, Marcos and Bezerra, Rafael Gustavo and
               Abrah{\~a}o, Maria Tereza and Truyts, Cesar and Patr{\~a}o, Diogo and
               Fernandes, Chrystinne and Amaro, Edson and Pereira, Adriano Jose},
  year      = {2026},
  publisher = {PhysioNet},
  doi       = {10.13026/mkg6-8h16},
  url       = {https://physionet.org/content/mimic-br/1.0.1/},
  note      = {RRID:SCR_007345}
}

@article{johnson2016mimiciii,
  title   = {MIMIC-III, a freely accessible critical care database},
  author  = {Johnson, Alistair E. W. and Pollard, Tom J. and Shen, Lu and
             Lehman, Li-wei H. and Feng, Mengling and Ghassemi, Mohammad and
             Moody, Benjamin and Szolovits, Peter and Celi, Leo Anthony and
             Mark, Roger G.},
  journal = {Scientific Data},
  volume  = {3},
  pages   = {160035},
  year    = {2016},
  doi     = {10.1038/sdata.2016.35}
}

@article{johnson2023mimiciv,
  title   = {MIMIC-IV, a freely accessible electronic health record database},
  author  = {Johnson, Alistair E. W. and Bulgarelli, Lucas and Shen, Lu and
             Gayles, Alben and Shammout, Ayad and Horng, Steven and
             Pollard, Tom J. and Hao, Sicheng and Moody, Benjamin and
             Gow, Brian and others},
  journal = {Scientific Data},
  volume  = {10},
  pages   = {1--21},
  year    = {2023},
  doi     = {10.1038/s41597-022-01856-6}
}

@article{reich2024ohdsi,
  title   = {OHDSI standardized vocabularies--a large-scale centralized
             reference ontology for international data harmonization},
  author  = {Reich, Claire and Ostropolets, Anna and Ryan, Patrick and
             Rijnbeek, Peter and Schuemie, Martijn and Davydov, Artem and
             others},
  journal = {Journal of the American Medical Informatics Association},
  volume  = {31},
  number  = {3},
  pages   = {583--590},
  year    = {2024}
}

@article{johnson2017mimiccode,
  title   = {The MIMIC Code Repository: enabling reproducibility in critical
             care research},
  author  = {Johnson, Alistair E. W. and Stone, David J. and Celi, Leo A. and
             Pollard, Tom J.},
  journal = {Journal of the American Medical Informatics Association},
  volume  = {24},
  number  = {1},
  pages   = {217--223},
  year    = {2017},
  doi     = {10.1093/jamia/ocw080}
}

§9.3 引用指南

使用 MIMIC-BR 时,最低引用义务是上文的 steil_2026_mimic_br(PhysioNet 官方要求 “When using this resource, please cite”);若使用了 OMOP 概念定义与跨库映射,请加引 reich2024ohdsi;若与 MIMIC 家族对比,按对比对象加引对应主文献。使用本 Wiki 的代码与坑点分析时,欢迎同时引用本页面。


§10 AI 使用声明卡

§10.1 本页面使用的 AI 模型列表

模型 用途
大型语言模型(代码辅助) 辅助整理 OMOP 查询示例、PyTorch 代码框架与文献综述草稿

§10.2 AI 参与范围

AI 参与了文献检索汇总、章节草拟、代码骨架生成与文字润色;数据集核心数字(患者数、表行数、版本日期、DOI、许可证名称)均经由人工对 PhysioNet 官方页面(含原始 HTML 抓取核验)逐一核对;医学与数据工程结论由千方病案医学编辑部人工审核定稿。

§10.3 输入来源列表

  1. Steil G, et al. MIMIC-BR (version 1.0.1). PhysioNet. 2026. doi:10.13026/mkg6-8h16
  2. Steil G, et al. MIMIC-BR (version 1.0.0). PhysioNet. 2026. doi:10.13026/0vk7-vw29
  3. PhysioNet. MIMIC-BR v1.0.1 — Files & Usage Notes(OMOP 词汇连接教程、ATHENA 步骤)
  4. PhysioNet. MIMIC-BR — View required training(CITI Data or Specimens Only Research)
  5. PhysioNet. Resources — intensive care topic 列表页(SICdb、PIC、MIMIC-IV 等条目信息)
  6. PhysioNet 中文站. MIMIC-BR 数据库介绍(v1.0.0 表统计交叉核对)
  7. Johnson AEW, et al. MIMIC-III, a freely accessible critical care database. Sci Data. 2016;3:160035
  8. Johnson AEW, et al. MIMIC-IV, a freely accessible electronic health record database. Sci Data. 2023;10:1-21
  9. Reich C, et al. OHDSI standardized vocabularies. JAMIA. 2024;31(3):583-590
  10. Reis EP, et al. BRAX: Brazilian labeled chest x-ray dataset. Sci Data. 2022;9:487
  11. Dias H, Ulbrich AHDPd. BRATECA (version 1.0). PhysioNet. 2022. doi:10.13026/cmab-j041
  12. Oliveira TQ, et al. Responsible AI for Sepsis Prediction. J Clin Med. 2026;15(6):2251
  13. Johnson AEW, Stone DJ, Celi LA, Pollard TJ. The MIMIC Code Repository. JAMIA. 2017;24(1):217-223
  14. OHDSI. Data standardization: the OMOP Common Data Model. ohdsi.org
  15. MIT-LCP. mimic-code GitHub 仓库(提交历史截至 2026-07)

§10.4 人工校验记录

内容模块 审核者 审核方式 审核状态
§1/§3 全部规模数字与版本日期 千方病案医学编辑部 对 PhysioNet v1.0.0/v1.0.1 页面原始 HTML 逐项核对 ✅ 已通过/已验证
§2 医学背景与 ICD-11/SNOMED 映射 千方病案医学编辑部 医学术语与编码交叉核对 ✅ 已通过/已验证
§4 数据字典与层级结构 千方病案医学编辑部 对照官方 Data Description 与 OMOP CDM v5 规范 ✅ 已通过/已验证
§6 代码可运行性审查 千方病案医学编辑部 静态审查 + API 用法核对(版本锁定 pandas/duckdb/PyTorch 稳定接口) ✅ 已通过/已验证
§7 DAIMS 24 项与偏倚分析 千方病案医学编辑部 逐项溯源至官方文档或检索证据 ✅ 已通过/已验证
§8-§9 引用与生态链接 千方病案医学编辑部 DOI/链接逐一可达性核对(2026-09) ✅ 已通过/已验证

§10.5 AI 生成章节标注

§6.3/§6.4/§6.9 代码由 AI 辅助起草、人工审核;§1-§5、§7-§9 的叙述在 AI 草稿基础上经人工事实核改。数据集特有事实(版本变更、匿名化机制、表行数)100% 来源于人工核验的官方文档,未采用 AI 记忆中的数字。

§10.6 最后人工审核日期

2026-09-05(与 §0 审核声明一致)

页面状态:published(全部内容已完成审核并发布)

返回 AI-Ready 数据集