-
Notifications
You must be signed in to change notification settings - Fork 2
Distribution Package Structure
As described in the page describing the distribution project layout, this project contains various packages of the RwandaEMR. For example, the (imb-butaro and imb-rwinkwavu packages represent a specific set of deployment artifacts that make up the distributions installed at the Butaro and Rwinkwavu hospitals, respectively.
In OpenMRS, standard distribution artifacts include the OpenMRS core web application (openmrs.war), multiple modules (omods) that are installed to extend the capabilities of OpenMRS core, various front-end applications that are installed and communicate with the web application via web services (owas, esms, etc), and configuration files that OpenMRS loads in to set up metadata, execute data migrations, and perform maintenance.
Although various packaging options exist, the approach taken within the RwandaEMR is to build upon the latest community standards to package a distribution zip artifact that contains each of these distinct components in a standard, comprehensive, flexible directory structure.
The benefits of this approach are the following:
- Comprehensive: All artifacts making up the OpenMRS distribution are present
- Understandable: Artifacts are clearly organized
- Componentized: Each consituent component is easily identifiable.
- Updateable: Updates possible without full deployments. Tools can incrementally update.
- Flexible: Deployment agnostic - can be installed to Docker, SDK, VM, etc as appropriate
This directory structure is as follows:
This is where the core "openmrs.war" webapp file will be located. If desired, this is also where additional webapps could be located, if they were intended to run within the same Tomcat instance as OpenMRS, though this is generally discouraged.
All modules for the distribution will be located in this folder. These will all have an "omod" extension.
Any "owa" artifacts will be located here. These typically are "zip" packages of HTML/JavaScript
This folder represents a set of configuration files that are deployed into the .OpenMRS/configuration directory and used to configure the OpenMRS application, typically by the Initializer module. This is typically used to deliver and deploy metadata configurations for a distribution as CSV files and other text-based artifacts.
This remains TBD and conceptual. This may be where migration code is located that would execute prior to starting up the OpenMRS application.
This is also TBD and conceptual, as no ESMs are currently packaged within any distributions like this, though with the growth of Microfrontend ESMs in the community, this is likely needed.
TBD - all folders prefixed with openmrs_ should be reserved for future possible adoption by the OpenMRS community. Anything without an "openmrs_" prefix is available for extension as needed. As an example, many implementations use "bahmni_config", "bahmni_apps", "odoo_config", etc for artifacts related to their Bahmni-based distributions.
- Home
- Distribution
- Continuous Integration
- Development Processes
- Deployment Processes