-
-
Notifications
You must be signed in to change notification settings - Fork 20
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
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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.
content/en/building/guides/interoperability/ltfu_reference_workflow.md
Outdated
Show resolved
Hide resolved
content/en/building/guides/interoperability/ltfu_reference_workflow.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this 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.
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: |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
Co-authored-by: njuguna-n <[email protected]>
@witash I merged the |
There was a problem hiding this 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/guides/interoperability/ltfu_reference_workflow.md
Outdated
Show resolved
Hide resolved
content/en/building/guides/interoperability/ltfu_reference_workflow.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this 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.
Co-authored-by: Andra Blaj <[email protected]>
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. |
@witash I see various updates on this PR. Is it ready for another review? |
I think this is ready for another review |
There was a problem hiding this 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#### 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#### CHT | |
#### Interoperability with the CHT |
- `docker` | ||
- `Postman` or similar tool for API testing. | ||
|
||
### Install & First Time Run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### 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'. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
@andrablaj, I have a pending re-review of this PR, and I will follow the OpenMRS setup steps next week. |
Description
Closes #1658
License
The software is provided under AGPL-3.0. Contributions to this project are accepted under the same license.