👩💻 For Developers
For Developers
Engineers contributing code, building integrations, or extending OpenELIS Global.
Who this is for
You're writing or modifying code in the OpenELIS Global codebase, or building integrations against its APIs (FHIR, ASTM, plugin SDK). This section covers local dev setup, architectural context, the FHIR surface, RBAC at the technical level, and the QA test framework. It does not cover operational documentation — for that, see For Operators.
Where the code lives
DIGI-UW/OpenELIS-Global-2 — main repository (Java backend, React frontend, Docker compose)
openelisglobal/openelisglobal-plugins — analyzer plugins
I-TECH-UW/Consolidated-Server — central data aggregation server
docs.openelis-global.org — published developer documentation site
What to read first (new contributor onboarding)
Dev Environment Setup Instructions — get OE running locally on your machine.
Developer Notes — codebase patterns, architectural context, common gotchas.
Entity Relationship Diagram — the database schema, your map of the data model.
Lab-domain primers — if you don't have a clinical lab background, start with: Microbiology Module — Workflow Walk-through (for developers) — what a real microbiology workflow looks like end-to-end. QA Narrative — Quality in the Lab (Four Pillars, for developers) — the regulatory context for why the QA module exists.
Pick a starter issue on GitHub and ask in Talk before starting.
Reference docs
Interoperability
FHIR — OpenELIS Global 2 Implementation Guide v0.1.0 — the canonical FHIR profile spec
Interacting with Co-resident FHIR Store — local hapi-fhir-jpaserver patterns
Examples of FHIR messages used — sample request/response payloads
Authentication / Authorization
Developer Documentation: Single Sign On — Keycloak setup, SAML / OAuth2 wiring
RBAC Troubleshooting Guide: Permission Inspector & Common Misconfigurations — JWT inspection, common 401/403 failure modes
Testing & QA
Playwright E2E Testing Framework for OpenELIS Global 2: Best Practices and Configuration Guide — required reading for adding E2E tests
QA Framework (currently points to the Playwright guide above)
Configuration Initializer
Developer Documentation: Configuration Initializer — internals of how configuration loads at startup.
How to contribute
Read the README in the main repo for current contribution guidelines.
Coordinate with the team in Talk before starting substantial work — the project has an active roadmap and avoiding duplicated effort is critical.
Submit pull requests against the
developbranch.Add Playwright E2E tests for new features per the framework guide.
Update Confluence documentation for user-visible changes — that's part of the definition of done.
Where to get help
OpenMRS Talk — primary developer Q&A forum
GitHub Issues — bug reports and feature requests
Pull request reviews — tag the maintainers in your PR description
Stay current
Watch the Releases page for milestone announcements. Watch the FHIR Implementation Guide if you're building an interoperability integration. Subscribe to GitHub releases on the main repo for code-level change notifications.