Skip to content

Tutorials

Step-by-step guides for common HEOR analysis workflows.

Getting Started

If you're new to alx-heor, start with the Getting Started guide to set up your environment and build your first cohort.

Available Tutorials

  • Cohort Building


    Build patient cohorts with diagnosis, procedure, and medication criteria. Learn about attrition tracking and enrollment requirements.

  • Enrollment Analysis


    Validate continuous enrollment, calculate gaps, and determine censoring dates for survival analysis.

  • Medication Analysis


    Look up medications, identify treatment episodes, calculate adherence (PDC), and classify treatment patterns.

Typical Workflow

Most HEOR analyses follow this pattern:

1. Define cohort criteria
   └── Diagnosis codes, demographics, enrollment requirements

2. Build cohort with get_cohort()
   └── Returns CohortResult with df_cohort, attrition, claims

3. Analyze treatments
   └── Treatment patterns, episodes, switches, adherence

4. Survival analysis
   └── Censoring dates, follow-up time, events

Example: Complete gMG Analysis

from alx_heor.database import RedshiftConnection
from alx_heor.cohort import (
    get_cohort, CohortCriteria, DiagnosisCriteria,
    MedicationCriteria, EnrollmentCriteria,
)
from alx_heor.medications import get_treatment_claims, identify_treatment_episodes

# 1. Connect
conn = RedshiftConnection().connect()

# 2. Build cohort
result = get_cohort(
    conn, source="iqvia", schema="iqvia_pharmetrics_2024q3",
    criteria=CohortCriteria(
        primary_diagnosis=DiagnosisCriteria(
            codes=["G700", "G7000", "G7001"],
            min_count=2, days_apart=30,
        ),
        required_medications=[
            MedicationCriteria(generic_names=["eculizumab", "ravulizumab"]),
        ],
        enrollment=EnrollmentCriteria(months_before=6, months_after=12),
        min_age=18,
    ),
    start_year=2015, end_year=2024,
)

print(result.summary())

# 3. Get treatment claims
df_rx = get_treatment_claims(
    conn, source="iqvia", schema="iqvia_pharmetrics_2024q3",
    patient_ids=result.df_cohort["pat_id"].tolist(),
    generic_names=["eculizumab", "ravulizumab", "efgartigimod"],
    start_year=2015, end_year=2024,
)

# 4. Identify episodes
df_episodes = identify_treatment_episodes(df_rx, gap_days=60)

Next Steps