IRS Verification

The Akros team has requested that we develop a feature to support verification of IRS activities that took place during the VectorLink campaign. This verification process is meant to run for a week and will include a subset of people going to the field, door to door and filling out a simple survey stating whether the structure was sprayed. (Epic Link https://smartregister.atlassian.net/browse/RVL-685)

  1. Assumptions

    1. (CONFIRMED) We will implement this as part of a new plan. This feature will not be integrated with an existing plan

    2. (CONFIRMED) The IRS Verification action will be the only action in the plan. This assumption can be relaxed in the future.

    3. (CONFIRMED) We do not need in app reporting for this

    4. (CONFIRMED) We do not need dashboards for this feature

    5. We do not need the ability to edit these forms once they are saved the first time (@Christina Riley , please confirm) CR: Ability to edit is a ‘nice-to-have' feature (not critical to implementation).

Workflow

We expect the workflow to be similar to the IRS workflow, but an IRS Verification form is opened when a user taps a form.

Steps:

  • The user opens the operational area

  • All structures are yellow

  • The user visits a structure

  • The user taps the structure and opens the IRS verification form

  • The user completes the form and taps save

  • The structure turns from yellow to green because the submission was complete

  • The user can tap the structure to view the card that displays the same information that’s available on the IRS card without the button to edit the information. CR: editing is ‘nice-to-have’ but not critical.

Feature Requests

  1. Support a new plan action labeled “IRS Verification”

    1. Sample

      { "goal": [ { "id": "IRS_Verification", "description": "Verify structures were sprayed in the operational area", "priority": "medium-priority", "target": [ { "measure": "Percent of structures verified", "detail": { "detailQuantity": { "value": 90, "comparator": ">=", "unit": "Percent" } }, "due": "2019-12-15" } ] } ], "action": [ { "identifier": "7d25ffdd-e5c7-5d7b-b764-9af9e3eaf227", "prefix": 1, "title": "IRS Verification", "description": "Visit each structure in the operational area and verify status", "code": "IRS Verification", "timingPeriod": { "start": "2019-11-20", "end": "2019-12-15" }, "reason": "Routine", "goalId": "IRS_Verification", "subjectCodableConcept": { "text": "Residential_Structure" }, "taskTemplate": "IRS_Verification" } ] }
  2. Add a new form labeled zambia_irs_verification

    1. @Christina Riley LINK TO DATA DICTIONARY: https://docs.google.com/spreadsheets/d/1nE-iqh11U22a8kpMAKXZ_UgdpMYy7jQY1UcHgQ85Tis/edit#gid=1994687438

    2. Business Status (@Christina Riley , please verify this is correct) CR: verified correct.

      1. Yellow = Not Visited

      2. Green = Complete

  3. Add a new code to the Android client Labeled “IRS Verification” that performs the following business logic

    1. When you tap a structure that is yellow, the new zambia_irs_verification form displays

    2. When you tap a structure that is green, a card view pops up. CR: Card view should display the answers selected on verification form (there are only 4 fields here). Ability to edit ‘nice-to-have’.

  4. Card View

    1. When you tap a structure that is not yellow, display a card view that includes the same information that was selected on verification form:

      1. True Structure status (only for structures where trueStructure= NO) - this is 'nice-to-have'

      2. Structure Eligibility status (only for structures where eligStructure= NO) - this is 'nice-to-have'

      3. Reported SS

      4. Chalk SS

      5. Sticker SS

      6. Card SS

        1. CR: the ability to edit the form is ‘nice-to-have’

  5. Task Auto Generation Logic

    1. The target is to visit all structures in a given location. Therefore, we need to develop the following logic when generating tasks

      1. Generate tasks for all structures in a spray area. This includes osm-enumerated structures AND all dropped points in the field (even if data was cleaned from this point to the neighboring structure).

      2. @Annie Martin and @Christina Riley , please confirm if this is critical or nice to have.

      3. CR: @Craig Appl - I have edited the above information. It is critical.

    2. Sample Task Template

Key

Description

Key

Description

${planIdentifier}

The id of the plan that’s selected in the drop-down of the hamburger menu

${location.properties.parentId}

The id of the operational area that’s selected in the drop down of the hamburger menu

${planActionCode}

This should be taken from the plan action.code (i.e. IRS Verification)

${planActionDescription}

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

${planActionIdentifier}

This is the identifier from the plan action.identifier

${locationId}

This is the location Id from the residential structure that is targeted for the task

${planActionTimingPeriodStart}

This is the start timing period and can be hard coded to now()

${planActionTimingPeriodEnd}

This is the end time period and can be hard coded to now() + 30 days

${taskOwner}

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": "${locationId}", "executionStartDate": "${planActionTimingPeriodStart}", "executionEndDate": "${planActionTimingPeriodEnd}", "owner": "${taskOwner}", "note": null }

Reporting

As stated in the assumptions, we do not need to develop a web view for this MVP. Akros has requested that we deliver a data export in tabular format with all of the structure ids and the information that’s collected in the form. This will ultimately be a table in the datawarehouse that’s accessed through superset.

@Christina Riley , we need this to be scoped.

Test Cases

This section defines test cases that will be used to evaluate if the feature meets customer needs.