Transferring Data from HL7-Enabled Device to OpenEMR

Sewar, a student from Jordan, has been emailing me about a custom HL7-capable device that he wishes to use to transmit data to OpenEMR. I figured this topic may be of interest to those looking to integrate devices with the system.

He is most interested in using the labs functionality of OpenEMR to poll this data. I will provide a simple, non-production solution (meaning, if you want to do this, please set up a proper SFTP solution so it’s secure). The example is based on a fictional device that collects blood pressure and sends it to a server. It is assumed that the patient’s name/dob/sex are programmed into the device.

Step 1: Spin up OpenEMR

Step 2: Create a directory somewhere where the device will submit result files (in my case, I created /data/hl7 on Linux)

Step 3: Create the following custom_bp_device_lab_result.hl7 file and place it in the hl7 directory (mocks out what the device would create and submit):

PID||123|123^^^^CC||FOO BAR||19990105|M
OBR|1||321|28562-7^Vital Signs^LN
OBX|1|NM|271649006^Systolic blood pressure^SNOMED-CT||132|mm[Hg]|90-120|H|||F|||20181212222222
OBX|2|NM|271650006^Diastolic blood pressure^SNOMED-CT||86|mm[Hg]|60-80|H|||F|||20181212222222

Step 4: Login in as admin:

Step 5: Navigate as shown:

Step 6: Create a lab provider as shown:

Step 7: Note the created provider:

Step 8: Navigate as shown:

Step 9: Note the result (click on the patient name):

Step 10: Observe the created patient record with labs shown (click on lab):

Step 11: Check both discrete values for review:

Step 12: Review results:


  • This is not a secure approach. Just an example to help out a student.
  • If the device doesn’t “speak HL7”, the data could be sent to a Mirth Connect server for translation.
  • This is only a results flow setup… no need for configuring orders and mapping compendiums.
  • This data may be better stored in the patient vitals table (labs are usually more complex than just checking blood pressure) but I am hopeful that diving into labs will help this student learn about HL7, lab data, and systems integration.
  • Of course, I am interested in other’s thoughts on my approach. Feel free to comment if there is a better way to go about this in an effort to be as helpful to the student as possible.


1 Like

is there an option to import these hl7 vital signs in the vitals view of the patient or put it in the vitals table not in labs view?

I followed this tutorial, but when I pressed Process Results, I didn’t get any results. Should I create the order?

Thanks for your help!

I also tried to do this, and similarly the results do not show up in the electronic reports page.
Does this process require an order?