Home/Technology/EHR Integrations
6 FHIR-native · 12 HL7/EDI · sub-second in-chart

FHIR-native, EHR-agnostic.

Most EHR integration failures come from the same root cause. Vendors build for one EHR, then bolt on the others. We did it the other way. The data mapping layer is the product. FHIR, HL7 v2, and 837/835 EDI all converge to the same internal canonical model. Downstream AI Suite tools never see the EHR-specific quirks. Onboarding a new customer on a supported EHR takes weeks, not quarters.

SMART on FHIR for Epic + Cerner OAuth2 + PKCE, no tokens in browser Sandbox + production tenants
The EHR support matrix

Native, fallback, or clearinghouse.

Every supported EHR ships with three reuse paths. Native FHIR is the gold path, used when the EHR offers SMART on FHIR or a marketplace FHIR R4 endpoint. HL7 v2 is the fallback, used when FHIR support is partial or restricted to read-only resources. The 837/835 EDI clearinghouse path is the catch-all, used for the older EHRs and for direct payer connectivity.

The matrix is the partial list. Under NDA we share the full EHR coverage map including the unannounced upcoming integrations and the specialty-specific EHR vendors (ABA platforms, behavioral health EHRs, dental practice management systems).

EHR connectivity matrix · production
EHR Vendor
FHIR
HL7
EDI
EpicApp Orchard, SMART on FHIR
Cerner / Oracle HealthCode Console
AthenahealthMarketplace API
·
eClinicalWorksFHIR R4 endpoint
NextGenNextGen Connect
Greenway HealthPatient Portal API
Allscripts / VeradigmFHIR + Sunrise HL7
MeditechHL7 v2 inbound
·
CentralReach (ABA)Practice management
·
Rethink (ABA)Practice management
·
Therapy BrandsBehavioral health
·
Dentrix / EaglesoftDental, HL7 bridge
·
● production · ◐ partial · · clearinghouse only · full list under NDA
The capabilities

Six capabilities. One data mapping layer.

The downstream AI Suite tools (eligibility, prior auth, claim status, denial management, posting, coding) never see EHR-specific structure. The data mapping layer normalizes every inbound message into the canonical internal model.

01 · FHIR R4 bidirectional

Read and write, both ways.

Six EHRs run bidirectional FHIR R4. We read Patient, Encounter, Coverage, Condition, Procedure, ServiceRequest, DocumentReference, Practitioner, Organization. We write Claim, CommunicationRequest, and Task back. SMART on FHIR for the Epic and Cerner OAuth dance.

02 · HL7 v2 fallback

ADT, ORM, ORU, DFT inbound.

For EHRs without complete FHIR coverage, HL7 v2 messages flow through the mapping layer. ADT for patient demographics and encounters, ORM for orders, ORU for results, DFT for charges. Message integrity validation and acknowledgement back to the EHR.

03 · 837/835 EDI

Clearinghouse or direct.

837 (claim submission) and 835 (electronic remittance advice) via the major clearinghouses: Availity, Change Healthcare, Optum, Waystar, Office Ally, Trizetto. Direct payer EDI where the payer offers a private endpoint. 277 and 999 round-trip into the same workflow.

04 · OAuth2 federation

PKCE, tokens server-side.

SMART on FHIR authorization code flow with PKCE for the EHR side, OAuth2 client credentials for the system-level integration. Access tokens are short-lived (60 minutes typical). Refresh tokens held server-side only. No tokens ever land in browser local storage.

05 · Webhook events

Real-time, no polling.

Where the EHR publishes webhook events (Epic backplane, Cerner subscription resources), we consume them in real time. Patient demographic changes, new encounters, new orders all trigger downstream workflow updates within seconds rather than waiting for a polled refresh cycle.

06 · Data mapping layer

Canonical model, per-EHR mappers.

Every inbound message normalizes to the canonical internal model (Patient, Encounter, Coverage, Claim, Practitioner, Organization). Mappers live as versioned TypeScript modules with test fixtures per mapping. When an EHR upgrades its FHIR profile, the mapper version bumps and downstream code stays unchanged.

The integration flow

Chart open to coder review. One pass.

From the moment a clinician opens a chart in the EHR, here is the integration path the data takes through the ASP-RCM stack on its way to a coder review queue.

Step A
Chart open in EHR

SMART on FHIR launch context tells us the patient ID, encounter ID, and the practitioner identity. The OAuth2 access token attaches to the API request.

Step B
Mapping layer normalizes

FHIR Bundle fetch retrieves Patient, Encounter, Coverage, Condition, Procedure, DocumentReference. Mapper normalizes to canonical model. Encrypted in-memory cache holds the bundle.

Step C
AI prompt sub-second

Coding suggestion, eligibility status, prior auth gap, documentation gap, denial risk. Streams from cache in under 400ms p95. Prompt versioning logged per request.

Step D
Coder review queue

AI confidence below threshold routes to coder review. Coder accepts, rejects, or edits. Decision feeds back into the model retraining loop. Audit trail in phi_access_log.

How integration setup runs

Four steps. Weeks, not quarters.

A new customer on a supported EHR comes online on a documented timeline. Here is the work the integration team executes from kickoff to production cutover.

Step 01

Sandbox connectivity.

EHR vendor provisions sandbox tenant. We register the OAuth2 client, exchange certificates if needed, and validate the FHIR endpoint reachability. Test fixtures verify the mapper produces a clean canonical model.

Step 02

Production tenant provisioned.

EHR vendor provisions production tenant. Customer admin approves the OAuth scopes. We rotate the client secret into Secrets Manager and run a production smoke test against a synthetic patient.

Step 03

Data flow validation.

Real customer data flows through the mapping layer for 5 to 10 business days. Mapper edge cases get logged. Customer reviews a sample of normalized records side-by-side with the EHR view to confirm fidelity before cutover.

Step 04

Cutover + monitor.

Downstream AI Suite tools and Credential OS switch from manual data entry to live EHR feed. First 30 days carry double-monitoring: any mapper failure or data anomaly is human-reviewed before the workflow proceeds.

What integration delivers

Measured. Per customer.

Telemetry from production EHR tenants, last 90 days. Numbers come from the API gateway metrics and the mapping layer test suite.

380ms
In-chart prompt p95 latency
After the first FHIR Bundle fetch lands in encrypted in-memory cache (TTL 30 minutes), subsequent AI prompts stream from cache. Coding suggestions, eligibility status, and documentation gaps return inside the clinician's workflow without interrupting it.
18+
EHRs reachable in production
Six on bidirectional FHIR R4, twelve more via HL7 v2 or 837/835 EDI. Plus the specialty practice management systems (CentralReach, Rethink, Therapy Brands, Dentrix, Eaglesoft) that the broader EHR market does not always cover.
3-5wk
Native-FHIR EHR onboarding
From kickoff to production cutover on Epic, Cerner, Athena, eCW, NextGen, or Greenway. The mapping layer is reused across customers on the same EHR, so the second customer on a given EHR takes substantially less time than the first.
Common questions

Frequently asked questions: EHR integration.

Which EHRs does ASP-RCM natively support via FHIR?
Six EHRs run on bidirectional FHIR R4 today: Epic (via App Orchard and SMART on FHIR), Cerner / Oracle Health (via Code Console), Athenahealth (via marketplace API), eClinicalWorks (via FHIR R4 endpoint), NextGen (via NextGen Connect), and Greenway Health (via Patient Portal API). For each one we run a sandbox and a production tenant, support OAuth2 authorization code flow with PKCE, and consume the real-time webhook events the EHR publishes.
What about EHRs without FHIR support?
Twelve more EHRs connect via HL7 v2 messaging (ADT, ORM, ORU, DFT) or via the 837/835 EDI clearinghouse layer. The data mapping layer normalizes the inbound messages into the same internal canonical model that FHIR resources flow into, so downstream products (claim scrubbers, eligibility AI, prior auth assembly) do not care whether the data arrived as a FHIR Bundle or an HL7 ORM message. Full EHR list available on request under NDA.
How fast are in-chart prompts?
Sub-second median for the in-chart AI prompts. The architecture caches the patient FHIR Bundle on first chart open into an encrypted in-memory store, then streams subsequent AI prompts (coding suggestion, missing documentation flag, eligibility status) directly from cache. The first chart open carries the full FHIR fetch latency (typically 800ms to 1.2s); every prompt after that returns in under 400ms p95.
What is the OAuth2 setup like?
For SMART on FHIR EHRs (Epic, Cerner) we run the standard authorization code flow with PKCE plus a backend service client for system-level access. For others we run OAuth2 client credentials with rotated client secrets stored in AWS Secrets Manager. Access tokens are short-lived (typically 60 minutes) with refresh tokens held server-side only. No tokens ever land in browser local storage.
Do you support 837/835 EDI?
Yes. 837 (claim submission) and 835 (electronic remittance advice) are first-class citizens in the integration layer. We connect via the major clearinghouses (Availity, Change Healthcare / Optum, Waystar, Office Ally, Trizetto) and support direct payer connectivity where the payer offers a private EDI endpoint. 277 (claim status response) and 999 (acknowledgement) round-trip back into the same workflow that the FHIR claim status path feeds.
How does the data mapping layer work?
The data mapping layer normalizes inbound messages from any EHR or clearinghouse into a single canonical internal model (Patient, Encounter, Coverage, Claim, ClaimResponse, Practitioner, Organization). Mappers live as versioned TypeScript modules per EHR, with a test fixture per mapping. When an EHR upgrades its FHIR profile or an HL7 message structure changes, we update the mapper version and all downstream code keeps working unchanged.
How long does an EHR integration take to spin up?
For the 6 native FHIR EHRs, sandbox connectivity in under a week and production cutover in 3 to 5 weeks depending on the prospect's EHR access provisioning timeline. For HL7 or 837/835-only EHRs, expect 6 to 10 weeks because the message structure and the clearinghouse connectivity need to be tested per payer. The mapping layer is reused across customers on the same EHR, so the second customer on Epic, for example, takes substantially less time than the first.
How does this connect to Credential OS and the AI Suite?
All EHR data flows through the same data mapping layer into the canonical internal model. The AI Suite tools (eligibility, prior auth, claim status, denial management, posting, coding) read from the canonical model, which means they work the same regardless of source EHR. Credential OS (credentialing platform) shares the practitioner and organization data with the same model, so a provider added in Credential OS becomes available immediately to the eligibility and claim workflows. See the credentialing page for the shared identity and audit story.

Send your EHR fingerprint. We send back the fit assessment.

Tell us your EHR vendor, version, current clearinghouse, and the AI Suite tools you want to deploy. Under NDA we return a fit assessment covering connectivity path, integration timeline, mapper coverage of your specialty, and any gaps that need customer-side configuration. A senior partner on the call.