原文: 《Assessing Different Diagnoses in MIMIC-IV v2.2 and MIMIC-IV-ED Datasets》
关注公众号【科研收录】, 发送“addim”获取原文

摘要
本研究旨在揭示重症监护医疗信息集市 (MIMIC) 数据集中列出的不同诊断的一些重要见解。该数据集包括来自不同背景、种族、人口统计等的患者。诊断记录使用 ICD-09 和 ICD-10 代码以电子方式存储。研究发现,大多数患者至少被诊断过一次原发性高血压及其他相关疾病。
关键词: MIMIC, ICU, Hypertension, Emergency Department, Data mining
介绍
由于危重症患者需要持续的监测,重症监护病房(ICU)是一个数据丰富的环境。研究人员被吸引到ICU环境,因为ICU患者疾病的经常急性性质和早期干预的要求。有许多公开的重症监护数据集使这个领域的研究成为可能,这是独特的。这些举措主要基于模拟[1]和一个波形数据库,其中包括从90多名患者的纸质记录中数字转录的人口统计信息。
本研究研究了mim-iv2.2[2]和mim-iv ED [3]。MIMIC-IV起源于两个住院数据库系统:一个定制的全医院电子健康记录(EHR)和一个特定于重症监护病房(icu)的临床信息系统。
MIMIC-IV的开发包括三个步骤:
- 获取:从各自的医院数据库中对贝斯以色列女执事医疗中心(BIDMC)急诊科或任何重症监护病房的患者进行数据提取。建立了一份全面的主患者名单,包括2008年至2019年期间ICU或急诊入院病例对应的所有病历号码。然后过滤源表,使其只包括主患者列表[2]中与患者相关的记录。
- 准备工作:对数据进行重组,以加强回顾性数据分析。这涉及到将表反规范化、删除审计跟踪以及将其重组为更精简的表集。该程序的主要目的是简化对数据库的回顾性分析。值得注意的是,为了维护真实世界的临床数据集[2]的表示,我们故意省略了数据清理程序。
- 身份识别:根据《健康保险可携性和责任法案》(HIPAA)的规定,患者标识符被取消。随机密码用于替换患者标识符,从而确定患者、住院时间和ICU住院时间的整数标识符。使用查找表和允许列表进行了结构化数据的过滤。如果需要,将应用自由文本去识别算法从自由文本中删除个人健康信息(PHI)。此外,日期和时间被任意地转移到未来,以天为单位测量偏移量。每个患者的ID(例如,受试者ID)都被分配了一个唯一的日期转移,以确保单个患者数据的内部一致性。例如,如果是用时间来做的原始数据的两个测量之间为4小时,mimic-iv的计算时间差也为4小时。然而,患者在时间上没有可比性,这意味着2130名住院的两名患者不一定在同一年入院。在这三个阶段之后,数据库被导出为基于字符的公共分隔格式。
- MIMIC-IV-ED是一个大型的、可公开访问的贝斯以色列女执事医疗中心急诊科从2011年至2019年的入院情况数据库。

- 在数据库中,有422,500个ED停留。生命体征、分诊信息、药物和解、药物交付和出院诊断均可获得[3]。
- 为了符合《健康保险可携性和责任法案》(HIPAA)的安全港要求,所有数据都将被识别。MIMIC-IV-ED旨在促进大量的教育和研究努力。在拥挤的急诊科(ED)对患者进行评估和优先进行进一步护理。ED患者的严重程度从轻微的损伤延伸到潜在的致命心脏病。急诊科(ED)本质上是一个资源有限的环境,在这里,最宝贵的资源,人力关注,以实现积极的病人结果。算法方法的最新进展为改善急诊科的护理提供了一个令人兴奋的机会。数据驱动的研究需要大型数据集,而开放的数据访问有助于研究的复制。
背景研究
ICU是重症监护病房,许多高血压患者入院。心力衰竭(HF)和高血压的合并是导致医院死亡的主要原因,特别是在重症监护病房(ICU)患者中。然而,在密集的工作压力下,ICU产生的大量临床信号很容易使医务人员不堪重负,导致治疗延误、护理欠佳,甚至是不正确的临床决策。个体风险分层对于ICU心衰和高血压患者的管理至关重要。人工智能,特别是机器学习(ML),可以为这些患者的[4]产生优越的预后模型。
数据洞察(R语言代码复现)
表1显示了至少一次特定ICD代码的患者数量。它显示了患者在入院时接受的首次诊断。很明显,许多患者在整个随访期间被诊断为不同的疾病。但在这里,只有首次诊断的报告。大约5万名患者在入院期间至少有一次被诊断为未指明的原发性高血压。

实现SQL :

这里我们可以把得到的数据存到我们自有的work数据库里面,方便我们后面操作
-- 计算不同诊断码对应的病人数量,并从高到低排序(取前20)
CREATE TABLE WORK.d_icd_diagnoses_count AS (
SELECT
did.icd_code AS "ICD code",
did.long_title,
COUNT ( DISTINCT subject_id ) AS "Totalpatients"
FROM
mimiciv_hosp.diagnoses_icd di
LEFT JOIN mimiciv_hosp.d_icd_diagnoses did ON di.icd_code = did.icd_code
GROUP BY
did.icd_code,
did.long_title
ORDER BY
COUNT ( DISTINCT subject_id ) DESC
LIMIT 20
)


图1显示了一个相同的信息图表。

我们来看看这个表怎么绘制, 可以有两种选择
- R语言的ggplot2 库
- python语言的matplotlib库, 看图片风格是这个matplotlib
但是我们今天用ggplot2, 因为很多同学对R语言更感兴趣

生成packing数据
library("RODBC") library("odbc") library("RPostgres") library("packcircles") require("ggplot2") con <- dbConnect(RPostgres::Postgres(),dbname="mimiciv",port = 5432,user = "postgres", password = "mimic", host="10.241.148.228")
data = dbGetQuery(con, "select * from work.d_icd_diagnoses_count")
#生成布局。此函数返回一个数据帧,每个气泡一行。
#它给出了它的中心(x和y)和半径,与值成比例
packing <- circleProgressiveLayout(data$Totalpatients, sizetype='area')

合并数据
# 我们可以将这些包装信息添加到初始数据帧中
data <- cbind(data, packing)



绘制圆形包装图 packed bubble
# 绘图 make the plot ggplot() + # 圆形包装图 Make the packed bubbles geom_polygon(data = dat.gg, aes(x, y, group = id, fill=as.factor(id)), colour = "black", alpha = 0.6) + # 在每个气泡的中心添加文本+控制其大小 geom_text(data = data, aes(x, y, size=Totalpatients, label = long_title)) + scale_size_continuous(range = c(1,2)) +
常用主题
theme_void() +
theme(legend.position="none") +
coord_equal()


这里使用的是packed bubble图表, 关于它的介绍可以访问:ggplot2 - Basic circle packing chart with one level 基本的一层圆形包装图

调试小技巧, 输入data$时候r-studio会提示你的数据有哪些字段

表2提供了关于急诊科数据库(MIMIC-IV-ED)的见解。然而,除少数诊断外,这些诊断并不遵循表1的诊断顺序。高血压在这两个表格中都是首位,因为似乎有非常不成比例的患者被诊断为高血压

MIMIC-IV-ED数据表

图二

未完, 阅读全文点击这里:
文献分享和R语言复现:评估 MIMIC-IV v2.2 和 MIMIC-IV-ED 数据集中的不同诊断
文中提供代码下载