Quick Start¶
This guide will get you up and running with CLIFpy in just a few minutes.
Loading Demo Data¶
CLIFpy includes demo data to help you get started:
from clifpy.data import load_dataset
# Load all demo tables
tables = load_dataset()
# Access individual tables
patient_df = tables['patient']
labs_df = tables['labs']
vitals_df = tables['vitals']
Using Individual Tables¶
Loading a Single Table¶
from clifpy.tables import Patient
# Load patient data from files
patient = Patient.from_file(
data_directory='/path/to/data',
filetype='parquet',
timezone='US/Central'
)
# Validate the data
patient.validate()
# Check if data is valid
if patient.isvalid():
print("Data validation passed!")
else:
print(f"Found {len(patient.errors)} validation errors")
Working with Lab Data¶
from clifpy.tables import Labs
# Load lab data
labs = Labs.from_file('/path/to/data', 'parquet')
# Get recent lab results
recent_labs = labs.get_recent(hours=24)
# Filter by lab category
chemistry_labs = labs.filter_by_category('chemistry')
# Get common lab panels
cbc = labs.get_common_labs('cbc')
bmp = labs.get_common_labs('bmp')
Analyzing Vital Signs¶
from clifpy.tables import Vitals
# Load vitals data
vitals = Vitals.from_file('/path/to/data', 'parquet')
# Get specific vital types
heart_rates = vitals.filter_by_vital_type('heart_rate')
blood_pressures = vitals.filter_by_vital_type('sbp')
# Calculate summary statistics
hr_stats = vitals.get_summary_by_vital_type()
print(hr_stats)
Using the Orchestrator¶
For working with multiple tables at once:
from clifpy.clif_orchestrator import ClifOrchestrator
# Initialize orchestrator
orchestrator = ClifOrchestrator(
data_directory='/path/to/data',
filetype='parquet',
timezone='US/Central'
)
# Load multiple tables
orchestrator.initialize(
tables=['patient', 'labs', 'vitals', 'adt'],
sample_size=1000 # Optional: load sample for testing
)
# Validate all tables
orchestrator.validate_all()
# Get summary of loaded tables
loaded = orchestrator.get_loaded_tables()
print(f"Loaded tables: {loaded}")
Common Patterns¶
Filtering by Patient¶
# Get data for specific patients
patient_ids = ['P001', 'P002', 'P003']
# Filter labs
patient_labs = labs.df[labs.df['patient_id'].isin(patient_ids)]
# Filter vitals
patient_vitals = vitals.df[vitals.df['patient_id'].isin(patient_ids)]
Time-based Analysis¶
from datetime import datetime, timedelta
# Get data from the last 7 days
end_date = datetime.now()
start_date = end_date - timedelta(days=7)
# Filter ADT movements
recent_movements = adt.filter_by_date_range(start_date, end_date)
# Get ICU admissions
icu_admissions = adt.filter_by_location_category('icu')
Clinical Calculations¶
# Calculate SOFA scores
from clifpy.tables import PatientAssessments
assessments = PatientAssessments.from_file('/path/to/data', 'parquet')
# Get assessment trends
gcs_trend = assessments.get_assessment_trend(
patient_id='P001',
assessment_category='neurological',
hours=48
)
# Check compliance
compliance = assessments.get_assessment_compliance(
assessment_category='pain',
expected_frequency_hours=4
)