Technical Architecture

Under the hood of the Oregon FQHC Landscape

Architecture
Python
CI/CD
Author

E. Pitzer

Published

September 15, 2026

Overview

This project combines public healthcare source data in a repeatable Python pipeline and publishes an explicitly dated annual analytical snapshot with Quarto.

The workflow can refresh the Oregon site footprint on its scheduled cadence while keeping the analytical cohort fixed at 2024 UDS for this release. Site and UDS dates remain separate: neither source is a live operational census. Hard integrity failures stop replacement; known source-scope gaps produce warnings, and material analytical-population loss withholds the model for review.

Advanced Analytics & QA

Data Enrichment: Successfully ingested 2024 UDS Grantee Data via direct FOIA endpoint, preserving missing and suppressed counts while validating numeric fields in government Excel files.

Relational Joining: A many-to-one join links registered sites to UDS organization records using BHCMIS identifiers. Site IDs and addresses remain intact; duplicate keys and unexpected row multiplication fail validation. Current counts and coverage are calculated on the case-study page.

Organization-level modeling: The analytical table has one row per BHCMIS organization and gives each eligible organization equal weight. The primary model relates Medicaid share to log10(total_patients), representing scale proportionally while retaining legitimate large organizations. The relationship is exploratory and explains only part of the between-organization variation.

Automated Quality Assurance: The scheduled workflow runs tests before rendering. Hard checks cover identifiers, unexpected join loss, payer arithmetic, source dates, and artifact integrity. Coverage and freshness thresholds are operational warning/review triggers rather than universal validity cutoffs. See the data contract and run instructions for exact definitions and limitations.

The Pipeline

The system is architected as a serverless ETL pipeline running on GitHub Actions.

%%{init: {'theme': 'base'}}%%
flowchart LR
    A[HRSA site workbook] --> B[Stage sources]
    U[2024 UDS workbook] --> B
    B --> C[Validate and standardize]
    C --> D[Many-to-one join by organization ID]
    D --> Q[Integrity and reconciliation checks]
    Q --> R[Coverage and analytical-fitness review]
    R --> M[CSV artifacts, model summary and manifest]
    M --> T[Tests and unfrozen Quarto execution]
    T --> E[Static HTML site]
    E --> F[Commit generated output for GitHub Pages]

    style B fill:#e3f2fd
    style C fill:#e3f2fd
    style D fill:#e3f2fd
    style E fill:#e3f2fd

    classDef runner fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    class B,C,D,E runner

Automated Data Pipeline Architecture