This scoping document combines a number of features scheduled for Release 5 into a single set of work. Features include:
Marking a structure as inactive
Marking a structure as ineligible
Deleting a family member
Deleting a family
Jira Issues Covered:
Referred Scoping Documents (for functional requirements):
Definitions
This section provides a list of definitions that are used throughout this document.
Delete/Archive - We never delete things in the system. Instead we archive, which is a process of keeping the information in the system, but making it not viewable or actionable for future plans. (i.e. archive a family member instead of delete it.)
Inactive structure: a non-valid structure that was created erroneously and should be removed from play completely (e.g., duplicate residential structure record created by accident)
This is effectively soft deleting the structure
Ineligible structure: a valid structure that is ineligible to participate in an intervention for a valid reason (e.g., a residential structure where the inhabitants are not currently residing but may return in the future)
This is a form field specific to the activity
Out of Scope
Case Confirmation Tasks - This form is only available to be applied to a single person who is registered in the system. This action can not be undone.
Operational Area Tasks - The Behaviour Change Communication (BCC) task is the only one that’s assigned at the operational area at this time. It is generated as part of a plan and is either done or not done and, therefore, will not make it ineligible.
High Level Overview
This section provides a conceptual overview of the changes required to implement these features. These features impact all tasks, forms and events in the system across multiple country implementations and build off of features that are implemented in the IRS and Focus Investigation fields. At the high level, we expect the ability to perform the following functions:
Mark a structure as ineligible for the current plan if there is a RACD Register Family, IRS Spray, PAOT, Mosquito Collection Point or Larval Dipping task type assigned to it.
If a family is marked as ineligible, a card displays with the information and an edit button that opens the register family form.
Mark a structure as inactive if there is a RACD Register Family, IRS Spray, PAOT, Mosquito Collection Point or Larval Dipping task type assigned to it with status = “Ready”
Archive a family, all family members, associated tasks and events if it was already registered
Loop through each family member and archive them
Cancel every task that’s associated with the family where status = “Ready”
Archive every task that’s associated with the family where status != “Ready”
Archive each event that has been submitted
Generate a new task client side to RACD Register Family on that location
Archive a family member if it was already registered
Loop through each task
Cancel it if status = “Ready”
Archive it if status != “Ready”
Loop through each event and archive it
Ensure each of these changes syncs to the server and no longer syncs down to new devices.
Workflow 1: Mark Location Inactive - I added a structure that shouldn’t be there
This workflow describes a scenario where the user has added a location that should be there and should be made inactive.
The user adds a point (current behaviour)
The user opens the form (current behaviour)
The user long presses the location
Perform the following logic:
If the task status = “Ready”
A modal window pops up with the following:
Title: Mark Location Inactive
Text: Please confirm that this location should be marked inactive.
Options (Confirm or Cancel)
The user taps “Confirm”
If the user taps cancel, the modal is closed
The system performs the following business logic
Change the location.properties.status to “Inactive”
Loop through any tasks assigned to it change the status to “Cancelled”
If the task status != “Ready”
Display a toast message stating “You can not make this structure inactive because tasks are completed against it.
Workflow 2: Mark Location Ineligible for Register Family Task (status = Ready)
This workflow is used when there is a Register Family task with status = Ready
The user taps the yellow structure and the register family form displays (current behaviour)
The first question asks “Is this location eligible to register a family?” with the default value = Yes
All other fields are automatically displayed as is the current behaviour
The user changes the value to “No”, all fields hide.
Step 2 of the form is also hidden
The “Next” button in the top right changes to “Submit”
The user taps submit and the form is saved.
The user is redirected back to the map view
The user can tap on the location and a card displays with information that’s currently available if they tap on a different location type (PAOT, larval dipping, mosquito collection point)
Workflow 3: Mark Family Member Ineligible for Blood Screening Task
This workflow is used to mark a family member ineligible for a blood screening task.
The user enters the household and navigates to the tasks tab
The user taps the button with the blood screening task next to the person
The first question asks “Is this person eligible for blood screening?” with the default value = Yes
All other fields are automatically displayed as is the current behaviour
The user changes the value to “No”, all fields hide.
The user taps submit
The button turns to black with white text labeled “Ineligible”
(No changes to the color logic of the structure)
Workflow 4: Mark Family Ineligible for Bednet Distribution Task
This workflow is used to mark a family ineligible for a bednet distribution task.
The user enters the household and navigates to the tasks tab
The user taps the button with the bednet distribution task
The first question asks “Is this household eligible for bednet distribution?” with the default value = Yes
All other fields are automatically displayed as is the current behaviour
The user changes the value to “No”, all fields hide.
The user taps submit
The button turns to black with white text labeled “Ineligible”
(No changes to the color logic of the structure)
Workflow 5: Archive Family Member
This workflow is used to archive an existing family member. (Samuel Githengi , please confirm this is the existing functionality of the Family Module. If not, we want to replicate what’s already available there.)
The user enters the household
The user taps the household member in the list of members
The user taps the three dot option menu in the top right corner and taps Archive Member
The user is presented with a confirmation dialogue to confirm that they want to archive the family member
The user taps “Confirm”
In the background:
The app loops through and cancels any tasks with status = Ready
The app archives events that have been submitted against that family member
The user is redirected back to the family profile view that lists all members and that member has been removed
In the background, the change is synced to the server and that information is no longer synced down to Android clients.
Workflow 6: Archive Family
This workflow is used to reset a location and return it to a state where the location has a Register Family task available. This process archives all tasks, events and entities in the client that are associated with that location.
User navigates to the household
The user taps the three dot option menu in the top right menu and taps “Archive Household”
The user is presented with a modal window:
Title: Confirm Household Archival
Text: Please confirm that you want to archive this household. This will dissociate the household, all members and events that have been submitted against this location and can not be undone.
Buttons: Confirm, Cancel
The user taps “Confirm” and they are returned to the map view
In the background,
The family is archived
Each family member is archived
Each event that has been completed against the family is archived
All tasks with status = “Ready” are cancelled
All tasks with status != “Ready” are archived
A task is generated against that location with “RACD Register Family”
The user sees the location as yellow and can tap it again to complete a register family form.
Software Changes
We need to make the following software changes in the system:
Update every form to add eligibility skip logic to it. (i.e. “is this person eligible for _____?” default = yes)
Register Family
Add Family Member
Update Family
Update Family Member
Bednet Distribution
Blood Screening
BCC
Mosquito Collection
Larval dipping
PAOT
Add logic to the post form save action to support ineligible skip logic in forms
Add Archive Family Member form