我们知道患者入院信息主要在mimiciv_hosp.patients表 和 mimiciv_icu.icustays表
- subject_id: subject_id 是指定单个患者的唯一标识符。与单个 subject_id 关联的任何行都属于同一个人。由于 subject_id 是表的主键,因此每行都是唯一的。
- Gender: 性别是患者的基因型性别
- anchor_age, anchor_year, anchor_year_group:
这些列提供有关患者入院的实际患者年份以及患者当时的年龄的信息。
- anchor_year 是患者的转移年份。
- anchor_year_group 是一个年份范围 - 患者的anchor_year发生在此范围内。
- anchor_age 是anchor_year 中患者的年龄。如果患者的anchor_age在anchor_year中超过89岁,那么他们的anchor_age将设置为91,无论他们的实际年龄有多大。
- 示例:患者的anchor_year为2153,anchor_year_group为2008 - 2010,anchor_age为60。
- 患者的 2153 年对应于 2008 年、2009 年或 2010 年。
- 患者在2153年的转移年份是60岁,即他们在2008年、2009年或2010年是60岁。
- 2154 年入院的患者将发生在 2009-2011 年,2155 年入院的患者将发生在 2010-2012 年,依此类推。
icustays表:该文件记录了患者在重症监护室(ICU)的留观信息。
- subject_id:患者的唯一标识符。
- hadm_id:入院号,表示患者的住院标识符。
- stay_id:留观号,指患者在医院中的留观期间的唯一标识符。
- first_careunit:首次护理单元,表示患者在住院期间所在的第一个护理单元。
- last_careunit:最后护理单元,表示患者在住院期间所在的最后一个护理单元。
- intime:入院时间,指患者入院的时间。
- outtime:出院时间,表示患者出院的时间。
- los:住院天数,表示患者在医院中的住院天数。
这里, EXTRACT(EPOCH FROM pa.dod - icu.intime)/(60*60*24) AS survive_time 可以用
,mimiciv_derived.datetime_diff(pa.dod, icu.intime, 'DAY') AS survive_time 替代
关于这种时间函数的使用可以查看MIMIC数据提取教程 - 官方提供的时间函数(一)
我们来看查询出来的数据:
这里的负值应该是有问题, 不可能入icu前就去世了,还有入icu时间
我们来查看下官方关于这个问题的解释:
Error in MIMIC-IV-v2.0 dod record · Issue #1346 · MIT-LCP/mimic-code
首先,由于 dod 是一个日期,因此您必须小心由于从日期时间中减去日期而导致的明显“负”生存,例如 对于 subject_id 19936081 和stay_id 39984717,他们的 intime 是 24 日,他们的 dod 是 24 日,但计算出来的 days_survived 是 -0.72。 相反,您可以通过将 intime 转换为日期来进行日期算术:
修复方法: