我在前一期介绍了MIMIC-IV的临床及影像资料获取教程,公共数据库MIMIC-IV申请与部署全流程-1。许多小伙伴已经拿到了数据,下面我们继续详细分享数据库本地如何部署。本文内容超长,Sql部署全部代码,一键数据库分析工具见文末福利。
MIMIC-III数据库收集了BIDMC医院2001年6月至2012年10月期间,收治的53,423例成年患者数据,以及2001年至2008年间收治的7,870例新生儿重症患者数据。MIMIC-IV数据库在MIMIC-III成年患者数据的基础上做了诸多改进,包括数据的更新与部分表格的重构。MIMIC-IV数据库收集了2008至2019年间BIDMC医院收治的超过19万名患者和45万次住院记录,涵盖了详细的临床数据,如人口统计信息、实验室检查结果、用药情况、生命体征、手术操作、疾病诊断、药物管理和随访生存状态等。
我将流程1攻略提供的官网素材或公众号百度网盘数据下载的MIMICIV数据压缩文件(临床文件与note文件)在解压后,都放在了D:/MIMICIV文件夹下。
下图中展示如何通过代码进行数据库部署:
“1号文件 mimic-iv:Github下载的MIMIC IV临床数据部署脚本压缩包,解压后,单独拿出该文件夹
2号文件 mimic-iv-3.1:MIMIC IV 3.1版本的临床数据压缩包,直接解压
3号文件 mimic-iv-note:Github下载的MIMIC IV影像学检查部署脚本压缩包,解压后,单独拿出该文件夹
4号文件 note数据:MIMIC版本的影像学检查数据压缩包,解压后单独拿出该文件夹
0?? 登陆SQL管理软件
首先,我们需要在SQL Shell (psql)中输入一系列命令进行数据库的初始化。打开SQL Shell (psql),按4下回车键(或者一直按回车键,看到口令出现时),输入密码。注意:输入时密码不可见。输入密码后,再一次按回车键,进入数据库部署界面。注意:SQL语言Win系统下路径的分割符号是“/”,此外,还要注意检查路径是否出现空格。 注意,每次进入软件都需要重复以上步骤。
1?? 初步构建mimiciv
Sql部署全部代码见文末福利。出现COPY就代表已经开始成功部署了。
2?? 构建索引视图
为了提高数据库的查询效率,建议在加载完成后安装索引视图。 -- 关闭 重启(也可以不重启,但是可能会出现乱码) -- 重启需重新连接mimiciv数据库,重复4次回车。 \c mimiciv; set search_path to mimiciv; -- 加载完成后,建议安装索引以提高对数据库的查询速度 \i 'D:/MIMICIV/mimic-iv/buildmimic/postgres/index.sql'
3?? 建立数据库物化视图
通过建立物化视图(Navicat软件中称实体化视图),我们可以将sql脚本查询的结果存入本地数据库,以便后续的管理。 在你的命令文件夹中,打开命令提示符(cmd)进行操作。从文件夹路径栏输入cmd并按回车,进入命令行界面。
“-- 访问数据库 psql -U postgres -p 5432 –-此后输入密码 --连接到 mimiciv 数据库并运行物化视图创建脚本 \c mimiciv; set search_path to mimiciv; -- 生成函数 \i 'postgres-functions.sql' -- 视图 \i 'postgres-make-concepts.sql'
4?? 建立note视图(影像检查数据)
最后,我们构建影像学相关的视图。
“-- 重启需重新连接mimiciv数据库 \c mimiciv; set search_path to mimiciv; --创建表格 (\i后面填写你电脑中creat.sql存放的位置) \i 'D:/MIMICIV/mimic-iv-note/buildmimic/postgres/create.sql' -- 以下是note文件所在路径 \set mimic_data_dir 'D:/MIMICIV/note' \i 'D:/MIMICIV/mimic-iv-note/buildmimic/postgres/load_7z.sql'
根据计算机配置的不同,执行以上操作可能需要几个小时,甚至更长时间,请耐心等待。确认部署成功部署完成后,打开 pgAdmin 4,在左侧的 Schemas 栏下找到 mimiciv,查看是否成功部署了数据库。比如,在 mimiciv_hosp 下,若 Tables 栏下出现多张数据表,则说明部署成功。此时,你就可以开始检索并导出感兴趣的数据了。
5?? 特定疾病患者的数据提取
下面是一个提取同时患有肺栓塞和糖尿病的患者数据的案例。
打开 pgAdmin 4,点击代码编辑器界面。 输入以下查询语句,提取患有肺栓塞且糖尿病患者的数据:
-- 合并症提取方法
-- y1是肺栓塞的名单
with y1 as (
SELECT d.subject_id, d.hadm_id
FROM mimiciv_hosp.diagnoses_icd d
WHERE d.icd_code in ('41519', 'I2699', '41511', '41512', 'I2692', 'I2690', '41513', 'I2609', 'I2602', 'I2693', '67382')
),
-- -- y2是第二次入肺栓塞的名单
y2 as (
SELECT y1.subject_id, y1.hadm_id
FROM y1
INNER JOIN mimiciv_derived.icustay_detail i
ON y1.subject_id = i.subject_id
AND y1.hadm_id = i.hadm_id
WHERE i.first_icu_stay in ('t')
),
-- -- y3是是否患有2型糖尿病的名单(图片中的表格第三列1表示是,其他情况表示否)
y3 as (
SELECT d.subject_id, d.hadm_id,
CASE WHEN d.icd_code is not null THEN 1
ELSE 0
END AS Diabetes
FROM mimiciv_hosp.diagnoses_icd d
--糖尿病的ICD编码,都是E11开头
WHERE d.icd_code like 'E11%'
)
SELECT y2.subject_id, y2.hadm_id, y3.Diabetes
FROM y2
LEFT JOIN y3
ON y2.subject_id = y3.subject_id
AND y2.hadm_id = y3.hadm_id
点击运行按钮 ?。完成查询后,可以点击↓下载按钮,将查询的完整结果以 CSV 格式导出。
至此,我们已完成 MIMIC-IV数据库的视图创建及数据提取过程。希望这篇文章能帮助大家顺利部署数据库,并高效地提取所需的数据。对于更复杂的查询或其他定制需求,大家可以继续参考官方团队在Github上分享的sql脚本或其他相关教程。
通过mimic推文1和2,大家已经可以完美的运行数据库,但是提取数据需求SQL语法,当然你也可以利用R对接SQL数据库。不过最容易实现的工具是定制的针对MIMIC-IV的一键获取与分析工具,BDMCC软件(找聂老师有优惠)。
BDMCC目前更新了更多的功能,下面是常规功能展示,实际功能不限于此。
部署代码见123456群内分享。一键数据库与分析软件,原价3800元 BDMCC软件。