MIMIC数据库申请、导入、结构关系及查询
2018-11-09宋伟伦田国祥柳青青耿辉王雪吕军
宋伟伦,田国祥,柳青青,耿辉,王雪,吕军
众所周知,ICU在医院处于十分特殊的重要地位,承担着重病患者的救治工作,其诊疗水平也是现代衡量医院水平的重要指标之一[1-3]。目前,重症医学诊疗与循证医学相结合取得了大量研究成果并应用于临床,循证医学与重症医学诊疗相结合也是未来发展方向的必然趋势[4]。重症医学诊疗与循证医学的研究必须要基于大量的临床诊疗信息数据,而ICU临床医务工作者的工作繁忙,没有大量时间和精力去收集整理完整的诊疗信息。为解决这一科研痛点,方便医务工作者进行科研工作,在美国国立卫生研究院的资助下,由美国麻省理工学院计算生理学实验室、贝斯以色列迪康医学中心以及飞利浦医疗共同发布的MIMIC(Medical Information Mart for Intensive Care)数据库收集整理了2001年~2012年期间住在贝斯以色列迪康医学中心重症监护室共计4万余名真实患者的临床诊疗信息[5,6],很好地解决了临床医务工作者苦于无大量系统临床诊疗数据进行科研研究的现状。MIMIC数据库不断更新,目前最新发行版本为MIMIC-Ⅲ v1.4[7-9]。MIMIC-Ⅲv1.4数据库的患者信息来自两套不同重症监护信息系统:Philips CareVue临床信息系统和IMDSoft MetaVision ICU系统。2001年~2008年使用Philips CareVue临床信息系统,跟踪患者时间最短为4年;2008~2012年使用IMDSoft MetaVision ICU系统,跟踪患者的时间最短为90 d[10-12]。在github平台上(网址:https://github.com/MIT-lcp/mimiccode)有分析患者特征的开源代码包,可供全球的研究者免费下载使用,当发现有bug或有改进之处时,可自行修改,随后还可以pull request,当平台merge后,即可成功向全世界分享自己修数据库对重症医学、循证医学、临床大数据挖掘、医疗监测设备数据分析等领域的研究具有巨大的支撑作用,且目前已经取得丰硕成果[13,14]。
1 MIMIC数据库申请、导入
要想获得MIMIC数据库的使用权限,必须先进行申请,通过后才可下载数据,下载后的数据集是26个CSV表格,查看时需安装PostgreSQL、SQLserver、Oracle等数据库管理系统,本文使用的PostgreSQL与官网一致;为了可视、直观、方便、快速的查看查询数据,可安装数据库管理工具Navicat对数据库进行管理。导入26张CSV表格后会发现数据库里有40张表格,这是由于表chartevent的内容又被拆分为14张表格:chartevents_1-chartevents_14中,这14张表格不可用于查询。关于MIMIC数据库申请、安装过程在官网上有详细的英文教程,本文给出网址,读者可自行查阅(表1);中文网站上也有详细的教程,网址见表2。
表1 官网英文教程
表2 中文教程
MIMIC-Ⅲ数据库基于关系模型,拥有26张CSV表格,关系型数据库的核心是关系,在运用MIMIC-Ⅲ数据库进行临床研究之前,务必了解数据库中每张表的含义、表中字段、表格之间的关系结构等信息。下面将从表总体说明、表关系模式、表关系说明三方面对MIMIC-Ⅲ数据库进行介绍。
2.1 表的总体说明MIMIC-Ⅲ数据库拥有26张CSV表格,按照表格信息来源和用途目的,可将其分为四类:患者住院信息、患者ICU的临床诊疗信息、患者门诊诊疗信息、字典信息。数据库中表的分类及每张表的描述(表3),数据库中常用术语缩写名称解释表如表4所示。
种类 表名 描述患者住院信息 admissions 患者出入院信息callout 患者离开ICU信息icustays 患者入住ICU信息patients 患者个人基本信息services 患者在院期间接受服务信息transfers 患者院内周转信息患者ICU的临床诊疗信息caregivers 医护人员类型信息chartevent 患者住院期间的图表信息datetimeevents 患者在ICU期间检查项目日期信息inputevents_cv 使用CareVue监护系统记录的入量信息inputevents_mv 使用Metavision监护系统记录的入量信息noteevents 患者文书资料outputevents 患者在ICU期间液体出量信息procedureevents_mv使用Metavision监护系统记录患者手术过程患者门诊诊疗信息 cptevents 患者接受医疗服务过程,用CPT代码记录diagnoses_icd 患者住院期间的诊断过程,用ICD-9代码记录drgcodes 相关诊断组(用于医院计费)labevents 患者化验检查结果microbiologyevents患者微生物检查结果prescriptions 患者用药记录procedures_icd 患者手术过程,用ICD-9码记录字典信息 d_cpt 医疗服务代码索引d_icd_diagnoses 诊断ICD-9代码字典d_icd_procedures 手术记录ICD-9代码字典d_items 除化验的ITEMID代码字典d_labitems 化验ITEMID代码字典
2.2 表的关系模式不同表中出现频率高并且代表意义相同的字段在这里统一进行说明:row_id表示行号,用来记录数据个数;subject_id表示患者识别号,此号用来标识患者,并且与患者一一对应,一个患者只能拥有一个subject_id,相当于身份证号;hadm_id表示住院号,患者可能多次住院,每次住院的住院号不同,因此,一个subject_id号会对应多个hadm_id号;icustay_id表示入住ICU识别号,患者每次入住ICU会产生一个icustay_id号,在一次住院期间患者可能会在普通病房和ICU之间周转,因此一个hadm_id号可能会对应多个icustay_id号;cgid表示医护人员类型。数据库中的数据可分为两类:静态和动态。静态数据是固定不变的,数据不会随时间变化而变化,如患者的出生日期是永不改变的;动态数据是会改变的,数据会随时间变化而变化,如在不同时刻测量患者的血压值是不同的,不会是一个定值。数据库中只有patients、admisions、icustays三个表中含有静态数据,其静态字段如表5所示,其余字段均为动态数据。
表4 常用术语缩写名称解释
表5 静态字段
2.3 表的关系说明打开网页https://mit-lcp.github.io/mimic-schema-spy/relationships.html,如图1所示,可查看表与表之间的父子关系,表与表之间有关联就会用带有箭头圆圈的线段相接,箭头圆圈一端是子表,另一端是父表,线段两端所对应的字段相同,在父表中的是主键,在子表中的是外键,通过这个字段将父表和子表连接在一起。
3 MIMIC数据库查询
双击Navicat Premium图标打开软件(图2),点击右上角连接,在下拉菜单中点击PostgreSQL。随后弹出的PostgreSQL-新建连接窗口中输入连接名和密码(注意:连接名可任意填写,但密码必须与用户名密码一致),如图3所示,双击左上角用户名(本示例中设置的用户名为Jack Song)。随后在弹出的窗口输入密码即可进入数据库(图4)。
图1 表关系
图2 【连接】菜单
图3 【新建连接】对话框
点击用户名Jack Song(图5),即可看到mimic数据库,点击mimic,点击public,即可看mimic数据库所包含的表格,点击需要查看的表格即可看到当中的数据。例如点击admisssions,里面的数据即可显示(图6)。
点击查询(图7),随后点击新建查询。点击查询创建工具(图8),右下角显示框里显示基本SQL查询语句SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT,可以在其后点击添加相应的字段名、表名、常量等,在查询编辑器中会自动生成代码,若使用其它SQL语句,需要在查询编辑器中编写。
点击运行按钮(图9),可看到查询结果,点击运行按钮左侧的“三横杠”按钮,在弹出的菜单中,点击“文件”—“导出”,弹出对话框。选择所需要导出的格式(图10),点击下一步。填入导出文件名及选择文件目录(图11),点击下一步(图12)点击开始(图13)。运行后(图14),最后一行显示[Msg] [Exp] Finished -Successfully,代表数据已成功导出。
图4 用户登录对话框
图5 数据库表格列表
图6 admisssions表格数据
图7 【查询】选项卡
图8 【查询创建工具】选项卡
图9 SQL语句执行结果
图10 【导出向导】选项卡(1/5)
图11 【导出向导】选项卡(2/5)
4 讨论
MIMIC数据库面向全球开放,收集了长达12年的贝斯以色列迪康医学中心重症监护室4万余例患者的真实诊疗经过,样本量大,信息全面[16,17],Github上分析患者特征的开源代码包供全世界研究者免费使用,解决了临床医师收集整理信息和编写分析代码的困难,为临床各方面研究提供了巨大支撑。本文从MIMIC数据库申请、导入、结构关系及查询方面进行了相关介绍,旨在减少科研工作者在数据库获取、软件安装使用方面所花费的时间和精力,从而帮助科研工作者快速、高效的进行科研工作。
图12 【导出向导】选项卡(4/5)
图13 【导出向导】选项卡(5-1/5)
图14 【导出向导】选项卡(5-2/5)