MIMIC-IV官方视图解析 - AKI 肌酐 (kdigo_creatinine、kdigo_stages)

图片

图片

判断AKI我们可以通过肌酐和尿量两个指标来看, 今天我们主要提取肌酐。

kidgo指南的表格

AKI诊断标准:
符合以下情况之一者即可被诊断为AKI:
①48小时内Scr升高超过26.5μmol/L(0.3mg/dl);
②Scr升高超过基线1.5倍——确认或推测为7天内发生;
③尿量<0.5ml/(kg·h),且持续6小时以上。
AKI分期标准:
分期Scr尿量
1期升高为基线的1.5~1.9倍,或升高超过26.5μmol/L(0.3mg/dl)<0.5ml/(kg·h) 持续6~12h
2期升高为基线的2.0~2.9倍<0.5ml/(kg·h) ≥12h
3期升高为基线的3倍,或绝对值≥353.6μmol/L(4.0mg/dl),或开始使用肾脏替代治疗,或患者<18岁且eGFR<35ml/(min·1.73m2)<0.3ml/(kg·h) ≥24h,或无尿≥12h
结果解读根据AKI分期的推荐处理如下:
相关解释1.单用尿量改变作为诊断标准时,需要除外尿路梗阻及其他导致尿量减少的原因。2.指南推荐血清肌酐和尿量仍然作为AKI最好的标志物(ⅠB)。
参考来源1. KDIGO Clinical Practice Guideline for Acute Kidney Injury. 2012.3. http://www.kidney-international.org2. 图片作者:大连医科大学附属第一医院 重症医学科 李青栋

图片

AKI是MIMIC相关研究的常用指标,MIMIC数据库里面AKI诊断按照KIDGO指南,内容太多,今天这个只包括肌酐水平评估:

MIMIC数据库里面的基线值并不是一个固定的值而是动态的值。

主要涉及ICU住院记录icustays和实验室检查labevents两张表。

labevents表里CHARTTIME表示测量时间,VALUENUM表示测量值。

icustays表里面intime和outtime分别表示出入ICU时间。

 两张表格根据subject_id这个患者唯一标识进行连接。

一、kdigo_creatinine.sql 提取入ICU前7天所有肌酐值


-- Extract all creatinine values from labevents around patient's ICU stay 从患者入住 ICU 期间的实验室事件中提取所有肌酐值
-- 提取入ICU前7天所有肌酐值
WITH cr AS (
    SELECT
        ie.hadm_id
        , ie.stay_id
        , le.charttime
        -- 如果同一个时间点有两个检查就取平均值
        , AVG(le.valuenum) AS creat
        -- 主要涉及ICU住院记录icustays和实验室检查labevents两张表。
    FROM mimiciv_icu.icustays ie
    LEFT JOIN mimiciv_hosp.labevents le
        -- 使用subject_id连接表格
        ON ie.subject_id = le.subject_id
        -- 使用ITEMID 50912提取肌酐
            AND le.itemid = 50912
            AND le.valuenum IS NOT NULL
        -- 只包括<150的肌酐值,超过为异常值    
            AND le.valuenum <= 150
        -- 提取范围是入ICU时间前7天。
            AND le.charttime >= mimiciv_derived.DATETIME_SUB(ie.intime, INTERVAL '7' DAY)
            AND le.charttime <= ie.outtime
    GROUP BY ie.hadm_id, ie.stay_id, le.charttime
)

-- -- 每个肌酐检查值之前48小时的肌酐最小值
, cr48 AS (
    -- add in the lowest value in the previous 48 hours
    -- 添加过去 48 小时内的最低值
    SELECT
        cr.stay_id
        , cr.charttime
        , MIN(cr48.creat) AS creat_low_past_48hr
    FROM cr
    -- add in all creatinine values in the last 48 hours
    -- 添加过去 48 小时内的所有肌酐值
    LEFT JOIN cr cr48
        ON cr.stay_id = cr48.stay_id
            AND cr48.charttime < cr.charttime
            AND cr48.charttime >= mimiciv_derived.DATETIME_SUB(cr.charttime, INTERVAL '48' HOUR)
    GROUP BY cr.stay_id, cr.charttime
)

-- 每个肌酐检查值之前七天最小肌酐值
, cr7 AS (
    -- add in the lowest value in the previous 7 days
    -- 添加前 7 天内的最低值
    SELECT
        cr.stay_id
        , cr.charttime
        , MIN(cr7.creat) AS creat_low_past_7day
    FROM cr
    -- add in all creatinine values in the last 7 days
    -- 添加过去 7 天内的所有肌酐值
    LEFT JOIN cr cr7
        ON cr.stay_id = cr7.stay_id
            AND cr7.charttime < cr.charttime
            AND cr7.charttime >= mimiciv_derived.DATETIME_SUB(cr.charttime, INTERVAL '7' DAY)
    GROUP BY cr.stay_id, cr.charttime
)

SELECT
    cr.hadm_id
    , cr.stay_id
    , cr.charttime
    , cr.creat
    , cr48.creat_low_past_48hr
    , cr7.creat_low_past_7day
FROM cr
LEFT JOIN cr48
    ON cr.stay_id = cr48.stay_id
        AND cr.charttime = cr48.charttime
LEFT JOIN cr7
    ON cr.stay_id = cr7.stay_id
        AND cr.charttime = cr7.charttime
;

图片

二、kdigo_stages.sql 基线标准 

如何理解上面说的这个基线值是动态的?我们来看下kdigo标准的sql


CREATE MATERIALIZED VIEW work.organfailure_kdigo_stage_cr_only AS

SELECT
    cr.stay_id
    , cr.charttime
    , cr.creat_low_past_7day
    , cr.creat_low_past_48hr
    , cr.creat
    , CASE
        -- 3x baseline
        -- 7天内超过基线值3倍 
        WHEN cr.creat >= (cr.creat_low_past_7day * 3.0) THEN 3
        -- *OR* cr >= 4.0 with associated increase
        -- 肌酐超过4mg/dl同时基线值1.5倍
        -- 或者
        -- 肌酐超过4mg/dl同时在48小时内增长超过0.3mg/dl(4-3.7)
        WHEN cr.creat >= 4
            -- For patients reaching Stage 3 by SCr >4.0 mg/dl
            -- require that the patient first achieve ...
            --      an acute increase >= 0.3 within 48 hr
            --      *or* an increase of >= 1.5 times baseline
            AND (
                cr.creat_low_past_48hr <= 3.7 OR cr.creat >= (
                    1.5 * cr.creat_low_past_7day
                )
            )
            THEN 3
        -- TODO: initiation of RRT
        -- 超过基线值2倍
        WHEN cr.creat >= (cr.creat_low_past_7day * 2.0) THEN 2
        -- 48小时内Cr增长超过0.3mg/dl
        WHEN cr.creat >= (cr.creat_low_past_48hr + 0.3) THEN 1
        -- 7天内超过基线值1.5倍
        WHEN cr.creat >= (cr.creat_low_past_7day * 1.5) THEN 1
        ELSE 0 END AS aki_stage_creat
  FROM mimiciv_derived.kdigo_creatinine cr

图片

 

 

我们来从organfailure_kdigo_stage_cr_only里面选取一个病人来看。

  • stay_id:30013402

图片

可以看出来,这个病人住ICU前七天到出ICU期间一共做了12次下肌酐,第3次肌酐前面两次肌酐分别为1.6和1.5,都是48小时内,所有48小时内基线和7天内基线都是他们中的最小值1.5,增加超过0.3,所以是AKI1级;第7次肌酐检查时,前48小时基线值和前7天基线值就不一样了,增长超过基线两倍,所以是AKI2级

我们看到在kdigo_stages.sql下还有提取尿量和CRRT的代码,感兴趣同学看这篇和后续文章,本章暂时不讲解

MIMIC-IV数据库,如何提取器官衰竭AKI的尿量指标?

图片

三、(必看)官方代码里面存在的的问题!!!

我们看图中红框内的代码

图片

图片

在 KDIGO AKI 标准第21页(KDIGO-2012-AKI-Guideline, 后台回复 “KDIGO AKI 2012” 下载)中,AKI 第 3 阶段的定义是满足以下两个条件:

  1. sCR >=4.0

  2. sCR 增量 >=0.3 48h内 or sCR 基线* 1.5

然而,上述代码的逻辑是由固定数字3.7定义的。这是错误的定义,所以应该改为

图片

 

CREATE MATERIALIZED VIEW work.organfailure_kdigo_stage_cr_only_2 AS
SELECT
    cr.stay_id
    , cr.charttime
    , cr.creat_low_past_7day
    , cr.creat_low_past_48hr
    , cr.creat
    , CASE
        -- 3x baseline
        -- 7天内超过基线值3倍 
        WHEN cr.creat >= (cr.creat_low_past_7day * 3.0) THEN 3
        -- *OR* cr >= 4.0 with associated increase
        -- 肌酐超过4mg/dl同时基线值1.5倍
        -- 或者
        -- 肌酐超过4mg/dl同时在48小时内增长超过0.3mg/dl(4-3.7)
        WHEN cr.creat >= 4
            -- For patients reaching Stage 3 by SCr >4.0 mg/dl
            -- require that the patient first achieve ...
            --      an acute increase >= 0.3 within 48 hr
            --      *or* an increase of >= 1.5 times baseline
            -- 这行修改了代码
            AND (cr.creat >= (cr.creat_low_past_48hr+0.3) OR cr.creat >= (1.5 *cr.creat_low_past_7day))
            THEN 3
        -- TODO: initiation of RRT
        -- 超过基线值2倍
        WHEN cr.creat >= (cr.creat_low_past_7day * 2.0) THEN 2
        -- 48小时内Cr增长超过0.3mg/dl
        WHEN cr.creat >= (cr.creat_low_past_48hr + 0.3) THEN 1
        -- 7天内超过基线值1.5倍
        WHEN cr.creat >= (cr.creat_low_past_7day * 1.5) THEN 1
        ELSE 0 END AS aki_stage_creat
  FROM mimiciv_derived.kdigo_creatinine cr

查看筛选出来的数据是有很大差异的

图片

图片

该问题官方已经准备在下个版本修复

图片

这是有道理的,对于初始肌酐为 4.0 或更高的人来说,这不会导致 AKI。我会尽快修复它,可能值得进行前后比较。

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MIMIC-IV是一份医疗数据集,包含了大规模的多模态(诊断、手术、实验室检验结果等)的持续监测数据。该数据集是通过开放存取权限取得的,并且在假名化的情况下提供给研究人员使用。 MIMIC-IV数据集的目标是促进医疗研究的发展。它包含了来自美国波士顿市的波士顿儿童医院和波士顿岁丰医院的数据。这些数据可用于进行各种类型的研究,如疾病模型构建、机器学习算法的开发等。使用者可以通过提出请求并接受数据使用许可证来获取MIMIC-IV数据集。 在使用MIMIC-IV数据集时,需要注意一些保密和隐私方面的问题。由于数据含有患者的敏感信息,包括姓名、家庭住址等,因此使用者需要严格遵守数据使用规则。在进行研究时,应保持对患者个人隐私的尊重,并采取相应的安全措施确保数据不会被滥用或泄露。 此外,为了更好的利用MIMIC-IV数据集,使用者需要具备一定的医学和数据分析知识。因为该数据集提供了大量的多模态数据,正确解释和分析这些信息需要具备相关的领域知识。同时,对于数据的预处理和清洗也需要具备数据分析技巧。 总之,MIMIC-IV是一份丰富的医疗数据集,可以支持各种类型的研究。但是,在使用该数据集时,需要遵守相关的规则和保护患者隐私的原则,同时具备医学和数据分析的知识。通过正确使用MIMIC-IV数据集,研究人员可以为医疗领域的发展和人类健康做出更多的贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值