How to integrate with Epic (or any EHR)

Mark Olschesky
Mark Olschesky

Datica Alumni — Former Chief Data Officer

April 4, 2018  tag HL7 EHR

You did it! You made your first big sale to a hospital. Your product is live. You proved your efficacy, and the impact with clinicians and patients is evident. To reduce double documentation or improve your application, your customer wants to receive data from the EHR. You’ll need to work with a project team, sometimes 200-persons large, while mastering a new skillset.

What needs to be done? Lets walk through the names, the players and the timelines of delivering your first integration with Epic Systems EHR (EpicCare) or any other EHR like Cerner or Allscripts.

The Players

Project Manager - The person responsible for running the project plan and gathering resources. Depending on the integration size or scope, this person might wear multiple hats within IT or might be involved with operations within the healthcare organization itself.

Operational Owner - The person responsible for buying your software (or their proxy) and your internal champion. This person will likely be involved in bringing the rest of the team in and helping you navigate through the system. This can be anyone from a department head to the CIO of the organization.

System Administrator/Network Engineer - The person responsible for getting the VPN setup, which is likely the second thing you will do in the integration setup process. Knows that interfaces connect to IP addresses and ports, but likely isn’t that curious about what data gets sent across.

Interface Engine Analyst/Engineer - The person responsible for ensuring that the data is passing through the VPN and hitting the appropriate port on the interface engine. The interface engine is probably a product like Rhapsody, Intersystems Ensemble or eGate; all interfaces from all clinical software (not just the EHR) go through here. This person sets up the ports on the IP addresses you need to connect with. He or she usually isn’t responsible for the details about the specific interface, but if your HL7 messages do not pass certain formatting/filtering criteria there will likely be errors that you will need to troubleshoot with this person. At a smaller organization, this may be the same person as the EHR Interface Analyst.

EHR/Application Interface Analyst/Engineer - The person responsible for making sure that data from the Interface Engine drops an HL7 message from the Interface Engine successfully into the EHR. In Epic, this person is the Bridges Analyst and in Cerner they are the Open Engine analyst. If your data has an improperly formatted field or mapping, is using the wrong identifier for a person/order/document, or otherwise has a problem getting into the EHR, this person will let you know about the problem. It’s worth noting that you’ll probably only need to work closely with this person on writing data into the EHR via notes, flowsheets or results.

EHR (or application) Web Services Analyst/Engineer - In many cases, notably when working with Epic, the person responsible for HL7 integration might not be the same person responsible for working with Web Services. In Epic, Web Services are used for NCPDP messages (ePrescribing), FHIR, IHE protocols (PIX/PDQ, XDS.b queries), and functions that relate to MyChart. Epic explains this better than I can. Likewise, Cerner has MillenniumObjects and Allscripts has its own API for integration purposes. There may be some overlap between the Interface and Web Services roles; the big reason that there may be separation is that since these are different products from the EHR Vendor, support and staff may be bifurcated accordingly.

EHR/Application Analyst - For writing data into the EHR, you’ll need to validate the data that you are writing back into the EHR shows up in the right places (or that the “right places” are in fact built) For getting data out of the EHR, you’ll need someone to trigger events (like scheduling an appointment or discharging a patient) to test the workflow that integration is facilitating. This is written up as one job role, but realistically it’ll be different team members for various workflows. These may be some of the applications and their Epic application name that you would need to ensure that you had the right person online for testing.

  • Outpatient EHR (EpicCare Ambulatory) - Orders, Results, Notes, Flowsheets(discrete data).
  • Inpatient EHR (EpicCare Inpatient) - Orders, Results, Notes, Device Integration, Flowsheets(discrete data)
  • Scheduling (Cadence) - Scheduling, Patient Demographic Updates
  • Registration (ADT) - Hospital Patient Registration, Admissions, Discharges, Transfers 1
  • Surgery (OpTime) - Scheduling Surgical Cases
  • Lab/Radiology/Cardiology LIS/RIS/CVIS (Beaker/Radiant/Cupid) - Scheduling/Registration/Results for Lab/Radiology/Cardiology + Procedure Logs + Results
  • EMPI (Identity) - EMPI queries
  • Other - MyChart, Care Everywhere, other Web Services 2

It’s also worth noting that the process of getting data in or out the EHR doesn’t necessary actualize its usefulness. Your Operational Owner should work with the appropriate EHR analysts to ensure that data written into the EHR is displayed in the correct reports and dashboards while ensuring that data that needs to be generated from the EHR receives the proper treatment in terms of decision support and workflow training.

Support Staff - A larger organization likely has team members handle some amount of support. This person is probably who will contact you if there is downtime from the Hospital side or if they notice that errors are pooling up on your interface connection. Likewise, you will want to inform this person (or some other centralized resource) in the event that you notice a degradation of service

The Stack

We use Mirth Connect with Postgres as a backend here at Datica and I highly recommend it. It’s open source with a permissive license and can satisfy most integrations needs for startups. It’s ranked highly in KLAS. You can give it a try here.

Why Datica?

With all this information in tow, why do you need an integration partner?

Because there is so much more to do. It takes plenty of specialized experience to make your first HL7 project go well, and Datica provides this for you in house. We provide you with:

  • A load-balanced, secure, highly-available Interface Engine on scalable cloud infrastructure (5 VMs). We run Mirth Connect, an open-source, KLAS ranked Interface Engine. Our infrastructure has been through two HIPAA audits and one HITRUST audit and is ready to plug into any healthcare organization in the country.
  • A dedicated hardware firewall that will meet the needs and bandwidth for any VPN with any healthcare organization in the United States.
  • Burst onto the scene with instant credibility in HL7: Certified EHR and Networking (CCNA) Professionals with years of experience on hand to guide you through the process of setting up an integration. We’ve worked with most EHR vendors and we’re willing to do whatever it takes it get an integration done.
  • Lean on the tooling we’ve already built for customers and use our standard HL7-to-JSON libraries to get data in a format that’s easier to deal with than pipe-delimited mumbo-jumbo.
  • Best-in-class monitoring and support from an engineering-first company.
  • Straight-forward pricing: Do you know that in 1990 the pitch for HL7 involved pricing for an interface costing less than $10,000? Why are you still paying through the teeth for it now?


We want to make interoperability easier for everyone. Look forward to more open-sourced advice and documentation in the future.

[1] There isn’t always a clean line between Outpatient/Inpatient applications. There may be “outpatient” clinics in a hospital, which may use multiple systems. When in doubt, let the hospital pull in the right people.

[2] There are many new Epic apps and integrations possible every year. The ones listed are amongst the most common apps and integrations, but the list is not inclusive or wholly complete. If you’re not sure who is responsible for a specific integration, it’s best to lean on your operational owner/project manager who needs to be involved to get something done.

Related Academy Articles