HL7 support

anonymous wrote on Saturday, September 22, 2012:

Can anyone tell me about OpenEMR support for HL7? For example, can OpenEMR send out ADT messages?
I am interested in connecting OpenEMR to a Radiology Information System, which typically uses HL7 to synchronize
patients and orders.

tmccormi wrote on Saturday, September 22, 2012:

I currently have OpenEMR receiving HL& data from an RIS… So half way there…
www.mi-squared.com / @tonymi2
oemr.org / @OEMR_org

redstapler wrote on Sunday, September 23, 2012:

Absolutely-  You can integrate the open source HL7 interface engine MIRTH to transform data from OpenEMR . ADT, Orders, Results, whatever suits your needs. You can even configure MIRTH to function as a DICOM worklist between your RIS and modalities. Depending on your vendor they may be the largest constraint  as they are threatened by Open Source and will charge top dollar for integration unless you are also using a open source RIS such as  ClearCanvas.

Have Fun

tmccormi wrote on Sunday, September 23, 2012:

The code I have uses a Mirth feed from ZOLTEC RIS into OpenEMR, no help was needed from the vendor, just the practice IT staff.   I am also working directly with Intelerad, but that interface is XML based and direct, not using Mirth.  They are very keen on OpenEMR in the USA.

1 Like

davidlong3 wrote on Thursday, September 27, 2012:

@redstapler or @tmccormi, is Mirth talking directly to the OpenEMR database or does it interface through the PHP layer?

hello can you tell me the link between HL7 and Open EMR is like? Would you please help me


OpenEMR supports HL7 CCD/CCR. You can learn more about these specifications by reading https://corepointhealth.com/resource-center/hl7-resources/ccd and https://corepointhealth.com/resource-center/white-papers/understanding-continuity-care-record. Let me know if you need help accessing this feature in OpenEMR.

HL7 to/from External Systems

OpenEMR is amazing when it comes to HL7 because you can customize it to meet your exact needs. The best tooling choice here is Mirth Connect (https://www.nextgen.com/Interoperability/Mirth-Solutions/Connect-Overview).

For example, you may have another healthcare system that you want to transmit HL7 messages to OpenEMR. Using Mirth, you “listen” to this feed and forward the data to OpenEMR in whatever format you’d like (JSON, XML, etc). From there, you can write a PHP script to insert the data into OpenEMR for the relevant patient. If you are not comfortable writing this code, please reach out to one of our capable vendors http://open-emr.org/wiki/index.php/Professional_Support.

It is worth noting that OpenEMR can be set up to transfer HL7 messages outbound as well using Mirth.

Hi T_i_Thien_Lam,

Your configuration in the Mirth is directly to connect with OpenEMR’s database. No need to have PHP code level changes.You can create mirth channel to send/receive HL7 messages between source/destination.

OpenEMR is having options to create ORM messages.
Patient>New Encounter form>Administrative>Procedure Order

Refer here to know more about Procedure order messages.

In addition,you may also refer Mirth Connect’s user guide to know more.


1 Like

So when connecting directly from MIRTH are you using FHIR apis to insert the message? Or are you running a custom javascript app on MIRTH to handle the db interaction? My goal is to receive an ADT A01 message (new admittance) and then have that be available in the OPENEMR database.

The trick of course, is the parsing out of the data fields into the database. Are you just guessing what tables and fields to populate?

Looking for suggestions on how best to solve getting this (and then CCDA data) directly into openEMR

hi @Jim_Shelby, there’s no support for ADT messaging so you’d have to customize mirth, CCDA can be imported, see this: http://open-emr.org/wiki/index.php/Use_the_Carecoordination_module#Import_external_CCDA_file

I get the customization of MIRTH. That is the easy part. The hard part is making sure data gets into the right table structures. I can go off the database and make guesses. But it would be better if there was an import of a message type (sounds like this doesnt exist), or an API to push that message type in, or at least an ERD that would guide someone trying to do this manually.

And thanks for the CCDA info!!

well there’s this import of a message type for results openemr/single_order_results.inc.php at master · openemr/openemr · GitHub

edit: whoops, meant this openemr/receive_hl7_results.inc.php at master · openemr/openemr · GitHub

Yes, saw the process about orders and results. But as far as automating the generation of a new patient that wont do as it assumes the patient (and therefore visit) already exists. – thanks for the info though!

you could customize this openemr/patient_match_dialog.php at master · openemr/openemr · GitHub

Jim, if you want to automate a new patient then you may want to look at register.php libraries in openemr/portal. Specific openemr/portal/account/lib for an example of new patient.

1 Like

Hello, I would like to learn about the OpenEMR HL7 sandbox and receive a detailed explanation on how to work with it.