Test: Patient Programs - msupply-foundation/open-msupply GitHub Wiki

Open mSupply Patient Programs

Setups

Make sure to have the below setup/configurations on CLoud Server as they're a must for the oms-programs to work

Document Registry Config:

Note: This is currently hidden in the "mSupply internal admin window" [to be moved to Special Menu in v7.13]

  • First, check that the oms-store should have the pref omSupply: uses program module ON
  • Also make sure there is proper master-list created and it is a program is checked
  • For HIV, master-list require the name to be exact. So make sure the name is exactly as in the config.json file mentioned below

Currently, there are two ways for this: (choose one of the below)

  1. Through Footrunner code that will populate the om_document_registry table with proper schemas for program-enrolments & corresponding encounters
  • checkout https://github.com/openmsupply/programschemas
  • run yarn && ./build_all.sh.
  • Execute the footrunner code: z_programs_config pointing to the ../schemas folder. Example could be sth like z_programs_config(path/to/schemas/folder)
  1. Manually adding the schemas of the desired programs & encounters
  • Access the om document registry window.
  • To add/edit, user-permission Access server administration will be needed, so give that as well
  • Start adding the program & encounters following the config.json in the schemas folder here

Central server config:

After the om_document_registry is loaded to the datafile, now you can decide which users will have access to the chosen programs

Permissions

image

  • Shows current permissions for a user
  • Edited permissions are propagated to open mSupply, e.g. removing permissions causes a program to stop working

Patient Registration

  • Go to the “Patients” menu and click the “New Patient” button in the right top corner.

Entering of basic patient information such as name or date of birth

  • A patient window open with the following fields
    • National ID (NID)
    • NUIC
    • First Name
    • Last Name
    • DoB
    • Gender
    • Address
    • Phone
  • The National ID number needs to be equal to 10 character long (there is no sign of checking for duplicates)

Search for existing similar patients to avoid duplicated patient entries

  • The Ok&Next button gets enabled only after you enter values in either First or Last name
  • If any existing patient matches the info as entered while creating, it should up in the Search results
  • For patients found that belong to homestore(logged-in store), see the home icon
  • For patients found that belong to other store(other than logged-in store), see the download icon
    • On downloading the patient, it'll download/fetch patient details from the server

Entering full patient information and finalising the patient

  • In case of no any existing patients found, opt to Ok&Next to proceed
  • Only after mandatory fields (NID, NUIC, name, DoB) are entered, the Create button is enabled which lets us save the patient

Patient List

  • Click on each column header to test the sorting
    • Sorting is ascendent or descendent.
  • Test the filter fields
    • Search by First name - Find patients that have the string combination you put in their first name
    • Search by Last name - Find patients that have the string combination you put in their last name
    • Search by id - Find patients that have the string combination you put in the National ID or NUIC
    • Try multiple fields search, each value you put in a field should combine to reduce your selection
  • Double click on a patient to see it's information
    • You should see it's information
    • You are able to edit the patient details.
    • When clicking Ok the details are saved.

Patient Details View

  • Selecting a patient from the patient list will open the patient details view
  • There are four tabs:
    • “Details” shows the general patient information
    • “Programs” shows a list of program enrolments for the selected patient
    • “Encounters” shows a list of encounters for the selected patient
    • "Contact tracing" shows a list of any contact tracing entries made for the patient

Patient Program Enrolment

  • To enrol a patient into a program select the “Add Program” button in the top right corner of the patient details view.
  • This will open a dialog with a list of available patient programs
  • Already enrolled programs are greyed out and can’t be selected
  • To enrol a patient into a program select the desired program from the list
  • This opens the program enrolment document where program specific information can be entered Note: The content of the program enrolment document is program specific, i.e., depends on the schema you loaded while running the FC code during setup

Patient Program Encounters

  • Only after a patient is enrolled in a program, an encounter for this program can be created
  • To do so select “Add Encounter” through the drop-down menu in the right top corner
  • This will open a dialog to create an encounter
  • First, the type of encounter needs to be selected, i.e. which program enrolment the encounter is associated with.
  • Secondly, the encounter date must be selected.
  • The encounter date can be in the past, e.g. for entering finished encounter, or in the future, e.g. to schedule an encounter (aka appointment).
  • Once an encounter is created, the full encounter document will open to enter encounter details
  • Every encounter has an encounter header where common encounter details can be updated, e.g. the clinician who handles the encounter or the encounter status Note: The content of the encounter document is program specific and depends on the schema contents at the time of setup.

Encounter Details

  • An encounter can have three statuses:
  • “Pending” (depending on the current date this could mean the encounter is scheduled, or the encounter has been missed)
  • “Visited”
  • “Cancelled”
  • The “More” button in the right top of the encounter detail view opens a column with additional encounter information such as a summary of previous encounters and the option to add an encounter note
  • Beside the Status, there is delete icon to delete the encounter

Example: HIV Program/Encounters

In this test-suite, details for the specific HIV programs and encounters are given: [the contents can vary for different programs/encounters] For this, there are currently two HIV programs available:

a. HIV Testing Program

  • When enrolling the patient to HIV Testing Program, it will opt you to enter Enrolment date as expected
  • Additionally, there's also option to add patient notes if wanted
  • After enrolling to program, you can now create an encounter for this through the drop-down menu in the right top corner
  • On creating new encounter, there is additional field to add notes and save
  • The HIV Testing & Counselling encounter is divided into the following sections:
    • General
    • Risk Behaviour
    • Other Services Received
    • Informed Consent
    • HIV Testing

b. HIV Care & Treatment

  • When enrolling the patient to HIV Care & Treatment, it will opt you to enter Enrolment date as expected
  • Additionally, there are also other fields like Program ID, which you can generate and add patient status history and other fields related to the HIV factors, like test types, risk groups, mother details, treatment supporter, referral details and patient notes
  • After enrolling to program, you can now create an encounter for this through the drop-down menu in the right top corner
  • On creating new encounter, there is additional fied to add notes and save
  • The HIV Care & Treatment is divided into the following sections:
    • Visit Type
    • Physical Exam
    • ARV/Medication
    • Pregnancy
    • GBV
    • Viral Load
    • Biochemistry
    • Haematology
    • Tuberculosis
    • Index Testing
    • HCV/CrAg
    • Risk Behaviour
    • Referrals

Contact tracing

  • Contact tracing is available for HIV programs
  • To do so, select “Add Contact” through the drop-down menu in the right top corner in patients detail window
  • This will open a dialog to choose type of contact, in this case, HIV Partner Testing, and click OK
  • Contact tracing for HIV Partner Testing includes the following:
    • Index Client Information
    • Family/Partner Information
    • Tracking Outcome
    • Post PNS IPV Screening
  • On the top right is the button to Link to patient
  • Clicking the button will open a dialog where you can search for patient using firstname, lastname & ID
  • The search filter works
  • Clicking OK links the selected patient, and it appears as highlighted in the Linked Patient window.
  • After linking, there is also button to unlink the patient

Viral Load logic

  • The status of the Viral Load test is seen in the encounter list under the Additional info column
  • If Viral Load is not Done, the Additional info column shows either empty or nothing regarding the VL results
  • If Viral Load is Done, the Additional info column can have two additional statuses:
    • Pending VL Results”: The viral load test has been done, but no results have been entered yet
    • VL Results”: VL results have been received, and the results have been entered in the viral load section

Lost to Follow up (LTFU)

  • The current patient LTFU status will show up in the program enrolment list in the Additional Info column
  • When a patient runs out of ARV medication pills (see ARV medication section in the encounter) the patient receives the following lost to follow up statues:
    • Missed appointment”: is the patient’s status when reaching the “End of Supply” date
    • Early LTFU”: 28 days after the end of supply date
    • LTFU”: 90 days after the end of supply date