信息速览
1990 年代的床旁监护仪每 1.024 秒刷新一次测量值,心电通道每秒采集五百个点,动脉血压、肺动脉压、中心静脉压、脉搏血氧容积波与呼吸波形同时压在同一条时间轴上。这些数据在临床上只活在屏幕上:监护仪算完、显示完、报警完,就随下一次刷新消失。要让一台「智能监护仪」学会分辨哪些报警是真的,研究者需要的不是截图也不是摘要,而是同一批数据的可复现副本——原始波形,加上监护仪当时自己喊出来的每一条报警。
MIMIC Database(今天常被叫作初代 MIMIC 或 MIMIC-I)就是为这件事做的第一批工程化尝试。麻省理工与波士顿 Beth Israel Hospital 在 1992 到 1999 年间,用一对串口把惠普 CMS(Merlin)床旁监护仪上的信号直接引出来写进 PC 硬盘,再刻到光盘上归档。最终成型的是 121 条记录、覆盖 90 余名 ICU 患者、近两百病人日的连续多参数数据:其中 72 条把原始波形一并公开,其余只公开由波形导出的周期性测量值(numerics)。2000 年 3 月 15 日,它以 1.0.0 版本挂在 PhysioNet 上,许可为 ODC-BY 1.0,版本 DOI 为 10.13026/C2JS34。
它的位置有点尴尬。今天提起 MIMIC,多数人指的是 MIMIC-III、MIMIC-IV 那两套几十万人的电子病历库;MIMIC 初代多参数库没有化验、没有用药、没有结局标签,只有波形、数字与监护仪自己的报警流。但也正因如此,它是少数还能回答「这台监护仪当时到底看到了什么、为什么报警」的原始材料——后来的大库为了规模,把波形留在本地、只放出数字。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全名 | MIMIC Database(MIMIC,Multi-parameter Intelligent Monitoring for Intensive Care;通称初代 MIMIC、MIMIC-I) |
| 发布方 | PhysioNet;数据由 MIT 计算生理实验室与波士顿 Beth Israel Hospital 联合采集 |
| 贡献者 | George B. Moody、Roger G. Mark |
| 首次发布 | 2000 年 3 月 15 日,版本 1.0.0 |
| 最近改动 | 官方版本列表只有 1.0.0 一条,未见后续修订版 |
| 记录数 | 121 条(含同一受试者的多次记录) |
| 完整波形记录 | 72 条 |
| 患者数 | 90 余名 ICU 患者 |
| 总时长 | 近 200 病人日;numerics 合计约 4658 小时 |
| 单条时长 | 约 1 小时至 77 小时以上,多数 35–40 小时,平均约 40 小时 |
| 通道数 | 每条记录 2–3 路心电加若干路其它波形,视病例监护配置而定 |
| 采样率 | 心电 500 Hz,其余波形 125 Hz;numerics 每 1.024 秒(0.9765625 Hz) |
| 分辨率 | 波形 12 位(WFDB 格式 212);numerics 16 位并带物理单位 |
| 原始来源 | Beth Israel Hospital 内科、外科、心脏 ICU 的 HP CMS(Merlin)床旁监护仪 |
| 标注规模 | qrs(心搏位置,全部标为正常)、al 与 in(患者状态与监护状态报警)、abp / pap / cvp / ple(血压类逐搏标注,视信号可用性) |
| 标注方式 | 采集端同步落盘的监护仪原始输出与后期自动标注,非专家逐条判读 |
| 文件格式 | WFDB:.hea 头文件、.dat 信号、.qrs .abp .al .in 等注释,另有 .txt 测量日志 |
| 许可 | Open Data Commons Attribution License v1.0(ODC-BY 1.0),无需注册 |
| 体积 | 整库未压缩 23.5 GB,其中 numerics 目录 548 MB |
| 典型用途 | 监护仪报警的假阳性研究、多参数生理耦合分析、波形算法评测、设备输出的可复现复盘 |
§1 它要解决的具体麻烦
1.1 智能监护缺的不是算法,是能反复跑的同一批数据
自动决策支持系统的开发有个绕不开的麻烦:算法改一次就要再评一次,而评测必须落在同一批数据上,否则「变好了」和「换了一批病人」分不开。论文式的评测通常只能复述结论,因为原始数据留在研究者手里。1996 年那篇原始论文的开头就把这个缺口写得很直白——开发与评价自动化决策支持系统需要大量「被充分刻画、可复现」的测试数据,而 MIMIC 正是为此建的。
这条需求决定了它的形态与后面的 MIMIC-III、MIMIC-IV 完全不同。后者解决的是「临床大数据够不够多」,前者解决的是「同一段监护过程能不能原样重放」。重放要求的是时间轴上的完整性:波形、测量值、报警、校准脉冲要落在同一条轴上,缺一样,「为什么报警」就退化成猜测。
具体到报警这件事,缺失的那一环最容易说清。监护仪的报警逻辑跑在波形上:心率超限来自心搏检测,血氧报警来自容积波的质量与幅度,动脉压报警来自压力波形换算出的收缩压与舒张压。病历库记录的是「护士在几点处理了一次报警」,而波形库记录的是「监护仪在几点因为看到了什么而报警」。前者只能研究处理流程,后者才能研究报警本身。这也是为什么近两百病人日的规模听起来不大,却至今没有替代品——规模能补的是统计效力,补不了这一层因果链。
1.2 三条常见的错误期待
第一条,把它当成 MIMIC-III 的早期版本。 名字相同,内容不同源。初代 MIMIC 是 1992–1999 年在 Beth Israel Hospital 用串口抓下来的波形库;MIMIC-III 及后续版本是 2001 年后从医院信息系统抽取的病历库,主体是表格与文本。官方页面专门写了这句提醒:MIMIC-II 与 MIMIC-III 的规模是初代 MIMIC 的数倍,而初代唯一的优势是心电以 500 Hz、12 位、几乎无抖动保存,MIMIC-II 的心电只有 125 Hz 的「峰值抽取」样本、8 或 10 位、抖动 ±6 毫秒。
第二条,以为它带病历里的化验与用药。 官方介绍确实写了「包含从患者病历获得的临床数据」,论文也描述了关系型数据库与病例时间线注释的建库方案。但可下载目录里能看到的是波形、numerics、报警与注释文件——没有化验表、没有用药表、没有结局字段。想做结局预测的人会在这里扑空(§7.0)。
第三条,以为报警标注是专家判读的金标准。 恰恰相反,官方把话说得很清楚:这些报警是监护仪自己报的,包括全部假报警。它的价值就在于保留了假报警,而不是剔除了假报警。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 监护仪报警为什么响 | 报警原文(含变量与阈值)、同时间轴的原始波形、报警重复直到复位的行为 | 够,这是它最独特的能力 |
| 报警假阳性的量化与抑制 | 患者状态报警(al)与监护状态报警(in)两套标注,可对照波形复盘 | 够,但无真值判定,需自建判读 |
| 多参数生理耦合分析 | 同一时间轴上的心电、动脉压、肺动脉压、中心静脉压、容积波、呼吸 | 够,通道组合随病例而异 |
| 心电算法评测 | 500 Hz、12 位、几乎无抖动的心电,最长单条超 77 小时 | 够做长时程,但标注只有位置、类型单一 |
| 心搏级别的节律分类 | qrs 注释给出心搏位置,但全部标为正常 | 不够,类型标签不可用 |
| 血压波形的逐搏特征 | abp、pap、cvp、ple 四套逐搏标注(视信号可用性) | 够,覆盖度取决于该记录是否录了对应通道 |
| 结局预测、用药分析 | — | 不够,可下载内容里没有这些字段 |
| 跨中心泛化验证 | 单一医院、单一厂商设备、1992–1999 年 | 不够,只能做跨库,不能做跨中心 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在做监护仪报警的假阳性抑制,缺带真值的报警流 | 提供监护仪原样输出的报警时间与原文,配同时间轴波形 | 先按报警类型分组做人工抽样判读,建立自己的真值子集,再训练 |
| 你要复现一篇 1990 年代的 MIMIC 论文 | 记录号、段结构、标注名与当年一致,可直接对照 | 用官方索引核对记录时长与通道,确认你用的是同一条记录 |
| 你在研究血压与心率、呼吸的耦合关系 | 多通道同步波形,最长超 77 小时,采样率足够 | 按病例挑通道齐全的记录,先做对齐与单位换算(§2.6) |
| 你想评估算法对波形质量的敏感度 | 真实 ICU 波形,含运动、脱落、换能器故障等干扰 | 用 in 标注定位监护状态异常段,作为天然的干扰样本池 |
| 你在教生理信号课,需要一个真实病例 | 官方索引给出每条记录的临床类别、时长与通道清单 | 挑一条通道齐全、时长中等的记录,用 WAVE 或 wfdb 演示 |
| 你需要大样本临床结论 | — | 换用 MIMIC-III / MIMIC-IV 系列(§6.3) |
1.5 一句话判断
它不是「更小的 MIMIC-III」,而是一台 1990 年代 ICU 监护仪的完整黑匣子记录:规模小、字段少,但把「监护仪当时看到了什么」这件事保存得最完整。
1.6 不适合谁:四条边界
不适合做结局预测与临床建模。 没有化验、用药、诊断编码与出院结局。把「重症数据库」这个名字理解成 MIMIC-III 那种临床库,会在这里直接卡住。
不适合做心律失常的标签学习。 qrs 注释给出的是心搏位置,且全部标记为正常;它不能当心律失常的分类标签用。
不适合做跨厂商、跨年代的泛化评测。 全部数据来自 HP CMS(Merlin)一个型号、波士顿一家医院、1992–1999 一个时段。设备特征与当代监护仪差别很大。
不适合追求完整覆盖的批量统计。 通道组合、测量项、报警有无都随病例变化,官方明确说这是「尽量不干扰临床监护」的结果。做全库统一样本的统计前,必须先接受这个异质性。
§2 数据构成与规格
2.1 三层目录:库根、记录目录、十分钟段
数据库用 WFDB(Waveform Database)格式,这是 PhysioNet 自 1980 年代沿用至今的物理信号存储规范。理解它的第一步是记住目录是三层的:库根放全局清单与索引,每条记录一个目录,目录内按十分钟切成一段一段的文件。
| 层级 | 内容 | 典型文件 |
|---|---|---|
| 库根 | 全局清单、索引页、报警类型表、论文页、校验和 | RECORDS、ANNOTATORS、SHA256SUMS.txt、mimic-index.shtml、alarm-types.shtml、mimic-cic96/、numerics/ |
| 记录目录 | 一条记录的全部内容,目录名即记录号 | 055/、411/、037/(共 72 个) |
| 十分钟段 | 连续波形被切成十分钟的片段,可单独读也可无缝拼回 | 05500001.hea .dat .txt .al |
| 记录级视图 | 主头文件声明该记录由哪些段按什么顺序拼成 | 055.hea(段清单)、055.qrs、055.abp、055.not |
| numerics | 由波形导出的周期测量值,一条记录一组 | 055n.hea、.dat、.al、.in(全部 121 条) |
为什么要切十分钟?论文里给了工程原因:连续记录按十分钟分段写入磁盘,日志结束后自动转储到磁带,这样断电最多损失十分钟;同时软件允许把这些段当成独立记录读,或当成一个无间隙的连续记录读。这个设计一直保留到今天的文件布局里。
2.2 波形通道与测量项的字典
官方索引逐条列出每条记录收录了哪些信号与哪些测量项。索引原文说明:心电按 500 Hz 采样,其它信号按 125 Hz 采样,numerics 每 1.024 秒一个点。下表把索引里出现过的通道名与测量项名汇总,作为字段字典。
| 通道 / 测量项 | 类型 | 含义 | 备注 |
|---|---|---|---|
| I、II、III、aVR、aVL、aVF、V、MCL1 | 心电 | 体表心电导联,MCL1 为改良胸导联 | 心电通道 500 Hz |
| ABP | 波形 | 动脉血压波形 | 单位 mmHg,头文件中带增益与基线 |
| PAP | 波形 | 肺动脉压波形 | 单位 mmHg |
| CVP | 波形 | 中心静脉压波形 | 单位 mmHg |
| ART | 波形与测量项 | 动脉测压通道 | 部分记录以 ART 取代 ABP 命名 |
| LAP | 波形与测量项 | 左心房压 | 心脏术后病例可见 |
| UAP | 波形与测量项 | 官方索引中的另一路动脉压通道 | 索引未展开全称 |
| ICP | 波形与测量项 | 颅内压 | 脑损伤病例可见 |
| PLETH | 波形 | 指尖光电容积脉搏波 | 监护仪据此推算血氧饱和度 |
| RESP | 波形与测量项 | 呼吸波形 / 呼吸率 | 波形无量纲,测量项单位 bpm |
| CO2 | 波形 | 二氧化碳波形(呼气末监测) | 少数病例 |
| HR | 测量项 | 心率 | 单位 bpm |
| PULSE | 测量项 | 脉搏率 | 与 HR 可分列,来自容积波或压力波 |
| SpO2 | 测量项 | 血氧饱和度 | 单位 % |
| NBP | 测量项 | 无创血压 | 单位 mmHg,间断测量 |
| C.O. | 测量项 | 心输出量 | 头文件增益 100/lpm |
| PAWP | 测量项 | 肺动脉楔压 | 单位 mmHg |
| Tblood | 测量项 | 血温 | 头文件增益 10/degC |
| ST1、ST2、ST3 | 测量项 | ST 段偏移量(按通道编号) | 带一位小数 |
| ETCO2、IMCO2 | 测量项 | 呼气末与吸入最低二氧化碳 | 少数病例 |
| AWRR、CPP、PRESS | 测量项 | 呼吸机相关呼吸率、脑灌注压、压力类测量 | 少数病例 |
这张表的信息来源是官方索引页,而不是某一条记录的头文件:具体某条记录有哪些通道,要以该记录自己的头文件与索引中的对应一行为准。
2.3 一条记录的完整解剖
以 055 为例。它的主头文件声明整条记录是一个多段记录:
055/224 7 125 16796990 15:36:26 02/03/1995
05500001 75000
05500002 75000
...
第一行从左到右:记录名与段布局标识、7 路信号、基准采样率 125 Hz、总采样点 16796990、起始时刻 1995 年 3 月 2 日 15:36:26。后面每一行是一个段名加该段的采样点数,75000 个采样点除以 125 Hz 正好 600 秒,即十分钟。16796990 除以 125 约等于 134376 秒,约 37.3 小时,与官方索引给出的 37.5 小时一致。
单个段的头文件给出每一路信号怎么存:
05500001 7 125 75000 15:36:26 02/03/1995
05500001.dat 212x4 2000 12 0 235 3278 0 MCL1
05500001.dat 212x4 2000 12 0 -7 -20978 0 III
05500001.dat 212x4 2000 12 0 390 22670 0 V
05500001.dat 212 20(-1600)/mmHg 12 0 142 -16863 0 ABP
05500001.dat 212 40(-1600)/mmHg 12 0 -637 27587 0 PAP
05500001.dat 212 2000 12 0 -204 -27633 0 PLETH
05500001.dat 212 2000 12 0 2041 -21382 0 RESP
这里有三处要读懂。第一,212 是 WFDB 的十二位打包格式,两个样本占三字节,字段名里的 12 是位分辨率。第二,心电三路写的是 212x4:x4 是 WFDB 的「每帧样本数」修饰符,意思是这一路在每一个基准采样间隔里存 4 个样本,实际采样率就是 125×4 = 500 Hz,与官方索引「心电 500 Hz」的说法互相印证;其余四路没有这个修饰符,就是 125 Hz。第三,增益字段带单位:20(-1600)/mmHg 表示每毫米汞柱 20 个整数单位、基线偏移 -1600;PLETH 与 RESP 写 2000 这类纯数字,表示无量纲定标。
numerics 的头文件是另一套写法,采样率约 0.9765625 Hz,16 位,每路自带物理单位:
055n 12 0.9765625 131250 15:36:24 02/03/1995
055n.dat 16 1/mmHg 16 0 89 18500 0 ABPmean
055n.dat 16 1/mmHg 16 0 114 24605 0 ABPsys
055n.dat 16 1/mmHg 16 0 78 -19353 0 ABPdias
055n.dat 16 100/lpm 16 0 412 -32483 0 C.O.
055n.dat 16 1/bpm 16 0 101 16590 0 HR
055n.dat 16 1/mmHg 16 0 27 -2578 0 PAPmean
055n.dat 16 1/mmHg 16 0 34 -2469 0 PAPsys
055n.dat 16 1/mmHg 16 0 22 -12395 0 PAPdias
055n.dat 16 1/bpm 16 0 100 5044 0 PULSE
055n.dat 16 1/bpm 16 0 15 6758 0 RESP
055n.dat 16 1/% 16 0 100 -24038 0 SpO2
055n.dat 16 10/degC 16 0 371 -26359 0 Tblood
131250 个采样点乘以 1.024 秒约等于 134400 秒,即约 37.3 小时,与波形长度对得上——这也是核对「波形与 numerics 是否同一段监护」的最简办法。
2.4 受试者与记录的映射
官方索引按受试者分组,做法是给每位受试者一个与其第一条记录号相同的编号,同一受试者的多条记录归在一起,并在括号里给出性别与年龄(有则给,无则注明未记录)。
| 关系 | 官方口径 | 使用含义 |
|---|---|---|
| 记录总数 | 121 条 | numerics 覆盖全部 121 条 |
| 波形记录数 | 72 条 | 只有这 72 条带原始波形 |
| 受试者数 | 90 余名 | 索引按受试者分组列出 |
| 一人多次 | 约三分之一的患者有两条记录,少数三条 | 按记录划分数据集会把同一人放进两侧 |
| 受试者编号 | 与其第一条记录号相同 | 划分时以受试者编号为分组键 |
| 编号不连续 | 记录号跨 032–488 区间但不连续 | 编号不是序号,不能当计数用 |
这条映射是最容易被忽略的泄漏源。同一受试者的两次记录,共享的不只是同一个人,还有同一台监护仪、同一批电极与换能器、同一套报警阈值设置。如果按记录随机切分训练与测试,模型只要记住「这个人的动脉压波形形态」,就能在测试侧白拿分,而这个能力换到另一家医院完全失效。正确做法是按受试者编号分组,同一个人只出现在一侧。
2.5 与同类资源的字段差异
| 对比项 | 初代 MIMIC(本库) | MIMIC-II 波形 | MIMIC-III 波形库(站内 mimic3wdb) | MIMIC-IV 波形库(站内 mimic4wdb) |
|---|---|---|---|---|
| 主体内容 | 原始波形 + numerics + 报警 | 波形 + numerics | 波形与临床数据联动 | 波形与临床数据联动 |
| 心电采样 | 500 Hz,12 位,官方称几乎无抖动 | 125 Hz 峰值抽取,8 或 10 位,抖动 ±6 毫秒 | 125 Hz | 62.5 Hz 以上(依通道) |
| 数据年份 | 1992–1999 | 2001 起 | 2000 年代后 | 2008–2019 |
| 记录规模 | 121 条(72 条带波形) | 远大于初代 | 远大于初代 | 远大于初代 |
| 报警原文 | 有,且保留假报警 | 有 | 无(以临床事件为主) | 无 |
| 临床表格 | 可下载内容中没有 | 有 | 有 | 有 |
| 许可 | ODC-BY 1.0 | 依版本 | 需完成认证与数据使用协议 | 需完成认证与数据使用协议 |
| 取用门槛 | 无需注册 | 依版本而定 | 高(需伦理与培训) | 高(需伦理与培训) |
这张表最该被记住的是最后一行的差异:初代 MIMIC 是整条 MIMIC 谱系里门槛最低的一个,ODC-BY 1.0、无需注册、无需数据使用协议。代价是规模与临床字段。
2.6 通道的物理含义与单位换算
| 通道类别 | 头文件写法 | 物理量 | 换算要点 |
|---|---|---|---|
| 心电 | 212x4 + 增益(如 1047/mV) |
毫伏 | 先减 ADC 零值再除增益;实际采样率 500 Hz |
| 压力波形 | 212 + 20(-1600)/mmHg |
毫米汞柱 | 括号里的数是基线偏移,读数要减掉 |
| 容积波与呼吸 | 212 + 2000 |
无量纲定标 | 只能做相对比较,不能当物理量 |
| numerics 压力 | 16 + 1/mmHg |
毫米汞柱 | 16 位存储,单位已写在头文件 |
| numerics 率值 | 16 + 1/bpm |
每分钟次数 | 心率与脉搏率分列,可能不相等 |
| 血氧 | 16 + 1/% |
百分比 | 0 值在部分记录里代表未测量而非缺氧 |
| 血温 | 16 + 10/degC |
摄氏度 | 读数除以 10 |
| 心输出量 | 16 + 100/lpm |
升每分 | 读数除以 100 |
单位写在头文件里这件事,是 WFDB 相对 CSV 的核心优势,也是转格式时最容易丢的信息(§5.4)。
2.7 采样偏斜与校准:跨通道的毫秒级比较要留神
论文方法部分交代了一个很容易被忽略的细节:每次采集开始时,先录一段监护仪的校准脉冲,后期复查用这些脉冲校正心电通道之间的采样偏斜。但校正只做了一半——由于监护仪自身设计的限制,其它通道之间可能残留 16 毫秒或 32 毫秒的偏斜,且未被校正。
| 通道类别 | 偏斜处理 | 对分析的影响 |
|---|---|---|
| 心电通道之间 | 用校准脉冲校正 | 心电内部的相对时刻可用于毫秒级分析 |
| 心电与其它通道 | 残留 16 或 32 毫秒 | 脉搏波传导时间一类的计算会带上系统误差 |
| 压力通道之间 | 残留 16 或 32 毫秒 | 多通道压力比较要声明误差范围 |
| numerics 与波形 | 不同采样网格(1.024 秒对 500 Hz) | 合并前必须重采样并对齐时间基准 |
这条边界的实际后果很具体:凡是把两个非心电通道的波形特征做时间差的研究(例如用心电 R 波到容积波峰值的间隔估算脉搏传导时间),都要在方法里写明这 16 或 32 毫秒的系统误差,否则结果不可与别的数据源横向比较。校准脉冲本身也被做成标注保留下来,对应注释角色清单里的 not(calibration annotations),需要校正的记录可以直接取用。
§3 它是谁的数据
3.1 贡献者与机构
| 角色 | 主体 | 出处 |
|---|---|---|
| 数据作者 | George B. Moody、Roger G. Mark | 官方页面作者栏 |
| 所属机构 | MIT 计算生理实验室(MIT Laboratory for Computational Physiology) | 官方页面作者单位与页脚 |
| 采集医院 | 波士顿 Beth Israel Hospital,内科、外科、心脏三个 ICU | 1996 年论文方法部分 |
| 设备厂商 | 惠普 CMS(Merlin)床旁监护仪,厂商提供接口卡与技术支援 | 论文方法部分与致谢 |
| 资助方 | 惠普基金会、Nihon Kohden America;平台侧由 NIH 资助 | 论文致谢与 PhysioNet 页脚 |
| 维护方 | MIT 计算生理实验室 | 官方页面页脚 |
3.2 时间线
| 时间 | 事件 | 依据 |
|---|---|---|
| 1992–1999 | 在三个 ICU 采集多参数记录 | 官方页面「Related Databases」段 |
| 1995 年前后 | 现存记录头文件的起始时刻(如 1995-03-02、1995-05-16) | 记录头文件 |
| 1996 | Computers in Cardiology 23:657–660 论文发表,描述建库方案 | 官方引用文献 |
| 2000-03-15 | 版本 1.0.0 在 PhysioNet 发布 | 官方版本列表 |
| 2016–2019 | 站点迁移期间文件清单与校验和重传 | 官方文件目录时间戳 |
| 至今 | 版本仍为 1.0.0,无修订版 | 官方版本列表 |
3.3 采集场景:串口带宽决定了它的形态
论文的方法部分把工程约束讲得很具体,这些约束至今解释着数据的形状:
| 约束 | 具体值 | 造成的结果 |
|---|---|---|
| 传输链路 | 监护仪两块可选接口卡,双串口 38400 波特 | 通道数上限由带宽决定 |
| 采集配置上限 | 3 路心电 500 Hz 加 4–5 路 125 Hz,或 2 路心电加 6 路其它 | 每条记录的通道组合不同 |
| 单条容量 | 约 600 MB 封顶,便于刻进一张光盘 | 单条最长约 80 小时 |
| 分段策略 | 十分钟一段,写盘后自动转储磁带 | 目录里几百个段文件 |
| 采样偏斜 | 心电商用校准脉冲校正;其它通道间残留 16 或 32 毫秒偏斜 | 跨通道的毫秒级比较要谨慎 |
| 采集姿态 | 尽量不干扰常规监护,不指定必录通道 | 通道与测量项随病例变化 |
最后一行是最重要的一点。官方索引里那些看起来「缺胳膊少腿」的记录,不是数据质量问题,而是 protocol 主动选择的结果:临床需要监测什么,就录什么。
3.4 来源层次:从原始波形到索引
| 层次 | 内容 | 是否可下载 |
|---|---|---|
| 第一层 | 床旁监护仪的原始波形(心电 500 Hz、其它 125 Hz) | 是,72 条 |
| 第二层 | 由波形导出的周期测量值 numerics(每 1.024 秒) | 是,121 条 |
| 第三层 | 监护仪输出的报警原文与监护状态消息 | 是(部分记录为空,见 §4.5) |
| 第四层 | 自动标注:qrs、abp、pap、cvp、ple、not | 是,视信号可用性 |
| 第五层 | 官方索引:临床类别、时长、信号与测量项清单 | 是(mimic-index.shtml) |
| 论文描述的临床数据层 | 症状、诊断、病程记录、用药、化验结果,进关系型数据库并生成时间线注释 | 可下载目录中没有对应表 |
第六层的落差需要在论文里写清楚:按论文描述,完整形态的 MIMIC 应该包含这部分临床数据,而 PhysioNet 上发布的这一版只到第五层。把「官方介绍里提到临床数据」当成「下载包里有化验表」,是这里最常见的误读。
§4 它最独特的东西
4.1 稀缺性:几百病人日的原始多参数波形
公开数据集里,长时程心电不少见,长时程的多通道同步波形很少见,带监护仪报警原文的更是几乎没有。初代 MIMIC 把三者叠在了一起:近两百病人日、每条记录最多七到八路同步通道、报警原文与波形同一条时间轴。这个组合是 1990 年代工程条件的产物——后来规模更大的 MIMIC 版本放弃了原始波形的全量公开,转向临床表格。
放弃的原因不难推断,也在论文里留下了痕迹:单条记录约 600 MB 的封顶,本身就来自「一张光盘装得下」的约束,而整库 23.5 GB 在今天不算什么,在 2000 年前后是实打实的分发负担。相比之下,从医院信息系统抽取的表格数据体积小、字段多、能支撑的统计问题也更多。于是谱系的重心整体移向表格,波形退化为子集。初代 MIMIC 因此成为一个「分发逻辑留在二十年前」的遗留物,而它的价值恰恰在于没有被后来的取舍改写过:采集时监护仪输出了什么,今天拿到的就是什么。
4.2 差异化证据:心电质量的官方口径
| 维度 | 初代 MIMIC | MIMIC-II |
|---|---|---|
| 心电采样率 | 500 Hz | 125 Hz |
| 采样方式 | 连续采样 | 峰值抽取(peak-picked) |
| 位精度 | 12 位 | 8 或 10 位 |
| 抖动 | 官方称几乎可忽略 | ±6 毫秒 |
| 波形可用性 | 可做形态与间期分析 | 只适合粗略节律分析 |
这段话是官方页面原话,也是初代 MIMIC 至今仍被波形研究者提及的唯一硬理由:要做毫秒级的心电形态分析(QT 间期、ST 形态、心搏级别的波形特征),后续大库的采样规格不够,而初代够。
4.3 两个具体案例
| 记录 | 临床类别 | 时长 | 波形通道 | numerics 测量项 | 备注 |
|---|---|---|---|---|---|
| 055 | 呼吸衰竭 | 37.5 小时 | MCL1、III、V、ABP、PAP、PLETH、RESP(7 路) | ABP 三项、PAP 三项、C.O.、HR、PULSE、RESP、SpO2、Tblood(12 项) | 官方页面说 al 与 in 标注自 055 起才有 |
| 411 | 官方索引给出临床类别 | 头文件起止可见 | II、V、ABP、PAP、PLETH、RESP(6 路) | C.O.、RESP、SpO2、Tblood(4 项) | 官方页面用它举例:rdann -r mimicdb/411/411 -a al |
| 037 | 官方索引给出临床类别 | 31.0 小时 | MCL1、ABP、RESP(3 路) | ABP 三项、HR、PULSE、RESP、SpO2(7 项) | 属前 5 例,报警文件为空 |
这三条记录放一起看,正好说明异质性有多强:通道从 3 路到 7 路,测量项从 4 项到 12 项,时长从 31 小时到 37.5 小时。任何「全库统一输入维度」的想法都要先过这一关。
4.4 标注粒度:报警是监护仪的原话,不是专家的判读
官方的报警类型页(alarm-types.shtml)说明:清单里的报警消息原产自 HP CMS(Merlin)监护仪,且只是 MIMIC 中实际出现过的那些,不是厂商全部可能的报警。消息里的 m 是监护仪测得的值,n 是报警阈值;多数为整数,ST 与血温带一位小数;i 表示通道号。
| 形态 | 示例 | 含义 |
|---|---|---|
| 越限 | ** HR m < n、** ABP m > n |
变量越过设定阈值 |
| 危急 | ***ASYSTOLE、***VENT FIB/TACH、***APNEA |
三颗星标记的高优先级事件 |
| 节律 | ** IRREGULAR HR、** MULTIFORM VPBs、** VENT BIGEMINY |
监护仪自己的节律判读 |
| 脱落 | ***ABP DISCONNECT、***PAP DISCONNECT |
换能器或导管连接问题 |
| 通道相关 | ** ST i m.m < n.n、** P i m < n |
带通道号的报警 |
这类标注的关键性质有两条,都写在官方说明里:一是报警包含全部假报警;二是一旦触发,监护仪每 1.024 秒重复输出该报警,直到工作人员复位或变量回到正常范围。第二条决定了「数报警条数」是没有意义的——同一个事件会重复成百上千次,正确的做法是按时间把重复的报警聚成事件。
4.5 边界条件:哪些记录没有哪些东西
| 边界 | 官方口径 | 影响 |
|---|---|---|
| 前 5 例无报警 | 032、033、037、039、041 的 .al 与 .in 文件为空 |
报警相关研究要把这 5 条剔除 |
| al 与 in 的起点 | 055 之后的记录才有患者状态与监护状态报警 | 055 之前只有波形与 numerics |
| qrs 标注 | 全部记录都有,但所有心搏都标为正常 | 只能当心搏位置,不能当节律标签 |
| 血压类标注 | abp、pap、cvp、ple 只在该信号存在的记录里 | 逐搏血压研究要先筛记录 |
| 校准注释 not | 少数记录带有校准脉冲标注 | 通道偏斜校正的参考 |
| 波形记录数 | 72 条;其余记录只有 numerics | 波形研究的有效样本是 72 条而非 121 条 |
最后一行是规模口径里最关键的一条:写下「121 条记录」时必须同时写下「其中 72 条有波形」,否则读者会按 121 条估算波形数据量。
§5 怎么拿到
5.1 目录结构
mimicdb/1.0.0/
├── RECORDS #-- 记录目录清单,每行一个记录号+斜杠
├── ANNOTATORS #-- 注释角色清单:abp al all cvp in log not pap ple qrs
├── SHA256SUMS.txt #-- 全库文件校验和
├── alarm-types.shtml #-- 报警消息原文清单
├── mimic-index.shtml #-- 官方索引:临床类别、时长、信号、测量项
├── mimic-cic96/ #-- 1996 年论文全文(HTML)
├── numerics/ #-- 121 条记录的周期测量值
│ ├── 037n.hea .dat .al .in .xws
│ └── ...
└── 055/ #-- 一条完整记录一个目录
├── RECORDS #-- 本记录内部的段清单
├── 055.hea #-- 主头文件:段名+每段采样点数
├── 055.qrs .abp .pap .ple .al .not
├── 055n.hea .dat .al .in
├── 05500001.hea .dat .txt .al
└── ... #-- 十分钟一段,几百个段
5.2 批量下载
官方给出的整库取法是递归 wget,也提供整库压缩包与 AWS 命令行通道:
#-- 整库递归下载(官方页面给出的命令,23.5 GB,务必加 -c 断点续传)
wget -r -N -c -np https://physionet.org/files/mimicdb/1.0.0/
#-- 只取 numerics(548 MB),多数研究的起步选择
wget -r -N -c -np https://physionet.org/files/mimicdb/1.0.0/numerics/
#-- 只取一条记录的波形目录
wget -r -N -c -np https://physionet.org/files/mimicdb/1.0.0/055/
有一个现实约束要写在前面:核对时(2026-10-28)从部分网络出口访问官方文件页,会返回「Data is not available in your region due to legal or policy restrictions」而拿不到文件清单。这与许可无关(许可为 ODC-BY 1.0、无需注册),是站点按访问来源做的限制。遇到这种情况的可行路径是换网络出口、走 AWS 命令行通道,或先用 wfdb 的远程读取接口确认哪些记录能取到,再决定下载范围。
5.3 流式读取
不落盘也能读。官方页面的例子是读 411 的报警注释,命令里 411 出现两次,第一次是目录、第二次是记录名:
#-- 官方给出的命令行写法
rdann -r mimicdb/411/411 -a al
Python 侧对应的写法:
import wfdb
#-- 记录级视图:主头文件按段清单把整条记录拼成连续记录
hdr = wfdb.rdheader('411/411', pn_dir='mimicdb')
print(hdr.sig_name) #-- 通道名,心电在前
print(hdr.fs, hdr.sig_len) #-- 基准 125 Hz 与总采样点数
#-- 单段读取:段名 = 记录号 + 五位序号
seg = wfdb.rdrecord('411/41100271', pn_dir='mimicdb')
print(seg.p_signal.shape) #-- (75000, 6),已按头文件增益换算
#-- numerics:记录号 + n 后缀,采样间隔 1.024 秒
num = wfdb.rdrecord('411/411n', pn_dir='mimicdb')
print(num.sig_name, num.fs, num.sig_len)
#-- 报警注释:aux_note 里是监护仪报警原文
ann = wfdb.rdann('411/411n', 'al', pn_dir='mimicdb')
print(ann.sample[:3], ann.aux_note[:3])
5.4 转表
numerics 转成分析用的表格时,最容易丢的是单位与时间基准。下面这段把单位与时间一起带上:
import wfdb
import pandas as pd
#-- 读 numerics 的物理量与通道名(单位在头文件里)
rec = wfdb.rdrecord('055/055n', pn_dir='mimicdb')
units = [u or '' for u in rec.units]
#-- 采样间隔 1.024 秒,用起始时刻重建绝对时间
t0 = pd.to_datetime(rec.base_time.isoformat()) if rec.base_time else None
idx = pd.to_timedelta(rec.sig_len and [i * 1.024 for i in range(rec.sig_len)], unit='s')
if t0 is not None:
idx = t0 + idx
df = pd.DataFrame(rec.p_signal, columns=[f'{n}({u})' for n, u in zip(rec.sig_name, units)])
df.insert(0, 'time', idx)
print(df.shape, list(df.columns))
转表的三条原则:单位跟着列名走,不要丢;时间用 1.024 秒重建,不要用采样点序号当秒数;波形与 numerics 的时间基准不同,合并前必须重采样到同一网格。
5.5 注释映射
| 注释名 | ANNOTATORS 里的官方说明 | 读取方式 |
|---|---|---|
| qrs | unaudited beat annotations(未审核的心搏标注,全部标为正常) | rdann -r mimicdb/055/055 -a qrs |
| al | patient alarms(患者状态报警) | rdann -r mimicdb/411/411 -a al |
| in | monitor status alarms(监护状态报警) | rdann -r mimicdb/411/411 -a in |
| all | 监护状态与患者状态报警的并集 | -a all |
| abp / pap / cvp / ple | 对应压力或容积波的逐搏标注 | -a abp 等,仅该信号存在的记录 |
| not | calibration annotations(校准脉冲) | -a not |
| log | timeline annotations(时间线注释) | 官方清单列出,实际文件按记录核查 |
5.6 五个坑
| 坑 | 现象 | 正确做法 |
|---|---|---|
| 把 125 当心电采样率 | 头文件记录行写基准 125 Hz | 心电通道带 x4 修饰符,实际 500 Hz |
| 用报警条数事件数 | 同一事件每 1.024 秒重复 | 按时间窗把重复报警聚成事件再计数 |
| 拿 qrs 当心律失常标签 | 所有心搏标为正常 | 只用位置,不用类型 |
| 按记录切分训练测试 | 同一受试者有两条甚至三条记录 | 按受试者编号分组 |
| 全库当同构数据 | 通道与测量项随病例变化 | 先按索引筛出通道齐全的记录子集 |
§6 与库内条目的关系
6.1 关系图谱
| 站内数据集 | 关系 | 怎么用 |
|---|---|---|
| mimic3wdb | 同谱系的后续波形库,规模远大于本库 | 需要样本量时用它,需要报警原文与 500 Hz 心电时用本库 |
| mimic4wdb | 最新一代波形库,与临床数据联动 | 做「波形 + 结局」的联合建模时用它 |
| mimic3wdb-matched | 波形与临床记录配对的子集 | 需要波形与病历对齐时的替代方案 |
| mimic-iii | 临床表格库,无原始波形 | 结局预测与用药分析的主战场 |
| mimiciv | 最新临床表格库 | 同上,规模更大 |
| mimic-iv-waveform-legacy | 波形侧的现代对照 | 对比 1990 年代与当代设备的信号特征 |
| mimic-perform | 重症 PPG 心跳检测基准 | 做脉搏波检测时对照 |
| mimic-iii-ext-ppg | 光电容积波心律基准 | 容积波算法的现代对照 |
| mimic-iv-ecg | 院内十二导联心电波形库 | 需要标准十二导联时用它,本库只有 2–3 路心电 |
| hirid | 高时间分辨率 ICU 数据库 | 需要高频测量值网格时的替代 |
| eicu-crd | 多中心 ICU 数据库 | 需要跨中心样本时的替代 |
| nwicu | 多院区 ICU 电子病历 | 需要更近年代的临床数据时对照 |
6.2 检索路径
从主题出发:本库的官方主题标签是 health record、icu、ehr、critical care、mimic。按「重症监护」检索会同时命中上表的大部分数据集;按「波形」检索会收敛到本库、mimic3wdb、mimic4wdb 与 mimic-iv-ecg 这一支;按「报警」检索几乎只命中本库——这是它在全站里最窄也最独特的入口。
6.3 分工判据
| 你的问题 | 该找谁 | 理由 |
|---|---|---|
| 监护仪为什么会误报警 | 本库 | 只有它保留了监护仪原样输出的报警原文 |
| 心电波形形态的精细分析 | 本库 | 500 Hz、12 位、几乎无抖动 |
| 需要几百例以上的样本 | mimic3wdb / mimic4wdb | 规模 |
| 需要化验、用药、结局 | mimic-iii / mimiciv | 临床表格 |
| 需要标准十二导联 | mimic-iv-ecg | 导联配置 |
| 需要多中心 | eicu-crd / nwicu | 中心数 |
| 需要波形与病历对齐 | mimic3wdb-matched / mimic4wdb | 配对关系 |
§7 质量评估与局限性
7.0 前置校正:纸面数字与文件数字的口径
动手前先把三组口径对齐,后面所有结论才站得住:
| 口径 | 纸面说法 | 文件里的实际 | 以哪个为准 |
|---|---|---|---|
| 记录数 | 121 条 | numerics 目录 121 条,波形目录 72 个 | 分层表述:121 条总数,72 条带波形 |
| 患者数 | 90 余名 | 索引按受试者分组,部分受试者多条记录 | 以受试者编号为准,不按记录数 |
| 总时长 | 近 200 病人日 | numerics 合计约 4658 小时(约 194 天) | 官方文字与 numerics 页互相印证 |
| 采样率 | 心电 500 Hz | 头文件基准 125 Hz,心电带 x4 修饰符 |
心电 500 Hz,其余 125 Hz |
| 临床数据 | 介绍中提到来自病历的临床数据 | 可下载目录里没有化验、用药、结局表 | 以可下载内容为准 |
7.1 五维评分
| 维度 | 评价 | 依据 |
|---|---|---|
| 时间轴完整性 | 高 | 波形、测量值、报警、校准落在同一条轴上 |
| 信号质量 | 中高,心电高 | 心电 500 Hz 12 位;其余通道存在 16–32 毫秒残留偏斜 |
| 标注可信度 | 分层:波形自动标注可用,报警为设备原始输出 | 官方明确报警含假报警 |
| 临床上下文 | 低 | 只有临床类别与时长,无化验用药结局 |
| 规模与泛化 | 低 | 90 余人、单一医院、单一厂商设备、单一时段 |
7.2 标注的两层可信度
| 层 | 内容 | 可信度 | 用途 |
|---|---|---|---|
| 波形层 | 心电、压力、容积波、呼吸的原始采样 | 高,受采集链路噪声影响 | 信号算法的输入真值 |
| 自动标注层 | qrs、abp、pap、cvp、ple 的逐搏标注 | 中,官方标注为未审核 | 可用作位置参考 |
| 设备输出层 | al、in 报警原文 | 作为「监护仪说了什么」是真值;作为「患者发生了什么」是真值加噪声 | 报警研究的目标对象本身 |
| 索引层 | 临床类别、时长、通道清单 | 高 | 筛选记录的依据 |
第三层最容易被误读。它记录的不是「患者发生了什么事件」,而是「监护仪当时认为发生了什么事件」。这两个量之间的差,正是报警研究要研究的东西——把它当成噪声滤掉,研究就没了对象。
7.3 可枚举偏差
| 偏差 | 机制 | 后果 |
|---|---|---|
| 选择偏倚 | 论文明确说选取的是预计在记录期内血流动力学不稳定的患者 | 病理分布偏向循环波动,不代表普通 ICU 人群 |
| 设备偏倚 | 单一厂商单一型号监护仪 | 报警行为与阈值逻辑带厂商特征 |
| 中心偏倚 | 波士顿一家医院三个 ICU | 无法做跨中心验证 |
| 时代偏倚 | 1992–1999 年的监护实践 | 当代设备与流程已变化 |
| 通道异质 | 不指定必录通道,按临床需要录 | 全库同构输入不可得 |
| 记录长度差异 | 约 1 小时至 77 小时以上 | 按时间加权与按记录加权结论不同 |
| 波形缺失 | 121 条中 49 条只有 numerics | 波形研究的有效样本是 72 条 |
7.4 外部验证的边界
本篇的事实核验只覆盖官方页面、官方文件目录与 1996 年论文全文(HTML 版)。关于「谁在用、用得怎么样」这部分,只做了摘要级检索,没有读全文,也没有做第三方复现。因此凡涉及外部效果的判断,一律只作定性表述。
要把它变成可引用的外部验证,至少还缺三步:一是下载目标记录的全量波形与注释,按受试者编号固定分组;二是对报警做人工抽样判读,把「监护仪说有」与「临床确实发生」分开标注;三是在论文里写明分组口径、通道组合与偏斜误差,让后来者能复算。这三步本文都没有做,正文里凡涉及效果的说法都只到「有人这样用」为止。
7.5 为什么二十多年后还在用
三个理由,都能追到具体事实:心电规格至今优于后续大库(500 Hz、12 位、几乎无抖动);报警原文加波形的组合在公开数据里几乎唯一;许可门槛最低(ODC-BY 1.0,无需注册与数据使用协议)。这三条不构成「它更好」的结论,只说明它在特定问题上没有替代品。
§8 生态位与历史
8.1 沿革
| 阶段 | 时间 | 主体内容 | 与本库的关系 |
|---|---|---|---|
| MIMIC(本库) | 1992–1999 | 多参数波形 + numerics + 报警 | 起点 |
| MIMIC-II | 2001 起 | 波形 + 更完整的临床数据 | 规模倍增,心电规格下降 |
| MIMIC-III | 2000 年代后 | 临床表格为主,波形为子集 | 成为主流重症数据库 |
| MIMIC-IV | 2008–2019 | 临床表格 + 波形子集 | 当前主力 |
官方页面对这段沿革的评价很克制:初代项目让人学到很多,后续项目尤其在临床数据收集上做得更多;而初代唯一的优势是心电采样规格。这句话既解释了为什么它被后来的库盖过,也解释了为什么它没被删掉。
这段沿革还有一个容易被忽略的侧面:它是「以光盘为单位分发」的时代的产物。单条记录按约 600 MB 封顶、每十分钟一段便于分卷、论文里还专门提到「原则上可以做出跨越多张光盘的无缝记录」——这些设计都是为了把一次连续监护塞进物理介质。等带宽足够、云端分发成为常态后,这些约束全部消失,波形的全量公开反而变得容易;但那时的项目重心已经移到了临床表格上。初代 MIMIC 因此停在了它被设计出来的那个年代,既没有被扩容,也没有被重新采集。
8.2 与挑战赛
官方页面没有列出与本库直接关联的挑战赛。站内若干挑战赛数据集与它共享生理信号标签,但那是标签层面的邻近,不是数据来源层面的引用。把「PhysioNet 挑战赛用过 MIMIC」推到「本库是某届挑战赛数据源」上,需要该届赛题的官方说明支撑,这里没有。
8.3 生态位
| 位置 | 说明 |
|---|---|
| 在 MIMIC 谱系里 | 起点与波形侧的原点,后来的库都从它长出 |
| 在波形库里 | 唯一带监护仪报警原文的 ICU 多参数库 |
| 在许可维度上 | 同类数据里门槛最低的一档 |
| 在任务维度上 | 报警研究、生理耦合分析、设备输出复盘的默认选项 |
| 在规模维度上 | 明显劣势,不适合任何靠样本量取胜的任务 |
8.4 谁在用
按可核验的痕迹看,三类使用者最典型:做监护仪报警与假阳性抑制的研究者(需要假报警真值)、做多参数生理耦合与信号质量研究的工程师(需要同步多通道)、以及需要复现 1990 年代 MIMIC 论文结果的复核者(需要同一批记录号与标注口径)。这三类都不是「大样本临床建模」人群——那部分人应该在 MIMIC-III、MIMIC-IV 一侧。
§9 使用指引
9.1 三种角色的最短路径
| 角色 | 路径 | 关键一步 |
|---|---|---|
| 报警研究者 | 索引挑有报警的记录 → 读 al / in → 与波形对齐 → 人工抽样建真值 | 剔除前 5 例空报警记录 |
| 信号算法工程师 | 挑通道齐全记录 → 读段波形 → 按 x4 还原心电 500 Hz → 建模 |
按受试者编号分组划分 |
| 复核者 | 按记录号定位 → 核对头文件起止与段数 → 对齐 numerics 与波形长度 | 用总采样点数交叉验证时长 |
9.2 最短流程
import wfdb
import pandas as pd
#-- 第一步:用索引挑一条通道齐全、有报警的记录(示例用 411)
ann = wfdb.rdann('411/411n', 'al', pn_dir='mimicdb')
#-- 第二步:报警原文(监护仪原话)与发生时刻
ev = pd.DataFrame({'sec': ann.sample * 1.024, 'msg': ann.aux_note})
#-- 第三步:按时间窗把重复报警聚成事件(官方说明:触发后每 1.024 秒重复)
ev['evt'] = (ev['msg'] != ev['msg'].shift()).cumsum()
events = ev.groupby('evt').agg(msg=('msg', 'first'),
t0=('sec', 'min'),
t1=('sec', 'max'))
print(events.head())
#-- 第四步:取对应时刻的波形做复盘
rec = wfdb.rdrecord('411/41100271', pn_dir='mimicdb')
print(rec.sig_name, rec.p_signal.shape)
9.3 引用方式
官方要求在引用数据时同时给出原始论文与平台引用:
Moody GB, Mark RG. A Database to Support Development and Evaluation
of Intelligent Intensive Care Monitoring. Computers in Cardiology
23:657-660 (1996).
PhysioNet 平台引用:
Pollard T, Moody BE, Lehman L, Gow B, Fernandes C, Xie C, Johnson A,
Mark RG, Heldt T. PhysioNet as a global platform for biomedical
research. Nature Health (2026). doi:10.1038/s44360-026-00096-z
版本 DOI:10.13026/C2JS34
来源页:https://physionet.org/content/mimicdb/1.0.0/
许可层面,ODC-BY 1.0 要求署名,允许商业使用,但要求注明数据来源并保留许可声明;具体条款以官方许可全文为准。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,编辑把关结构与事实 |
| 数字来源 | 规模、结构、边界三类数字来自 PhysioNet 官方页面、官方文件目录与 1996 年论文全文 |
| 文件核验 | 根 RECORDS(72 个记录目录)、ANNOTATORS、055.hea、05500001.hea、055n.hea、41100271.hea、411n.hea、037/03700018.txt 经直接访问确认 |
| 不一致说明 | 官方文字称 121 条记录,波形目录为 72 个;已在 §7.0 分层说明 |
| 论文信息 | 1996 年论文读了 HTML 全文(摘要、方法、讨论与致谢),未核对印刷版页码 |
| 未核验内容 | 各报警类型在具体记录中的出现情况、逐条记录的段数与总时长完整清单、临床类别与记录号的完整对应 |
| 图像 | 无配图;封面为生成式提示词,不含真实波形 |
| 免责 | 本文不构成临床建议;数据使用须遵守 ODC-BY 1.0 署名要求 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 「它是 MIMIC-III 的早期版本」 | 不同的采集年代、不同的机构工程、不同的内容主体 | 官方 Related Databases 段明确区分两者 |
| 「121 条记录都有波形」 | 72 条有波形,121 条都有 numerics | 官方页面与文件目录 |
| 「心电是 125 Hz」 | 心电 500 Hz,头文件用 x4 修饰符表达 |
头文件 212x4 + 官方索引 |
| 「报警标注是专家判读的真值」 | 是监护仪原样输出,官方明确包含假报警 | numerics 页与报警类型页 |
| 「qrs 注释能用于心律失常分类」 | 全部心搏标为正常 | 官方页面与 ANNOTATORS |
| 「下载包里有化验与用药」 | 可下载目录只有波形、numerics、报警与注释 | 记录目录清单 |
| 「报警条数就是事件数」 | 触发后每 1.024 秒重复直到复位 | numerics 页说明 |
| 「按记录切分训练测试没问题」 | 同一受试者有两条甚至三条记录 | 官方索引按受试者分组 |
| 「全库通道一致」 | 通道与测量项随病例监护需要变化 | 官方索引逐条列出不同组合 |
| 「前 5 例也有报警」 | 032、033、037、039、041 的报警文件为空 | numerics 页明确列出 |
| 「它已经过时没用了」 | 心电规格与报警原文至今无替代 | 官方 Related Databases 段 |
FAQ
Q1:它和 MIMIC-III、MIMIC-IV 到底是什么关系?
名字同源,内容不同源。初代 MIMIC 是 1992–1999 年在 Beth Israel Hospital 采集的波形库,2000 年发布;MIMIC-II 起转向临床数据的规模化收集。官方页面的说法是后两者规模是初代的数倍,而初代唯一优势在心电采样规格。做临床建模应该去 MIMIC-III、MIMIC-IV;做波形与报警研究留在初代。
Q2:为什么记录数是 121,但目录只有 72 个?
这两个数字描述的是不同层次的东西。121 是记录总数,对应 numerics 目录里的 121 组周期测量值;72 是当前公开了原始波形的记录数。官方页面两个数字都写了,随库发布的 numerics 说明页也提到当时上线了 72 个记录目录、其余 49 个尚未上线。写论文时应当写成「121 条记录,其中 72 条含原始波形」。
Q3:心电到底是 500 Hz 还是 125 Hz?
500 Hz。WFDB 头文件的记录行写的是基准采样率 125 Hz,而心电通道的格式字段写成 212x4,其中 x4 是「每帧样本数」修饰符,表示该通道在每个基准间隔里存 4 个样本,实际就是 500 Hz。其余通道没有这个修饰符,就是 125 Hz。官方索引也直接写「心电 500 Hz,其它信号 125 Hz」。
Q4:报警标注能不能直接当不良事件的标签?
不能。官方说明得很明确:这些报警是监护仪自己报的,包括全部假报警;而且一旦触发,监护仪每 1.024 秒重复输出,直到工作人员复位或变量回到正常范围。正确用法是把它当作「监护仪的输出」来研究,先用时间窗聚成事件,再通过人工抽样建立你自己的真值子集。
Q5:qrs 注释有什么用?
它给出心搏位置,官方标注为未审核、且所有心搏都标为正常。所以它能用来做心搏检测器的位置参考,不能用来做心律失常分类。需要类型标签的研究得自己标注,或者改用带类型标注的其它库。
Q6:数据能商用吗?
ODC-BY 1.0 允许商业使用,条件是署名并保留许可声明。它不需要注册、不需要数据使用协议,这一点与 MIMIC-III、MIMIC-IV 的受控访问不同。具体条款以官方许可全文为准。
Q7:为什么同一个患者的几次记录要放在一起看?
因为官方索引明确按受试者分组,且说明约三分之一的患者有两条记录、少数三条。同一个人、同一台监护仪、同一套阈值设置,两次记录的相关性极强。按记录随机划分会让模型在测试侧见到「同一个人」的波形特征,成绩虚高。
Q8:整库 23.5 GB,有更省的入门方式吗?
有。numerics 目录只有 548 MB,覆盖全部 121 条记录,足以支撑测量值层面的研究;需要波形时再按记录目录单取,一条记录约几百 MB。核对时还要注意部分地区访问文件页会遇到区域限制提示,先确认能否取到再规划下载量。
Q9:能不能和 MIMIC-III、MIMIC-IV 的患者对上号?
不能,官方没有提供跨版本的患者标识映射。初代 MIMIC 的编号是记录号(032 到 488 区间、不连续),受试者编号沿用其第一条记录的编号;MIMIC-III 及后续版本用的是住院与患者标识符体系,两者采集年代、医院信息系统与去标识方案都不同。任何试图把初代记录与后续版本病历配对的尝试,都需要官方出具的映射表,目前没有。
Q10:想做报警研究,从哪条记录起步?
先用官方索引挑「有报警、通道齐全、时长中等」的记录:剔除 032、033、037、039、041 这五条报警文件为空的记录;从 055 之后挑选,因为患者状态与监护状态报警自 055 起才有;再按索引挑同时含心电、动脉压与容积波的记录,这样报警原因能在波形上找到对应证据。拿到记录后先按 §5.3 读出报警原文,再用附录 D 的办法把重复报警聚成事件,最后回到波形上人工判读一小批,建立自己的真值子集。
术语表
| 术语 | 解释 |
|---|---|
| MIMIC | Multi-parameter Intelligent Monitoring for Intensive Care,多参数智能重症监护 |
| numerics | 监护仪周期性测量值,在心电场以外按 1.024 秒间隔给出 |
| WFDB | PhysioNet 的波形数据库格式,含头文件、信号文件与注释文件 |
.hea |
纯文本头文件,声明采样率、通道数、增益、单位与起始时刻 |
.dat |
二进制信号文件 |
| 格式 212 | WFDB 的十二位打包格式,两个样本占三字节 |
x4 修饰符 |
每帧样本数修饰符,表示该通道采样率为基准频率的 4 倍 |
| 增益 | 每物理单位对应的整数值,如 20(-1600)/mmHg |
| ADC 零值 | 零电平对应的整数值,换算物理量时先减 |
| 段(segment) | 十分钟一段的波形文件,可单读也可无缝拼回整条记录 |
| 主头文件 | 声明整条记录由哪些段按什么顺序拼成的头文件 |
| 患者状态报警(al) | 监护仪认为需要医疗干预的事件 |
| 监护状态报警(in) | 影响监护仪自身功能的事件,如换能器故障 |
| 逐搏标注 | 对每一次心搏或每一个压力波标出位置与特征 |
| 校准注释(not) | 记录开始时的校准脉冲,用于校正通道间采样偏斜 |
| 采样偏斜(skew) | 不同通道采样时刻的毫秒级错位 |
| 假报警 | 监护仪报警但临床并无对应事件 |
| 病人日 | 一名患者被监护一整天的计量单位 |
| ODC-BY | 开放数据共享署名许可,要求署名、允许商用 |
| PhysioBank | PhysioNet 旗下的生理信号数据库集合 |
| WAVE | PhysioNet 的波形查看与标注软件 |
附录 A:核心数字核对表
| 项 | 值 | 出处 | 层级 |
|---|---|---|---|
| 记录总数 | 121 条 | 官方页面;numerics 页 | 官方页面 |
| 带波形记录数 | 72 条 | 官方页面;根 RECORDS 72 个目录 | 官方页面 + 文件 |
| 患者数 | 90 余名 | 官方页面 | 官方页面 |
| 总时长 | 近 200 病人日 | 官方页面 | 官方页面 |
| numerics 总时长 | 约 4658 小时 | numerics 页 | 官方页面 |
| 单条时长范围 | 约 1 小时至 77 小时以上 | numerics 页;论文方法部分 | 官方页面 + 论文 |
| 多数记录时长 | 约 35–40 小时,平均约 40 小时 | numerics 页;官方页面 | 官方页面 |
| 心电采样率 | 500 Hz(212x4,基准 125) |
官方索引;段头文件 | 官方页面 + 文件 |
| 其余波形采样率 | 125 Hz | 官方索引;段头文件 | 官方页面 + 文件 |
| 位分辨率 | 12 位(格式 212) | 段头文件 | 官方文件 |
| numerics 采样间隔 | 1.024 秒(0.9765625 Hz) | numerics 页;numerics 头文件 | 官方页面 + 文件 |
| numerics 分辨率 | 16 位带单位 | numerics 头文件 | 官方文件 |
| 段长度 | 十分钟(75000 采样点) | 官方页面;段头文件 | 官方页面 + 文件 |
| 单条容量上限 | 约 600 MB | 论文方法部分 | 论文 |
| 整库体积 | 23.5 GB(numerics 548 MB) | 官方文件页 | 官方页面 |
| 版本 | 1.0.0,2000-03-15 | 官方版本列表 | 官方页面 |
| DOI | 10.13026/C2JS34 | 官方页面 | 官方页面 |
| 许可 | ODC-BY 1.0 | 官方页面 Access 段 | 官方页面 |
| 无报警记录 | 032、033、037、039、041 | numerics 页 | 官方页面 |
| 报警重复间隔 | 1.024 秒 | numerics 页 | 官方页面 |
附录 B:数字的来源分层
第一层:官方页面与官方文件。 记录数、波形记录数、患者数、总时长、时长范围、采样率、位分辨率、段长度、整库体积、版本、DOI、许可,这些数字来自项目主页、numerics 页、索引页与直接访问的文件头。心电 500 Hz 这一项由官方索引文字与段头文件里的 x4 修饰符双重印证。
第二层:1996 年论文全文(HTML 版)。 采集配置上限、单条容量封顶、通道间残留偏斜、选患者偏向血流动力学不稳定,这些来自论文的方法与讨论部分。论文描述的是建库方案与当时状态,与最终发布形态存在差异(如临床数据层),凡差异处一律以可下载内容为准。
第三层:未核实。 各报警类型在具体记录中的出现情况、逐条记录段数与总时长的完整清单、临床类别与记录号的完整对应、报警中假报警的实际规模。这些需要下载全量后逐条统计,超出本篇范围,正文中凡是涉及的地方只做定性表述。
附录 C:完整参考文献
| 编号 | 文献 | 链接 | 用途 |
|---|---|---|---|
| 1 | MIMIC Database v1.0.0(官方页面) | https://physionet.org/content/mimicdb/1.0.0/ | 全部规模、结构、边界数据的主来源 |
| 2 | MIMIC Database 索引页 | 官方文件目录 mimic-index.shtml |
临床类别、时长、信号与测量项清单 |
| 3 | MIMIC Database 报警类型页 | 官方文件目录 alarm-types.shtml |
报警消息原文与参数约定 |
| 4 | numerics 目录说明页 | 官方文件目录 numerics/HEADER.shtml |
采样间隔、文件后缀、空报警记录 |
| 5 | Moody GB, Mark RG. A Database to Support Development and Evaluation of Intelligent Intensive Care Monitoring. Computers in Cardiology 23:657-660 (1996) | 官方文件目录 mimic-cic96/ |
建库方案、采集约束、选例原则 |
| 6 | PhysioNet 平台综述(2026,Nature Health) | https://doi.org/10.1038/s44360-026-00096-z | 平台引用规范 |
| 7 | 版本 DOI | https://doi.org/10.13026/C2JS34 | 版本标识 |
| 8 | MIMIC-III 波形库(站内对照) | https://www.qianfanghub.com/ai-ready-dataset/mimic3wdb/586 | §2.5 与 §6.1 的对比 |
| 9 | MIMIC-IV 波形库(站内对照) | https://www.qianfanghub.com/ai-ready-dataset/mimic4wdb/588 | §2.5 与 §6.1 的对比 |
附录 D:任务代码
任务一:挑出通道齐全且带报警的记录
import wfdb
#-- 逐条试探:能读到 al 注释且段数正常的记录才是报警研究的候选
cands = []
for rec in wfdb.get_record_list('mimicdb/055'):
try:
ann = wfdb.rdann(rec, 'al', pn_dir='mimicdb')
except Exception:
continue
if len(ann.sample) > 0:
cands.append((rec, len(ann.sample)))
print(cands[:10])
任务二:把重复报警聚成事件
import wfdb
import pandas as pd
ann = wfdb.rdann('411/411n', 'al', pn_dir='mimicdb')
df = pd.DataFrame({'sec': ann.sample * 1.024, 'msg': ann.aux_note})
#-- 官方说明:报警触发后每 1.024 秒重复一次,直到复位或变量回到正常范围
df['evt'] = (df['msg'] != df['msg'].shift()).cumsum()
events = df.groupby('evt').agg(msg=('msg', 'first'),
t0=('sec', 'min'),
t1=('sec', 'max'),
n=('sec', 'size'))
print(events.sort_values('n', ascending=False).head(10))
这段代码输出的 n 是重复次数而不是事件严重程度,排序只是为了快速定位持续时间最长的报警段,真正做研究时还要回到波形上人工判读。
附录 E:如果只记五件事
| 序号 | 记住什么 | 为什么 |
|---|---|---|
| 1 | 121 条记录、90 余名患者,其中 72 条带波形 | 这两个数字必须同时写,否则样本量估计全错 |
| 2 | 心电 500 Hz 12 位,其余通道 125 Hz | 头文件基准 125 Hz 加 x4 修饰符,看错就全盘错位 |
| 3 | 报警是监护仪的原话,含全部假报警 | 它研究的对象就是这份噪声,不是要滤掉的噪声 |
| 4 | qrs 只给位置、全标正常 | 心律失常标签不在这里 |
| 5 | 按受试者分组,不按记录分组 | 同一人有两条甚至三条记录,切错就泄漏 |
编辑说明
本文的核验时间为 2026 年 10 月 28 日。核对方式为直接访问 PhysioNet 项目页与文件目录,逐项确认根目录清单、记录目录数量、注释角色清单、段头文件、numerics 头文件、索引页与报警类型页的可访问性与内容;1996 年论文读了随库发布的 HTML 全文(摘要、方法、讨论、致谢与参考文献)。
需要读者特别注意的两处口径差异已在正文分层说明:一是官方文字称 121 条记录,而公开原始波形的记录目录为 72 个;二是官方介绍提到来自病历的临床数据,而可下载目录中只有波形、numerics、报警与注释文件。另有一处现实约束:核对时从部分网络出口访问官方文件页会返回区域限制提示,这与许可无关,取数据前应先确认可达性。
未覆盖的内容包括:各报警类型在具体记录中的出现情况、逐条记录段数与总时长的完整清单、临床类别与记录号的完整对应、以及报警中假报警的实际规模。这些需要下载全量后统计,本文按要求只写规模、结构、边界三类数字。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- mimic-iv-waveform-legacy — 共享标签:生理信号 / 重症监护
- barcelona-sicu-signals — 共享标签:生理信号 / 重症监护
- bidmc-ppg — 共享标签:生理信号 / 重症监护
- sicdb — 共享标签:生理信号 / 重症监护
- mc-med — 共享标签:生理信号 / 重症监护
- vtac — 共享标签:生理信号 / 重症监护
- charisdb — 共享标签:生理信号 / 重症监护
- alott — 共享标签:生理信号 / 重症监护
- mghdb — 共享标签:生理信号 / 重症监护
- pulsedb — 共享标签:生理信号 / 重症监护
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

