MIMIC-IV官方视图解析-序贯器官衰竭评分(SOFA)

MIMIC-IV官方视图解析-序贯器官衰竭评分(SOFA)_第1张图片

图片

MIMIC-IV官方视图解析-序贯器官衰竭评分(SOFA)_第2张图片

序贯器官衰竭评估 (SOFA) 评分于 1994 年在凡尔赛欧洲重症医学协会败血症相关问题工作组的共识会议上制定,并于 1996 年发表。尽管最初被称为“脓毒症相关”器官衰竭评估评分,但该名称很快更改为“序贯”器官衰竭评估,因为它也适用于没有脓毒症的危重患者。

SOFA 评分迅速成为其中之一在临床实践和研究中,成人重症中使用最广泛的评分系统。

我们在很多SCI论文中都能看到它的身影:

MIMIC-IV官方视图解析-序贯器官衰竭评分(SOFA)_第3张图片

计算详情和变量

  • 等式参数,例如 通气支持, 有两个或更多可能用于计算的离散值。括号中的数字,例如 (1), 代表将要使用的数值.

  • 血小板系数 是通过此有序逻辑分配的数值:

    • 如果 血小板 <20 x10(3)/mcL 血小板系数 = 4

    • 否则,如果 血小板 <50 x10(3)/mcL 血小板系数 = 3

    • 否则,如果 血小板 <100 x10(3)/mcL 血小板系数 = 2

    • 否则,如果 血小板 <150 x10(3)/mcL 血小板系数 = 1

    • 否则 血小板系数 = 0.

  • 总胆红素系数 是通过此有序逻辑分配的数值:

    • 如果 总胆红素 <1.2 mg/dL 总胆红素系数 = 0

    • 否则,如果 总胆红素 <2 mg/dL 总胆红素系数 = 1

    • 否则,如果 总胆红素 <6 mg/dL 总胆红素系数 = 2

    • 否则,如果 总胆红素 <12 mg/dL 总胆红素系数 = 3

    • 否则 总胆红素系数 = 4.

  • Glasgow昏迷评分系数 是通过此有序逻辑分配的数值:

    • 如果 Glasgow 昏迷评分 >14 points Glasgow昏迷评分系数 = 0

    • 否则,如果 Glasgow 昏迷评分 >12 points Glasgow昏迷评分系数 = 1

    • 否则,如果 Glasgow 昏迷评分 >9 points Glasgow昏迷评分系数 = 2

    • 否则,如果 Glasgow 昏迷评分 >5 points Glasgow昏迷评分系数 = 3

    • 否则 Glasgow昏迷评分系数 = 4.

  • PaO2/FIO2系数 是通过此有序逻辑分配的数值:

    • 如果 PaO2/FIO2 ≤100 而 通气支持 PaO2/FIO2系数 = 4

    • 否则,如果 PaO2/FIO2 ≤200 而 通气支持 PaO2/FIO2系数 = 3

    • 否则,如果 PaO2/FIO2 ≤300 PaO2/FIO2系数 = 2

    • 否则,如果 PaO2/FIO2 ≤400 PaO2/FIO2系数 = 1

    • 否则 PaO2/FIO2系数 = 0

  • 肾功能系数 是通过此有序逻辑分配的数值:

    • 如果 肌酐 <1.2 mg/dL 肾功能系数 = 0

    • 否则,如果 肌酐 <2 mg/dL 肾功能系数 = 1

    • 否则,如果 肌酐 <3.5 mg/dL 肾功能系数 = 2

    • 否则,如果 肌酐 <5 mg/dL 肾功能系数 = 3

    • 否则 肾功能系数 = 4

  • 肾功能系数 也可以根据尿输出量设定:

    • 如果 尿输出量 <500 mL/day 肾功能系数 = 3

    • 否则,如果 尿输出量 <200 mL/day 肾功能系数 = 4

MIMIC-IV数据库官方视图能够生成该数据表, mimiciv_derived下的sofa表, 关于官方视图(衍生表格)生成查看以下文章

手把手教会你认识跟安装MIMIC-IV物化视图

MIMIC-IV数据库衍生表格mimic_derived配置和使用

MIMIC-IV官方视图解析-序贯器官衰竭评分(SOFA)_第4张图片

生成SOFA表的SQL解析:

https://github.com/MIT-LCP/mimic-code/blob/main/mimic-iv/concepts_postgres/score/sofa.sql

MIMIC-IV官方视图解析-序贯器官衰竭评分(SOFA)_第5张图片

-- 这个脚本是自动生成的。不要直接编辑它。
DROP TABLE IF EXISTS sofa;
CREATE TABLE sofa AS
-- ------------------------------------------------------------------
-- 标题:序贯器官衰竭评分(SOFA)
-- 这个查询提取了序贯器官衰竭评分(正式名称:与脓毒症相关的器官衰竭评分)。
-- 这个评分是衡量ICU患者器官衰竭的一个指标。
-- 评分是在患者ICU住院的**每小时**计算的。
-- 然而,由于计算窗口是24小时,所以在第一天结束之前使用这个评分时应注意,
-- 因为数据窗口是有限的。
-- ------------------------------------------------------------------

-- SOFA的参考:
--    Jean-Louis Vincent, Rui Moreno, Jukka Takala, Sheila Willatts,
--    Arnaldo De Mendonça, Hajo Bruining, C. K. Reinhart,
--    Peter M Suter, and L. G. Thijs.
--    "The SOFA (Sepsis-related Organ Failure Assessment) score to
--     describe organ dysfunction/failure."
--    Intensive care medicine 22, no. 7 (1996): 707-710.

-- SOFA中使用的变量:
--  GCS(格拉斯哥昏迷评分),MAP(平均动脉压),FiO2(吸入氧浓度),通气状态(chartevents)
--  肌酐,胆红素,FiO2,PaO2,血小板(labevents)
--  多巴胺,多巴酚丁胺,肾上腺素,去甲肾上腺素(inputevents)
--  尿量(outputevents)

-- 使用icustay_hourly来获取患者ICU住院期间每小时的一行数据
-- 我们所有的数据连接都会使用这些时间
-- 来提取仅与该小时相关的数据
WITH co AS (
    SELECT ih.stay_id, ie.hadm_id
        , hr
        -- start/endtime可以用来过滤该小时内的值
        , DATETIME_SUB(ih.endtime, INTERVAL '1' HOUR) AS starttime
        , ih.endtime
    FROM mimiciv_derived.icustay_hourly ih
    INNER JOIN mimiciv_icu.icustays ie
        ON ih.stay_id = ie.stay_id
)

, pafi AS (
    -- 将血气与通气持续时间连接,以确定患者是否通气
    SELECT ie.stay_id
        , bg.charttime
        -- 因为pafi在通气/PaO2:FiO2之间有相互作用,
        -- 我们需要两列来评分
        -- 可能会发生这样的情况,即未通气时最低的PaO2/FiO2是68,
        -- 但通气时最低的PaO2/FiO2是120
        -- 在这种情况下,SOFA评分是3,*不是* 4。
        , CASE
            WHEN vd.stay_id IS NULL THEN pao2fio2ratio ELSE null
        END AS pao2fio2ratio_novent
        , CASE
            WHEN vd.stay_id IS NOT NULL THEN pao2fio2ratio ELSE null
        END AS pao2fio2ratio_vent
    FROM mimiciv_icu.icustays ie
    INNER JOIN mimiciv_derived.bg bg
        ON ie.subject_id = bg.subject_id
    LEFT JOIN mimiciv_derived.ventilation vd
        ON ie.stay_id = vd.stay_id
            AND bg.charttime >= vd.starttime
            AND bg.charttime <= vd.endtime
            AND vd.ventilation_status = 'InvasiveVent'
    WHERE specimen = 'ART.'
)

, vs AS (

    SELECT co.stay_id, co.hr
        -- 重要指标
        , MIN(vs.mbp) AS meanbp_min
    FROM co
    LEFT JOIN mimiciv_derived.vitalsign vs
        ON co.stay_id = vs.stay_id
            AND co.starttime < vs.charttime
            AND co.endtime >= vs.charttime
    GROUP BY co.stay_id, co.hr
)

, gcs AS (
    SELECT co.stay_id, co.hr
        -- GCS
        , MIN(gcs.gcs) AS gcs_min
    FROM co
    LEFT JOIN mimiciv_derived.gcs gcs
        ON co.stay_id = gcs.stay_id
            AND co.starttime < gcs.charttime
            AND co.endtime >= gcs.charttime
    GROUP BY co.stay_id, co.hr
)

, bili AS (
    SELECT co.stay_id, co.hr
        , MAX(enz.bilirubin_total) AS bilirubin_max
    FROM co
    LEFT JOIN mimiciv_derived.enzyme enz
        ON co.hadm_id = enz.hadm_id
            AND co.starttime < enz.charttime
            AND co.endtime >= enz.charttime
    GROUP BY co.stay_id, co.hr
)

, cr AS (
    SELECT co.stay_id, co.hr
        , MAX(chem.creatinine) AS creatinine_max
    FROM co
    LEFT JOIN mimiciv_derived.chemistry chem
        ON co.hadm_id = chem.hadm_id
            AND co.starttime < chem.charttime
            AND co.endtime >= chem.charttime
    GROUP BY co.stay_id, co.hr
)

, plt AS (
    SELECT co.stay_id, co.hr
        , MIN(cbc.platelet) AS platelet_min
    FROM co
    LEFT JOIN mimiciv_derived.complete_blood_count cbc
        ON co.hadm_id = cbc.hadm_id
            AND co.starttime < cbc.charttime
            AND co.endtime >= cbc.charttime
    GROUP BY co.stay_id, co.hr
)

, pf AS (
    SELECT co.stay_id, co.hr
        , MIN(pafi.pao2fio2ratio_novent) AS pao2fio2ratio_novent
        , MIN(pafi.pao2fio2ratio_vent) AS pao2fio2ratio_vent
    FROM co
    -- 引入在该小时内发生的血气
    LEFT JOIN pafi
        ON co.stay_id = pafi.stay_id
            AND co.starttime < pafi.charttime
            AND co.endtime >= pafi.charttime
    GROUP BY co.stay_id, co.hr
)

-- 分别计算尿量以防止重复值
, uo AS (
    SELECT co.stay_id, co.hr
        -- 尿量
        , MAX(
            CASE WHEN uo.uo_tm_24hr >= 22 AND uo.uo_tm_24hr <= 30
                THEN uo.urineoutput_24hr / uo.uo_tm_24hr * 24
            END) AS uo_24hr
    FROM co
    LEFT JOIN mimiciv_derived.urine_output_rate uo
        ON co.stay_id = uo.stay_id
            AND co.starttime < uo.charttime
            AND co.endtime >= uo.charttime
    GROUP BY co.stay_id, co.hr
)

-- 将血管活性药物合并为每小时一行
-- 同时确保每小时只有一行
, vaso AS (
    SELECT
        co.stay_id
        , co.hr
        , MAX(epi.vaso_rate) AS rate_epinephrine
        , MAX(nor.vaso_rate) AS rate_norepinephrine
        , MAX(dop.vaso_rate) AS rate_dopamine
        , MAX(dob.vaso_rate) AS rate_dobutamine
    FROM co
    LEFT JOIN mimiciv_derived.epinephrine epi
        ON co.stay_id = epi.stay_id
            AND co.endtime > epi.starttime
            AND co.endtime <= epi.endtime
    LEFT JOIN mimiciv_derived.norepinephrine nor
        ON co.stay_id = nor.stay_id
            AND co.endtime > nor.starttime
            AND co.endtime <= nor.endtime
    LEFT JOIN mimiciv_derived.dopamine dop
        ON co.stay_id = dop.stay_id
            AND co.endtime > dop.starttime
            AND co.endtime <= dop.endtime
    LEFT JOIN mimiciv_derived.dobutamine dob
        ON co.stay_id = dob.stay_id
            AND co.endtime > dob.starttime
            AND co.endtime <= dob.endtime
    WHERE epi.stay_id IS NOT NULL
        OR nor.stay_id IS NOT NULL
        OR dop.stay_id IS NOT NULL
        OR dob.stay_id IS NOT NULL
    GROUP BY co.stay_id, co.hr
)

, scorecomp AS (
    SELECT
        co.stay_id
        , co.hr
        , co.starttime, co.endtime
        , pf.pao2fio2ratio_novent
        , pf.pao2fio2ratio_vent
        , vaso.rate_epinephrine
        , vaso.rate_norepinephrine
        , vaso.rate_dopamine
        , vaso.rate_dobutamine
        , vs.meanbp_min
        , gcs.gcs_min
        -- 尿量
        , uo.uo_24hr

   SOFA 评分现已超过 25 年。能够客观地描述危重病人器官功能障碍的模式现在和以往一样重要。

然而,随着多年来临床实践的变化,SOFA 评分的某些方面可能不再像以前那样重要。正如原始出版物中指出的那样,“......任何给定的分数都不是无限期建立的。这是一个持续的过程,需要定期重新评估”——也许现在正是进行此类重新评估的时候。

从这个角度来看,我们提出了一些可以在 SOFA 2.0 中考虑的额外元素,同时考虑到保持评分简单且对所有人可用的需要。可能还有其他我们没有提到的。

我们在此的目的是为 SOFA 评分更新和引发讨论提供一个起点。我们的目的是在数据挖掘之后取得进展,最好是来自不同的医疗保健环境,然后是更正式的德尔菲式共识,然后是外部验证——最好是前瞻性的,但最初可能使用现有的数据集。

在 SOFA 2.0 可以安全地替换原始 SOFA 分数之前,需要对每个器官/系统的不同分数的临界值进行全面验证。

你可能感兴趣的:(数据库)