一、 提取PE的实验室指标血乳酸及检测时间
首先我们先找到mimic官方提供的可视化视图, mimiciv_derived
关于这方面不了解的可以看这个回答: MIMIC-IV数据库, 什么是mimiciv_derived可视化视图?
我们先找到mimiciv_derived.bg表, 它主要涵盖血气相关指标:
提取血乳酸及检测时间:
--提取PE的实验室指标血乳酸及检测时间
--提取肺栓塞的名单
with y1 as (SELECT d.subject_id,d.hadm_id
from mimiciv_hosp.diagnoses_icd d
WHERE d.icd_code in ('41519','I2699','41511','41512','I2692','I2690','41513','I2609','I2694','I2602','I2693','67382')
),
--提取肺栓塞病人的人口统计学信息
y2 as (SELECT i.*
FROM y1
INNER JOIN mimiciv_derived.icustay_detail i on y1.subject_id=i.subject_id AND y1.hadm_id=i.hadm_id
)
--提取肺栓塞患者的乳酸
SELECT y2.*,b.lactate,b.charttime
FROM y2
INNER JOIN mimiciv_derived.bg b on y2.subject_id=b.subject_id AND y2.hadm_id=b.hadm_id
WHERE b.charttime BETWEEN mimiciv_derived.DATETIME_SUB(y2.icu_intime, INTERVAL '6' HOUR) AND mimiciv_derived.DATETIME_ADD(y2.icu_intime, INTERVAL '24' HOUR)
AND b.lactate is not NULL --血乳酸为0的值去除
代码解读:
y1
临时表(子查询):- 从表
mimiciv_hosp.diagnoses_icd
中选择符合条件的数据,条件是icd_code
列包含在给定的一组符合肺栓塞的诊断代码。
这些代码怎么查出来的呢, 如下
2. y2
临时表(子查询):
- 使用前一个 临时表 (
y1
) 中选择的数据,与表mimiciv_derived.icustay_detail
进行内连接,以获取进去ICU所有肺栓塞患者的人口统计学信息。
3. 主查询:
- 选择
y2
CTE 中的所有列,同时与表mimiciv_derived.bg
进行内连接,以获取患者的血乳酸及测量时间。 - 添加了筛选条件,要求血乳酸的测量的时间 (
charttime
) 在患者进入 ICU (icu_intime
) 的6小时前,及在进入 ICU 后的24小时之内。 - 最后,排除血氧饱和度为NULL的记录。
我们在提取ICU的实验室指标如果要求是入ICU24小时内的,就是用这个来限制,只需改动y2即可(改成你临时表链接人口统计学信息表的表名),其他固定表达;
结果:
这里面的官方函数mimiciv_derived.DATETIME_SUB, mimiciv_derived.DATETIME_ADD 可以看我这两篇文章了解:
二、mimic数据库使用介绍:
MIMIC数据库提取教程-提取某种疾病下的患者人口统计学指标
MIMIC-IV数据库衍生表格mimic_derived配置和使用
MIMIC-IV数据分析 - 使用Python进行心脏病案例分析
MIMIC-IV数据分析 - 使用Python进行心脏病案例分析(二)
MIMIC-IV数据分析 - 使用R语言探索icustay_detail视图
MIMIC数据提取教程 - 如何提取患者入ICU后第一个WBC和SpO2值
MIMIC数据提取教程 - 提取入住ICU第一天生命体征(血氧饱和度、血压、呼吸、体温)
MIMIC数据提取教程 - 提取血管紧张素受体阻滞剂(ARB)药物