MIMIC数据库使用指南:申请、导入与查询解析

5星 · 超过95%的资源 需积分: 38 33 下载量 9 浏览量 更新于2024-08-26 2 收藏 2.84MB PDF 举报
"宋伟伦等人在《中国循证心血管医学杂志》2018年10月刊中发表的文章,介绍了MIMIC数据库的申请、导入、结构关系及查询方法。该数据库是由美国国立卫生研究院支持,由麻省理工学院计算生理学实验室、贝斯以色列迪康医学中心和飞利浦医疗共同发布的重症医学领域的开放数据库。" MIMIC(Medical Information Mart for Intensive Care)数据库是一个公开的重症监护病房(ICU)患者数据集,专门用于临床研究和教学。它包含了大量患者的详细临床数据,这些数据涵盖了从疾病发生到发展过程的多个方面,包括病人的基本信息、生命体征、实验室测试结果、用药记录、疾病诊断等。由于数据的多样性和全面性,MIMIC数据库对于研究人员来说是一个宝贵的资源,可用来深入理解重症医学中的各种问题并进行预测模型的开发。 文章详细阐述了如何申请使用MIMIC数据库。首先,研究者需要通过官方网站进行注册并提交申请,通常需要提供关于研究目的和方法的信息。申请过程可能涉及伦理审查,因为MIMIC数据中包含敏感的个人健康信息,必须确保数据的安全和隐私得到保护。 在获得批准后,研究者将学习如何导入数据。MIMIC数据通常以SQL数据库的形式提供,需要一定的数据库管理技能来处理和分析。数据导入可能涉及数据清洗、转换和整合,以便适应特定的研究需求。此外,文章还可能探讨了使用SQL或其他数据分析工具查询和提取所需信息的方法。 MIMIC数据库的结构关系复杂,包含了多个表格和不同的实体间的关系,如患者表、住院表、生命体征表、药物表等。了解这些关系对于有效地提取和分析数据至关重要。例如,患者表可能包含基本人口统计信息,住院表记录每次住院的详细情况,而生命体征表则存储了频繁采集的生理参数。查询时,研究者需要根据特定的研究问题,正确地连接这些表格以获取所需的数据。 MIMIC数据库为重症医学研究提供了丰富的数据资源,而宋伟伦等人的文章为研究人员提供了实用的指南,帮助他们理解和利用这个数据库进行科学研究。通过学习文章中介绍的申请、导入和查询步骤,研究者能够更好地利用MIMIC数据推动重症医学领域的发展。
2023-06-09 上传

帮我解读下这个代码:import csv import os import numpy as np import pandas as pd import pymysql from pymysql import connect # %% # drug_table = pd.read_excel('./data/drug.xlsx') drug_table_an = pd.read_excel('./data/mimiciv_feature_info.xlsx', sheet_name='antibiotic') drug_table_sa = pd.read_excel('./data/mimiciv_feature_info.xlsx', sheet_name='sedatives_and_analgesics') drug_table_co = pd.read_excel('./data/mimiciv_feature_info.xlsx', sheet_name='anticoagulant') prescriptions = pd.read_csv('/data/check_in/EHR_data/MIMIC_III/CSV/PRESCRIPTIONS.csv') item = pd.read_csv('/data/check_in/EHR_data/MIMIC_III/CSV/D_ITEMS.csv') labitem = pd.read_csv('/data/check_in/EHR_data/MIMIC_III/CSV/D_LABITEMS.csv') columns_pre = prescriptions.columns.tolist() columns_item = item.columns.tolist() columns_labitem = labitem.columns.tolist() # drugs = (drug_table['anticoagulant'].to_list()+drug_table['antiplatelet'].to_list())[:-4] drugs = ['barbital' ,'zepam' ,'zolam' ,'zolpidem' ,'propofol' ,'dexmedetomidine' ,'pentobarbital' ,'clonazepam' ,'alprazolam' ,'estazolam' ,'Zolpidem Tartrate'] drug_test_tsv = open('drug_patients_sedative.csv', 'w', newline='', encoding='utf-8') drug_test = csv.writer(drug_test_tsv, delimiter=',') drug_test.writerow(columns_pre) item_test_tsv = open('item_patients_sedative.csv', 'w', newline='', encoding='utf-8') item_test = csv.writer(item_test_tsv, delimiter=',') item_test.writerow(columns_item) labitem_test_tsv = open('labitem_patients_sedative.csv', 'w', newline='', encoding='utf-8') labitem_test = csv.writer(labitem_test_tsv, delimiter=',') labitem_test.writerow(columns_labitem) # import pdb;pdb.set_trace() for drug in drugs: # print(type(drug)) sql = "select * FROM PRESCRIPTIONS where drug like '%"+ drug + "%' or drug_name_poe like '%"+ drug + "%' or drug_name_generic like '%"+ drug + "%'" print(sql) conn = connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='mimiciii') cursor = conn.cursor() cursor.execute(sql) data_tmp = cursor.fetchall() # print(data_tmp is None) if len(data_tmp) != 0: for data_cur in data_tmp: print(data_cur[1], data_cur[2], data_cur[3], data_cur[7], data_cur[8], data_cur[9]) drug_test.writerow(list(data_cur)) # import pdb;pdb.set_trace() for drug in drugs: # print(type(drug)) sql = "select * FROM D_ITEMS where label like '%{}%'" .format(drug) print(sql) conn1 = connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='mimiciii') cursor1 = conn1.cursor() cursor1.execute(sql) data_tmp = cursor1.fetchall() if len(data_tmp) != 0: for data_cur in data_tmp: print(data_cur[1], data_cur[2]) item_test.writerow(list(data_cur)) # import pdb;pdb.set_trace() for drug in drugs: # print(type(drug)) sql = "select * FROM D_LABITEMS where label like '%{}%'" .format(drug) print(sql) conn1 = connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='mimiciii') cursor1 = conn1.cursor() cursor1.execute(sql) data_tmp = cursor1.fetchall() if len(data_tmp) != 0: for data_cur in data_tmp: print(data_cur[1], data_cur[2]) labitem_test.writerow(list(data_cur)) # import pdb;pdb.set_trace() # %% import pandas as pd drug = pd.read_csv('drug_patients_sedative.csv') print(drug.DRUG.unique()) # %% print(drug.DRUG_NAME_POE.unique()) # %% print(drug.DRUG_NAME_GENERIC.unique()) # %%

2023-03-14 上传