MIMIC数据库, 如何统计特定icd代码超过特定年龄的患者住院记录数?
一,获取患者的真实年龄
mimiciv数据库为了保护患者的隐私,并没有直接记录患者的真实年龄,patients表中记录了两个关于年龄的字段:
anchor_age:患者相对anchor_year的相对年龄。
anchor_year:计算患者年龄的基准年份。
anchor_age并不是患者的入院时的真实年龄,而是根据anchor_year做了偏移,真实年龄的计算公式是:
患者的真实年龄=anchor_age+患者的入院时间-anchor_year
上图中的ROUND函数是将年龄转为2位小数。
上图小编使用到了DATETIME_DIFF函数,该函数为mimiciv官方函数,作用是求两个时间的差,这个函数小编是安装在mimiciv_derived模块中,如果大家不是安装在这个模块中,请把函数前缀替换成自己的模块名哈。
SELECT ad.subject_id, -- 患者表中记录的是年龄是脱敏数据,是一个相对年龄,必须经过转换才可得出患者的真实年龄 -- 年龄计算公式为 患者相对年龄+患者入院时间年份-偏移年份 MAX(ROUND(pa.anchor_age + mimiciv_derived.DATETIME_DIFF(ad.admittime, mimiciv_derived.DATETIME(pa.anchor_year, 1, 1, 0, 0, 0), 'YEAR'),2)) AS age
FROM admissions ad, patients pa
WHERE ad.subject_id = pa.subject_id
GROUP BY
ad.subject_id
二、 查询30岁以上高血压患者
-- 统计特定icd代码超过特定年龄的患者人数
-- Count the number of patients with a specific icd9 code above a certain age
WITH agetbl AS
(
SELECT ad.subject_id,
-- 患者表中记录的是年龄是脱敏数据,是一个相对年龄,必须经过转换才可得出患者的真实年龄
-- 年龄计算公式为 患者相对年龄+患者入院时间年份-偏移年份
MAX(ROUND(p.anchor_age + mimiciv_derived.DATETIME_DIFF(ad.admittime,
mimiciv_derived.DATETIME(p.anchor_year, 1, 1, 0, 0, 0), 'YEAR'),2)) AS age
FROM mimiciv_hosp.admissions ad
INNER JOIN mimiciv_hosp.patients p
ON ad.subject_id = p.subject_id
-- WHERE
-- -- filter to only adults above 30
-- DATETIME_DIFF(ad.admittime, p.dob, YEAR) > 30
-- -- group by subject_id to ensure there is only 1 subject_id per row
GROUP BY ad.subject_id
)
SELECT dia.subject_id, COUNT(DISTINCT dia.subject_id) AS "Hypertension Age 30+ 患者数", age
from mimiciv_hosp.diagnoses_icd dia
INNER JOIN agetbl
ON dia.subject_id = agetbl.subject_id
WHERE dia.icd_code
-- 401% relates to Hypertension
LIKE '401%' -- 以高血压病患者为例
AND age > 30
GROUP BY dia.hadm_id, dia.subject_id, agetbl.age
这里有问题 , 我们改下代码
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)药物
MIMIC-IV-ED适合科研小白的安装方法(提供数据集下载)
MIMIC数据库, 使用Python研究万古霉素的剂量 (一)