From e4de83846acf996fc173185a44fb2d493c50172b Mon Sep 17 00:00:00 2001 From: Tom Wier Date: Fri, 13 Dec 2024 12:06:32 +0300 Subject: [PATCH] feat(#129): adding back instructions from README --- .../ltfu_reference_workflow.md | 5 +- .../guides/interoperability/openhim.md | 45 ++++++++++++++++-- .../guides/interoperability/openmrs.md | 6 +-- .../openmrs/openmrs-sync-patient.png | Bin 0 -> 40636 bytes 4 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 content/en/building/guides/interoperability/openmrs/openmrs-sync-patient.png diff --git a/content/en/building/guides/interoperability/ltfu_reference_workflow.md b/content/en/building/guides/interoperability/ltfu_reference_workflow.md index 99862942f..908b8d7fa 100644 --- a/content/en/building/guides/interoperability/ltfu_reference_workflow.md +++ b/content/en/building/guides/interoperability/ltfu_reference_workflow.md @@ -27,10 +27,11 @@ The document provided includes placeholders for URLs. Replacing these placeholde ## Steps The following steps assume that you successfully logged in into OpenHIM and the CHT instances. +See the [OpenHIM guide]({{< ref "building/guides/interoperability/openhim" >}}) for instructions to set up a local development instance of OpenHIM. 1. Create an **Endpoint** and an **Organization** - 1. **HTTP Request** - Use Postman to create an `Endpoint` Resource in the Mediator. You can view the API documentation for creating an `Endpoint` [here](#endpoint-resource). Once you send the request, the Mediator will return a JSON response containing the `id` of the newly created endpoint. + 1. **HTTP Request** - Use Postman to create an `Endpoint` Resource in the Mediator. You can view the API documentation for creating an `Endpoint` [here](#endpoint-resource). Once you send the request, the Mediator will return a JSON response containing the `id` of the newly created endpoint. Save this `id` for the next step. 1. **HTTP Request** - Create an `Organization` Resource in the Mediator using as `endpoint.reference` the example value replacing `${ENDPOINT_ID}` with the actual `id` of the `Endpoint` you created in the previous step. Once you send the request, the Mediator will return a JSON response containing the `id` of the newly created `Organization`. You can view the API documentation for creating an `Organization` [here](#organization-resource). @@ -40,7 +41,7 @@ The following steps assume that you successfully logged in into OpenHIM and the 1. Create a **Patient** - 1. **CHT** - Log in to the CHT platform using the credentials for the `chw` user. + 1. **CHT** - Log in to the CHT platform using the credentials for the `chw` user (if the `chw` user does not already exist, you can [create one]({{< ref "building/contact-management/contact-and-users-1#4-create-the-chw-user" >}}). 1. **CHT** - Navigate to the `People` tab in the CHT dashboard. From there, select a Facility where you want to create a new `Person`. Click on the `New Person` button and fill in the required details for the Person. Make sure to select `Patient` as the `Person`'s role for this flow. 1. **CHT** - Once you have created the new `Person`, you need to retrieve their unique identifier from the browser's URL. You can do this by copying the alphanumeric string that appears after `person/` in the URL. Keep this identifier safe as you will need it for the next steps. 1. **OpenHIM Admin Console** - To verify that the `Patient` creation was successful, navigate to the `Transaction Log` in the OpenHIM Admin Console. You should see two successful API calls recorded in the log, one to `/mediator/patient/` and one to `/fhir/Patient/`. diff --git a/content/en/building/guides/interoperability/openhim.md b/content/en/building/guides/interoperability/openhim.md index 58231a820..946a489f6 100644 --- a/content/en/building/guides/interoperability/openhim.md +++ b/content/en/building/guides/interoperability/openhim.md @@ -27,16 +27,16 @@ The structure of documents in the CHT database reflect the configuration of the ![](flow.png) -This project uses OpenHIM as the middleware component with [Mediators](http://openhim.org/docs/configuration/mediators/) to do the conversion. [Outbound Push](https://docs.communityhealthtoolkit.org/apps/reference/app-settings/outbound/) is configured to make a request to the middleware when relevant documents are created or modified in the CHT. A Mediator then creates a FHIR resource which is then routed to OpenHIM. OpenHIM routes the resource to any other configured systems. +This project uses OpenHIM as the middleware component with [Mediators](http://openhim.org/docs/configuration/mediators/) to do the conversion. [Outbound Push]({{< ref "building/reference/app-settings/outbound" >}}) is configured to make a request to the middleware when relevant documents are created or modified in the CHT. A Mediator then creates a FHIR resource which is then routed to OpenHIM. OpenHIM routes the resource to any other configured systems. -Conversely, to bring data into the CHT, OpenHIM is configured to route the updated resource to the Mediator, which then calls the relevant [CHT APIs](https://docs.communityhealthtoolkit.org/apps/reference/api/) to update the document in the CHT database. This will then be replicated to users’ devices as per usual. +Conversely, to bring data into the CHT, OpenHIM is configured to route the updated resource to the Mediator, which then calls the relevant [CHT APIs]({{< ref "building/reference/api" >}}) to update the document in the CHT database. This will then be replicated to users’ devices as per usual. -See more information on the [CHT interoperability](https://docs.communityhealthtoolkit.org/apps/concepts/interoperability/) page on the CHT documentation site. +See more information on the [CHT interoperability]({{< ref "building/concepts/interoperability" >}}) page on the CHT documentation site. ### Prerequisites - `docker` -- `Postman` or similar tool for API testing. This will play the role of the `Requesting System` from the sequence diagram above. +- `Postman` or similar tool for API testing. ### Troubleshooting @@ -70,6 +70,43 @@ If everything is successful you should see this: +### CHT configuration with Docker + +The following steps apply when running CHT via the Docker setup provided in this repository: + +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: + +```bash +curl -X PUT -H "Content-Type: text/plain" http://medic:password@localhost:5988/api/v1/credentials/openhim1 -d 'interop-password' +``` + +### Local setup of CHT Configuration + +The following steps apply when running CHT locally in development mode and when making configuration changes locally: + +#### CHT Development Environment + +1. Set up a local CHT instance using [these instructions]({{< ref "building/local-setup" >}}). +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: + +```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. + +#### CHT Configuration + +1. Go into the `cht-config` directory by running `cd cht-config`. +1. Run `npm install` to install the dependencies. +1. Create a file named `.env` under `/mediator` folder, copy over the contents of `/mediator/.env.template` and update the `CHT_USERNAME` and `CHT_PASSWORD` values with the admin credentials of your CHT instance. +1. Set up a proxy to your local CHT instance by running using something like [nginx-local-ip](https://github.com/medic/nginx-local-ip) or [ngrok](https://ngrok.com/) and update the `CHT_URL` value in the `.env` file with the new URL. +1. Ensure you have [cht-conf](https://www.npmjs.com/package/cht-conf) installed and run `cht --local` to compile and upload the app settings configuration to your local CHT instance. +1. To verify if the configuration is loaded correctly is to create a `Patient` and to access a URL like `https://*****.my.local-ip.co/#/contacts/patientUUID/report/interop_follow_up`. This should retrieve correctly the follow up form. +1. To verify if the configuration in CouchDB, access `http://localhost:5984/_utils/#database/medic/settings`. + ### Shutdown the servers - To shut-down the containers run `./startup.sh down` to stop the instances. diff --git a/content/en/building/guides/interoperability/openmrs.md b/content/en/building/guides/interoperability/openmrs.md index c797446ca..ab3268d1c 100644 --- a/content/en/building/guides/interoperability/openmrs.md +++ b/content/en/building/guides/interoperability/openmrs.md @@ -29,7 +29,7 @@ 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-test` in the interoperability project. 1. Create or find concepts in OpenMRS that represent any data that needs to be exchanged. -1. Configure outbound push and forms in the CHT application to match the interoperability workflow. +1. Configure [outbound push]({{< ref "building/reference/app-settings/outbound" >}}) and forms in the CHT application to match the interoperability workflow. 1. Test and debug any configuration issues in the test environment. 1. Once the configuration is confirmed to be working as expected, start deploying to production by uploading the CHT configuration to production. 1. Add any OpenMRS concepts or forms to production. @@ -56,7 +56,7 @@ The first step is to profile the workflow. ## Configuring CHT And OpenMRS -Depending on what data needs to be exchanged, outbound push configurations and JSON forms need to be added to CHT. +Depending on what data needs to be exchanged, [outbound push]({{< ref "building/reference/app-settings/outbound" >}}) configurations and JSON forms need to be added to CHT. ### Sending patients CHT->OpenMRS @@ -148,7 +148,7 @@ Then, using the appropriate codes, configure an outbound push as described in th In OpenMRS, all form submissions are represented as `Home Visit` encounter types, with a `Visit Note` encounter. Any fields in the outbound push config are converted to FHIR observations, which are linked to the `Visit Note`. -After setting up the putbound push, test that it works in the test environment by submitting a report to the form in the CHT application. +After setting up the outbound push, test that it works in the test environment by submitting a report to the form in the CHT application. Log in to OpenHIM and view the transaction log. You should see: 1. A request from the CHT application to the CHT Mediator, containing all the fields from the form that were mapped to concepts. ![](cht-post-encounter.png) diff --git a/content/en/building/guides/interoperability/openmrs/openmrs-sync-patient.png b/content/en/building/guides/interoperability/openmrs/openmrs-sync-patient.png new file mode 100644 index 0000000000000000000000000000000000000000..98f88ba01d028f52f9b6f9cc6f389390f6af2d92 GIT binary patch literal 40636 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

5Q`v1VyeUsxqPRngtIky2Aa%Y?ro^ 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