This document defines the scope for the Mass Drug Administration feature set that is being initially deployed in the Zambia implementation. These workflows can be more broadly used across multiple country implementations.
High Level Summary
This section presents a high level summary of the workflows and features that need to be developed with links to assets for development.
Context
Mass Drug Administration is abbreviated MDA and includes the process of administering two rounds of pills to every person in an operational area. MDA focuses on reducing the number of people who have dormant malaria virus so that the operational area
Round 1: Healthcare workers go door-to-door, register each family and family member. Once registered, they watch the person take the first dose and instruct them to take other doses (MDA Dispense). A few days later, the healthcare worker visits each house again and asks if everyone in the house took all of the medicine (adherence).
Round 2: The healthcare workers return to the operational area 30 days later to do the same thing they did in round 1. This round requires less work because the majority of people area already registered. They go door-to-door and verify that everyone in the household was registered. If they weren’t registered, they register them. They distribute another round of pills, watch each family member take them and instruct them to take the other doses (MDA Dispense). A few days later, the healthcare worker does an adherence follow-up.
Workflows
The workflows generally follow the existing process for Blood screening as if we were to extract and only perform household registration and blood screening within a focus investigation. We anticipate the following workflows to be supported in the system.
Minimum Viable Product
This section defines the high level workflow that will be targeted for the MVP. We will deliver MDA Round 1 for the MVP and develop MDA Round 2 in the subsequent month.
Akros provides a plan template for MDA (spreadsheet)
Activities:
Register Families
MDA Round 1
On develops the plan and POSTs it to the OpenSRP server
The plan generates tasks
Register Families on all enumerated structures (current behaviour)
(We don’t need to generate tasks on family members because no family members are registered)
Akros configures users in the Web UI to assign users to the operational area
Ona uploads the dynamic list of users to populate the form drop-downs
The user logs in to the Android client (current behaviour)
The user sees the list of all enumerated structures in yellow (current behaviour)
They can add points as is normal (current behaviour)
The user taps a structure and register family (current behaviour)
The user enters the family module and sees the list of tasks (current behaviour)
There are 2 tasks assigned to the head of household for this structure. One task is labeled MDA Round 1 Dispense and the second is labeled MDA Round 1 Adherence.
The user can add family members (current behaviour)
There are 2 tasks assigned to each family member. One task is labeled MDA Round 1 Dispense and the second is labeled MDA Round 1 Adherence.
The user taps the button on the right labeled MDA Round 1 Dispense
Note, we will not have business logic that restricts a user from completing the MDA Round 1 Adherence form before the MDA Round 1 Dispense form.
The user completes the form.
The button on the right changes to Complete (current behaviour)
The user completes all MDA Round 1 Dispense tasks for all family members.
The user navigates back to the map view (current behaviour)
The structure is color coded as defined in the color coding business logic spreadsheet
The user can tap the list view to view a list of tasks (current behaviour)
Tasks are grouped by household (current behaviour)
The user syncs the tablet
The supervisor logs into the Web UI to view reports (current behaviour)
The supervisor navigates to the Focus Investigation Reporting Page (current behaviour)
The supervisor sees the plan and clicks on it. (current behaviour)
The supervisor drills down to the selected operational area
The supervisor clicks the operational area and views the map view with the two activities
Software to be Developed
We need to develop the following items at a high level:
Android MVP
We need to create the following forms:
Note: this form has a cascading drop-down of three fields from a list that’s defined server side
Note: this form has a cascading drop-down of two fields from a list that’s defined server side.
We need to add an activity to the Focus Investigation Plan
This activity is executed on the person level, just like the Blood Screening
Improve how tasks are generated in the Android client based on form save events:
We need the ability to generate tasks in the android client as follows
Generate a MDA Dispense task when a Register Family or Add Family Member form is created for all people registered
Generate the adherence task once a MDA Dispense form is created based on form business logic.
We need to remove the hard coded bednet distribution task in the Android client when a family is registered
We need to remove the hard coded blood screening task in the Android client when a family member is registered.
We need to display these tasks in the list view and enter directly into the form if tapped from the list view
Android To Do After MVP
Ineligible Structure Marking (currently in the Register Family Form)
View form submission of MDA Dispense and Adherence tasks (current FI behaviour in Thailand that may be necessary form MDA)
Add support for MDA Round 2 (to be scoped)
General Improvements:
assign the correct plan activity when in a task when it’s generated (Currently, client side generated tasks have hardcoded “focus” that targets the activity type “IRS” instead of the UUID of the activity.)
make task generation dynamic in the client side based on the activities that are listed in the plan so we don’t have to hard code this activity as MDA
OpenSRP Server, ETL and Web UI MVP
The following needs to be developed for the MVP on the OpenSRP web solution.
Web UI
We need to ensure the ability to assign users to the FI/MDA plan is functioning on in the web UI
We need to develop drilldown coverage dashboards
We need to develop a map view that replicates the business logic in the map view that is defined in the Android client
Color coding based on adherence
Nifi
We need to update the Nifi process for generating tasks based on the new MDA plan activities
We need to develop an ETL process from the OpenSRP server to the data warehouse
OpenSRP Server
No changes needed
OpenSRP Server, ETL and Web UI To Do After MVP
Web UI
We need to update the plan activities to include an MDA task.
We need to display information about the activities at the structure level based on the information
Add support for kicking off MDA round 2
Nifi
We need to improve the ETL to support ineligible structures
Add support for MDA Round 2
MVP Detailed Software Specification
This section defines the detailed software assets that need to be developed for the Minimum Viable Product
New Plan Definition Sample
Below is a sample plan definition that was modified from a focus investigation plan. This plan includes two activities, register families and MDA Round 1 activity. Note that we removed the useContext code fiStatus.
{ "identifier": "8268298d-1563-43dd-8a4f-2e3b38aca6eb", "version": "1", "name": "Macepa-MDA-Campaign-2019-10-04", "title": "Macepa MDA Campaign", "status": "active", "date": "2019-10-04", "effectivePeriod": { "start": "2019-10-04", "end": "2019-10-24" }, "useContext": [ { "code": "interventionType", "valueCodableConcept": "FI" }, { "code": "fiReason", "valueCodableConcept": "Routine" }, { "code": "taskGenerationStatus", "valueCodableConcept": "True" } ], "jurisdiction": [ { "code": "59ad4fa0-1945-4b50-a6e3-a056a7cdceb2" }, { "code": "846b96db-ae4c-433f-b916-70870cb27628" } ], "serverVersion": 1570172006448, "goal": [ { "id": "RACD_register_all_families", "description": "Register all families and family members in all residential structures enumerated or added (100%) within operational area", "priority": "medium-priority", "target": [ { "measure": "Percent of residential structures with full family registration", "detail": { "detailQuantity": { "value": 100, "comparator": ">=", "unit": "Percent" } }, "due": "2019-10-24" } ] }, { "id": "MDA_Dispense", "description": "Visit all residential structures (100%) dispense prophylaxis to each registered person", "priority": "medium-priority", "target": [ { "measure": "Percent of Registered person(s)", "detail": { "detailQuantity": { "value": 20, "comparator": ">=", "unit": "percent" } }, "due": "2019-10-24" } ] }, { "id": "MDA_Adherence", "description": "Visit all residential structures (100%) and confirm adherence of each registered person", "priority": "medium-priority", "target": [ { "measure": "Percent of dispense recipients", "detail": { "detailQuantity": { "value": 20, "comparator": ">=", "unit": "percent" } }, "due": "2019-10-24" } ] } ], "action": [ { "identifier": "a58c5b78-d113-47c0-b21d-c7c23474d9c4", "prefix": 1, "title": "Family Registration", "description": "Register all families & family members in all residential structures enumerated (100%) within the operational area", "code": "RACD Register Family", "timingPeriod": { "start": "2019-10-04", "end": "2019-10-24" }, "reason": "Investigation", "goalId": "RACD_register_all_families", "subjectCodableConcept": { "text": "Residential_Structure" }, "taskTemplate": "RACD_register_families" }, { "identifier": "c64bde8e-bb3d-4827-b5f8-8f619ab4aa8e", "prefix": 2, "title": "MDA Round 1 Dispense", "description": "Visit all residential structures (100%) and dispense prophylaxis to each registered person", "code": "MDA", "timingPeriod": { "start": "2019-10-04", "end": "2019-10-24" }, "reason": "Routine", "goalId": "MDA", "subjectCodableConcept": { "text": "Person" }, "taskTemplate": "MDA_Dispense" }, { "identifier": "c89b2656-34c5-4220-8f1b-5a8c1c1d9a21", "prefix": 3, "title": "MDA Round 1 Adherence", "description": "Visit all residential structures (100%) and confirm adherence of each registered person", "code": "MDA", "timingPeriod": { "start": "2019-10-04", "end": "2019-10-24" }, "reason": "Routine", "goalId": "MDA", "subjectCodableConcept": { "text": "Person" }, "taskTemplate": "MDA_Adherence" } ] }
New Intervention Type to be Added
We need to develop two new intervention types in the Android client called “MDA Dispense” and “MDA Adherence. These intervention types will be used to categorize MDA tasks and post form save actions.
New MDA Task Template Sample
This section includes a task template sample for Mass Drug Administration.
Key | Description |
---|---|
| The id of the plan that’s selected in the drop-down of the hamburger menu |
| The id of the operational area that’s selected in the drop down of the hamburger menu |
| This should be “MDA Dispense” or “MDA Adherence” |
| This is the description of the action from the action in the plan that was selected in the hamburger menu of the drop-down. It could also be hard coded for the MVP |
| This is the identifier from the plan action. It could also be hard coded to MDA as it currently is for IRS in the android client. |
| This is the base entity id from the person that is the subject of this task. |
| This is the start timing period and can be hard coded to now() |
| This is the end time period and can be hard coded to now() + 7 days |
| This is the username of the user who generated the task |
{ "identifier": "${UUID()}", "planIdentifier": "${planIdentifier}", "groupIdentifier": "${location.properties.parentId}", "status": "Ready", "businessStatus": "Not Visited", "priority": 3, "code": "${planActionCode}", "description": "${planActionDescription}", "focus": "${planActionIdentifier}", "for": "${personBaseEntityId}", "executionStartDate": "${planActionTimingPeriodStart}", "executionEndDate": "${planActionTimingPeriodEnd}", "owner": "${taskOwner}", "note": null }
New Post Form Save Action Logic
We need to update the post form save actions for the MVP to deliver MDA tasks as follows:
After save we need to develop two tasks following the template:
Task 1
“code”: “MDA Dispense”
“description”: {Needs to be updated}
Task 2
“code”:”MDA Adherence”
“description”: {Needs to be updated}
After save we need to develop two tasks following the template:
Task 1
“code”: “MDA Dispense”
“description”: {Needs to be updated}
Task 2
“code”:”MDA Adherence”
“description”: {Needs to be updated}