Stream: implementers
Topic: Creating Lab Results
Emma Darby (Nov 16 2021 at 16:43):
Hi Everyone,
I want to create an app with Epic EMR that connects to a device that generates test results from a sample. I want my app to automatically write the results in the patients EMR who has logged into the app. Does anyone know if there is a FHIR API that I can use to create lab results in a patients EMR? I have looked at Epic-supported FHIR APIs and they only have Observation.Read (Labs) and Observation.Search (Labs) but nothing to create an observation for labs in an EMR. I'm pretty new to this so any help/guidance is really appreciated! Thanks
Cooper Thompson (Nov 16 2021 at 17:02):
Creating lab results is very complex, and is probably going to be unrealistic to do in a pure REST API for very practical reasons (others might disagree, but I still feel comfortable saying this). A transaction or messaging model might work. But to answer your specific question, Epic does not have FHIR APIs to create lab results. You'll need to use an HL7v2 ORU interface.
Patrick Werner (Nov 16 2021 at 17:08):
Hi Emma, sure: if you like java go with hapi fhir, there is also a .net framework (and others): https://confluence.hl7.org/pages/viewpage.action?pageId=35718838
You use them to create your Observations and DiagnosticReports from the device data. Then you POST this to a FHIR Endpoint which allows POST/PUT.
Patrick Werner (Nov 16 2021 at 17:08):
You can test this against one of the public test servers: https://confluence.hl7.org/display/FHIR/Public+Test+Servers
Patrick Werner (Nov 16 2021 at 17:09):
I once built i tiny app which took glucose measurements via BLE and posted these as Observations to a FHIR Endpoint
Emma Darby (Nov 16 2021 at 17:17):
Thank you both so much for the insight!! I have been looking for answers for so long and just found this forum... I wish I found this weeks ago. Patrick, I will look into this immediately, as I'm much more confident with java than HL7v2. I'm glad to hear you had success using this method. Thanks for the links - by "endpoints" do you mean specific epic servers that allow POST/PUT? Lastly, will the POST/PUT method show a message in the EMR, or would it be uploaded as a test results on the EMR?
Cooper Thompson (Nov 16 2021 at 18:52):
Epic does not support FHIR POST/PUT for lab results. We have FHIR write for some other types of data, but not lab results.
Emma Darby (Nov 16 2021 at 19:59):
I see... Thanks for the note Cooper. Do you think there is any other way to send test results instead of using the observation resource? Epic does support creating observations for LDA-W results and vitals...
Cooper Thompson (Nov 17 2021 at 14:28):
If you want to send in lab results to Epic, our HL7v2 interface is the way to do it. Filing a lab result involves a lot more than just Observation. Somebody has to do patient matching and validation, encounter matching, order matching, DiagnosticReport creation, observation creation/linking, and for lab tests that have multiple levels of components like micro, you end up with various structures of linked Observations for stuff like isolate/sensitivity or isolate/method/sensitivity.
Most of the health systems we work with do not permit sending systems, even their hospital lab, to be the entity that is responsible for patient matching and validation. Those processes are handled in the EHR that is receiving the results. This is one of the main reasons why a REST API is unlikely to ever be a good option for submitting lab results to an EHR FHIR server: it puts a lot of responsibility on the client for managing patient/encounter/order lookup and validation. From a policy perspective, this is not desired by the folks in charge of the EHR at health systems.
There may be a future where we have a FHIR messaging support for filing lab results. But for now, our HL7v2 interface is very mature. It has the technical capability to handle just about any sort of lab results you want to send, and we have well established operational processes to handle the patient/encounter/order matching challenges.
Last updated: Apr 12 2022 at 19:14 UTC