diff --git a/docs/assets/images/favicon.png b/docs/assets/images/favicon.png index b3677ea..becf92c 100644 Binary files a/docs/assets/images/favicon.png and b/docs/assets/images/favicon.png differ diff --git a/docs/assets/logo.png b/docs/assets/logo.png index c125718..d37eb09 100644 Binary files a/docs/assets/logo.png and b/docs/assets/logo.png differ diff --git a/docs/config-points.md b/docs/config-points.md new file mode 100644 index 0000000..8dc9356 --- /dev/null +++ b/docs/config-points.md @@ -0,0 +1,106 @@ +# :construction: 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 apps. + +--- + +!!! info inline end "" + + {==:oz: Pro==} + +## Keycloak-Superset Flows + +###### `superset.polling-interval` + +- _Location:_
+`ozone/distro/configs/eip-keycloak-superset/properties/application.properties` +- _Possible values:_
+The time in milliseconds. Defaults to 30000 – Controls the polling interval for the `eip-keycloak-superset` service, which regularly fetches the set of roles from Superset to synchronize them with Keycloak. + +!!! tip "Sample configuration:" + + ```java + superset.polling-interval=30000 + ``` + +--- + +## ERPNext-OpenMRS Flows + +###### `erpnext.openmrs.enable.patient.sync` + +- _Location:_
+`ozone/distro/configs/eip-erpnext-openmrs/application.properties` +- _Possible values:_ + * [x] `false` – An OpenMRS patient is synchronised as an ERPNext customer when a first billable item is ordered from OpenMRS. + * [ ] `true` – An OpenMRS patient is always synchronised as an ERPNext customer. + +!!! tip "Sample configuration:" + + ```java + erpnext.openmrs.enable.patient.sync=false + ``` + +--- + +## Odoo-OpenMRS Flows + +###### `concept.complex.uuid` + +- _Location:_
+
+- _Possible values:_
+
+ +###### `create.customer.if.not.exist` + +- _Location:_
+
+- _Possible values:_
+
+ +###### `emr.weight.concept` + +- _Location:_
+
+- _Possible values:_
+
+ +###### `openmrs.identifier.type.uuid` + +- _Location:_
+
+- _Possible values:_
+
+ +###### `results.encounterType.uuid` + +- _Location:_
+
+- _Possible values:_
+
+ +--- + +## OpenMRS-SENAITE Flows + +###### `concept.complex.uuid` + +- _Location:_
+
+- _Possible values:_
+
+ +###### `openmrs.identifier.type.uuid` + +- _Location:_
+
+- _Possible values:_
+
+ +###### `results.encounterType.uuid` + +- _Location:_
+
+- _Possible values:_
+
\ No newline at end of file diff --git a/docs/create-distro.md b/docs/create-distro.md index c7731be..decf408 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 - ├── configs - │ └── openmrs - │ ├── frontend_config - │ └── initializer_config - ├── pom.xml - ├── readme - │ └── impl-guide.md - └── scripts - ├── mvnw - ├── mvnw.cmd - ├── mvnwDebug - └── mvnwDebug.cmd +├── README.md +├── config +│ └── openmrs +│ ├── frontend_config +│ └── initializer_config +├── pom.xml +├── readme +│ └── impl-guide.md +└── scripts + ├── mvnw + ├── mvnw.cmd + ├── mvnwDebug + └── mvnwDebug.cmd ``` ## Available commands @@ -88,6 +88,8 @@ ozone-gruzinia/ |:----|:----|:----| |**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.| +|**Start** the distribution|
./start-demo.sh
|Initiates and launches all apps 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.| \ No newline at end of file +|**Destroy** the distribution|
./destroy-demo.sh
|Completely removes the distribution, clearing all its apps 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. diff --git a/docs/devs/conventions.md b/docs/devs/conventions.md index 014cfed..e4ac5b3 100644 --- a/docs/devs/conventions.md +++ b/docs/devs/conventions.md @@ -1,6 +1,9 @@ # :construction: Conventions -In this section, we provide a comprehensive list of conventions followed in Ozone, organized by the type of conventions and thereby grouped by components. +!!! info "Coming soon:" + + * Listing our conventions, organized by the type and grouped by app/service. + * Code Conventions. ## Naming @@ -8,7 +11,7 @@ In this section, we provide a comprehensive list of conventions followed in Ozon - Should be named in the format `eip--`. Where `` and `` are the names of the two systems being integrated, in alphabetical order. For example, `eip-erpnext-openmrs`. - The name should be in lowercase and use hyphens to separate words. -- The preceding name should be used for(whenever possible): +- The preceding name should be used for (whenever possible): - GitHub repository name. - Docker Compose service. - Configuration directory. @@ -17,4 +20,4 @@ In this section, we provide a comprehensive list of conventions followed in Ozon ## Code Conventions -### Java +### Java \ No newline at end of file diff --git a/docs/devs/e2e-tests.md b/docs/devs/e2e-tests.md index 9c8f498..c37d378 100644 --- a/docs/devs/e2e-tests.md +++ b/docs/devs/e2e-tests.md @@ -1,13 +1,13 @@ # Automated End-to-End Tests -All data flows within Ozone and the actions performed on its HIS components are rigorously validated using a comprehensive suite of automated end-to-end (E2E) tests. +All data flows within Ozone and the actions performed on its HIS apps are rigorously validated using a comprehensive suite of automated end-to-end (E2E) tests. This section is designed to help Ozone developers familiarize themselves with [`ozone-e2e`](https://github.com/ozone-his/ozone-e2e), the repository where all end-to-end tests for Ozone are maintained. It will guide you through the architecture of a typical end-to-end test case and provide the necessary knowledge and practical steps to develop your own test cases. !!! info "Some facts about `ozone-e2e`" - We use [Playwright :fontawesome-solid-arrow-up-right-from-square:](https://playwright.dev/), the automation testing framework. - - We test our data flows through the actions and effects that they have on Ozone HIS components. + - We test our data flows through the actions and effects that they have on Ozone HIS apps. - We focus on how these actions and effects are experienced by end users. !!! tip "Software Prequisites" @@ -39,7 +39,7 @@ e2e as well as methods required by the tests to run. ``` -The data flows resulting from the integration between specific component pairs (e.g., between Odoo and OpenMRS) are typically tested through a designated test file for each pair (e.g., `odoo-openmrs-flows.spec.js`). All test files are located in the [`e2e/tests` directory](https://github.com/ozone-his/ozone-e2e/tree/main/e2e/tests). We encourage you to explore and review the current set of tests to understand the testing process better and evaluate the extent of their coverage. +The data flows resulting from the integration between specific app pairs (e.g., between Odoo and OpenMRS) are typically tested through a designated test file for each pair (e.g., `odoo-openmrs-flows.spec.js`). All test files are located in the [`e2e/tests` directory](https://github.com/ozone-his/ozone-e2e/tree/main/e2e/tests). We encourage you to explore and review the current set of tests to understand the testing process better and evaluate the extent of their coverage. ### Project configuration @@ -65,7 +65,7 @@ TEST_PRO=false All configuration variables are set to the desired values by editing and saving the [`.env` file :fontawesome-solid-arrow-up-right-from-square:](https://github.com/ozone-his/ozone-e2e/blob/main/.env) prior to running the tests. -Additionally, the `.env` file contains a range of configuration variables that specify the URLs for accessing the various HIS components in each test environment, as well as the credentials needed to execute the test cases. +Additionally, the `.env` file contains a range of configuration variables that specify the URLs for accessing the various HIS apps in each test environment, as well as the credentials needed to execute the test cases. ### Running tests against a local instance @@ -92,7 +92,7 @@ SENAITE_URL_QA= SENAITE_URL_DEMO= # ... ``` -Continue this pattern for all components running locally by identifying their local URL in your development environment, and edit the `.env` file accordingly. +Continue this pattern for all apps running locally by identifying their local URL in your development environment, and edit the `.env` file accordingly. ## Running Tests @@ -104,7 +104,7 @@ npx playwright test ``` ### Running specific tests -To focus on testing data flows between specific pairs of HIS components, you can run tests contained in a specific file. For example, to test the integration data flows between Odoo and OpenMRS: +To focus on testing data flows between specific pairs of HIS apps, you can run tests contained in a specific file. For example, to test the integration data flows between Odoo and OpenMRS: ``` npx playwright test odoo-openmrs-flows @@ -121,7 +121,7 @@ npx playwright test --project=chromium - **Passed**: When all tests within the suite pass without encountering any errors, the overall result is marked as "Passed". This means that the application behaved as expected under the test conditions. -- **Failed**: If any test within the suite encounters an error or assertion failure during execution, the overall result is marked as "Failed". Determine whether the failure is specific to the test case, a particular component or feature, or the entire application. Once you've identified the root cause of the failure, implement a fix to address the issue. This may involve modifying test assertions, updating application code, or addressing environmental dependencies. +- **Failed**: If any test within the suite encounters an error or assertion failure during execution, the overall result is marked as "Failed". Determine whether the failure is specific to the test case, a particular app or feature, or the entire application. Once you've identified the root cause of the failure, implement a fix to address the issue. This may involve modifying test assertions, updating application code, or addressing environmental dependencies. - **Skipped**: Sometimes, tests are intentionally skipped based on certain conditions or configurations. These skipped tests are not executed during the test run and are marked as "Skipped" in the test result. @@ -129,17 +129,17 @@ npx playwright test --project=chromium ### Naming test files -Our test cases cover the data flows between Ozone HIS components and we have taken the convention to group test cases by pairs of components. For example all data flows between OpenMRS and SENAITE are grouped together in a file named `openmrs-senaite-flows.spec.js` that lives in the `e2e/tests`. This file contains all test cases for data flows going from OpenMRS to SENAITE as well as those going from SENAITE to OpenMRS. +Our test cases cover the data flows between Ozone HIS apps and we have taken the convention to group test cases by pairs of apps. For example all data flows between OpenMRS and SENAITE are grouped together in a file named `openmrs-senaite-flows.spec.js` that lives in the `e2e/tests`. This file contains all test cases for data flows going from OpenMRS to SENAITE as well as those going from SENAITE to OpenMRS. -The naming is alphabetical per convention. The data flows going both ways between hypothetical HIS components _Foo_ and _Bar_ would live in a file named `bar-foo-flows.spec.js` and so on and so forth for all pairs of HIS components. +The naming is alphabetical per convention. The data flows going both ways between hypothetical HIS apps _Foo_ and _Bar_ would live in a file named `bar-foo-flows.spec.js` and so on and so forth for all pairs of HIS apps. ### Testing actions and effects -While Ozone relies on its components default behaviour and features, we do encompass in our E2E test suite the actions performed when using the user experience of the components and the effects observed throught the user experience of those components. This ensures that test are truly end-to-end with a focus on the end-user experience. +While Ozone relies on its apps default behaviour and features, we do encompass in our E2E test suite the actions performed when using the user experience of the apps and the effects observed throught the user experience of those apps. This ensures that test are truly end-to-end with a focus on the end-user experience. To write a test case: -- Identify the user interactions and functionalities to test between a pair of HIS components. +- Identify the user interactions and functionalities to test between a pair of HIS apps. - Use Playwright’s API to script the actions within each test scenario, such as navigating pages, clicking buttons, filling forms, and verifying UI elements. ### Utilizing Playwright @@ -212,6 +212,6 @@ We observe that the test structure is broken down between a **setup**, the actua - **Setup**: Omitted here. All aspects of the setup have been performed in the `beforeEach()` method. - **Replay**: Navigation to the lab order form, add a lab test, and save the form. -- **Verification**: Navigation to the SENAITE HIS component and search for the client by name. Verify that the client's name is visible in the clients list. +- **Verification**: Navigation to the SENAITE HIS app and search for the client by name. Verify that the client's name is visible in the clients list. **Cleanup**: The post-test cleanup consists of deleting the test patient and closing the browser page. diff --git a/docs/devs/eip-client-1.jpg b/docs/devs/eip-client-1.jpg index 13570b4..973d98a 100644 Binary files a/docs/devs/eip-client-1.jpg and b/docs/devs/eip-client-1.jpg differ diff --git a/docs/devs/index.md b/docs/devs/index.md index ef9c876..ca664c8 100644 --- a/docs/devs/index.md +++ b/docs/devs/index.md @@ -1,62 +1,62 @@ !!! info "" - This section of the Ozone Docs is designed for **software architects, engineers, and developers**. It provides comprehensive information on Ozone's architecture, guides on integrating new software components, and technical advice on developing within Ozone. + This section of the Ozone Docs is designed for **software architects, engineers, and developers**. It provides comprehensive information on Ozone's architecture, guides on integrating new software apps, and technical advice on developing within Ozone. # Architecture Overview ## Ozone Platform -Ozone Platform serves as the interoperability layer that seamlessly integrates HIS components by enabling data flows between them: +The Ozone Platform serves as the interoperability layer that seamlessly integrates HIS apps by enabling data flows of FHIR resources between them:
![alt text](oz-plat-1.jpg){ width="600" } -
HIS components glued with configurable data flows.
+
HIS apps glued with configurable data flows.
Ozone Platform is a decenstralised mesh of peer-to-peer interoperability services, each an instance of Ozone's **EIP Client**. -Each service connects a pair of HIS components of Ozone's digital health sofware suite: +Each service connects a pair of HIS apps of Ozone's digital health sofware suite:
![alt text](oz-plat-2.jpg){ width="600" } -
Mesh of peer-to-peer services integrating HIS components.
+
Mesh of point-to-point services integrating apps within the HIS.
## Ozone's EIP Client -The core of the Ozone Platform is powered by the EIP Client(1), a Spring Boot application that runs Apache Camel routes. This application acts as the ETL[^etl] agent between two components of the HIS. +The core of the Ozone Platform is powered by the EIP[^eip] Client, a Spring Boot application that runs Apache Camel routes. This application acts as the ETL[^etl] agent between two apps of the HIS. { .annotate } -1.
Enterprise Integration Patterns +[^eip]: Enterprise Integration Patterns [^etl]: Extract, Transform, Load
![alt text](eip-client-1.jpg){ width="600" } -
Peer-to-peer service between two HIS components.
+
Point-to-point service between two apps of the HIS.
-The EIP Client facilitates the **exchange of FHIR resources** between two components of Ozone's digital health software suite. This exchange of FHIR resources is precisely what makes the data flows of Ozone HIS. +The EIP Client facilitates the **exchange of FHIR resources** between two apps of Ozone's digital health software suite. This exchange of FHIR resources is precisely what makes the data flows of Ozone HIS. Development in Ozone primarily involves assembling peer-to-peer services using the EIP Client. This client is equipped with several built-in features, simplifying the development process: - It's a ready-to-use application designed for implementing Camel routes. - It manages authentication: - * With Ozone FOSS's HIS components. + * With Ozone FOSS's HIS apps. * With Ozone Pro's Identity Provider (IdP).   {==:oz: Pro==} - It includes a variety of common libraries to implement data flows that can be reused across different services. ## Missing :fhir:FHIR APIs -Many software components do not provide a FHIR API, often because they are not healthcare-specific, such as ERP systems. When this occurs, there are two possible solutions: +Many software apps do not provide a FHIR API, often because they are not healthcare-specific, such as ERP systems. When this occurs, there are two possible solutions: ### **1**   Lobby for the inclusion of a FHIR API The ideal solution is to advocate for the software editor or development community to include a FHIR API as part of the software itself. -Generally, this can be achieved gradually with minimal effort by focusing on the subset of FHIR resources most needed to accomplish the desired flows within Ozone HIS. Often, only a couple of resources are required, and not all operations need to be supported for those resources. +Generally, this can be achieved gradually with minimal effort by focusing on the subset of FHIR resources most needed to accomplish the desired flows within the Ozone HIS. Often, only a couple of resources are required, and not all operations need to be supported for those resources. ### **2**   Development of a Camel FHIR facade diff --git a/docs/devs/oz-plat-1.jpg b/docs/devs/oz-plat-1.jpg index 249abdb..b1edeba 100644 Binary files a/docs/devs/oz-plat-1.jpg and b/docs/devs/oz-plat-1.jpg differ diff --git a/docs/devs/oz-plat-2.jpg b/docs/devs/oz-plat-2.jpg index c1f7fc8..b849c34 100644 Binary files a/docs/devs/oz-plat-2.jpg and b/docs/devs/oz-plat-2.jpg differ diff --git a/docs/eip-config-points.md b/docs/eip-config-points.md index b1e159e..cf96e7b 100644 --- a/docs/eip-config-points.md +++ b/docs/eip-config-points.md @@ -1,6 +1,6 @@ # :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. +In this section, we provide a comprehensive list of configuration points available in Ozone, organized by EIP services and thereby grouped by pairs of apps. --- diff --git a/docs/fonts/Geist-Regular.ttf b/docs/fonts/Geist-Regular.ttf new file mode 100644 index 0000000..a10d58a Binary files /dev/null and b/docs/fonts/Geist-Regular.ttf differ diff --git a/docs/fonts/Recoleta.woff2 b/docs/fonts/Recoleta.woff2 new file mode 100644 index 0000000..5799c98 Binary files /dev/null and b/docs/fonts/Recoleta.woff2 differ diff --git a/docs/index.md b/docs/index.md index 666b327..6920614 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,6 @@ !!! info "" - This section of the Ozone Docs is designed for **digital health technical implementers**, focusing on how to install, configure, and run Ozone HIS. + This section of the Ozone Docs is designed for **digital health technical implementers**, focusing on how to install, configure, and run the Ozone HIS. # Quick Start @@ -28,9 +28,9 @@ :fontawesome-regular-hourglass-half: It may take some time to download and setup Ozone for the first time. - Then, start browsing Ozone. This requires you to log into each component separately: + Then, start browsing Ozone. This requires you to log into each app of the HIS separately: - | **HIS Component** | **URL** | + | **HIS App** | **URL** | |----------------------------------------|---------------------------------------------------------------------------------------------| | OpenMRS 3 | http://localhost/openmrs/spa | | SENAITE | http://localhost:8081/senaite | @@ -50,13 +50,13 @@ Gitpod will automatically launch a new tab for OpenMRS 3. - You can navigate to other Ozone HIS components via the PORTS tab of the Gitpod window: + You can navigate to other Ozone apps of the HIS via the PORTS tab of the Gitpod window: ![Ozone services started](assets/images/gitpod-list-services.png) -Each component will require you to log in separately with their own credentials: +Each app of the HIS will require you to log in separately with their own credentials: -| **HIS Component** | **Username** | **Password** | +| **App** | **Username** | **Password** | |----------------------------------------|----------------------------------------------|-----------------------------------------| | OpenMRS 3 | admin | Admin123 | | SENAITE | admin | password | diff --git a/docs/override-configs.md b/docs/override-configs.md new file mode 100644 index 0000000..2144b46 --- /dev/null +++ b/docs/override-configs.md @@ -0,0 +1,7 @@ +# :construction: Overriding Inherited Configurations + +!!! info "Coming soon:" + + * Using the Ozone Maven Archetype. + * Using the Maven parent. + * Overriding inherited configurations. Eg. OpenMRS frontend and backend configs, Odoo config, etc. \ No newline at end of file diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index abebbbe..d9e366a 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -1,17 +1,58 @@ -.oz-green { - color: #007d79; +@font-face { + font-family: "Recoleta"; + font-weight: normal; + font-style: normal; + src: url("../fonts/Recoleta.woff2"); } -.md-typeset .admonition { - font-size: 100%; +@font-face { + font-family: "Geist"; + font-weight: normal; + font-style: normal; + src: url("../fonts/Geist-Regular.ttf"); } -.md-typeset .admonition-title { - font-weight: 500; +:root { + --md-primary-fg-color: #3cb393; + --md-default-bg-color: #fcf4e5; + background: var(--md-default-bg-color) +} + +body { + --md-default-bg-color: #fcf4e5 !important; +} + +footer { + --md-footer-bg-color: #141324; +} + +code { + --md-code-bg-color: #fefaf4 !important; +} + +.md-ellipsis { + font-family: "Recoleta"; + font-size: 110%; +} + +.md-nav__item { + font-family: "Recoleta"; +} + +.md-header__button.md-logo img, .md-header__button.md-logo svg { + height: 1.5rem; +} + +.md-tabs__link { + font-size: 1.5em; +} + +.md-typeset .admonition { + font-size: 90%; } .md-typeset { - font-size: 140%; + font-size: 150%; } .md-typeset .small-title { @@ -19,12 +60,18 @@ font-weight: 500; } +.md-typeset h1 { + font-family: "Recoleta"; +} + .md-typeset h2 { + font-family: "Recoleta"; font-size: 155%; font-weight: 500; } .md-typeset h3 { + font-family: "Recoleta"; font-size: 120%; font-weight: 500; } @@ -44,12 +91,6 @@ font-size: 120%; } -:root { - --md-primary-fg-color: #007d79; - --md-primary-fg-color--light: #007d79; - --md-primary-fg-color--dark: #007d79; -} - .secondary { color:grey; } diff --git a/docs/users/analytics.md b/docs/users/analytics.md index bfe507e..2fb0f53 100644 --- a/docs/users/analytics.md +++ b/docs/users/analytics.md @@ -1,5 +1 @@ -!!! info inline end "" - - {==:oz: Pro==} - # :construction: Ozone Analytics \ No newline at end of file diff --git a/docs/users/index.md b/docs/users/index.md index 9a91d1f..dccc6d8 100644 --- a/docs/users/index.md +++ b/docs/users/index.md @@ -4,14 +4,14 @@ # Overview -Ozone is an easy-to-install {==growing suite of digital health software==}, +Ozone is an easy-to-install {==growing suite of digital health apps==},
integrated by a {==scalable interoperability framework==}
delivering a complete health information system experience. ``` mermaid stateDiagram-v2 state "Ozone HIS" as ozone - state "digital health software" as state1 + state "digital health apps" as state1 state "interoperability framework" as state2 state1 --> ozone @@ -20,7 +20,7 @@ stateDiagram-v2 ## **1**   A suite of opt in/out digital health software -Ozone is a ready-to-use solution, providing a pre-selected array of FOSS[^foss] components that function seamlessly together. +Ozone is a ready-to-use solution, providing a pre-selected array of FOSS[^foss] apps that function seamlessly together. [^foss]: Free and open-source software @@ -30,7 +30,7 @@ It is a complete health information system allowing users to customize it by cho **:fontawesome-solid-tag: Ozone HIS `1.0.0-alpha.10`** -|HIS type|Component|Version in Ozone HIS| +|HIS type|App|Version in Ozone| |:---:|:---:|:---:| |EMR|:openmrs: OpenMRS|`3.0.0-beta.18`| |LIMS|SENAITE|`2.3.0`| @@ -45,26 +45,26 @@ It is a complete health information system allowing users to customize it by cho ### Criteria for inclusion -As Ozone continues to expand its suite of software components, several criteria must be met for a software component to be included in the Ozone HIS ecosystem. Below, we outline these requirements by order of importance: +As Ozone continues to expand its suite of software apps, several criteria must be met for an app to be included in the Ozone ecosystem. Below, we outline these requirements by order of importance: |Criterion|Requirement| | |:---:|:---:|:---:| |:fontawesome-brands-osi: Open-source|{==**Must**==}|Ozone is FOSS under MPL 2.0. Closed-source software is accommodated within the Pro edition of Ozone or through custom developments.| -|:fontawesome-solid-tag: Released version|{==**Must**==}|Ozone supports HIS flows between versioned components with stable and, ideally, well-documented APIs.| +|:fontawesome-solid-tag: Released version|{==**Must**==}|Ozone supports HIS flows between versioned software apps with stable and, ideally, well-documented APIs.| |:fontawesome-solid-shield-halved: OAuth 2|{==**Must**==}|OAuth2 is required for enhanced security and to implement SSO within Ozone HIS.| |:fontawesome-brands-docker: Docker image|{==**Must**==}|Docker, while not the sole deployment mechanism supported, is currently the default one in Ozone HIS.| -|:material-cog: Automated configurability|**Should**|Components should be configurable through deployment processes, allowing for automated setup and initialization (specifically of master data) by placing configuration files in the appropriate locations.| -|:fontawesome-solid-heart-pulse: Health check|**Should**|It is crucial that each component includes a web endpoint to let Ozone verify it is operational within the HIS.| +|:material-cog: Automated configurability|**Should**|Apps should be configurable through deployment processes, allowing for automated setup and initialization (specifically of master data) by placing configuration files in the appropriate locations.| +|:fontawesome-solid-heart-pulse: Health check|**Should**|It is crucial that each app includes a web endpoint to let Ozone verify it is operational within the HIS.| |:simple-prometheus: Prometheus metrics|**Should**|Providing Prometheus metrics is recommended to enhance monitoring and ensure effective system performance management.| |:fontawesome-solid-timeline: Backup & restore|**Should**|Automated backup and restore capabilities ensure data integrity and system resilience in production use.| |:fontawesome-solid-globe: Internationalization|**Should**|Internationalization should be a first class citizen for any software. It ensures that it can be easily adapted to various languages and regions, making it accessible and usable by a global audience.| -|:material-puzzle: Modularity|**Should**|Modularitiy enables potential enhancements or modifications to be made via modules, plugins, or addons without affecting the core component.| -|:fhir: HL7 FHIR API|**Should**|Providing HL7 FHIR API reduces development overhead for peer-to-peer HIS components routes within Ozone.| +|:material-puzzle: Modularity|**Should**|Modularitiy enables potential enhancements or modifications to be made via modules, plugins, or addons without affecting the core software of the app.| +|:fhir: HL7 FHIR API|**Should**|Providing HL7 FHIR API reduces development overhead for point-to-point apps routes within the Ozone HIS.| |:fontawesome-solid-sitemap: Event bus|Could|An event bus offers a more efficient method of dispatching information as it becomes available, eliminating the need for polling.| ## **2**   An interoperability framework -Ozone is powered by an interoperability EIP[^eip] framework that orchestrates seamless data flows between health information system components — EMR, LIMS, pharmacy, accounting, BI, and more. +Ozone is powered by an interoperability EIP[^eip] framework that orchestrates seamless data flows between health information system apps — EMR, LIMS, pharmacy, accounting, BI, and more. [^eip]: Entreprise integration patterns @@ -78,12 +78,12 @@ Ozone is powered by an interoperability EIP[^eip] framework that orchestrates se ## What Ozone is not -{==Ozone is not a fork==} of other open-source projects; it utilizes standard and officially released software components from various open-source communities. +{==Ozone is not a fork==} of other open-source projects; it utilizes standard and officially released software apps from various open-source communities. [^lts]: Long-term support -Ozone packages the latest LTS[^lts] versions of its components 'as-is'. Therefore it is not liable for any bugs, deficiencies, or performance issues in the bundled LTS versions of its components; these fall outside the purview of Ozone itself. +Ozone packages the latest LTS[^lts] versions of its apps 'as-is'. Therefore it is not liable for any bugs, deficiencies, or performance issues in the bundled LTS versions of its apps; these fall outside the purview of Ozone itself. !!! tip - We generally do not document Ozone’s components. Instead we refer to their own official documentation as much as possible. + We generally do not document Ozone’s apps. Instead we refer to their own official documentation as much as possible. diff --git a/docs/users/ozoneflows.md b/docs/users/ozoneflows.md index 3752392..01b31f3 100644 --- a/docs/users/ozoneflows.md +++ b/docs/users/ozoneflows.md @@ -1,8 +1,8 @@ # Ozone Flows Guide -The following pages describe the data flows orchestrated by Ozone HIS among its supported components. These flows are fundamental to Ozone's functionality, as they leverage and integrate existing software components to provide enhanced features that are not available when these components are used independently. +The following pages describe the data flows orchestrated by Ozone HIS among its supported apps. These flows are fundamental to Ozone's functionality, as they leverage and integrate existing software within the HIS to provide enhanced features that are not available when these apps are used independently. -Flows are documented by {==pairs of components==}, such as: +Flows are documented by {==pairs of apps==}, such as: - Flows between ERPNext and OpenMRS. - Flows between OpenMRS and SENAITE. @@ -10,11 +10,11 @@ Flows are documented by {==pairs of components==}, such as: ## Flows Documentation Structure -The structure of each flows documentation page is typically organized as follows (unless unnecessary or impractical), for each pair of components: flows overview, flows list and flows details. +The structure of each flows documentation page is typically organized as follows (unless unnecessary or impractical), for each pair of apps: flows overview, flows list and flows details. ### **1**   Flows Overview -This section includes a sequence diagram that illustrates the high-level exchanges between two components that are facilitated through Ozone. Eg.: +This section includes a sequence diagram that illustrates the high-level exchanges between two apps that are facilitated through Ozone. Eg.: ``` mermaid sequenceDiagram diff --git a/mkdocs.yml b/mkdocs.yml index 581444b..e84f70a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -51,10 +51,6 @@ extra: link: https://openmrs.slack.com/archives/C02PYQD5D0A - icon: fontawesome/brands/linkedin link: https://www.linkedin.com/company/mekom-solutions - - icon: fontawesome/brands/x-twitter - link: https://twitter.com/mekomsolutions - - icon: fontawesome/brands/facebook - link: https://www.facebook.com/mekomsolutions/ extra_css: - stylesheets/extra.css markdown_extensions: diff --git a/overrides/main.html b/overrides/main.html_BAK similarity index 100% rename from overrides/main.html rename to overrides/main.html_BAK