OpenMRS Initializer module

Introduction

The Initializer module is an API-only module that processes the content of the configuration folder when it is found inside OpenMRS' application data directory:

.
├── modules/
├── openmrs.war
├── openmrs-runtime.properties
├── ...
└── configuration/

The configuration folder is subdivided into domain subfolders:

configuration/
  ├── addresshierarchy/
  ├── appointmentsspecialities/
  ├── appointmentsservicesdefinitions/
  ├── attributetypes/
  ├── autogenerationoptions/
  ├── bahmniforms/
  ├── conceptclasses/
  ├── concepts/
  ├── datafiltermappings/
  ├── drugs/
  ├── encountertypes/
  ├── globalproperties/
  ├── idgen/
  ├── jsonkeyvalues/
  ├── locations/
  ├── messageproperties/
  ├── metadatasetmembers/ 
  ├── metadatasets/ 
  ├── metadatasharing/ 
  ├── metadatatermmappings/ 
  ├── patientidentifiertypes/ 
  ├── personattributetypes/ 
  ├── privileges/ 
  ├── programs/ 
  ├── programworkflows/
  ├── programworkflowstates/
  └── roles/

Each domain-specific subfolder contains the metadata and configuration information that is relevant to the subfolder's domain. Although several file types are supported for providing metadata, CSV files are the preferred format and all domain should aim at being covered through parsing CSV files.

Objectives

Supported domains and default loading order

We suggest to go through the following before looking at specific import domains:

This is the list of currently supported domains in respect to their loading order:

  1. Message properties key-values (.properties files)
  2. Generic JSON key-values (JSON files)
  3. Metadata Sharing packages (ZIP files)
  4. Patient identifier types (CSV files)
  5. Privileges (CSV files)
  6. Encounter Types (CSV files)
  7. Roles (CSV files)
  8. Global properties (XML files)
  9. Attribute types (CSV files)
  10. Locations (CSV files)
  11. Bahmni Forms (JSON Files)
  12. Concept classes (CSV files)
  13. Concepts (CSV files)
  14. Programs (CSV files)
  15. Programs worklows (CSV files)
  16. Programs worklow states (CSV files)
  17. Person attribute types (CSV files)
  18. Identifier sources (CSV files)
  19. Auto Generation Options (CSV files)
  20. Drugs (CSV files)
  21. Order Frequencies (CSV files)
  22. Order Types (CSV files)
  23. Bahmni Appointments Specialities (CSV files)
  24. Bahmni Appointments Service Definitions (CSV files)
  25. Data Filter entity-basis mappings (CSV files)
  26. Metadata Sets (CSV files)
  27. Metadata Set Members (CSV files)
  28. Metadata Term Mappings (CSV files)

How to try it out?

Build the master branch and install the built OMOD to your OpenMRS instance:

git clone https://github.com/mekomsolutions/openmrs-module-initializer/tree/master
cd openmrs-module-initializer
mvn clean package
Runtime requirements & compatibility

Quick facts

Initializer enables to achieve the OpenMRS backend equivalent of Bahmni Config for Bahmni Apps. It facilitates the deployment of implementation-specific configurations without writing any code, by just filling the configuration folder with the needed metadata and in accordance to Initializer's available implementations.

Get in touch

Find us on OpenMRS Talk: sign up, start a conversation and ping us with the mention @MekomSolutions in your message. Or find us on the Initializer OpenMRS Slack channel.


Releases notes

Version 2.1.0

Version 2.0.0

Version 1.1.0

Version 1.0.1