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

2024-02-01 20:36

本文主要是介绍MIMIC-IV数据库, 如何提取入院患者生存时间?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们知道患者入院信息主要在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 转换为日期来进行日期算术:

修复方法:

当我们进行此计算时,我们会看到:

3 名入住 ICU 的患者的死亡日期距其入住 ICU 时间已超过 1 年。 显然是错误的,可能是由于概率联系(您可以在“院外死亡率”部分的论文中信息 - https://www.nature.com/articles/s41597-022-01899-x )

3 入住 ICU 的患者的死亡日期为入住 ICU 前 1 天。 这些看起来也是错误的,但可能只是错误地记录了原始死亡日期数据

上面的查询中未显示,但还有大约 30 名左右的患者的 dod 与 ICU 入院日期相同,但发生在超时前一两天

我想说,总的来说,在跨数据库链接 60,000 多条记录时,您只需要预料到会出现一些错误。 由于数量很少,因此调查他们的记录(图表或通过注释)以弄清楚到底发生了什么,并更正查询中的数据应该是相当合理的。
也许我们可以将这一列及其更正添加到 icustay_detail 查询中?  https://github.com/MIT-LCP/mimic-code/blob/main/mimic-iv/concepts/demgraphics/icusay_detail.sql

于是我就去mimiciv_derived.icustay_detail去确认, 很遗憾, 没修复! 哈哈

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-IV数据库, 如何提取入院患者生存时间?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668391

相关文章

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora