Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Marking a structure as inactive

  • Marking a structure task as ineligible

  • Deleting a family member

  • Deleting a family

...

  • 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 or we expect to no longer be active and should be removed from play completely (e.g., duplicate residential structure record created by accident)

    • This is effectively soft deleting the structure

  • Ineligible structuretask: a valid intervention unit (structure, person, etc) 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

...

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:

  1. Mark a structure an intervention unit 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.

    1. If a family is marked as ineligible, a card displays with the information and an edit button that opens the register family form.

  2. 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”

  3. Archive a family, all family members, associated tasks and events if it was already registered

    1. Loop through each family member and archive them

    2. Cancel every task that’s associated with the family where status = “Ready”

    3. Archive every task that’s associated with the family where status != “Ready”

    4. Archive each event that has been submitted

    5. Generate a new task client side to RACD Register Family on that location if the location type is a residential structure.

  4. Archive a family member if it was already registered

    1. Loop through each task

      1. Cancel it if status = “Ready”

      2. Archive it if status != “Ready”

    2. Loop through each event and archive it

  5. Ensure each of these changes syncs to the server and no longer syncs down to new devices.

...

This workflow describes a scenario where the user has added a location that should shouldn’t be there and should be made inactive.

...

  • 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. Other Android clients that have these entities on their system need to have them archived as well. Users who do not have them in their system should not download the archived items.

Workflow 6: Archive Family

...

  • 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 delete all information 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.

...

  1. Update every form to add eligibility skip logic to it. (i.e. “is this person eligible for _____?” default = yes) Each form should be updated in the data dictionary

    1. Register Family

    2. Bednet Distribution

    3. Blood Screening

    4. Mosquito Collection

    5. Larval dipping

    6. PAOT

  2. Add logic to the post form save action to support ineligible skip logic in the forms defined in 1 above

  3. Add a card view to the location when a register family task is marked as ineligible

    1. Make sure this button opens the register family form so that a user can register a family

  4. Add Archive Family Member to the option menu

    1. Add the loops that archive the family member as defined in Workflow 5 above

  5. Add Archive Family to the option menu

    1. Add the loops that archive the family as defined in Workflow 6 above

  6. Add support for displaying locations in black that have been marked as ineligible in the map view

  7. Add support for displaying buttons in black background with white text that have been marked as ineligible in the family module’s task list view and the task list view

  8. Update the family name that’s displayed in the task list view if the register family task is marked as ineligible.

    1. By default, it displays “Unenumerated structure” (current behaviour)

    2. If a family is registered, it says the name of the household (current behaviour)

    3. If marked as ineligible display “Ineligible Location”

  9. Add support for marking a location as Inactive as defined in Workflow 21

    1. long press interaction

    2. add a modal

    3. perform the business logic once made inactive as defined in workflow 21

  10. (Samuel Githengi , I’m not sure if this is already done) Create an archival process that:

    1. Marks the “Client” as archived (family or family member)

    2. Marks the task as archived

    3. Marks the event as archived

  11. Update the sync process to sync these archived items from the Android client to the server

  12. Update the server side sync process to exclude archived tasks, events and clients from syncing to new clients