详述 MIMIC 数据库26张数据表(一)

本文介绍了MIMIC-III数据库的26张数据表,分为字典表、患者基本信息表、患者细化信息表和其他信息表四类。字典表包括疾病编码信息;患者基本信息表涵盖性别、出入院信息等;患者细化信息表涉及疾病诊断、实验室检测和手术信息;其他信息表包含与患者相关或关联性较弱的数据。文章详细解析了各表的用途和特点,如CPT编码、DRG分类和不同重症监护信息系统的数据存储差异。

MIMIC-III每张表格在官网(https://mimic.mit.edu/docs/iii/tables/)都有介绍,作者按照自身理解和实验要求对26张数据表进行整理归纳并进行介绍。

一、数据表简介

      本文将26张数据表分成四类,每一个类别中包含1至更多张基本表。

      1.1 字典表类型(5

      字典表类型主要是以D开头编码的表,这类表格主要显示了电子病历编码系统的疾病编码信息、实验室检测信息等编码表示内容。

     举例:在疾病编码表中,“0020”为伤寒。那么在diagnosed_icd表中,某一患者的icd9_code为0020。即表示这位患者,患有“伤寒”。在MIMIC数据库中,共存在五类编码基本表。其具体含义和名称见下表。

英文名称

中文名称

MIMIC 数据库中提取数据通常涉及使用结构化查询语言(SQL)以及数据库管理工具。MIMIC 数据库个大型的、公开的重症监护医学数据库,包含丰富的患者临床数据。以下是几种常用的数据提取方法和工具: ### 数据抽取方法 #### 1. **使用 SQL 查询语句** SQL 是从 MIMIC 数据库中提取数据的主要方式。通过编写 SQL 查询语句,可以针对特定的或多个进行数据筛选、连接和聚合操作。 - **筛选特定诊断的患者** 例如,查找 `d_icd_diagnoses` 中以 "Tub" 开头的诊断: ```sql SELECT * FROM mimiciii.d_icd_diagnoses WHERE long_title LIKE 'Tub%'; ``` 同样可以使用 `LIKE` 运算符查找包含特定字符串的诊断,如含有 "pne" 的诊断: ```sql SELECT * FROM mimiciii.d_icd_diagnoses WHERE long_title LIKE '%pne%'; ``` - **筛选特定药物处方** 例如,查找所有与 "Quetiapine" 相关的处方记录: ```sql SELECT * FROM prescriptions WHERE drug LIKE '%Quetiapine%'; ``` - **筛选特定时间范围内的数据** 例如,查找特定时间段内使用的药物: ```sql SELECT * FROM prescriptions WHERE startdate BETWEEN '2001-01-01' AND '2010-12-31'; ``` - **使用通配符进行复杂匹配** 例如,查找 `long_title` 中第二个和第三个字符为 "ul" 的记录: ```sql SELECT * FROM mimiciii.d_icd_diagnoses WHERE long_title LIKE '_ul%'; ``` #### 2. **多连接查询** MIMIC 数据库包含多个,通常需要通过连接操作来获取完整的患者信息。例如,将患者的基本信息 `patients` 与住院信息 `admissions` 连接: ```sql SELECT p.subject_id, a.hadm_id, a.admittime FROM mimiciii.patients p JOIN mimiciii.admissions a ON p.subject_id = a.subject_id; ``` #### 3. **使用子查询** 子查询可以用于从个查询的结果中进步提取数据。例如,查找所有住院期间使用过 "Metoprolol" 的患者: ```sql SELECT DISTINCT subject_id FROM prescriptions WHERE drug LIKE '%Metoprolol%'; ``` --- ### 数据抽取工具 #### 1. **Navicat** Navicat 是个流行的数据库管理工具,支持多种数据库系统(如 PostgreSQL、MySQL)。它可以用于连接 MIMIC 数据库,并通过图形界面执行 SQL 查询、导出数据等操作。用户可以通过 Navicat 编写复杂的 SQL 查询语句,并将结果导出为 CSV、Excel 等格式[^2]。 #### 2. **PostgreSQL 命令行工具** MIMIC 数据库通常部署在 PostgreSQL 上,因此可以直接使用 PostgreSQL 的命令行工具(如 `psql`)进行数据提取。通过命令行,用户可以执行 SQL 脚本、导出查询结果到文件等操作。 #### 3. **Python(Pandas + SQLAlchemy)** Python 是个强大的数据分析工具,结合 `pandas` 和 `SQLAlchemy` 库,可以从 MIMIC 数据库中提取数据并进行进步处理。例如: ```python import pandas as pd from sqlalchemy import create_engine # 创建数据库连接 engine = create_engine('postgresql://username:password@localhost:5432/mimic') query = "SELECT * FROM prescriptions WHERE drug LIKE '%Mannitol%';" # 执行查询并将结果存储为 DataFrame df = pd.read_sql(query, engine) ``` #### 4. **R(DBI + dplyr)** R 语言也可以用于从 MIMIC 数据库中提取数据。结合 `DBI` 和 `dplyr` 包,可以轻松地执行 SQL 查询并进行数据分析。例如: ```r library(DBI) library(dplyr) # 创建数据库连接 con <- dbConnect(RPostgres::Postgres(), dbname = "mimic", user = "username", password = "password", host = "localhost") # 执行查询 result <- dbGetQuery(con, "SELECT * FROM prescriptions WHERE drug LIKE '%Hypertonic%';") ``` --- ### 数据分析与可视化 #### 1. **数据分析** 提取数据后,可以使用 Python 或 R 进行统计分析、生成摘要报告等。例如,计算某类药物的平均使用天数: ```python df['duration'] = (pd.to_datetime(df['enddate']) - pd.to_datetime(df['startdate'])).dt.days + 1 average_duration = df['duration'].mean() ``` #### 2. **数据可视化** 使用 `matplotlib` 或 `seaborn`(Python)以及 `ggplot2`(R)等库,可以对提取的数据进行可视化分析。例如,绘制某类药物的使用频率分布图: ```python import matplotlib.pyplot as plt import seaborn as sns sns.countplot(data=df, x='drug') plt.xticks(rotation=90) plt.show() ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Foneone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值