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):
MSH|^~\&|CUST|CUST|MYEMR|CUST|20181212222222||ORU^R01|1|P|2.5||||||| 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
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.