Integration with OpenELIS

I am trying to integrate OpenEMR and OpenELIS for lab orders.
Can anyone guide me on how to implement it?

What are you trying to accomplish in details please.

I am trying to create orders in OpenELIS via OpenEMR.
I have read in OpenELIS documentation that it supports Electronic orders.
Not sure how it will integrate with OpenEMR.

@parag-thoughti

Questions:

  1. Are you looking at integrating Orders only or Orders and Results?
  2. Do you want to integrate using HL7 v2 or HL7 FHIR

Hello, I was curious your results in your endeavour of OpenElis and Openemr.

English version

[Module Release] OpenEMR ↔ OpenELIS Integration Module (LIS interface)

Hi all,

I’d like to share a module I’ve been building that integrates OpenEMR with OpenELIS as a full laboratory information system (LIS) interface, aimed primarily at clinics using OpenELIS as their lab backend.

Repo: GitHub - luisuriarte/oe-module-openelis-interface · GitHub

What it does:

  • Outbound order flow: sends lab orders from OpenEMR’s native Procedures form (procedure_order) to OpenELIS via FHIR (ServiceRequest), tracking the returned lab order ID for traceability.
  • Inbound results flow: a webhook receives results back from OpenELIS and inserts them into procedure_report/procedure_result, updating order status automatically.
  • Automatic catalog import: pulls OpenELIS’s real test/panel catalog via its REST API and auto-generates the corresponding procedure_type entries and code mappings — no manual code mapping needed for the initial setup. Panels and tests are organized hierarchically (matching OpenELIS’s own panel structure), with support for multiple labs/providers coexisting without code collisions.
  • Patient sync: patients are matched/created in OpenELIS using OpenEMR’s pubpid as the external/national ID, with a manual search-and-link tool for cases without an exact match.
  • Import of prior external studies: a “Search OpenELIS history” button on the patient chart to pull in lab work done before the patient was linked.
  • Uses OpenEMR’s native procedure_providers table for per-lab configuration (multi-lab support out of the box, no custom config screen).

Status: the core loop (order → OpenELIS → results → back into OpenEMR) is working end-to-end. There are still a few rough edges being polished (documented as known issues in the repo).

Demo environment, if you’d like to try it:

Feedback, issues, and PRs are very welcome — especially from anyone else running OpenELIS as their LIS. Happy to answer questions about the FHIR/REST integration approach.


Versión en español

[Nuevo módulo] Integración OpenEMR ↔ OpenELIS (interfaz de laboratorio LIS)

Hola a todos,

Quiero compartir un mĂłdulo que estuve desarrollando para integrar OpenEMR con OpenELIS como interfaz completa de laboratorio (LIS), pensado para clĂ­nicas que usan OpenELIS como sistema de laboratorio.

Repositorio: GitHub - luisuriarte/oe-module-openelis-interface · GitHub

Qué hace:

  • Flujo de solicitud (outbound): envĂ­a Ăłrdenes de laboratorio desde el formulario nativo de Procedimientos de OpenEMR (procedure_order) hacia OpenELIS vĂ­a FHIR (ServiceRequest), guardando el ID de orden retornado para trazabilidad.
  • Flujo de resultados (inbound): un webhook recibe los resultados desde OpenELIS y los carga en procedure_report/procedure_result, actualizando el estado de la orden automáticamente.
  • ImportaciĂłn automática de catálogo: trae el catálogo real de tests/paneles de OpenELIS vĂ­a su API REST y genera automáticamente los procedure_type correspondientes junto con el mapeo de cĂłdigos — sin necesidad de mapear a mano en la puesta en marcha inicial. Los paneles y tests se organizan jerárquicamente (igual que en OpenELIS), con soporte para mĂşltiples laboratorios/proveedores conviviendo sin colisiĂłn de cĂłdigos.
  • SincronizaciĂłn de pacientes: los pacientes se buscan/crean en OpenELIS usando el pubpid de OpenEMR como identificador externo/nacional, con una herramienta de bĂşsqueda y vinculaciĂłn manual para los casos sin coincidencia exacta.
  • ImportaciĂłn de estudios externos previos: botĂłn “Buscar historial en OpenELIS” en la ficha del paciente, para traer estudios hechos antes de vincular al paciente.
  • Usa la tabla nativa procedure_providers de OpenEMR para la configuraciĂłn de cada laboratorio (soporte multi-laboratorio nativo, sin pantalla de configuraciĂłn custom).

Estado actual: el ciclo completo (orden → OpenELIS → resultado → vuelta a OpenEMR) ya funciona de punta a punta. Quedan algunos detalles por pulir (documentados como issues conocidos en el repo).

Entorno de demo, por si quieren probarlo:

Feedback, issues y PRs son bienvenidos — especialmente de quienes también usen OpenELIS como LIS. Con gusto respondo preguntas sobre el enfoque de integración FHIR/REST.

3 Likes

@luisuriarte This is a great addition to OpenEMR. Don’t leave this buried here in a thread. It needs to be posted on this page also. If you don’t have access to edit the page.

Write to @brady.miller or @stephenwaite to gain access. Link the listing on the wiki page to here. If you prefer. I can list it for you on the wiki page.

1 Like

@luisuriarte Great work.

1 Like

Quick Guide: Setting Up and Using the OpenEMR ↔ OpenELIS Integration

This is not a manual, just a short guide.

The Providers form has been modified. The diffs and full files are in the patch folder.

The OpenEMR version I’m using is 8.2.0.

Something I already posted about on the OpenELIS forum: to be used as an API user for importing the test catalog, the account needs administrator privileges (I’m not thrilled about that, but I assume it’ll be addressed eventually).

So, in Providers, you enter the catalog import user and password (OpenELIS Catalog Login). You also enter the operational API user (Login).

There are other fields I added, but those are for a PACS server — I’ll write up the same kind of explanation for that separately.

Both of these users need to be requested from the lab service running OpenELIS.

In the menu, it’s under Procedures / OpenELIS.

First you run a preview, then you import the catalog. That catalog gets saved into OpenEMR’s procedure_type table.

LOINC and SNOMED are set/adjusted in Code Mapping.

Then you create a normal procedure order, making sure to select the lab and the procedure type — you need to choose Lab Test.

In the procedure search, it only shows tests that are lab tests:

First press Save and Continue, then Send to OpenELIS.

Then, under Procedures / OpenELIS / Pending Orders, the sent orders will appear.

These orders will show up on the OpenELIS dashboard (demo = https://elis.origen.ar, user openelis / pass 4rG3ntin4$).

From there, let it follow its normal course in OpenELIS.

Back in OpenEMR, in Pending Orders, press the Check Results (All) button, and it will show if results were imported (with a count).

Then check the patient’s dashboard as you normally would.

Demo access to your openemr above does not work ( https://demo.origen.ar/ clinitian1/4rG3ntin4, to your openelis it does, is it possible to give access to your openemr demo so i can take a look at your forms for intake/PE? if you modified it would you plz link to github?

Is clinician1/4rG3ntin4

Regards

Luis

Thank you, pretty much same forms , again thanks for offering the link to your demo.

Amazing usage of CAMOS especially with medications , would you please elaborate?

CAMOS has been a native OpenEMR form for years. You can view it here: CAMOS module - OpenEMR Project Wiki .

In my demo, I have customized hospital management, notifications, telehealth, home-based care (HBC), the dental chart, the Express Portal, and SDOH (maternity monitoring, in Latin America).

Wow you did it Luis!! I’ve been messing with this for months now. Congratulations! I will be in contact with you!

1 Like