How to do bi-directional FHIR synchronization between openlisglobal-webapp and external-fhir-api?

Hi guys,

We are developing the medical device.

I made a decision to leverage OpenELIS as a test integration platform.

I was able to provision your docker application stack but I ran into expired certificate issues that I addressed by rebuilding your cert image.

To test our device I started interacting with FHIR server that comes as part of OpenELIS docker stack (external-fhir-api).
I was able to get ServiceRequests and submit Observation and DiagnosticReport structures.
But when I submit results I cannot see them in OpenELIS UI (webapp).

I tried to configure properties of webapp by setting org.openelisglobal.remote.source.uri=https://fhir.openelis.org:8443/fhir/ but it didn’t help.

How do I close the loop? How make sure that data gets back to GUI?

I also considered HL7v2 and Analyzer path but there is no plugins for our device type and not even a category.

I am experienced software engineer but this is my first medical device and I haven’t worked with LIS/LIMS and medical environment before, so I would appreciate guidance around these topics.

Hello @ptk ,

OpenELIS currently supports one-way, asynchronous synchronization from the OpenELIS web application to its FHIR server. Records created or updated in OpenELIS are converted to FHIR resources, but submitting or modifying Observation and DiagnosticReport resources directly in the FHIR server does not synchronise those results back into the OpenELIS UI.

So, changing org.openelisglobal.remote.source.uri will not close that loop; it does not enable a bidirectional FHIR-to-OpenELIS result-import workflow.

FHIR is intended primarily to support the lab-order workflow between an EMR and OpenELIS, as described here: OpenELIS FHIR lab workflow.

For analyzer/device result integration, the appropriate route is the OpenELIS analyzer integration path. If your device is not supported by an existing plugin or category, you would likely need to develop a custom analyzer integration/adapter that maps your device’s output into the OpenELIS result-entry workflow.

In short: writing results directly to external-fhir-api is useful for FHIR testing, but it will not make those results appear in the OpenELIS GUI today.

Hi Moses. Thank you for the reply!
I kinda already discovered that FHIR is a dead end and it was very non-intuitive and totally unexpected.

I looked into analyzer integrations but my docker installation has no plugins. Based on the docs there should be generic plugins that handle HL7v2. Is there a place where I can download binaries? I see only source code and I am not a Java guy.

Here is a simmilar docker installation setup but with default analyzer configurations including the generic plugins

It seem like I was able to bootstrap the OpenELIS with those binaries.

Can analyzer query OpenELIS for the order by lab/accession/barcode using HL7v2?

Hi @ptk are you able to sort out your way ?

Not really, I tried to query using HL7 v2 and it didn’t work.
I will probably do query using FHIR and try to submit results using HL7 v2.

It doesn’t feel like a clean solution but it is okay for now.

Ideally it would be nice to have full end-to-end protocol support. It would also drive more interest from other locations and developers.

Thanks @ptk . We in the process of supporting a full end to end protocal and i gues this should be ready in the upcoming realese.

cc @Piotr_Wargulak