Experimental Architecture & Phasing
Implementation approaches, complete Azure service inventory, external API connections by phase, Medplum ONC certification strategy, and the four-phase rollout plan.
Architecture Approaches
Approach A: Azure-Native Scale-to-Zero + Cosmos DB Recommended
- Azure Functions (Consumption plan) for all API endpoints — scale to zero when idle
- Azure Cosmos DB (Serverless) for dev/QA/UAT; Provisioned autoscale for prod
- Azure SignalR Service (Serverless) for real-time updates
- Azure API Management (Consumption tier) for FHIR facade + external API gateway
- Azure Container Apps for long-running workers (CDS evaluation, claim scrubbing, AI pipeline)
- Azure Key Vault for all secrets, CMK encryption, EPCS HSM
- Medplum (open-source FHIR server) for ONC certification compliance — handles §170.315 criteria, USCDI, Bulk Data, SMART on FHIR
- Cost model: near-zero at rest, linear scale with patient volume
graph TD
Client[Browser / Mobile App]
APIM[Azure API Management
Consumption tier]
Func[Azure Functions
Consumption plan]
SignalR[Azure SignalR Service
Serverless]
Cosmos[(Cosmos DB
Serverless / Autoscale)]
Blob[(Blob Storage
Hot / Cool / Archive)]
KV[Key Vault
Secrets + CMK]
CA[Container Apps
CDS / AI / Scrubber]
SB[Service Bus
Async messaging]
Redis[Redis Cache
Sessions + Terminology]
Medplum[Medplum FHIR Server
ONC compliance layer]
B2C[Azure AD B2C
Identity]
Client --> APIM
APIM --> Func
APIM --> Medplum
Func --> Cosmos
Func --> Blob
Func --> KV
Func --> SignalR
Func --> SB
SB --> CA
CA --> Cosmos
CA --> Blob
Func --> Redis
Medplum --> Cosmos
Client --> B2C
Approach B: Container-First (AKS) with Cosmos DB Alternative
- Azure Kubernetes Service for all workloads
- Cosmos DB same as Approach A
- KEDA-based autoscaling for scale-to-zero behavior
- More operational overhead but more control
- Better for teams with existing K8s expertise
Approach C: Hybrid — Functions + AKS Workers Alternative
- Azure Functions for stateless API/FHIR endpoints
- AKS for stateful workers (CDS engine, AI pipeline, claim scrubber)
- Best of both worlds — simpler API layer, powerful worker tier
Complete Azure Service Map
| Azure Service | Purpose | Phase | Tier / SKU | Scale-to-Zero? |
|---|---|---|---|---|
| Cosmos DB | Primary OLTP (per DEC-RH-008) | P0 | Serverless (dev/QA), Autoscale (prod) | Yes (serverless) |
| Azure Functions | API endpoints, FHIR facade, webhooks | P0 | Consumption | Yes |
| Azure Blob Storage | Document storage, audio (scribe), FHIR bulk export | P0 | Hot / Cool / Archive | N/A |
| Azure Key Vault | Secrets, CMK, EPCS certificates | P0 | Standard | N/A |
| Azure SignalR Service | Real-time updates (scheduling board, task queue) | P0 | Serverless | Yes |
| Azure API Management | External API gateway, FHIR endpoint, rate limiting | P0 | Consumption | Yes |
| Azure AD B2C | Patient identity, SAML/OIDC SSO | P0 | Free tier → P1 | N/A |
| Azure Container Apps | Long-running workers (CDS, AI, scrubber) | P0 | Consumption | Yes |
| Azure Service Bus | Async messaging, event-driven workflows | P0 | Basic → Standard | N/A |
| Azure Cache for Redis | Session cache, terminology cache, slot availability | P0 | Basic → Standard | No |
| Azure Monitor + App Insights | Observability, alerting | P0 | Pay-per-use | N/A |
| Azure Front Door | CDN, WAF, global routing | P1 | Standard | N/A |
| Azure Container Registry | Docker images for Container Apps/AKS | P0 | Basic | N/A |
| Azure Event Grid | Event routing (appointment changes, claim status) | P1 | Pay-per-event | N/A |
| Azure Cognitive Services | OCR (insurance card scanning) | P1 | Pay-per-call | N/A |
| Azure OpenAI Service | AI scribe, coding suggestions, denial analysis | P1 | Pay-per-token | N/A |
| Azure Communication Services | SMS (reminders, 2FA), email | P1 | Pay-per-message | N/A |
| Microsoft Fabric | Analytics, reporting, MIPS dashboards | P2 | Pay-per-use | N/A |
| Azure Health Data Services | FHIR Server (if not using Medplum) | P2 | Standard | No |
| Azure Confidential Computing | PHI processing for multi-tenant AI | P3 | — | No |
External Service Connections by Phase
| External Service | Domain | Protocol | Phase | Notes |
|---|---|---|---|---|
| Stedi | Eligibility (X12 270/271) | REST API | P0 | Primary clearinghouse, HYBRID model |
| Availity | Eligibility fallback + Claims | REST API | P0 | Secondary clearinghouse |
| Waystar | Claims (X12 837/835) | SFTP + REST | P0 | Primary claims clearinghouse |
| Surescripts | eRx (NCPDP SCRIPT), MHX, RTPB | NCPDP / REST | P0 | Prescribing network |
| ID.me | EPCS identity proofing (IAL2) | OAuth 2.0 | P0 | DEA-required for EPCS |
| Drummond Group | EPCS certification | Cert process | P0 | Required for controlled substances |
| InstaMed (J.P. Morgan) | Patient payments, statements | REST API | P0 | PCI DSS compliant |
| Twilio | SMS reminders, 2FA, TCPA | REST API | P0 | HYBRID — custom logic around their API |
| Direct Trust / HISP | Secure messaging, referrals | Direct protocol | P1 | Referral document exchange |
| Kno2 | TEFCA QTF gateway | FHIR R4 | P1 | National health info exchange |
| eHealth Exchange | TEFCA QHIN | FHIR R4 | P1 | Backup TEFCA pathway |
| Health Gorilla | Lab orders/results aggregation | FHIR R4 | P1 | Multi-lab integration |
| Quest Diagnostics | Lab orders/results | HL7 v2 / FHIR | P1 | Direct lab connection |
| LabCorp | Lab orders/results | HL7 v2 / FHIR | P1 | Direct lab connection |
| Ambra Health | DICOM imaging gateway | DICOMweb | P1 | Cloud PACS |
| Life Image | Image exchange network | FHIR / IHE | P1 | Cross-org imaging |
| Bamboo Health | PDMP gateway | REST API | P1 | Controlled substance monitoring |
| LogiCoy | PDMP fallback | REST API | P1 | State PDMP backup |
| Nabla | AI ambient scribe (OEM v1) | REST API | P1 | Clinical documentation AI |
| IMO Health | Terminology mapping (ICD-10, SNOMED) | REST API | P1 | Code suggestion engine |
| Zoom for Healthcare | Telehealth video | SDK / API | P1 | BAA-covered video |
| Medplum | ONC-certified FHIR server | FHIR R4 | P1 | Open-source; handles §170.315, USCDI, Bulk Data, SMART on FHIR |
| Nuance PowerShare | Imaging reports | FHIR / HL7 | P2 | Radiology integration |
| CodaMetrix / Fathom / Nym | AI coding QA | REST API | P2 | Coding accuracy validation |
| Drata / Vanta | Compliance automation | REST API | P2 | HITRUST, SOC 2 |
| Auth0 / WorkOS | Enterprise SSO, directory sync | OAuth / SCIM | P2 | Multi-org identity |
| Rectangle Health | Payment processing backup | REST API | P2 | InstaMed alternative |
| CareCredit | Patient financing | REST API | P2 | Elective care financing |
| Welch Allyn / Midmark / Masimo | Medical devices | USB / BLE / HL7 | P3 | Vitals auto-capture |
| Healthwise | Patient education content | REST API | P3 | Portal content |
Medplum for ONC Certification
Key insight: Medplum is an open-source, ONC-certified FHIR server that handles the compliance surface so REV.health can focus on the operational data layer.
Medplum handles the following ONC-facing requirements:
- USCDI v3 data classes — all required data elements exposed via standard FHIR resources
- §170.315(g)(10) Standardized API — certified FHIR R4 endpoints for patient and population access
- SMART on FHIR app launch — third-party app authorization framework
- Bulk Data Export — NDJSON export for population-level data access
- C-CDA generation/consumption — Consolidated Clinical Document Architecture for transitions of care
Architecture Integration
- Cosmos DB remains the source of truth — all operational reads/writes go through the REV.health API layer
- Medplum syncs via Cosmos DB change feed — a Container Apps worker watches the change feed and pushes updates to Medplum
- All ONC-facing endpoints route through Medplum — this cleanly separates the “ONC certification surface” from the “operational data layer”
- Medplum is self-hosted on Azure Container Apps with its own PostgreSQL backend
graph TD
App[REV.health App Layer]
Cosmos[(Cosmos DB
Source of Truth)]
CF[Change Feed Worker
Container Apps]
Medplum[Medplum FHIR Server
Container Apps]
PG[(PostgreSQL
Medplum backend)]
ONC[ONC / Third-Party Apps
SMART on FHIR]
Bulk[Bulk Data Export
NDJSON → Blob Storage]
App --> Cosmos
Cosmos --> CF
CF --> Medplum
Medplum --> PG
ONC --> Medplum
Medplum --> Bulk
Phasing Plan
gantt
title REV.health Implementation Phases
dateFormat YYYY-MM
axisFormat %b %Y
section Phase 0 — Foundation
Core infrastructure :p0a, 2026-07, 3M
Scheduling + Eligibility :p0b, 2026-07, 4M
Clinical Doc + eRx/EPCS :p0c, 2026-08, 4M
RCM + Task Mgmt :p0d, 2026-09, 3M
Patient Portal (read-only) :p0e, 2026-10, 2M
section Phase 1 — Intelligence
AI Scribe + Coding CDS :p1a, 2027-01, 3M
Referrals + TEFCA :p1b, 2027-01, 4M
Labs + Imaging :p1c, 2027-02, 3M
Full Patient Portal :p1d, 2027-03, 3M
Medplum ONC layer :p1e, 2027-02, 4M
section Phase 2 — Optimization
Payer Optimization :p2a, 2027-07, 3M
RCM Denial AI :p2b, 2027-07, 3M
Analytics / MIPS :p2c, 2027-08, 4M
Compliance automation :p2d, 2027-09, 3M
section Phase 3 — Scale
Device integration :p3a, 2028-01, 3M
Confidential Computing :p3b, 2028-01, 3M
T3 multi-tenancy :p3c, 2028-02, 4M
Patient education :p3d, 2028-03, 3M
Phase 0: Foundation Months 1–6
Core infrastructure, scheduling, eligibility, basic clinical documentation, eRx, patient portal (read-only), task management shell.
Azure Services
- Cosmos DB, Functions, Key Vault, SignalR, API Management, AD B2C, Container Apps, Service Bus, Redis, Monitor, Container Registry
External Services
- Stedi, Availity, Waystar, Surescripts, ID.me, Drummond Group, InstaMed, Twilio
Modules
- Scheduling — resource-graph model, slot management, waitlist
- Eligibility — X12 270/271 + prior authorization
- Clinical Documentation — encounter + notes (no scribe yet)
- eRx / EPCS — NewRx, DUR, PDMP integration
- RCM — charge capture + X12 837 submission
- Task Management — basic queue and assignment
- Patient Portal — read-only (demographics, appointments, results)
Phase 1: Intelligence Months 7–12
AI scribe, coding suggestions, referral exchange, lab/imaging orders, full patient portal, TEFCA.
Azure Services (additions)
- + Front Door, Event Grid, Cognitive Services, Azure OpenAI, Communication Services
External Services (additions)
- + Nabla, IMO Health, Health Gorilla, Quest, LabCorp, Ambra Health, Life Image, Bamboo Health, LogiCoy, Direct Trust, Kno2, eHealth Exchange, Zoom, Medplum
Modules
- Clinical Documentation — + AI scribe, structured proposals
- Coding & CDS — suggestions, CDS Hooks integration
- Referrals — outbound/inbound, TEFCA exchange
- Labs — order/result workflow
- Imaging — order/report workflow
- Patient Portal — full: messaging, payments, self-scheduling
- Payer Optimization — basic rules engine
Phase 2: Optimization Months 13–18
Advanced analytics, compliance automation, payer optimization, multi-org scaling.
Azure Services (additions)
- + Microsoft Fabric, Health Data Services (optional)
External Services (additions)
- + CodaMetrix / Fathom / Nym, Drata / Vanta, Auth0 / WorkOS, Rectangle Health, CareCredit, Nuance PowerShare
Modules
- Payer Optimization — full AI suggestions
- RCM — denial AI, appeal generation
- Task Management — AI next-best-action
- Analytics / MIPS dashboards
Phase 3: Scale Months 19–24
Device integration, confidential computing, T3 multi-tenancy, patient education.
Azure Services (additions)
- + Confidential Computing
External Services (additions)
- + Welch Allyn, Midmark, Masimo, Healthwise
Modules
- Device vitals auto-capture — USB/BLE/HL7 medical devices
- T3 dedicated-account tenancy — full isolation for large health systems
- Patient education — Healthwise content in portal