Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(#1658): add openmrs and ltfu docs #1657

Open
wants to merge 17 commits into
base: main
Choose a base branch
from
Open

Conversation

witash
Copy link
Contributor

@witash witash commented Oct 28, 2024

Description

Closes #1658

License

The software is provided under AGPL-3.0. Contributions to this project are accepted under the same license.

@andrablaj andrablaj changed the title feat(#129): add openmrs and ltfu docs feat(#1658): add openmrs and ltfu docs Oct 28, 2024
@andrablaj andrablaj changed the title feat(#1658): add openmrs and ltfu docs chore(#1658): add openmrs and ltfu docs Oct 28, 2024
@witash witash marked this pull request as ready for review November 8, 2024 13:53
Copy link
Contributor

@njuguna-n njuguna-n left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on this! I have added some minor comments and typo fixes but approving now to unblock.

Copy link
Contributor

@lorerod lorerod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @witash. Left some suggestions inline. Let me know what you think.

content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
3. Receiving patient and patient contact data from OpenMRS.
4. Receiving reports data (encounters and observations) from OpenMRS.

The steps to create an OpenMRS interoperability workflow are:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The steps could be more actionable and descriptive to ensure readers understand each part thoroughly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you have any specific suggestions?

content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
@andrablaj
Copy link
Member

@witash I merged the main branch into this branch to get the latest updates from the site revamp. This helps better understand the overall Building section structure.

Copy link
Member

@andrablaj andrablaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the extended work in putting together this doc!
I shared a first batch of suggestions. Mainly:

  • Replace _ with - in the file/folder names.
  • Simplify linkTitle names to make the hierarchy simpler to read and navigate.
  • Added weight to pages so that the guides appear in a logical order.

I will go through the OpenMRS steps and add more comments, if any.

content/en/building/concepts/interoperability.md Outdated Show resolved Hide resolved
content/en/building/concepts/interoperability.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/cht_config.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openhim.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
content/en/building/guides/interoperability/openmrs.md Outdated Show resolved Hide resolved
Copy link
Member

@andrablaj andrablaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some suggestions based on my own comments above.

@witash
Copy link
Contributor Author

witash commented Dec 13, 2024

I removed the section on incoming patients from OpenMRS. Although technically the Gandaki flow does support this, it requires a lot of steps that may be difficult to generalize, so maybe we can not support this "officially" or include any documentation on it, which will necessarily either be incomplete, or add a lot stuff to this document.

@andrablaj
Copy link
Member

@witash I see various updates on this PR. Is it ready for another review?

@witash
Copy link
Contributor Author

witash commented Jan 10, 2025

@witash I see various updates on this PR. Is it ready for another review?

I think this is ready for another review

@witash witash requested review from andrablaj, njuguna-n and lorerod and removed request for njuguna-n January 10, 2025 08:52
Copy link
Member

@andrablaj andrablaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@witash I reviewed the content but didn't try to reproduce the OpenMRS steps.

This is a massive amount of work, thank you for putting it together! ⚡️

I added a few non-blocking suggestions.

It would be lovely if someone could go through the OpenMRS setup steps (@lorerod, @mrjones-plip ?) to validate the clarity of the instructions. I will try to do this myself next week, but I don't want to be a blocker to having this merged.


## Steps

The following steps assume that you successfully logged in into OpenHIM and the CHT instances.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The following steps assume that you successfully logged in into OpenHIM and the CHT instances.
The following steps assume you have running OpenHIM and CHT instances you successfully logged into.

suggestion: For extra clarity, I would mention that the reader should have running instances.

> It is important to note that you only need to create an `Organization` once, which you can use for future requests. So, after creating the `Organization`, you can save the `organization.identifier[0].value` value and use it for all future `ServiceRequest` requests.


1. Create a **Patient**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For some reason (maybe because of the Note above), this appears as 1. in the list, and not as 2.
Screenshot 2025-01-10 at 17 19 03

1. If your callback URL test service was set up correctly, you should receive a notification from the mediator.


An API test collection that can be used with Postman or similar tools can be found under `/docs/local-test`. This collection allows testing the LTFU flow while running the instances locally.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
An API test collection that can be used with Postman or similar tools can be found under `/docs/local-test`. This collection allows testing the LTFU flow while running the instances locally.
An API test collection that can be used with Postman or similar tools can be found under `/docs/local-test` in the [cht-interoperability repository](https://github.com/medic/cht-interoperability/tree/main/docs/local-test). This collection allows testing the LTFU flow while running the instances locally.

building/guides/integrations/openmrs/
---

#### Overview
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### Overview
### Overview

- [OpenHIM](http://openhim.org/) is a middleware component designed to ease interoperability between systems.
- [HL7 FHIR](https://www.hl7.org/fhir/index.html) is a messaging format to allow all systems to understand the format of the message.

#### CHT
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### CHT
#### Interoperability with the CHT

- `docker`
- `Postman` or similar tool for API testing.

### Install & First Time Run
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Install & First Time Run
{{% alert title="Note" %}}
Users getting errors when running the following installation steps, please see the [Troubleshooting guide]({{< ref "#troubleshooting" >}}).
{{% /alert %}}
### Install & First Time Run


1. Visit the OpenHIM Admin Console at http://localhost:9000 and login with the following credentials: email - `[email protected]` and password - `interop-password`. The default User username for OpenHIM is `[email protected]` and password is `interop-password`. The default Client username is `interop-client` and password is `interop-password`.

1. Once logged in, visit [http://localhost:9000/#!/mediators](http://localhost:9000/#!/mediators) and select the only mediator with the `Name` 'Loss to Follow Up Mediator'.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Once logged in, visit [http://localhost:9000/#!/mediators](http://localhost:9000/#!/mediators) and select the only mediator with the `Name` 'Loss to Follow Up Mediator'.
1. Once logged in, visit [http://localhost:9000/#!/mediators](http://localhost:9000/#!/mediators) and select the only mediator with the `Name` "Loss to Follow Up Mediator".


1. CHT can be accessed via `http://localhost:5988`, and the credentials are `medic`/`password`.
2. Create a new user in the CHT instance with the username `interop-client` using these [instructions]({{< ref "building/contact-management/contact-and-users-1#4-create-the-chw-user" >}}). For the role you can select `Data entry` and `Analytics` roles. Please note that you can use any username you prefer but you would have to update the config with the new username. You can do that by editing the `cht-config/app_settings.json` file and updating the `username` value in the `outbound` object e.g. on this [line](https://github.com/medic/interoperability/blob/main/cht-config/app_settings.json#L452).
3. Securely save the `interop-client` user's password to the database using the instructions [here]({{< ref "building/reference/api#credentials" >}}). Change the values `mykey` and `my pass` to `openhim1` and your user's password respectively. An example of the curls request is below:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Securely save the `interop-client` user's password to the database using the instructions [here]({{< ref "building/reference/api#credentials" >}}). Change the values `mykey` and `my pass` to `openhim1` and your user's password respectively. An example of the curls request is below:
3. Securely save the `interop-client` user's password to the database using the instructions [here]({{< ref "building/reference/api#credentials" >}}). Change the values `mykey` and `my pass` to `openhim1` and your user's password respectively. An example of the curl request is below:

```bash
curl -X PUT -H "Content-Type: text/plain" http://medic:password@localhost:5988/api/v1/credentials/openhim1 -d 'interop-password'
```
4. After updating the mediator code or cht configuration, you need to run `./startup.sh up-dev` to upload the changes to docker compose.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. After updating the mediator code or cht configuration, you need to run `./startup.sh up-dev` to upload the changes to docker compose.
4. After updating the mediator code or the CHT configuration, you need to run `./startup.sh up-dev` to upload the changes to docker compose.

The steps to create an OpenMRS interoperability workflow are:

1. Profile the workflow in terms of what data needs to be exchanged between OpenMRS and the CHT application.
1. Set up a test environment including an OpenMRS instance, a CHT instance, and OpenHIM. The [interoperability project](https://github.com/medic/cht-interoperability) has docker compose files so that you can set this up locally by running `startup.sh up-openmrs` in the interoperability project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Set up a test environment including an OpenMRS instance, a CHT instance, and OpenHIM. The [interoperability project](https://github.com/medic/cht-interoperability) has docker compose files so that you can set this up locally by running `startup.sh up-openmrs` in the interoperability project.
1. Set up a test environment including an OpenMRS instance, a CHT instance, and OpenHIM. The [interoperability project](https://github.com/medic/cht-interoperability) has docker compose files so that you can set this up locally by running `./startup.sh up-openmrs` in the interoperability project.

@lorerod
Copy link
Contributor

lorerod commented Jan 10, 2025

It would be lovely if someone could go through the OpenMRS setup steps (@lorerod, @mrjones-plip ?) to validate the clarity of the instructions. I will try to do this myself next week, but I don't want to be a blocker to having this merged.

@andrablaj, I have a pending re-review of this PR, and I will follow the OpenMRS setup steps next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update documentation to include OpenMRS <> CHT interoperability functionalities
4 participants