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

相关文章

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES