The FHIR spec is public. Epic publishes developer documentation. So why do digital health companies spend six months on integrations that should take two?
Three reasons. First, every EHR vendor implements FHIR differently. The spec is a framework, not a contract. Epic's FHIR implementation supports certain resource types and ignores others. Cerner's API quirks are different from Epic's. Athena has its own conventions. Your team needs EHR-specific experience, not just FHIR spec knowledge.
Second, production access requires certification. Epic's App Orchard review, Cerner's code program, and similar vendor processes take weeks of their own. You can complete the technical integration while waiting for certification approval, but you cannot ship to customers until it clears.
Third, the data is messy. Patient demographics vary in completeness. Lab result units are non-standard. Medication names and codes differ between systems. Building a normalization layer that makes this data usable in your application adds time that most roadmaps do not account for.
Capabilities
What we build
FHIR R4 API integration
Connection to Epic MyChart and Epic App Orchard, Cerner PowerChart, Allscripts, Meditech, and Athena via their FHIR R4 endpoints. FHIR resource types covered: Patient, Encounter, Observation (labs, vitals), Condition (diagnoses), MedicationRequest, Appointment, AllergyIntolerance, Procedure, DocumentReference, and DiagnosticReport. Read-only queries for single-patient data retrieval on demand, and webhook-based subscriptions for real-time event notifications where the EHR supports them. OAuth 2.0 and SMART on FHIR authentication flows for patient-facing and clinician-facing access patterns. FHIR response normalization layer that maps EHR-specific extensions and coding systems (SNOMED, LOINC, RxNorm, ICD-10) to a consistent internal representation your application can work with.
HL7 v2 message processing
Parsing and transformation of HL7 v2 messages from hospital interface engines and legacy EHR systems. Message types handled: ADT (admission, discharge, transfer events), ORU (lab and radiology results), ORM (order messages), MDM (medical document notifications), and SIU (scheduling). MLLP listener setup for receiving messages over TCP, with acknowledgment handling (ACK/NAK) and message queue for reliability. Transformation from HL7 v2 pipe-delimited format to structured JSON or FHIR-equivalent resources for use in your application. Error handling for malformed messages, unexpected segments, and non-standard vendor extensions. Message routing rules to direct specific message types to the appropriate processing workflows in your system.
SMART on FHIR app development
Development of SMART on FHIR applications that launch from within the EHR clinician workflow. Patient-context launch -- the app receives the current patient's FHIR ID and can immediately query that patient's data without a separate search. Clinician-context launch with practitioner scope. Launch from Epic Hyperspace, Cerner PowerChart, or any SMART-compatible EHR. App Orchard submission support: we prepare the technical documentation, complete Epic's app review questionnaire, and handle the review process including any clarification rounds. SMART on FHIR is the fastest path to embedding your application into an existing clinical workflow without requiring the hospital to change their EHR.
Bi-directional data sync
Two-way data flow between your platform and the EHR: reading patient demographics, appointment schedules, lab results, medications, and diagnoses from the EHR into your application, and writing structured data back into the EHR record. Write-back use cases include: clinical notes as DocumentReference resources, care plan updates, appointment status changes, and structured observations from your platform. Write-back scope is constrained by what each EHR vendor permits via API -- Epic's write scope is more limited than its read scope, and some resource types require additional vendor approval. We map your specific write-back requirements against what each target EHR's API supports and flag any gaps that require alternative approaches before we build.
HIPAA-compliant data architecture
PHI handling architecture designed for HIPAA compliance: encryption in transit (TLS 1.2 minimum) and at rest (AES-256), access control with role-based permissions and minimum necessary access, comprehensive audit logging of every PHI access event with user, timestamp, and data accessed, and secure API key and credential management. PHI data minimization -- we store only the specific fields your application needs rather than caching full EHR records. Audit trail design that supports HIPAA breach assessment and your organization's compliance program. Architecture documentation suitable for your compliance team's HIPAA risk assessment and for presentation to healthcare enterprise customers during their vendor security reviews.
Patient identity matching and deduplication
Master Patient Index (MPI) logic to resolve patient identity across multiple EHR systems and data sources. Deterministic matching on exact field combinations (name + date of birth + gender + address), probabilistic matching with configurable confidence scoring for partial matches, and a review queue for near-match exceptions that fall below the auto-match threshold. Deduplication rules that handle common data quality issues: name variations (legal name vs. preferred name), address changes, date of birth transcription errors, and multiple MRN assignments for the same patient across systems. The MPI layer sits between your application and the source systems, presenting a single unified patient record regardless of how many EHRs contribute data. Configurable matching rules and thresholds so your clinical and compliance teams control the trade-off between false positive and false negative match rates.
Which EHR system do you need to connect to?
Tell us your target EHR, the data types you need to sync, and whether you need read-only or bi-directional. We'll scope the integration and give you a fixed price and timeline.
Three layers of complexity compound on each other.
Proprietary implementations on top of open standards. FHIR R4 is a standard. But Epic's FHIR endpoints support a specific subset of resources, return vendor-specific extensions, and require Epic-specific authentication flows. What works in Epic's sandbox does not always work in Cerner's. What works in Cerner does not always work in Allscripts. Your team needs EHR-specific experience, not just FHIR knowledge.
Certification adds timeline independent of development. Epic's App Orchard review process runs 8 to 16 weeks from submission to approval. You can complete your technical integration in parallel, but you cannot connect to production Epic systems at a customer site until the review clears. That timeline needs to be on your product roadmap before you promise a launch date to a hospital customer.
Data quality is inconsistent. Patient records in production EHR systems contain incomplete fields, non-standard coding, duplicate entries, and historical data entered in free-text fields rather than structured codes. Building a normalization layer that makes this data reliably usable in your application -- and deciding what to do when required fields are missing -- adds meaningful development time that spec-reading does not reveal.
| Scope | Timeline | Cost range |
|---|
| Single EHR, FHIR R4 read-only (demographics, appointments, labs) | 8 to 12 weeks | $40,000 to $65,000 |
| Single EHR, FHIR R4 bi-directional with write-back | 12 to 16 weeks | $55,000 to $90,000 |
| Multi-system HL7 v2 integration (hospital interface engine) | 10 to 16 weeks | $45,000 to $80,000 |
| Multi-EHR FHIR + HL7 v2 with patient identity matching | 16 to 24 weeks | $80,000 to $150,000 |
Epic App Orchard certification adds 8 to 16 weeks to production readiness and is not included in development time above. These are fixed-price engagements -- we scope before we quote, and the price does not change during delivery unless the scope changes.
We start with discovery. Before any code is written, we need to understand your target EHR systems, the specific data types you need to access or write, whether patients or clinicians are the API users, and what your compliance requirements are. That conversation typically takes two to three hours and produces a scope document with the exact API endpoints, data flows, and architecture decisions we will make.
From there, we build against the EHR sandbox environment first. Epic, Cerner, and Athena all provide sandbox credentials for development. We build and test against sandbox data before you have access to any patient information. That phase also covers the App Orchard submission documentation if Epic is in scope.
Production integration and normalization come next. We connect to production EHR endpoints at your first customer site, build the data normalization layer for that site's specific EHR configuration, and run live data validation against real (but de-identified in development) patient records.
We deliver working integrations, not architectural documents. Your engineering team inherits a codebase they can extend, test, and operate. We document the integration patterns, the certification requirements for each EHR vendor, and the data normalization decisions so the next engineer who touches the code understands what was built and why.
If you need to connect to Epic, Cerner, or any major EHR system, contact us and tell us which system and what data you need. We will scope it and give you a fixed price before you commit to anything.