从 MIMIC-IV 重症监护数据库中提取数据的专用技能。当用户提到 MIMIC、MIMIC-IV、查询 MIMIC 数据、提取 ICU 患者数据(生命体征/实验室检查/诊断/合并症)且涉及 MIMIC 数据库时使用此技能。支持 SQL 和 Python (psycopg2) 两种查询方式,数据通过 Postgr...
MIMIC-IV Data Praveon Skill.是一项面向实际任务的技能,主要用于Extract 重症监护数据来自MIMIC-IV数据库. 提供SQL模板和Python代码;6. 用户处理数据库连接本身.;
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
从 MIMIC-IV 数据库中提取重症监护数据。提供 SQL 模板与 Python 代码;数据库连接由用户自行处理。
用户需自行提供 PostgreSQL 连接参数。本技能仅提供查询代码。
⚠️ 若您曾使用过 MIMIC-III,请务必注意以下变更!
| MIMIC-III(❌ 已弃用) | MIMIC-IV(✅ 正确用法) | 说明 |
|---|---|---|
icustay_id |
stay_id |
ICU 住院 ID |
inputevents_mv |
inputevents |
输入事件(合并了 mv 和 cv) |
inputevents_cv |
inputevents |
已并入 inputevents |
procedureevents_mv |
procedureevents |
操作事件 |
datetimeevents |
datetimeevents |
新增表(日期时间类事件) |
ingredientevents |
ingredientevents |
新增表(药物活性成分事件) |
| 表名 | 说明 |
|---|---|
ingredientevents |
药物活性成分事件 |
datetimeevents |
日期时间类事件 |
emar |
电子用药执行记录(Electronic Medication Administration Record) |
emar_detail |
电子用药执行明细 |
poe |
医嘱录入记录(Provider Order Entry) |
poe_detail |
医嘱录入明细 |
MIMIC-IV 当前划分为 6 个模块:
| 模块 | 说明 | 主要表 |
|---|---|---|
| hosp | 医院层级数据 | patients、admissions、labevents、diagnoses_icd 等 |
| icu | ICU 层级数据 | icustays、chartevents、inputevents 等 |
| ed | 急诊科数据 | edstays、edcharting 等 |
| cxr | 胸部 X 光片元数据 | cxr_records、cxr_paths 等 |
| note | 临床文书 | discharges、echos 等 |
| ecg | 心电图(ECG)数据 | ecg_records、ecg_paths 等 |
✅ 正确写法(全小写):
SELECT ce.subject_id, ce.stay_id, ce.itemid, ce.charttime FROM chartevents ce WHERE ce.stay_id = 100001
❌ 错误写法(驼峰命名或旧字段名):
SELECT ce.subjectId, ce.icustay_id -- 该字段不存在! FROM chartevents ce
| 查询类型 | 参考文件 |
|---|---|
| 生命体征 | references/vital_signs.md |
| 实验室检验 | references/labs.md |
| 诊断与合并症 | references/diagnoses.md |
| 数据库结构 | references/schema.md |
| 常用查询模板 | references/common_queries.md |
stay_id 作为 ICU 住院标识符(非 MIMIC-III 的 icustay_id)anchor_age 经截断处理(年龄大于 89 岁的患者统一设为 91)chartevents 通过 stay_id 关联,labevents 通过 hadm_id 关联itemid 来源于 d_items(生命体征)和 d_labitems(实验室检验)TIMESTAMP 类型),可直接调用时间函数SELECT
ce.subject_id,
ce.stay_id,
ce.itemid,
di.label,
ce.charttime,
ce.valuenum,
ce.valueuom
FROM chartevents ce
INNER JOIN icustays ic ON ce.stay_id = ic.stay_id
INNER JOIN d_items di ON ce.itemid = di.itemid
WHERE ce.charttime >= ic.intime
AND ce.charttime < ic.intime + INTERVAL '1 day'
AND ce.itemid IN (220045, 220050, 220051, 220052, 223762, 220210, 220277, 223835)
AND ce.valuenum IS NOT NULL
ORDER BY ce.stay_id, ce.charttime;
SELECT
le.subject_id,
le.hadm_id,
le.itemid,
dli.label,
le.charttime,
le.valuenum,
le.valueuom
FROM labevents le
INNER JOIN admissions a ON le.hadm_id = a.hadm_id
INNER JOIN d_labitems dli ON le.itemid = dli.itemid
WHERE le.charttime >= a.admittime
AND le.charttime < a.admittime + INTERVAL '1 day'
AND le.itemid IN (50912, 51006, 50983, 50971, 50902, 50882)
AND le.valuenum IS NOT NULL
ORDER BY le.subject_id, le.charttime;
SELECT
d.subject_id,
d.hadm_id,
d.seq_num,
d.icd_code,
d.icd_version,
did.long_title
FROM diagnoses_icd d
LEFT JOIN d_icd_diagnoses did
ON d.icd_code = did.icd_code AND d.icd_version = did.icd_version
WHERE d.hadm_id = %(hadm_id)s
ORDER BY d.seq_num;
TIMESTAMP 类型(UTC 时区)EXTRACT、DATE_PART、INTERVAL 等函数AT TIME ZONE 进行本地时间转换-- 转换为本地时间(例如美国东部时间) SELECT charttime AT TIME ZONE 'America/New_York' FROM chartevents WHERE stay_id = 100001;
chartevents 表包含数亿行记录;查询时请务必:stay_id 过滤charttime 时间范围LIMIT 子句(用于测试)EXPLAIN 分析查询执行计划valuenum:数值型结果(适用于计算)value:文本型结果(适用于定性结果,例如 “Positive”、“Negative”)-- 正确:数值型结果使用 valuenum SELECT AVG(valuenum) AS avg_creatinine FROM labevents WHERE itemid = 50912 AND valuenum IS NOT NULL; -- 正确:文本型结果使用 value SELECT COUNT(*) AS num_positive FROM labevents WHERE itemid = 500061 AND value = 'Positive';
最后更新时间: 2026-05-20
更新人: 悟空(基于 MIMIC-IV 官方文档修正)
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章