Configuration Documentation
This directory contains detailed documentation for OpenELIS configuration files.
Available Configurations
Roles Configuration
Configure user roles with hierarchical relationships, permissions, and display settings.
- Location:
configuration/backend/roles/ - Format: CSV
- Features: Hierarchical roles, internationalization, role grouping
Dictionaries Configuration
Configure dictionary entries for dropdowns and data validation.
- Location:
configuration/backend/dictionaries/ - Format: CSV
- Features: Categories, LOINC codes, abbreviations, sorting
Questionnaires Configuration
Configure FHIR Questionnaire resources for data collection forms.
- Location:
configuration/backend/questionnaires/ - Format: JSON (FHIR R4)
- Features: FHIR-compliant questionnaires, automatic UUID assignment, checksum tracking
Address Hierarchy Configuration
Configure hierarchical geographic/administrative divisions (e.g., Province → District → Sub-District → Village).
- Location:
configuration/backend/address-hierarchy/ - Format: CSV
- Features: Configurable hierarchy levels, parent-child relationships, backward compatible with Health Region/District
How Configuration Loading Works
Configuration files are loaded automatically during application startup:
-
Files are discovered from:
-
Classpath:
src/main/resources/configuration/{domain}/*.csv -
Filesystem:
/var/lib/openelis-global/configuration/backend/{domain}/*.csv(mapped from./configuration/backend/{domain}/in Docker) -
Checksums are tracked to prevent reprocessing unchanged files
-
Create or update domain entries based on unique identifiers
-
Examples are ignored - Files in
examples/subdirectories are not loaded
Disabling Auto-loading
To disable automatic configuration loading, add to your properties file:
org.openelisglobal.configuration.autocreate=false
Adding New Configuration Domains
To add a new configuration domain:
- Create handler implementing
DomainConfigurationHandler - Annotate with
@Component - Implement
getDomainName(),getFileExtension(), andprocessConfiguration() - Optionally override
getFileMatcher()to return an Ant-style glob pattern (e.g.,*-levels.csv) if the handler should only match a subset of files. The default is*.{extension}. When multiple handlers share a domain, handlers with lowergetLoadOrder()claim matching files first; later handlers with broader patterns automatically skip already-claimed files. - Add documentation following the pattern in this directory
See Also
- CONTRIBUTING.md - Contributing guidelines
- README.md - Project overview