白鲸鱼🐳
发布于

MIMIC数据库,如何查询住院病人尿素氮(BUN)值的分布?

BUN一般指尿素氮。尿素氮又称血尿素氮,是机体蛋白质的代谢终末产物,是一项检测肾小球的滤过功能的指标,一般在肾功能不全的失代偿期时或氮质血症时,血尿素氮会明显升高。进行该项指标的测定,主要用于诊断各种原发性和继发性肾小球肾炎、肾肿瘤、多囊肾等导致的慢性肾衰竭,急性肾衰竭等疾病,还可以作为肾衰竭时透析的评估充分性指标。

正常指标 成人正常值是3.2~7.1mmol/L,婴儿、儿童正常值是1.8~6.5mmol/L。需要注意的是,由于仪器精度不同、实验方法不同、实验室不同等因素的影响,不同医疗机构出具的化验单参考值可能存在差异。

 

MIMIC数据库中, 住院病人信息主要存储在admissions表 , 实验室指标信息主要存储在labevents表, 我们从这两个表入手查询

 

一,获取患者的真实年龄

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

二、 查询血尿素氮

我们知道血尿素氮在labevents表, 我们需要从中获取到itemid 是51006

实验室生物检测结果实验室检测事件数据,记录了与患者实验室检测结果相关的信息,如检测时间、检验指标、结果值等。

实验室事件表存储对单个患者进行的所有实验室测量的结果。其中包括血液学测量、血气、化学检测以及基因检测等不太常见的测试。

此表包含了病患的实验室生物检测结果,包括各种生化、血液和其他类型的检测结果

  • labevent_id:实验室检查记录的唯一标识符。
  • subject_id:患者的唯一标识符。
  • hadm_id:入院号,指患者的住院标识符。
  • specimen_id:样本的唯一标识符。
  • itemid:检查项目的唯一标识符。
  • order_provider_id:检查申请提供者的唯一标识符。
  • charttime:记录时间,指实验室检查记录的时间。
  • storetime:存储时间,指实验室检查记录被存储的时间。
  • value:检查结果值。
  • valuenum:检查结果数值。
  • valueuom:检查结果单位。
  • ref_range_lower:参考范围下限。
  • ref_range_upper:参考范围上限。
  • flag:检查结果标记,指示该结果是否异常。
  • priority:检查优先级。
  • comments:注释,包含有关实验室检查结果的其他信息
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
			--  mimiciv_derived.DATETIME_DIFF( p.dod, ad.admittime, 'YEAR') > 15
    -- group by subject_id to ensure there is only 1 subject_id per row
    group by ad.subject_id
)
, bun as
(
  SELECT width_bucket(valuenum, 0, 280, 280) AS bucket, *
  FROM mimiciv_hosp.labevents le
  INNER JOIN agetbl
  ON le.subject_id = agetbl.subject_id
  WHERE itemid IN (51006) -- 血尿素氮 BUN
	AND age > 15  -- 一般认为15岁以上区别儿童比较有研究意义
)
SELECT bucket as blood_urea_nitrogen, count(*), age
FROM bun
GROUP BY bucket,age
ORDER BY bucket, age;

mimic数据库使用介绍:

MIMIC-IV,重症医学数据库介绍和使用说明

MIMIC数据库下载权限申请保姆级教程(上)

MIMIC数据库下载权限申请保姆级教程(下)

CITI 课程考试补充答案

​CITI 课程考试补充答案(二)

 

MIMIC数据库安装保姆级教程(上)

MIMIC数据库安装保姆级教程(下)

安装常见问题(一)

安装常见问题(二)

MIMIC-IV数据库安装常见问题(三)

MIMIC-IV数据库安装常见问题(四)

 

MIMIC数据库,常用查询指令SQL基础(一)

MIMIC数据库,常用查询SQL基础(二)

MIMIC数据库提取教程-提取某种疾病下的实验室指标

MIMIC数据库提取教程-提取某种疾病下的患者人口统计学指标

MIMIC数据库官方函数的安装与使用

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

【重要】 MIMIC数据集直接下载!

Python连接MIMIC-IV数据库并图表可视化

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

MIMIC-IV 数据查询加速教程

MIMIC数据提取教程 - 如何提取外科患者信息

MIMIC数据提取教程 - 提取患者首次入ICU数据

MIMIC数据提取教程 - 官方提供的时间函数(一)

MIMIC-IV数据分析 - 使用Python进行心脏病案例分析

MIMIC-IV数据分析 - 使用Python进行心脏病案例分析(二)

MIMIC-IV数据分析 - 使用R语言探索icustay_detail视图

MIMIC数据提取教程 - 如何提取患者入ICU后第一个WBC和SpO2值

MIMIC数据提取教程 - 如何提取患有肥胖症疾病的患者?

MIMIC数据提取教程 - 提取入住ICU第一天生命体征(血氧饱和度、血压、呼吸、体温)

MIMIC数据提取教程 - 提取血管紧张素受体阻滞剂(ARB)药物

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

MIMIC-IV-ED适合科研小白的安装方法(提供数据集下载)

MIMIC-IV-ED数据集介绍

MIMIC数据库, 使用Python研究万古霉素的剂量 (一)

MIMIC-IV数据库, 如何提取患者ICU生存时间?

MIMIC-IV官方视图解析 - cardiac_marker心脏标记表

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

MIMIC-IV官方视图解析-格拉斯哥昏迷评分(GCS)

浏览 (279)
点赞 (1)
收藏
评论