背景
2023年1月6日,MIMIC数据库官方发布了MIMIC IV NOTE数据库,该数据库包含了患者出院总结以及患者相关影像学资料,有利于完善疾病诊断方法和了解患者住院治疗过程。但其官方github代码库尚未公布MIMIC IV note数据表格的安装方法。为解决这一问题,本文编写相关creat.sql和load_7z.sql代码用于安装其数据库。
MIMIC NOTE数据形式
Note数据集共包含4个表格
安装目的
为了方便在Navicat中将Note数据表格与已存在MIMIC IV数据表格联动使用,需要将mimic_note作为新的数据SCHEMA存放在mimiciv数据库中。
安装流程
此处默认已完成MIMIC IV数据库的安装,postgresSql和Navicat的安装本文不再赘述。
##数据下载
登录https://physionet.org/content/mimic-iv-note/2.2/
下载相关数据
数据存放位置
在原mimiciv数据存放位置下建立一个新的名为note的文件夹,并将数据存放在该文件夹下。(注意,数据存放的文件夹命名一定要为note,否则需要修改后续load_7z.sql文件)
数据安装
打开
完成登录后,依次输入如下代码:
注意:creat.sql和load_7z.sql为本文设定的代码文件,具体代码在文章后附,需自行复制到文本中并存储为相关文件名
//连接mimiciv数据库
\c mimiciv;
//创建表格 (\i后面填写你电脑中creat.sql存放的位置)
\i C:/Users/Desktop/mimic-code-main/mimic-iv-note/creat.sql
//相关设置
\set mimic_data_dir 'E:/MIMIC/mimic-iv'
\encoding 'UTF8'
//复制文件 (\i后面填写你电脑中load_7z.sql存放的位置)
\i C:/Users/Desktop/mimic-code-main/mimic-iv-note/load_7z.sql
检查
打开navicat检查相关表格是否安装成功
相关代码
creat.sql
-------------------------------------------
-- Create the tables and MIMIC-IV schema --
-------------------------------------------
----------------------
-- Creating schemas --
----------------------
DROP SCHEMA IF EXISTS mimiciv_note CASCADE;
CREATE SCHEMA mimiciv_note;
---------------------
-- Creating tables --
---------------------
-- note schema
DROP TABLE IF EXISTS mimiciv_note.discharge;
CREATE TABLE mimiciv_note.discharge
(
note_id VARCHAR(25) NOT NULL,
subject_id INTEGER NOT NULL,
hadm_id INTEGER NOT NULL,
note_type CHAR(2) NOT NULL,
note_seq INTEGER NOT NULL,
charttime TIMESTAMP NOT NULL,
storetime TIMESTAMP,
text TEXT NOT NULL
);
DROP TABLE IF EXISTS mimiciv_note.discharge_detail;
CREATE TABLE mimiciv_note.discharge_detail
(
note_id VARCHAR(25) NOT NULL,
subject_id INTEGER NOT NULL,
field_name VARCHAR(255) NOT NULL,
field_value TEXT NOT NULL,
field_ordinal INTEGER NOT NULL
);
DROP TABLE IF EXISTS mimiciv_note.radiology;
CREATE TABLE mimiciv_note.radiology
(
note_id VARCHAR(25) NOT NULL,
subject_id INTEGER NOT NULL,
hadm_id INTEGER,
note_type CHAR(2) NOT NULL,
note_seq INTEGER NOT NULL,
charttime TIMESTAMP NOT NULL,
storetime TIMESTAMP,
text TEXT NOT NULL
);
DROP TABLE IF EXISTS mimiciv_note.radiology_detail;
CREATE TABLE mimiciv_note.radiology_detail
(
note_id VARCHAR(25) NOT NULL,
subject_id INTEGER NOT NULL,
field_name VARCHAR(255) NOT NULL,
field_value TEXT NOT NULL,
field_ordinal INTEGER NOT NULL
);
load_7z.sql
-----------------------------------------
-- Load data into the MIMIC-IV schemas --
-----------------------------------------
-- To run from a terminal:
-- psql "dbname=<DBNAME> user=<USER>" -v mimic_data_dir=<PATH TO DATA DIR> -f load_gz.sql
\cd :mimic_data_dir
-- making sure that all tables are emtpy and correct encoding is defined -utf8-
SET CLIENT_ENCODING TO 'utf8';
-- note schema
\cd note
\COPY mimiciv_note.discharge FROM PROGRAM '7z e -so discharge.csv.gz' DELIMITER ',' CSV HEADER NULL '';
\COPY mimiciv_note.discharge_detail FROM PROGRAM '7z e -so discharge_detail.csv.gz' DELIMITER ',' CSV HEADER NULL '';
\COPY mimiciv_note.radiology FROM PROGRAM '7z e -so radiology.csv.gz' DELIMITER ',' CSV HEADER NULL '';
\COPY mimiciv_note.radiology_detail FROM PROGRAM '7z e -so radiology_detail.csv.gz' DELIMITER ',' CSV HEADER NULL '';