Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This document defines the software requirements for the distribution point features for Reveal. A distribution point is a centralized location where individuals meet to receive care. The primary workflows are funded under a grant for Neglected Tropical Diseases (NTDs) which focuses on distributing medication among children who are attending schools in Eswatini. The functional requirements are outlined on NTD School Workflow and the data dictionary. This document applies those functional requirements into the Reveal technical architecture.

Themes

There are a few themes that make the distribution point workflow different from the existing Reveal workflows:

  • Individuals gather at the distribution point instead of healthcare workers going door-to-door at a community

  • We are using the term distribution point so it can be more generic than school-based workflows. We believe that the workflows defined by the NTD School Workflow project are able to be run regardless of whether at a school or other distribution setup by project partners.

  • The NTD workflows, as scoped, assume no longitudinal health record. We will utilize existing features in Reveal to ensure each client has a longitudinal health record that can be improved upon at each health encounter.

Assumptions

  • We do not need to deliver these workflows within the same Reveal APK. We can deliver a different NTD application that focuses on distribution point workflows.

    • [For Discussion] We need to make a case for a map view. This doesn’t appear to be needed for NTD distribution point workflows.

  • A single plan will not include a combination of NTD workflow with other intervention types (FI, IRS, MDA)

Summary of Core Features

This section summarizes the core features required for delivering the workflows outlined in the functional requirements document.

Android Client

  • Register view of all clients registered to receive care at that distribution point

  • Add, Update, and Archive client registration information

  • Generate tasks in the Android client:

    • When a client is registered

    • When a

  • View of all tasks assigned to all clients in the system

  • Individual client view that displays all tasks assigned and their status with the ability to edit the underlying form

  • Search, Sort, and Filter the all clients view

    • Search

      • Client First and last name

      • By school identifier

      • By system identifier

  • Filter

    • By task type

    • By task status

    • List clients who do not have a task assigned

    • By metadata point 1, 2 and 3

OpenSRP Server

  • Track metadata points against entities. We have three points that need to be dynamically assigned in the app. We need to “tag” each client in the register view to up to 3 of those points so they can be searched against.

    • This also needs to be supported in the CSV upload.

  • CSV Upload to Client Generator

    • We need to be able to generate clients by using a CSV upload. Each row will present an event

Plan Definition and Task changes

We need to make a few changes to the plan definition and task generation process.

  • We need to rethink when tasks are generated server side.

    • Prior workflows were done on a large bolus of structures.

  • Task Data Elements

CSV Upload → Client Generator

We need to develop a server side client generator that generates clients server side for each row that’s available in the import.

Workflow:

  • User uploads a CSV

  • CSV is parsed server side and validated (We need to develop a CSV validator)

    • An error is returned to the user if the CSV is invalid.

CSV Validator

Security

This section defines security requirements for these features.

  • Users should not have the capability to download large lists that contain personally identifiable information about the clients.

    • Access to download rosters will, at maximum, provide identifiers that can be linked to people registered in the system.

  • All uploads need to be validated to include the following:

    • Valid CSV architecture with UTF-8 encoding

    • Individual fields are parsed and validated to remove exposure to SQL injection threats

    • Individual fields are parsed and validated to remove exposure to cross-site scripting threats

    • (We probably need to add more here)

Things to be discussed from scoping so far

  1. We need to rethink the user interaction in the Android client for recording a dose. Right now, it’s one per child, but I expect they would want to record an entire class except for a couple of kids. So, these should probably be a “record all” at the classroom level that’s run after someone individually marks a kid as not provided.

  2. We need to validate the assumption that we will support importing rosters against active plans.

    1. Do we only import rosters against active plans?

    2. Should we support importing rosters against plans in draft state?

    3. Should we generate tasks when a plan is shifted to active like we currently do?

Out of Scope

  • Linking people who were registered in the distribution point workflows to families or structures

  • No labels