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

**URL:** <https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398>\
**Category:** Ask OpenELIS\
**Created:** [August 28, 2026, 1:19pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398 "2026-08-28T13:19:11Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ptk](https://avatars.discourse-cdn.com/v4/letter/p/d07c76/32.png) [@ptk](https://talk.openelis-global.org/u/ptk)\
**Post date:** [August 28, 2026, 1:19pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/1 "2026-08-28T13:19:11Z")

</div>

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](https://github.com/DIGI-UW/openelis-docker) 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.

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [August 31, 2026, 9:40am UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/2 "2026-08-31T09:40:40Z")

</div>

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](https://digi-uw.github.io/openelis-global2-fhir-ig/workflows.html).

For analyzer/device result integration, the appropriate route is the OpenELIS [analyzer integration](https://openelis-global.org/analyzers/) 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.

---

<div class="post-metadata">

**Author:** ![ptk](https://avatars.discourse-cdn.com/v4/letter/p/d07c76/32.png) [@ptk](https://talk.openelis-global.org/u/ptk)\
**Post date:** [August 31, 2026, 12:03pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/3 "2026-08-31T12:03:57Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [August 31, 2026, 12:16pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/4 "2026-08-31T12:16:44Z")

</div>

Here is a simmilar [docker installation setup](https://github.com/DIGI-UW/openelis-madagascar-distro) but with default analyzer configurations including the [generic plugins](https://github.com/DIGI-UW/openelis-madagascar-distro/tree/main/configs/plugins)

---

<div class="post-metadata">

**Author:** ![ptk](https://avatars.discourse-cdn.com/v4/letter/p/d07c76/32.png) [@ptk](https://talk.openelis-global.org/u/ptk)\
**Post date:** [August 31, 2026, 1:23pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/5 "2026-08-31T13:23:43Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![njiddasalifu](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/njiddasalifu/32/411_2.png) [@njiddasalifu](https://talk.openelis-global.org/u/njiddasalifu)\
**Post date:** [September 10, 2026, 5:01pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/6 "2026-09-10T17:01:32Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ptk](https://avatars.discourse-cdn.com/v4/letter/p/d07c76/32.png) [@ptk](https://talk.openelis-global.org/u/ptk)\
**Post date:** [September 10, 2026, 5:45pm UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/7 "2026-09-10T17:45:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Moses\_Mutesasira](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.openelis-global.org/moses_mutesasira/32/72_2.png) [@Moses\_Mutesasira](https://talk.openelis-global.org/u/Moses_Mutesasira)\
**Post date:** [September 16, 2026, 8:00am UTC](https://talk.openelis-global.org/t/how-to-do-bi-directional-fhir-synchronization-between-openlisglobal-webapp-and-external-fhir-api/2398/8 "2026-09-16T08:00:32Z")

</div>

> [@ptk](#):
>
> 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
