CMS
—
Total Hospitals
50 States + DC
AVG
—
Avg Overall Rating
Scale 1–5
SNAPSHOT
—
Emergency Services
Have ER capability
SNAPSHOT
—
Quality Metrics
Unplanned visit records
Hospitals by State (Top 20)
Overall Rating Distribution
Hospital Types
National Quality Comparison
ETL Run History
DISABLED
| Run ID | Started | Status | Hospitals | Metrics | Duration |
|---|
Data Export
All Hospitals
5,433 hospitals · 12 columns including address, phone, GPS coordinates
FacilityID · FacilityName · Address · City · State · ZipCode · Phone · HospitalType · EmergencyServices · OverallRating · Latitude · Longitude
Quality Metrics
67,088 records · hospital-level clinical quality measures
FacilityID · FacilityName · State · HospitalType · MeasureID · MeasureName · Score · ComparedToNational · NumberOfPatients · PeriodStart · PeriodEnd
State Summary
51 states/territories · aggregate hospital stats per state
State · TotalHospitals · AvgRating · WithEmergency · TopRatedCount
ETL Run Log
Last 8 ETL runs · pipeline execution history
LogID · RunStart · Status · HospitalsLoaded · MetricsLoaded · DurationSec
About This Project
An end-to-end data pipeline that pulls US hospital quality data from the CMS (Centers for Medicare & Medicaid Services) public API, loads it into Azure SQL Database via automated ETL, and serves it through a REST API and this interactive dashboard.
Built to demonstrate DBA fundamentals — schema design, index tuning, backup & recovery — alongside cloud data engineering with Azure managed services.
The CMS datasets are publicly available and fully de-identified under HIPAA Safe Harbor (45 CFR §164.514(b)). No Protected Health Information is involved.
How It Works
CMS Public API
HTTP GET, no auth
Quarterly data updates
Quarterly data updates
→
Azure Function App
Timer Trigger (CRON)
ETL runs twice daily
ETL runs twice daily
→
Azure SQL Database
Serverless tier, 3 tables
MERGE upsert, no duplicates
MERGE upsert, no duplicates
→
REST API + Dashboard
5 API endpoints
Chart.js + CSV export
Chart.js + CSV export
ETL Schedule
UTC 00:00 & 12:00 daily
Upsert Strategy
SQL MERGE on FacilityID — idempotent, no duplicates
Secret Management
Azure Key Vault + Managed Identity
Monitoring
Application Insights + Azure Monitor alerts