判断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 (SELECTie.hadm_id, ie.stay_id, le.charttime-- 如果同一个时间点有两个检查就取平均值, AVG(le.valuenum) AS creat-- 主要涉及ICU住院记录icustays和实验室检查labevents两张表。FROM mimiciv_icu.icustays ieLEFT JOIN mimiciv_hosp.labevents le-- 使用subject_id连接表格ON ie.subject_id = le.subject_id-- 使用ITEMID 50912提取肌酐AND le.itemid = 50912AND 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.outtimeGROUP BY ie.hadm_id, ie.stay_id, le.charttime
)-- -- 每个肌酐检查值之前48小时的肌酐最小值
, cr48 AS (-- add in the lowest value in the previous 48 hours-- 添加过去 48 小时内的最低值SELECTcr.stay_id, cr.charttime, MIN(cr48.creat) AS creat_low_past_48hrFROM cr-- add in all creatinine values in the last 48 hours-- 添加过去 48 小时内的所有肌酐值LEFT JOIN cr cr48ON cr.stay_id = cr48.stay_idAND cr48.charttime < cr.charttimeAND 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 天内的最低值SELECTcr.stay_id, cr.charttime, MIN(cr7.creat) AS creat_low_past_7dayFROM cr-- add in all creatinine values in the last 7 days-- 添加过去 7 天内的所有肌酐值LEFT JOIN cr cr7ON cr.stay_id = cr7.stay_idAND cr7.charttime < cr.charttimeAND cr7.charttime >= mimiciv_derived.DATETIME_SUB(cr.charttime, INTERVAL '7' DAY)GROUP BY cr.stay_id, cr.charttime
)SELECTcr.hadm_id, cr.stay_id, cr.charttime, cr.creat, cr48.creat_low_past_48hr, cr7.creat_low_past_7day
FROM cr
LEFT JOIN cr48ON cr.stay_id = cr48.stay_idAND cr.charttime = cr48.charttime
LEFT JOIN cr7ON cr.stay_id = cr7.stay_idAND cr.charttime = cr7.charttime
;
二、kdigo_stages.sql 基线标准
如何理解上面说的这个基线值是动态的?我们来看下kdigo标准的sql
CREATE MATERIALIZED VIEW work.organfailure_kdigo_stage_cr_only ASSELECTcr.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 baselineAND (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/dlWHEN 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 1ELSE 0 END AS aki_stage_creatFROM 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 阶段的定义是满足以下两个条件:
-
sCR >=4.0
-
sCR 增量 >=0.3 48h内 or sCR 基线* 1.5
然而,上述代码的逻辑是由固定数字3.7定义的。这是错误的定义,所以应该改为
CREATE MATERIALIZED VIEW work.organfailure_kdigo_stage_cr_only_2 AS
SELECTcr.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/dlWHEN 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 1ELSE 0 END AS aki_stage_creatFROM mimiciv_derived.kdigo_creatinine cr
查看筛选出来的数据是有很大差异的
该问题官方已经准备在下个版本修复
这是有道理的,对于初始肌酐为 4.0 或更高的人来说,这不会导致 AKI。我会尽快修复它,可能值得进行前后比较。