Create Your Own Distribution of Ozone HIS
Why your own distribution?
Beyond experimenting with the Quick Start guide, implementers of Ozone HIS will soon discover the need to provide their own configurations and possibly bespoke customizations to Ozone HIS. We recommend to do so through creating and managing your own distribution of Ozone HIS.
Ozone provides a series Apache Maven-based tools to facilitate the assembly of your own tailored HIS distribution. This starts with the Ozone Maven Archetype.
The Ozone Maven Archetype
Software Prequisites
The Ozone Maven Archetype generates a foundational skeleton project, providing a customizable base for any specific implementation requirements.
1 Configure Maven
Edit your Maven settings.xml
file (usually located at ~/.m2/settings.xml
) and add the following block to it:
<profiles>
<profile>
<id>ozone</id>
<repositories>
<repository>
<id>archetype</id>
<url>https://nexus.mekomsolutions.net/repository/maven-public</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>ozone</activeProfile>
</activeProfiles>
2 Generate the archetype
Use Maven's archetype tools to generate a new Ozone implementation project structure:
mvn org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -DarchetypeArtifactId=maven-archetype -DarchetypeGroupId=com.ozonehis
This will prompt you for several key variables for your Maven project:
Prompt variable | Sample value | Explanation |
---|---|---|
distributionName |
Ozone Gruzinia |
A name for your distribution. For example, a reference Ozone implementation for the imaginary country of Gruzinia could be named "Ozone Gruzinia". |
groupId |
gz.moh |
The Maven group ID that will be used for the implementation artifact. For "Ozone Gruzinia" this might be something like gz.moh . |
artifactId |
ozone-gruzinia |
The Maven artifact ID that will be used for the implementation artifact. For "Ozone Gruzinia" this might be ozone-gruzinia . |
package |
gz.moh |
A required property, but not used. To make it easy just accept the default value, which should default to be the same as the groupId . |
version |
1.0.0-SNAPSHOT |
The version number for the distribution, it starts by default at 1.0.0-SNAPSHOT . |
This will create a bare-bones Ozone implementation project that should look like this:
ozone-gruzinia/
├── README.md
├── configs
│ └── openmrs
│ ├── frontend_config
│ └── initializer_config
├── pom.xml
├── readme
│ └── impl-guide.md
└── scripts
├── mvnw
├── mvnw.cmd
├── mvnwDebug
└── mvnwDebug.cmd
Available commands
Goal | Command | Explanation |
---|---|---|
Build the distribution | ./scripts/mvnw clean package |
Assembles and packages your distribution, incorporating any configurations and customizations you've applied. |
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. |