MIMIC数据提取教程 - 提取入住ICU第一天生命体征(血氧饱和度、血压、呼吸、体温)
数据源:mimiciv数据库2.2版本
一、MIMIC数据库的subject_id,hadm_id,stay_id
- subject_id(患者标识符):这是用于唯一标识数据库中每个患者的数字标识符。(身份证)
- hadm_id(医院入院事件标识符):这是用于唯一标识每次患者进入医院的事件的数字标识符。一个患者可能有多次入院,每次入院都有一个唯一的hadm_id。通过hadm_id,可以检索与特定入院事件相关的信息,如诊断、治疗记录等。(住院号)
- stay_id(医院住院事件标识符):stay_id用于唯一标识患者在医院内的每个连续住院事件。在某些情况下,一个hadm_id可能对应多个stay_id,表示患者在医院期间可能经历了多个不同的住院事件。(进入ICU住院的ICU识别号)
- 总结一下,通俗来讲,subject_id对应的就是我们的身份证号,每个患者只有唯一一个subject_id,hadm_id对应的就是医院住院号,患者可以每次就诊时注册不同的hadm_id,stay_id是只有患者住院期间入住ICU才有stay_id,每次进入ICU住院stay_id号可以不一样。(患者有且只有一个subject_id,而subject_id可以对应多个hadm_id,也可以对应多个stay_id)
上面这幅图,表示同一个病人(subject_id=16391076)多次住院,每次住院注册了不同的hadm_id,然后住院期间进入了icu使用了不同icu识别符号(stay_id分别有38690181,35392191)。
二、初步筛选出符合某个疾病(高血压性心脏病)诊断的subject_id,hadm_id,stay_id
在mimic_hosp文件夹里面找到d_icd_diagnose表
我们可以看到d_icd_diagnoses表(Diagnosis ICD Codes)包含有关国际疾病分类(International Classification of Diseases,ICD)的诊断代码的信息。
这个表主要用于存储诊断代码及其对应的描述信息。以下是该表包含的一些列(columns)及其解释:
包含国际疾病分类(ICD)第9版和第10版的诊断代码。icd_code一定要读取为字符串,因为开头为0是有意义的,若读取为数值会有重复,如01622和1622代表不同疾病。
- icd_code(ICD代码):这是国际疾病分类系统中的诊断代码。ICD代码是一种标准化的医学编码系统,用于识别医学诊断和程序。
- icd_version(国际诊断编码版本):主要是icd_code不同的诊断代码版本,在mimic数据库中有9和10版本
- long_title(详细标题):包含ICD代码的详细描述或标题,通常提供更详细的信息,以便更好地理解该诊断。
为了方便查询我们可以把long_title翻译一下,新建一个自己的表
需要的同学可以直接后台回复【d_icd_cn】获取已经翻译好的文件,导入到数据库
导入方法:我们以public数据库为例,点击tables,再点击import wizard
选择csv file, 再点击next
选择add file, 添加d_icd_cn文件
一路next, 最后start, 就导入进来了
三、高血压性心脏病
以高血压性心脏病为例,在d_icd_diagnose表中找到符合高血压性心脏病的icd_code,并放work数据库下的d_icd_Hypertensive_heart_disease中
代码解释:
- SELECT d.*: 从表 d_icd_diagnoses 中选择所有列(*表示所有列)
- from mimiciv_hosp.d_icd_diagnoses d : 从名为 mimiciv_hosp 的数据库中的表 d_icd_diagnoses 中选择数据,并将其别名为 d
- WHERE d.long_title LIKE '%Hypertensive heart disease%': 对选定的行进行筛选, 只选择那些 long_title 列中包含字符串 'Hypertensive heart disease' 的行。
- LIKE 是一个模糊匹配操作符,% 表示任意字符的任意次数。
- 请大家记住这个用法,LIKE '%Hypertensive heart disease%'表示只要是高血压性心脏病的诊断都能查出来,例如上面代码可以将原发性高血压性心脏病或继发性高血压心脏病或其他原因高血压性心脏病等符合诊断的icd_code查询处理。
这个类似问题详细解释可以看前面的文章, 其中有用中文查询疾病的示例
四、 找到符合诊断的icd_code代码后,链接diagnoses_id表,提取符合高血压性心脏病诊断的病人信息(subject_id,hadm_id)
在mimiciv_hosp文件夹里面找到diagnoses_id表
将d_icd_Hypertensive_heart_disease表中的icd_code与diagnoses_id表中的icd_code进行链接,提取符合高血压性心脏病病人的subject_id,hadm_id,并放入表subject_id_Hypertensive_heart_disease中
五、 高血压性心脏病哪些人入住icu
链接mimic_derived文件夹里面的icustay_detail表就可以了
关于icustay_detail表的探索,可以看这篇文章 MIMIC-IV数据分析 - 使用R语言探索icustay_detail视图
六、 提取入住icu的高血压性心脏病病人的检验指标、生命体征(以白细胞为例)
我们利用blood_differential、chemistry、enzyme、vitalsign等视图,配合常用的查询语句,便可以提取患者在每次入院时,整个住院过程中的实验室或者生命体征指标
类似文章可查看前文: MIMIC数据提取教程 - 如何提取患者入ICU后第一个WBC和SpO2值
有些同学说自己没有blood_differential、chemistry、enzyme表,那么你需要安装官方视图:
MIMIC-IV数据库衍生表格mimic_derived配置和使用
打开mimic_derived文件夹里面的blood_differential表
在blood_differential表中可以看到有白细胞的信息,使用通式代码进行链接即可,并将白细胞放在表wbc_icu_hypertensive_heart_disease
七、 提取入住ICU第一天生命体征(血氧饱和度、血压、呼吸、体温)
打开mimic_derived文件夹里面的表first_day_vitalsign
这个表是由官方代码 mimic-iv/concepts_postgres/firstday/first_day_vitalsign.sql生成
MIMIC-IV的first_day_vitalsign视图提供了患者第一天测量的生命体征指标的最小、最大值与平均值
生命体征指标视图所涵盖的指标
SQL SELECT INTO 语句
通过 SQL,您可以从一个表复制信息到另一个表。
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
关注公众号, 【科研收录】