alx-heor¶
Configuration-driven HEOR analytics library for multi-source claims data analysis.
Why alx-heor?¶
Working with claims data across multiple vendors (IQVIA, Optum, Komodo, MDV) typically means maintaining separate codebases with duplicated logic. alx-heor solves this with a configuration-driven approach:
-
Multi-Source Support
One codebase works across IQVIA, Optum, Komodo, and MDV. No more copy-paste between projects.
-
Configuration-Driven
Column names, table patterns, and business logic are configurable instead of hardcoded.
-
Memory-Efficient
Optimized for large datasets with batching, streaming, and smart SQL generation.
-
Well-Documented
Comprehensive docstrings, type hints, and usage examples for every function.
Quick Example¶
Build a gMG cohort with diagnosis criteria, required medications, and enrollment requirements:
from alx_heor.database import RedshiftConnection
from alx_heor.cohort import (
get_cohort, CohortCriteria, DiagnosisCriteria,
MedicationCriteria, EnrollmentCriteria,
)
conn = RedshiftConnection().connect()
result = get_cohort(
conn,
source="iqvia",
schema="iqvia_pharmetrics_2024q3",
criteria=CohortCriteria(
# Primary diagnosis: gMG with 2+ claims, 30 days apart
primary_diagnosis=DiagnosisCriteria(
codes=["G700", "G7000", "G7001"],
min_count=2,
days_apart=30,
label="gMG diagnosis",
),
# Require C5 inhibitor post-index
required_medications=[
MedicationCriteria(
generic_names=["eculizumab", "ravulizumab"],
window_start=0,
label="C5 inhibitor post-index",
),
],
# Enrollment: 6 months pre, 12 months post
enrollment=EnrollmentCriteria(
months_before=6,
months_after=12,
),
# Adults only
min_age=18,
),
start_year=2015,
end_year=2024,
)
print(result.summary())
df_cohort = result.df_cohort
print(f"Final cohort: {len(df_cohort):,} patients")
Output:
Attrition Table
============================================================
gMG diagnosis: 45,231
Adults (18+): 42,105 (-3,126, 93.1%)
Valid sex: 41,892 (-213, 99.5%)
C5 inhibitor post-index: 8,234 (-33,658, 19.7%)
Continuous enrollment: 6,891 (-1,343, 83.7%)
============================================================
Final cohort: 6,891 patients
Installation¶
Supported Data Sources¶
| Source | Database | Status |
|---|---|---|
| IQVIA Pharmetrics | Redshift | Supported |
| Optum DOD | Redshift | Planned |
| Komodo | Snowflake | Planned |
| Loopback | Redshift | Planned |
| MDV (Japan) | Redshift | Planned |
Modules¶
| Module | Description |
|---|---|
cohort |
High-level cohort building with attrition tracking |
claims |
Claims data processing and filtering |
enrollment |
Enrollment validation and censoring logic |
medications |
Medication lookups and classification |
database |
Database connectors (Redshift, Snowflake) |
config |
Data source configurations and column mappings |
Next Steps¶
- Getting Started - Installation and first cohort
- Tutorials - Step-by-step guides
- API Reference - Complete function documentation