diff --git a/docs/configuring-components.md b/docs/configuring-components.md new file mode 100644 index 0000000..7f8410e --- /dev/null +++ b/docs/configuring-components.md @@ -0,0 +1,44 @@ +# :construction: Configuring HIS Components + +You will find a `configs` folder within the skeleton project generated by the Ozone Maven Archetype. This folder is subdivided into subfolders, with each subfolder corresponding to a component of the Ozone HIS distribution. It should look something like this depending on the components available: + +```bash + configs/ + ├── erpnext + ├── odoo + ├── openmrs + ├── senaite + └── superset +``` + +Each component-specific subfolder can be used to provide the configuration files for that component, overriding its default configuration. + +!!! warning "" + + Each component's default configuration is the responsibility of the component's open-source community. + + Ozone HIS provides these configurations "as is", they are not modified or maintained by the Ozone development team. + +## Overriding the ERPNext Config + +## Overriding the Odoo Config + +## Overriding the OpenMRS Config + +To assist implementers, the OpenMRS config is already structured with multiple subfolders that gather in one place all the essential configurations of OpenMRS 3: +```bash + ├── openmrs + ├── frontend_assembly + ├── frontend_config + └── initializer_config +``` + +### `frontend_assembly` + +### `frontend_config` + +### `initializer_config` + +## Overriding the SENAITE Config + +## Overriding the Superset Config \ No newline at end of file diff --git a/docs/create-distro.md b/docs/create-distro.md index 1f2672a..c7731be 100644 --- a/docs/create-distro.md +++ b/docs/create-distro.md @@ -16,7 +16,7 @@ Ozone provides a series Apache Maven-based tools to facilitate the assembly of y The Ozone Maven Archetype generates a foundational skeleton project, providing a customizable base for any specific implementation requirements. -### 1) Configure Maven +## **1** Configure Maven Edit your Maven `settings.xml` file (usually located at `~/.m2/settings.xml`) and add the following block to it: ```xml @@ -45,7 +45,7 @@ Edit your Maven `settings.xml` file (usually located at `~/.m2/settings.xml`) an ``` -### 2) Generate the archetype +## **2** Generate the archetype Use Maven's archetype tools to generate a new Ozone implementation project structure: @@ -67,19 +67,19 @@ This will prompt you for several key variables for your Maven project: This will create a bare-bones Ozone implementation project that should look like this: ```bash ozone-gruzinia/ -├── README.md -├── config -│ └── openmrs -│ ├── frontend_config -│ └── initializer_config -├── pom.xml -├── readme -│ └── impl-guide.md -└── scripts - ├── mvnw - ├── mvnw.cmd - ├── mvnwDebug - └── mvnwDebug.cmd + ├── README.md + ├── configs + │ └── openmrs + │ ├── frontend_config + │ └── initializer_config + ├── pom.xml + ├── readme + │ └── impl-guide.md + └── scripts + ├── mvnw + ├── mvnw.cmd + ├── mvnwDebug + └── mvnwDebug.cmd ``` ## Available commands @@ -90,6 +90,4 @@ ozone-gruzinia/ |Access start/stop/destroy commands|
source target/go-to-scripts-dir.sh|Navigates to the directory containing the scripts for starting, stopping, and destroying the distribution, making these commands readily accessible.| |**Start** the distribution|
./start-demo.sh|Initiates and launches all components of the Ozone HIS, bringing up the system.| |**Stop** the distribution|
./stop-demo.sh|Gracefully halts all Ozone HIS services, effectively shutting down the system.| -|**Destroy** the distribution|
./destroy-demo.sh|Completely removes the distribution, clearing all its components and data, ideal for resetting the system or rectifying persistent issues ahead of a restart or a rebuild and restart.| - -You are now ready to tailor Ozone to fit your specific requirements. Proceed to the following page for guidance on how to override default configurations. +|**Destroy** the distribution|
./destroy-demo.sh|Completely removes the distribution, clearing all its components and data, ideal for resetting the system or rectifying persistent issues ahead of a restart or a rebuild and restart.| \ No newline at end of file diff --git a/docs/customize-ozone.md b/docs/customize-ozone.md new file mode 100644 index 0000000..25d244f --- /dev/null +++ b/docs/customize-ozone.md @@ -0,0 +1,56 @@ +# Customizing Ozone HIS + +After you have generated your own distribution of Ozone HIS with the Ozone Maven Archetype, the next step is to explore the possibilities for customizing your distribution to meet your specific needs and specifications. + +There are four main areas of customization and configuration available to you to do so: + +!!! abstract "Configurability in Ozone HIS" + + 1. Customizing the default distribution behavior. + 2. Enabling & disabling HIS components. + 3. Configuring HIS components. + 4. Configuring the EIP layer. + +## Ozone HIS is a Maven Distribution + +It is an essential prerequisite to understand that your distribution of Ozone HIS is managed as a [:simple-apachemaven:Maven :fontawesome-solid-arrow-up-right-from-square:](https://maven.apache.org/what-is-maven.html) project. + +Every standard Ozone HIS distribution is generated with the _Ozone Maven Archetype_ as a child of the _Ozone Maven Parent_. The default behavior of such a distribution is a combination of + +* What is inherited from the parent. +* What is auto-generated within the archetype. + +What constitutes your software distribution of Ozone HIS is stated and defined in the main [Maven POM :fontawesome-solid-arrow-up-right-from-square:](https://maven.apache.org/guides/introduction/introduction-to-the-pom.html) file of your distribution, the one that has been was generated by the archetype. + +!!! tip "**Did you know?**" + + Your distribution POM file is **a manifest** that states {==all that makes your Ozone HIS distribution==}. + +## Customizing the Maven Distribution + +Practically every element of the POM file can be modified to achieve the changes you wish to make to your Ozone HIS distribution. We will not attempt to define an exhaustive list of all possible customizations, as virtually anything can be achieved with Maven. Instead, we will use this space to build an inventory of useful examples of such customizations that have occured through real-world use cases. + +### Adding further software dependencies + +!!! example "Adding custom OpenMRS backend modules" + + The KenyaHMIS Ozone distribution required additional OpenMRS backend modules (JAR files) beyond those provided by default in OpenMRS. This can be achieved by adding Maven dependencies in the main POM file of the Ozone HIS distribution. + + See [here :fontawesome-solid-arrow-up-right-from-square:](https://github.com/palladiumkenya/kenyahmis/blob/b24503fd623d6b9c06a94d1af3588c15b463abf6/pom.xml#L132-L186) how this can be done. + +### Overriding the version of default software dependencies + +!!! example "Using another version of the OpenMRS Initializer module" + + The KenyaHMIS Ozone distribution needed to temporarily depend on a bleeding-edge version of the Initializer module rather than the released version packaged with OpenMRS by default. This can be achieved in two steps: + + 1. Excluding the packaged Initializer JAR file, see [here :fontawesome-solid-arrow-up-right-from-square:](https://github.com/palladiumkenya/kenyahmis/blob/b24503fd623d6b9c06a94d1af3588c15b463abf6/pom.xml#L229). + 2. Re-adding a dependency on the desired version of Initializer, see [here :fontawesome-solid-arrow-up-right-from-square:](https://github.com/palladiumkenya/kenyahmis/blob/b24503fd623d6b9c06a94d1af3588c15b463abf6/pom.xml#L125-L129). + +### Excluding default configuration files + +!!! example "Ignoring default OpenMRS backend configuration files" + + The KenyaHMIS Ozone distribution did not require several OpenMRS backend configuration files that come by default with OpenMRS. Since these configuration files are already packaged through the OpenMRS dependency, one way to handle this is to exclude the unwanted configuration files from the package. + + See [here :fontawesome-solid-arrow-up-right-from-square:](https://github.com/palladiumkenya/kenyahmis/blob/b24503fd623d6b9c06a94d1af3588c15b463abf6/pom.xml#L210-L227) how this can be done. \ No newline at end of file diff --git a/docs/config-points.md b/docs/eip-config-points.md similarity index 93% rename from docs/config-points.md rename to docs/eip-config-points.md index 287eb6e..b1e159e 100644 --- a/docs/config-points.md +++ b/docs/eip-config-points.md @@ -1,4 +1,4 @@ -# :construction: Configuration Points +# :construction: EIP Configuration Points In this section, we provide a comprehensive list of configuration points available in Ozone, organized by EIP services and thereby grouped by pairs of components. @@ -17,7 +17,7 @@ In this section, we provide a comprehensive list of configuration points availab - _Possible values:_