Configuration Manual¶
Applies to
The current NidanEHR stack: OpenMRS 2.8.x · OpenELIS-Global 2 · Odoo 19 CE · Orthanc · Kafka 7.5 · Keycloak.
This manual documents the primary configuration endpoints, file mounts, and database parameters for the NidanEHR stack.
Integration Environment Configuration¶
The custom integration engine (CIS and OIS) uses variables defined in the main .env file to map entities across OpenMRS, OpenELIS, and Odoo.
1. Order Type Mappings¶
For the Clinical Integration Service (CIS) to capture and route clinical orders correctly, the UUIDs of the order types must match the database IDs created by the OpenMRS Initializer. Verify these values in .env:
OPENMRS_ORDER_TYPE_UUID_DRUG: Drug order type identifier.OPENMRS_ORDER_TYPE_UUID_LAB: Laboratory order type identifier.OPENMRS_ORDER_TYPE_UUID_RADIOLOGY: Radiology order type identifier.OPENMRS_ORDER_TYPE_UUID_PROCEDURE: Medical procedure order type identifier.OPENMRS_ORDER_TYPE_UUID_MEDICAL_SUPPLY: Disposable and medical supply order identifier.
2. Synchronization Service Credentials¶
The integration middleware uses a dedicated service user account to authenticate API queries:
NIDAN_SYNC_USERNAME(default:nidan-sync): The system credentials created in OpenMRS and OpenELIS.NIDAN_SYNC_PASSWORD: The password utilized by CIS/OIS for backend service requests. Ensure this password is changed from the template default.
3. Odoo Webhook Validation Secret¶
To prevent unauthorized API requests to Odoo, align the shared validation tokens:
* NIDAN_OIS_SECRET (OIS environment variable)
* NIDAN_ODOO_SECRET (Odoo environment variable)
These tokens must be set to the exact same value.
Database Configuration¶
Individual databases map files to the host machine for storage persistence. Check the volume mappings in docker-compose.yml and ensure write permissions exist for the host directories:
OpenMRS (MariaDB)¶
To enable change data capture (CDC) through Debezium, MariaDB requires ROW-based binary logging. This is enabled in the container configuration:
[mysqld]
binlog_format=row
binlog_row_image=full
OPENMRS_DB_ROOT_PASSWORD matches the Debezium root connection password (DEBEZIUM_DB_PASSWORD).
OpenELIS (PostgreSQL)¶
- Database:
clinlims - Timezone: Set
OPENELIS_TZto the matching local timezone (e.g.,Asia/Kathmandu) to ensure test result timestamp alignment.
Odoo (PostgreSQL)¶
Odoo utilizes two database users:
* ODOO_POSTGRES_USER: PostgreSQL superuser for schema creation and administrative tasks.
* ODOO_DB_USER: The application user Odoo uses to read and write billing data.