MIMIC重症医学(ICU)数据库

  • A+
所属分类:医信大学
MIMIC重症医学数据库

很多临床一线的医师都或多或少有些感叹,自己想开展临床研究,但却苦于手里没有数据。的确,如果能建立一个资料详细、样本量大的病历数据库,就相当于找到了一座临床研究的金矿。只要对病历数据库中的数据不断进行挖掘,总能找到合适的研究切入点,进而发表高水平的论文。然而,建立资料齐全、样本量大的数据库对于普通医生而言可谓极为困难。

可以想象,每个病人就诊的资料都极为纷繁复杂,有实验室检查资料、微生物培养资料、影像学检查资料、来自床旁监测设备的资料、治疗措施、液体进出量、病史和体征等。如果把这些资料全部采集齐全并建立一个临床数据库(database)的话,需要花费极大的人力、物力和财力。另一方面,如果一个数据库内的资料较少,虽然建立数据库的难度降低了,但是势必会有很多重要数据缺失,将来利用这种数据库开展研究时就会显得捉襟见肘。

然而,天无绝人之路,我们身处在一个大数据时代,只要用心,数据可谓俯拾皆是。很多成熟的、大样本的临床数据库都是免费对外开放的,只要通过一定的考试或者提出书面申请,就可以获得相应的数据。在过去几年,笔者利用重症医学数据库 MIMIC 发表过一些论文。在此,笔者拟对该数据库进行介绍,并分享一些利用 MIMIC 数据发表论文的体会。

1

MIMIC 数据库概要

1. MIMIC 数据库数据来源

MIMIC 是一个重症医学数据库,全称是Medical Information Mart for Intensive Care。2003年,在NIH的资助下,来自贝斯以色列女执事医疗中心(Beth Israel Deaconess Medical Center)、麻省理工(MIT)、牛津大学和麻省总医院(MGH)的急诊科医生、重症科医生、计算机科学专家等共同建立的一个数据库[1]。该数据库在建立之初的名字为Multiparameter Intelligent Monitoring in Intensive Care II,简写为MIMIC II。

2016年9月,MIMIC II 数据库升级为MIMIC III,并改名为Medical Information Mart for Intensive Care,简写仍然是MIMIC[2]。由于MIMIC III 数据库包含的样本量大于MIMIC II,且下载和安装本地数据库时无需安装虚拟机,所以人们一般倾向于用最新的MIMIC III 开展研究,本文所介绍的内容也主要是基于MIMIC III,MIMIC II 的安装和使用可以参阅既往的文献[3]。

MIMIC III 目前(2018年6月)的版本是1.4 (V1.4),共包含了2001年6月至2012年10月间在Beth Israel Deaconess Medical Center住院的38645名成年个体和7875名新生儿的的58000余次住院资料。这些资料被整理成了26个CSV格式的表格供研究者查询。

值得注意的是,MIMIC II 以及MIMIC III 都连接了社保数据库(social security database),记录了患者的随访时间和结局,这一点对于开展远期预后研究来说极为关键。MIMIC III 数据中与个人隐私有关的资料都进行了一定的处理,比如隐去了患者名字,只有一个数字表示患者身份(subject_id);表格中记录的时间并非真实的时间(比如入院时间、出生时间、死亡时间等),而是随机加减了一些数字(Date shifting)。

2. MIMIC 数据库使用权限的获取

MIMIC 数据库使用权限的申请大致可以分为以下几步:

  1. 注册:首先到physionet网站进行注册,建议从注册开始就填写个人的真实信息;注册网址为:https://physionet.org/pnw/login;
  2. 参加伦理学考试:进入CITI的网站并参加伦理学考试,考试之前需要先注册帐号并填写个人信息。 网址为:https://about.citiprogram.org/en/homepage/

通过考试后,CITI会给申请者发一个证书。申请者需要在physionet上传证书才能获得 MIMIC 的使用权限。由于注册和考试的过程相对繁琐,本文不可能截图逐一展示每个步骤的注意事项,读者可以在网上自行搜索相关教程,中文版的数据库注册、安装教程已经在网上流传。当然,也可以对照physionet网站上的英文说明逐步进行,网上流传的中文教程实际上就是对physionet网站上的英文说明的概括和总结。

数据库注册说明的网址为:https://mimic.physionet.org/gettingstarted/access/

MIMIC 数据库的授权使用是人工审核的,因此提交申请后一周左右才会被告知是否获得了数据库使用权限。获得了数据库使用权限后再进入自己的physionet,就可以看见数据库的相关信息(图1)。

图1 进入physionet后可以查看自己具有使用权的数据

获取到数据库使用权限后,接下来要做的事情就是将数据下载到本地电脑,并利用Postgres软件进行安装和导入。MIMIC III 虽然有网络版,但网络版反应较慢,且无法下载数据,因此建议大家还是使用本地数据。

本地数据库安装的大致步骤是:

  1. 从physionet进入个人帐号,之后进入图1所示的MIMIC III数据库,下载所有的数据包(约40G)。注意这些数据包都是以csv.gz为后缀的,这些数据在下一步处理之前需要解压;
  2. 下载并安装postgres:可以简单将postgres理解为一个数据库管理系统,在这个系统内,研究者可以较为方便地通过SQL语言提取数据;
  3. 下载建库的脚本(),下载地址为:https://github.com/MIT-LCP/mimic-code/tree/master/buildmimic/postgres,下载完之后按照网站的说安装即可。

由于需要将40G的数据导入电脑,所以数据库的安装用时较长,一般需要10小时以上,具体取决于个人电脑的性能。

图2 MIMIC III 数据库的网站说明

图2网站说明中左侧边栏的getting started主要是说明如何获取数据库的使用权限;Tables in MIMIC主要是介绍各个表格的内容,表格中每个字段的含义;Data details是介绍每部分数据的获取细节;Tools主要是一些数据库检索工具,比如在线检索网址;community主要是介绍一些代码交流的社区;Tutorials主要是本地数据库安装教程。详细阅读该网站的说明是利用 MIMIC III 数据开展临床科研的基础。

3. MIMIC III 数据库的结构

MIMIC III 数据库共包含了26个CSV格式的表格,这些表格详细记录了患者在ICU治疗期间的几乎所有的数据,比如实验室检查数据、人口学特征、微生物学检查结果、住院期间的流转、治疗过程、液体进出量等。表格主要分为两种,一种是以D开头的,表示该表格为字典,比如d_labitems,表示实验室检查字典,内含每个实验室检查结果的说明;没有以D打头的表格则是记录患者信息的表格,比如labevents则表示患者住院期间的所有实验室检查结果。

MIMIC III 在网站上对每个表格内每个字段的含义进行了解释,供研究者参阅和查询。为便于读者更好地了解该数据,笔者进行了一些总结如下(表1)。(https://mimic.physionet.org/mimictables/admissions/)

表1 MIMIC III 数据库中每个表格所包含的信息

关于MIMIC III 的数据库结构,需要特别注意的几点是:

1、MIMIC IIII 数据库中用于识别患者身份的字段共有3个:subjects_id,hadm_id和icustay_id。其中subjects_id是患者身份的唯一标识,即一个subject_id只对应一名患者,一名患者也只有一个subject_id。hadm_id是患者每次住院的身份识别号,一个患者可能多次住院,因此一个subjects_id会对应多个hadm_id,但一个hadm_id只能对应一个subject_id。icustay_id表示患者在进入ICU的编号,因为患者一次住院可以多次进入不同的ICU,因此一个icustay_id只能对应一个hadm_id,当然也只能对应一个subject_id,但一个hadm_id可以对应多个icustay_id。在利用 MIMIC III 数据库进行研究时,往往需要运用sql语言对多个数据库进行连接,连接的基础一般就是这三个字段。

2、患者的临床资料不一定是住ICU期间的临床资料,也可能是住普通病房时的资料。记录患者入院时间的表格为admission,内含三个时间点:admittime,表示患者入院时间;dischartime,表示患者出院时间;deathtime,表示患者院内死亡的时间。如果deathtime为空(null),则表示患者住院期间未死亡。记录患者进入和离开ICU的表格为icustays,这个表格中有两个时间较为重要,分别是intime和outtime,前者表示进入ICU的时间,后者表示离开ICU的时间。当然,如果患者在ICU死亡,那么dischartime、outtime和deathtime理论上就是同一个时间,但实际上会稍微有些出入,估计是由于录入不及时造成的;

3、MIMIC III 中的数据来自于两套数据采集系统:carevue和metavision。在icustays表格中,有一个字段叫dbsource,用于标识数据是来源于carevue还是metavision。CareVue记录的是2001至2008年入院的患者资料,Metavision则是2008至2012年期间入院的患者资料。在Metavision中,病人的随访时间最少为90天,在CareVue中,病人的随访时间则至少为4年。换而言之,在进行预后研究时,如果将数据来源限定为CareVue,则可以将随访时间假定为4年,对于4年以后死亡的患者,可以将其在出院后第4年生存状况定义为“存活”。当然,如果患者的死亡状况(DOD_SSN)为空格(null),也同样可以表明患者在出院后4年仍然存活。

4. MIMIC III 数据库的数据提取

数据提取是利用 MIMIC III 数据库开展临床科研中最为重要的一个环节,其目的是将分布在不同表格内的数据进行整合、排列,最终筛选出自己想要的数据,且数据的排列格式能满足统计软件的需要。一般采用sql语言对数据进行提取,这对于计算机编程基础较为薄弱的临床医师来说是个极大的挑战。

另一种较为常用的数据提取策略是先用最简单的sql语言将所需要的信息提取到若干个独立表格,或者将整个表格导出成csv格式的文件,然后再用其它软件(比如R、Stata和python)进行整合。

图3 MIMIC IIII 数据库主界面

图3为 MIMIC III 数据库的操作界面。需要注意的几个地方是:

  1. 在写sql代码时,最好先执行“set search_path to mimiciii”,随后的所有操作均不需要指明表格的位置;否则,任何操作都应该在表格名前面加前缀mimiciii;
  2. github上有很多现成的代码包可以直接使用,连接网址为:https://github.com/MIT-LCP/mimic-code。这些代码包主要是计算一些患者的特征或者定义某一类患者,比如一些重症评分(如APS III、SIRS评分等)、共病指数、定义严重脓毒症、急性肾损伤人群等。对于计算机编程基础较为薄弱的同行而言,充分利用这些脚本可以少走弯路;
  3. 利用github上的脚本可以生成一些新的物化视图,这些物化视图保存在materialized view目录下;
  4. 建议自己根据自身研究方向需要,建立一些常用的物化视图以便随时调用。

熟悉sql语言是提取数据的基础,但对于普通医生而言,学习sql语言难度极大,没有任何捷径而言,唯一的办法就是多练,多参考github上较为成熟的程序。笔者推荐两本sql参考书给初学者:一本是由明日科技主编的《SQL server从入门到精通》(清华大学出版社2012年出版);另一本是张权、郭天骄主编的《SQL查询的艺术》(人民邮电出版社2014年出版)。

sql语言主干是“select *** from *** where ***”语言,select表示要选择的变量、from表示数据来源表格,where是对表格进行筛选。当然,仅仅利用“select *** from *** where ***”是无法完成一些复杂的数据提取的,必须辅之以其它语句,比如case、epoch、row_number over语句等。同时,数据提取往往还需要对多个表格进行连接,此时left/right join语句就显得十分重要。

需要说明的是,采用sql语言从 MIMIC III 提取数据是一件仁者见仁,智者见智的事情,但是用sql语言提取数据的前提是研究者一定要十分熟悉数据库的结构,特别是表格中每个字段的含义。研究者最终得到的数据是一个csv格式的文件,此文件可以直接导入R、SPSS、sigmaplot等常用统计软件进行运算。

2

如何利用 MIMIC III 数据库

开展研究示例

MIMIC III 数据库为普通医生,特别是重症医学科医生开展临床研究提供了极大的便利,因为该数据不仅资料详细,而且包括随访资料。其随访终点包括:住院期间死亡、ICU内死亡和出院后的全因死亡。如何利用该数据库开展临床科研视个人专业情况而定。笔者结合自己利用 MIMIC III 数据库开展临床研究的经历,谈一些简单的研究方法和套路

对影响重症病人预后的因素进行探讨具有极为重要的价值,因为疾病预后在很大程度上可以影响治疗措施的制定。笔者的主要研究方向之一就是实验室标志物与重症患者预后的关系。

这一类研究的主要套路就是:

  1. 利用diagnoses_icd中的诊断和顺序(seq_num)从所有重症病人中筛选出一类自己感兴趣的疾病的患者,得到患者的subject_id、hadm_id和icustay_id;
  2. 从d_labitems和labevents中找到自己感兴趣的实验室标志物:采用group、row_number等语句限定患者入院(或进入ICU)的第一次检查结果或特定时间内的检查结果;
  3. 从patients中提取出患者的基本特征,包括死亡时间(dod_ssn)或是否发生院内死亡;
  4. 从icustays中找到患者的出院时间 (dischtime),结合患者的死亡时间(dod_ssn)计算出随访时间。注意:来源于carevue的病例随访时间最短为4年,来源于metavision中的数据最短随访时间为90天;
  5. 从github上找到计算各种严重程度评分的脚本,然后在本地电脑中运行得出各个患者每次住院的疾病评分(比如SOFA、SAPS II、APS III等),并将这些严重评分纳入最终的统计学分析。

这类研究整体的思路就是:首先展示研究对象的基本特征,包括人口学特征、实验室检查结果、严重程度评分结果、院内死亡率等。然后分析待研究的实验室指标个患者临床特征的关系(这部分研究有时也可以省略),最后采用Kaplan-Meier曲线和Cox风险比例模型分析实验室标志物与疾病预后的关系。

如果研究的终点是院内死亡,则可以用受试者工作特征曲线(ROC)曲线和多元logistic回归方程对实验室标志物的预后价值进行研究。笔者曾利用 MIMIC II 数据库研究过红细胞体积分布宽度(RDW)与进入ICU治疗的急性胰腺炎患者预后的关系[4]、研究RDW、中性粒细胞/淋巴细胞比值(NLR)与蛛网膜下腔出血患者远期预后的关系[5]、研究红细胞平均血红蛋白浓度、钾离子与急性心肌梗死患者预后的关系[6]。

此外,国外学者也曾研究过RDW、NLR与所有重症患者(不考虑其进入ICU的最初诊断)预后的关系[7,8]。利用 MIMIC III 开展的研究都是观察性研究,在设计上遵循一般观察性研究的套路,一般就是先进行单变量的分析,比如ROC分析、Kaplan-Meier曲线等,然后再进行混杂因素的校正。

经典的校正混杂因素的方法是多元logistic回归、Cox风险比例模型,近年来一些新的校正混杂因素的方法也越来越普及,比如倾向匹配分析、工具变量分析等。此外,有时需要证明某一实验室标志物可以提供其它临床资料所不能提供的预后信息,此时,就需要用c-statistic、净重分层指数(NRI)和综合改良区指数(IDI)等方法了。

除了研究预后外,笔者还曾利用 MIMIC III 数据库中重症患者的钙离子检测结果开展过关于钙离子危机值的研究。众所周知,外周血钙离子可以分为离子钙和结合钙,其中发挥生理作用的是离子钙。但离子钙只能在血气分析仪上检测,总钙(离子钙加上结合钙)却可以在生化仪上检测,因此总钙的检测在临床上更为多见。

临床实验室制定的危急值包括总钙危急值和离子钙危急值,严格来讲,只有离子钙危急了才能算真正的危机值,也就是说:离子钙才是金标准,毕竟血液中真正发挥作用的是离子钙。临床上,总钙危急值的设置是否合理,是否能准确地预测出真正的钙危急值(离子钙危急值)尚不明确。

造成这种困局的主要原因就是:临床上很少有病人会同时检测离子钙和总钙。MIMIC III 数据库中的病人都是重症患者,离子钙和总钙检测结果较多,这就为笔者评价和探讨总钙危急值的设定提供了可性能。笔者首先从数据库中提取了所有的离子钙检测结果,然后寻找同时检测了总钙、白蛋白,且总钙、白蛋白检测时间和离子钙检测时间相隔不超过1小时的患者资料。

这样就会形成多个“总钙-离子钙-白蛋白”组合,笔者以国际公认的离子钙危急值设定范围来确定患者是否属于高钙血症或低钙血症的“危急值”,随后笔者采用受试者工作特征(ROC)曲线法分析了总钙预测离子钙危急值的能力,最终发现总钙预测低钙血症危急值的准确性较差,但预测高钙血症危急值的准确性较高。该文目前已被Journal of Clinical and Laboratory Analysis接受。

3

结束语

本文介绍了 MIMIC III 数据库的使用权限的获取、安装、数据的提取以及如何利用 MIMIC III 开展临床研究。需要强调的三个问题是:

  1. 笔者仅仅是从实验室标志物的角度举例说明如何利用 MIMIC III 数据库开展研究。每个专业的临床医生的专注点可能不同,研究思路和套路也会有很大的差别;
  2. 提取数据之前一定要仔细研究数据库结构;
  3. 一定要充分利用github上的脚本为自己服务。
  • HealthIT.CN小程序
  • 产学研医创新平台
  • weinxin
  • 健康数据
  • HealthIT公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: