eICU Collaborative Research Database Code Repository
repository·main·Indexed 19 days ago
https://github.com/mit-lcp/eicu-codeA community-driven repository for sharing and reusing code to analyze the eICU Collaborative Research Database. It provides tools and workflows for downloading data from PhysioNet and building the database using DuckDB or PostgreSQL, as well as instructions for accessing and navigating public demo data via SQLite.
What's inside eicu-code
- The eICU Collaborative Research Database Code Repository serves as a central hub for the research community to share, refine, and reuse code used for analyzing the eICU Collaborative Research Database. The primary goal is to promote collaborative research and ensure study reproducibility by sharing data processing and analysis code.
Overview of the respiratoryCare table
mainThe
respiratoryCaretable contains clinical information related to respiratory care for patients in the eICU-CRD.Key Data Included:
- Historical sequences of respiratory records.
- Airway details: type, size, and position.
- Cuff pressure.
- Ventilator (vent) details: start/end dates/times, pressure limits, and apnea parameters.
Relational Mapping:
- The table links to the
PATIENTtable via thepatientUnitStayIDforeign key.
Introduction to eICU database capabilities
mainThe eICU database is a structured research database containing complex clinical data. Users can perform the following core tasks:
- Metadata Extraction: Obtain information about database objects such as tables and views.
- Basic Querying: Perform operations on single tables, including counting rows and filtering results using subsets.
- Data Joining: Combine multiple tables using 'joins' to extract relational information.
- View Utilization: Use pre-defined database 'views' to extract high-level, aggregated information.
Understand the `patient` table purpose and relationships
mainThe
patienttable contains patient demographics and details regarding hospital and ICU admissions and discharges.Key Relationships:
- Use
patientUnitStayIDto link to thePATIENTtable.
- Use
Important considerations for vitalPeriodic data
mainWhen using the
vitalPeriodictable, keep the following caveats in mind:- Unvalidated Data: The values represent 5-minute medians from bedside monitors and are considered unvalidated. This means the data has not been verified by a clinician and may contain noise or artifacts that do not reflect the true patient state.
- SaO2 vs. Arterial Blood Gas: The
saO2column contains oxygen measurements captured via vital sign monitors (SpO2). It should not be treated as arterial blood gas (ABG) measurements.
Understand the nurseAssessment table
mainThe
nurseAssessmenttable (Nursing Assessment Flowsheet) is used to document patient assessment data, including pain, psychosocial status, neurologic, cardiovascular, respiratory, oral/GI/GU, skin, and other nursing-specific metrics.To link assessment data to a specific patient, join this table with the
PATIENTtable using thepatientUnitStayIDcolumn.Understand the apacheApsVar table purpose and context
mainThe
apacheApsVartable contains the variables used to calculate the Acute Physiology Score (APS) III for patients. APS-III is used to summarize patient severity of illness upon ICU admission as part of the APACHE (Acute Physiology Age Chronic Health Evaluation) system.Key Concepts:
- APS Points: Assigned based on the "Worst" values (the degree of physiologic derangement) exhibited during the APACHE Day.
- APACHE Day: The specific time period in which clinical variables are used in the algorithms.
- Relationship to other tables:
- Links to the
PATIENTtable viapatientUnitStayID. - Related to
APACHEPATIENTRESULTandAPACHEPREDVAR. - The
apachePatientResulttable contains two rows perpatientUnitStayId: one for APACHE IV and one for APACHE IVa.
- Links to the
Understand the carePlanEOL table
mainThe
carePlanEOLtable contains documentation relating to end-of-life (EOL) care and discussions within the eICU-CRD. It is primarily used to track intraprofessional communication regarding code status, prognosis, family/healthcare proxy, and end-of-life discussions.Key Relationships:
- Link to the
PATIENTtable via thepatientUnitStayIDcolumn.
- Link to the
Understand GCS scoring in apacheApsVar
mainThe Glasgow Coma Scale (GCS) components in the
apacheApsVartable are used to determine neurologic status. The "worst" GCS is defined as the assessment resulting in the lowest total score.eyes: Range 1 to 4.motor: Range 1 to 6.verbal: Range 1 to 5.meds: Ifmedsis set to 1 (indicating "unable to score due to meds"), theeyes,motor, andverbalfields are set to 0.
Total GCS scores range from 3 (worst) to 15 (best).
Analyze pastHistory data structure and organ systems
mainData in the
pastHistorytable includes date/time offsets, note types, root paths (e.g.,notes/Progress Notes/Past History/...), picklist values, and text descriptions.Data entry fields are organized by the following organ systems:
- Neurologic
- Cardiovascular
- Pulmonary
- Gastrointestinal
- Infectious Disease
- Hematology/Oncology
- Endocrine
- Rheumatic
Important considerations for physicalExam data
mainWhen working with physical exam data, keep the following in mind:
- Data Entry: Data is entered directly into eCareManager.
- Data Availability: Physical exam choices include
Not Performed,Performed-Free Text, andPerformed-Structured. Note that free text sections are not included in the research database. - Structured Data: The
Performed-Structuredoption provides pick list selections and specific text entry boxes. - Vital Signs: For values such as heart rate, blood pressure, temperature, respiratory rate, and O2 sat, the table includes both the current values and the 24-hour range.
Understand the allergy table purpose and links
mainThe
allergytable contains details regarding patient allergies, which are captured via patient note forms.Key Relationship: To link allergy data to a specific patient, join the
allergytable with thePATIENTtable using thepatientUnitStayIDcolumn.