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 16 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.

Comment on lines 330 to 333
1. Install the address hierarchy add-on.
2. Download the contact hierarchy from the CHT application.
3. Upload these contacts to OpenMRS: address 5 should be a CHW area, or the direct parent of the patient. If address 5 is not specified, the mediator will use address 4.
4. The mediator will attempt to find CHT locations by using a place id formatted like `[12345]` at the end of the address string. `place_id` must match a CHT place id. If `place_id` is not included in the OpenMRS addresses, the mediator will attempt to match by the place name. This is not as reliable since the name must match exactly, and changes to either the CHT or OpenMRS will
Copy link
Contributor

Choose a reason for hiding this comment

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

Steps 1 to 4 assume familiarity with OpenMRS and CHT address configurations. To make it easier for users to set up, adding:

  • A link to any available installation documentation for the address hierarchy add-on would be a good idea.
  • How to download the contact hierarchy from the CHT application? Include steps like which tools or interfaces to use (e.g., API endpoints or admin UI).
  • How can users upload these contacts to OpenMRS? If a specific OpenMRS module or upload method is needed, please mention it explicitly.

All patients in CHT applications require a parent, which is assumed to be a CHW area or equivalent and defines which CHW the patient is assigned to.
For interoperability with OpenMRS, this means that patients created by OpenMRS must be matched to CHT locations.

A default implementation is provided which uses the [OpenMRS address add on](https://addons.openmrs.org/show/org.openmrs.module.addresshierarchy) to match locations in OpenMRS to contacts in CHT.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we include this add-on in cht-interoperability?


Patients that do not have an address or otherwise cannot be assigned a parent in CHT will be queryable in the FHIR Server and linked to OpenMRS patients, but will not be sent to CHT.

After setting up the forms, test that it works in the test environment by creating a patient in OpenMRS.
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you add an example of a Patient creation in OpenMRS? maybe the JSON?

1. A request to the FHIR server updating the patient with the corresponding id from CHT.
1. A request to OpenMRS with the CHT id.

If all the above look OK, you should now be able to see the patient in CHT.
Copy link
Contributor

Choose a reason for hiding this comment

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

Here, showing an image of the patient in CHT would be a good idea. Could you compare it with the Patient creation example at the beginning of this instruction?

Copy link
Contributor

Choose a reason for hiding this comment

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

A similar workflow testing doc is an excellent complement to this documentation. And the corresponding Postman collection for local testing

@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?

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