Why "Seamless Integration" Claims Are Usually Lies
HL7 FHIR (Fast Healthcare Interoperability Resources) is supposed to solve healthcare data exchange. In theory, it's a universal standard. In practice, every EHR vendor implements FHIR differently, creating a new kind of fragmentation.
| Resource Type | Standard Definition | Common Vendor Variations |
|---|---|---|
| Patient | Demographics, identifiers, contacts | Custom extensions for race/ethnicity, varying identifier systems (MRN, SSN, insurance ID) |
| Observation | Vitals, lab results, clinical measurements | Different LOINC mappings, custom reference ranges, varying units of measure |
| MedicationRequest | Prescriptions, medication orders | Formulary restrictions, prior auth flags, custom dosage representations |
| DiagnosticReport | Lab reports, radiology reports | Embedded PDFs vs structured data, varying result statuses, custom categories |
| Encounter | Visits, admissions, appointments | Department-specific encounter types, varying discharge statuses, custom billing codes |
Each major EHR vendor has its own certification program, API quirks, and business practices. "We integrate with Epic" can mean anything from "we have a certified SMART on FHIR app" to "we've reverse-engineered their HL7 feeds."
Clinicians won't use tools that require separate logins. SSO is table stakes, but implementation varies widely. Here's what's actually required:
| Standard | What It Does | EHR Support | Implementation Complexity |
|---|---|---|---|
| SAML 2.0 | Enterprise SSO federation | Universal (all major EHRs) | Medium (IdP configuration required) |
| OAuth 2.0 / OIDC | Modern auth, API access tokens | Growing (FHIR requires OAuth) | Medium-High (token management) |
| SMART on FHIR | Healthcare-specific OAuth profile | Epic, Cerner, others (for FHIR apps) | High (EHR-specific launch sequences) |
| Active Directory | Windows domain authentication | Often via SAML proxy | Low (if using SAML) |
| Duo / Okta / Ping | Identity providers (IdP) | Via SAML/OAuth | Medium (IdP-specific config) |
How fresh is the data in your AI tool? Real-time sync is expensive and complex. Batch updates are cheaper but create dangerous gaps. Here's what you're actually getting:
| Method | Latency | Reliability | Cost | Best For |
|---|---|---|---|---|
| FHIR Subscriptions | Seconds | Medium (not universally supported) | High | Critical alerts, time-sensitive decisions |
| FHIR Polling | 1-5 minutes | High | Medium | Clinical decision support, medication reconciliation |
| HL7 v2 ADT Feeds | 1-15 minutes | Very High (mature tech) | Low-Medium | Patient registration, admissions, discharges |
| Batch File Transfer (SFTP) | Hours to daily | High | Low | Analytics, population health, reporting |
| Manual Export/Import | Days to weeks | Low (human error) | Lowest | One-time migrations, not for production |
| Cost Category | Typical Range | Notes |
|---|---|---|
| EHR Certification Fees | $5,000 - $50,000 | Per EHR vendor, non-refundable, annual renewal often required |
| Development Time | 3-9 months FTE | Integration specialists, not general devs. $150-250/hr or $300-500k salary |
| Interface Engine License | $10,000 - $100,000/yr | Mirth, Rhapsody, Corepoint for HL7 transformation/routing |
| Testing & Validation | $20,000 - $100,000 | Test environments, synthetic data, UAT coordination with health system |
| Security Audit / SOC 2 | $50,000 - $200,000 | Required by most health systems before production access |
| Ongoing Maintenance | 20-40% of dev cost/year | EHR upgrades break integrations, API changes, bug fixes |
| Customer-Specific Customization | $10,000 - $50,000/site | Every health system has unique workflows, custom fields, local protocols |