Status
# | Step | Status |
---|---|---|
1 | Responsible prepares rough business analysis/reqs doc | |
2 | Get CHAI review | |
3 | Get Akros Review | |
4 | Get Ona feedback | |
5 | Responsible - 1 iteration for feedback | |
6 | Ona sign off | |
7 | Ona tech spec scoping | |
8 | Ona LOE | |
9 | Ona scheduling |
The following tickets are detailed in this document:
- RVL-858Getting issue details... STATUS
- RVL-856Getting issue details... STATUS
- RVL-506Getting issue details... STATUS
- RVL-476Getting issue details... STATUS
Requirements
- Ability to look-up households per list view lookup
- Need some kind of searchable unique identifier to uniquely identify people to avoid counting them twice. (QR code)
- Need a way to link family that doesn’t have locations.
- Search needs to search floating families
Assumptions
- You will never treat a child without a caregiver to consent.
- You will never treat a child without linking them to a family entity. All workflows rely on registering a family/family head.
- On-ground protocols will determine and train on what defines a family entity.
- We will not be able to unlink and relink to "fix" where linkages were made incorrectly in the MVP with QR codes.
Workflow
There are two main templates that will inform these workflows. The Web UI reporting and plan template contains the details of the plan and activity as well as requirements for web based dashboards. The Data collection data dictionary defines the forms and data needed for register family, register child and drug distribution workflow, as well as two aggregate forms.
Plan: NTD MDA in community - RVL-858Getting issue details... STATUS
- This should follow the IRS model for plan, where we see a map of all eligible operational areas and point and click which we prioritize.
Location types: Residential structure
Activities/Tasks available:
- Register Family (linked to location by also floating, detailed in workflow 3) - does not autogenerate
- Register Child - does not autogenerate
- Drug Distribution - autogenerates against any eligible, registered child. We need to define eligibility criteria and generate tasks based on these criteria and NOT for all person-entities. - RVL-856Getting issue details... STATUS
- Drug Allocation (team-level task not linked to location)
- Drug Return (team-level task not linked to location)
Workflow 0 - Confirm household eligibility and presence
- Visit home, tap on house from map view, following questions appear before kicking off family registration
- Confirm house is residential, someone is home to give info, and consent is given, is main house?
- If no to any of above, follow skip logic and do not enter family module and family registration
Workflow 1a, 1b, 1c - WHEN AT HOUSE: Register/Edit Family, Register/Edit Child, Distribute Drugs (all within Family Module)
- After answering yes to all of Workflow 0
- Access family module, register family
- Register each child, including children that are not present
- Treat each eligible, present, child. Children not treated will be registered but left untreated.
Workflow 2 - Leave QR code when not everyone home - RVL-475Getting issue details... STATUS
- In 'Add family' workflow (1), after answering 'no' to 'is everyone home' and 'yes' to 'is main house'
- User is taken to a QR scanning view.
- "Scan the QR code for this structure and leave stickers at house"
- User scans QR code
- User leaves two identical QR stickers at house; one will stay with the house at that location, the other can be carried by the family with them. MB: To clarify, are they leaving two identical QR codes at home to ensure one is not lost? They are not doing a QR code per person registered and not treated.
- QR codes need to have the operational area code written on them.
Why is this needed? From the QR code perspective, we just need the unique ID. Are humans going to read the QR code for some specific reason?
- Need QR code because need to be able to assign to a structure even if a family is not home and leave something physically at the structure for the family to find. An ID would work for this if the ID is not reliant on family information to be generated and it can be pre-generated so that it printed and then assigned to a location when there. A QR code seems easier for a user to scan into the app and then stick on the house, than have to read and type in an ID which is more prone to errors.
MB: We are in agreement on value of QR code. Just saying there is no reason we need to
Workflow 3 - FLOATING FAMILY, NOT AT HOUSE: Linking to Location and entering Family Module
Find someone who belongs to unregistered household - RVL-476Getting issue details... STATUS or does not belong to that community
- This could happen in the village at a location that is not the household location
- If have QR code: Access family module from list view through a button "Family lookup"
-
RVL-476Getting issue details...
STATUS
- "Does this family/child have a QR code" MB: This would just be a QR code lookup. We don't need to have that question. Only this is we need to be able to add a family with a QR code already assigned and add a family that doesn't have a QR code assigned. Some families may show up for registration/treatment when you are not at their house and you haven't yet visited their house (and may never). And it makes sense to connect these workflows I think.
- If yes, open QR code scanner to link (Details in QR linking below)
- If no, "Are you sure this family/child does not belong to an already registered house?"
- Proceed to family module (workflow 1) . MB: I don't get what's happening here. After looking up with QR code, if a match, OR if they don't have a QR code, you then jump into family module.
- "Does this family/child have a QR code" MB: This would just be a QR code lookup. We don't need to have that question. Only this is we need to be able to add a family with a QR code already assigned and add a family that doesn't have a QR code assigned. Some families may show up for registration/treatment when you are not at their house and you haven't yet visited their house (and may never). And it makes sense to connect these workflows I think.
- If no QR code: Attempt to link to existing household first by searching
map andlist view . MB: This means being able to get to a HH via the map. Okay, just searching list view is fine in the app. The user could "search" map view manually by looking and clicking if the family member has good spatial awareness of where they live looking at a map. MB: We can try and support both and see what people do. We'll have phone number so we can search on that.- Searchable features: all household names. MB: Probably phone too
- If find family, proceed to family module (Workflow 1)
- If no family found, register as new floating family without QR code
- Searchable features: all household names. MB: Probably phone too
Workflow 4 - FLOATING FAMILY NOT WITHIN VILLAGE (Point-distribution?)
The program would like to conduct 'mop-up' from a central location. This means that families may show up with their QR code or with no QR code at a health facility. This requires the following features
- Register new floating families to a location level higher than operational area level. We can assign to the ward or district above. We have a location hierarchy in OpenSRP we can use here. Health facility catchment area work.
- Global look-up with search functionality in list view
- Global look-up with QR code
Option 1 - Implement 1,2,3 (likely beyond MVP, significant effort)
Working at the health facility level, select hamburger menu option for that catchment.
Workflow looks identical to Workflow 3, exceptList view will show all families (floating and not) in the catchment . MB: This has significant sync implications. We can only list a few thousand clients so a full list of all clients is probably not feasible. A global search is feasible (no map view). This will require a connection. It also probably represents some additional LOE. I suspected; I don't think option 1 is feasible with MVP.Searches will then happen at this level . MB: Will require connectivity. We can't probably sync all data to the device unless we are limited to several thousand households.There will be no map view
Option 2 - Implement 1, 2
Working at the health facility level, where families from multiple (20+ OAs may show up for treatment), select hamburger menu option for that catchment.
- If have QR code paper
- Contains written operational area on QR code
- Switch to that OA on hamburger menu, proceed with Workflow 3 . MB: What's the purpose of this? If we have the OA in the hamburger menu then we will have already synced all data for that area. We can look up the household directly from the QR code. But we may be working in an environment where they are at a point that serves multiple OAs, so they need to switch back and forth (yes, need network). Having the OA written on the QR code paper means you can access that OA in the hamburger menu to find that person which at least means you don't have to sync all OAs in that facility and have to go a global search; instead each time someone presents, you sync for that OA and search within. MB: We'll need to discuss this further. We don't have the feature to pick from a list and then sync that OA. Right now it syncs all OA's you are assigned too. Implementing a global search (implies they have internet maybe work better). Let's plan on discussing this further.
- Does not contain written operational area on QR code . MB: Again I don't understand purpose of this
- Family must be registered as a floating family.
- Contains written operational area on QR code
- If no QR code: stay at health facility level in hamburger menu with a full list view.
- Attempt to link to existing household by searching list view (global look-up)
- Searchable features: all household names
- If find family, proceed to rest of Workflow 1
- If no family found, register as new floating family without QR code
- Searchable features: all household names
Option 3 - Implement 1
Working at the health facility level, select hamburger menu option for that catchment.
- If have QR code paper
- Contains written operational area on QR code
- Switch to that OR on hamburger menu, proceed with Workflow 3
- Does not contain written operational area on QR code
- Family must be registered as a floating family.
- Contains written operational area on QR code
- If no QR code: stay at health facility level in hamburger menu with a full list view.
- Family must be registered as a floating family.
MB: Finding this section a bit confusing.
If QR code, we just need to look up. The main question is lookup will only work against locally synced data. If QR code is out of the area you have synced we will have to implemented a global lookup (requiring connectivity). Right. Options 2 and 3 are trying to get around doing a global lookup by instead suggesting we just access the different OAs and sync data as people from that OA are treated. Which also requires connectivity which we are counting on, but doesn't require actually building the search in a global way.
If not QR code, just register a family and assign them to either the highest level catchment or sub area if they can identify it. I don't think we should try and link them to structures though.
Use QR code to link family to location - RVL-828Getting issue details... STATUS
Assumptions:
We will not be able to unlink and relink to "fix" where linkages were made incorrectly in the MVP.
- In looking up family, when triggered to open QR scanner:
- Potential results from scan
- Success
- QR code matches this village and is not yet linked . MB: This means that the QR would be linked to a family assigned to the village level but not a household.
- Confirmed match, show view of household location on map . MB: I don't know if this is worth the added complexity. I'm assuming this means we are trying to link a family to an unclaimed structure on a map? What does this give us if we are providing the service when we see them? This only should be attempted if you are visiting the household at their house. This is if we have been to that house and left a QR code there, and they visit you later not at there house, with their QR code, this applies. WE may not need to show location of the house, but linking back to a location if these criteria are met is important.
- "Confirm link?"
- If yes, make link and proceed with workflow
- If no, warning message "This QR code links with the house shown on the map; are you sure you do not want to link?"
- Do not link → back to question in form asking "Does this family have a QR code"?
- Confirmed match, show view of household location on map . MB: I don't know if this is worth the added complexity. I'm assuming this means we are trying to link a family to an unclaimed structure on a map? What does this give us if we are providing the service when we see them? This only should be attempted if you are visiting the household at their house. This is if we have been to that house and left a QR code there, and they visit you later not at there house, with their QR code, this applies. WE may not need to show location of the house, but linking back to a location if these criteria are met is important.
- QR code matches and has already been linked
- "This code is already linked with this structure. Proceed?" MB: we don't need this. It should just load the family view if a matching ID is found. Agree.
- "Yes" → enter family module
- "No, go back" → back to question in form asking "Does this family have a QR code"? MB: I don't get this. This is after scanning a QR code so the family will have one. What if the family provides a QR code that is not theirs? I.e. they accidentally swapped with their neighbor? Maybe an edge case but could happen. MB: Edge case that I don't think is worth considering. If this is the case, we can assign them a new QR code which we'll need to do anyways.
- "This code is already linked with this structure. Proceed?" MB: we don't need this. It should just load the family view if a matching ID is found. Agree.
- QR code matches this village and is not yet linked . MB: This means that the QR would be linked to a family assigned to the village level but not a household.
- Failure
- QR code does not match this village . MB: I don't understand this. Do you mean that the family may be a QR code that may not be properly registered? If a family has a QR code don't we assume they've been registered? We assume if they have a QR code, that someone has dropped a code with their house when they are not home. If a family has a QR code but that QR code (which is search at the OA level) fails to match, it could be that they are not in that OA or they have an incorrect code. MB: Again this doesn't make sense. If a family is assigned a QR code, we'll find them in the system. It doesn't need a link to the OA.
- "Okay"→ back to question in form asking "Does this family have a QR code"?
- QR code does not match this village . MB: I don't understand this. Do you mean that the family may be a QR code that may not be properly registered? If a family has a QR code don't we assume they've been registered? We assume if they have a QR code, that someone has dropped a code with their house when they are not home. If a family has a QR code but that QR code (which is search at the OA level) fails to match, it could be that they are not in that OA or they have an incorrect code. MB: Again this doesn't make sense. If a family is assigned a QR code, we'll find them in the system. It doesn't need a link to the OA.
- Success
Other forms
- Drug distribution tracking to distributor team . MB: This needs better scoping? IS this meant to be a stock form? We can do a form to capture stock levels. We don't want to go down path of doing any type of calulations based on usage / resupply, etc. That would be out of scope. Can we capture their stock on a daily basis and compare this distribution form with the return form if comparing to usage is too complex? MB: Again needs better scoping. Let's just potentially start with capturing initial stock and then daily usage in some type of form. I don't know if we need to calculate balances on the fly since this is used in campaigns.
- We expect this to happen once or a few times
- This should be a form that is not linked to task model OR is an "on demand" form
- Want to see on application indicator for #drugs received against #drugs distribution, this should sum if there are multiple submissions on the form . MB: this sounds like stock management. Don't think this should be in scope at this phase
- Need to keep form blank for the next round of edits
- Drug return form
- We expect this to happen potentially multiple times
- Should play into the same indicator
- We expect this to happen potentially multiple times
Reporting
The mobile client indicators are defined in the Data collection data dictionary
The web indicators are defined in the Web UI reporting and plan template
Mock-Ups
Views/UI
- Add list of floating families view (likely from list view)
- QR code
- Scanning screen (think this already exists in OpenSRP)
- Visualize matched house screen (show on the map view, the location of the house that matches with the QR code
- Follow-on/confirmation questions
- View to family-look up → icon from list view?
- to look up families with QR code
- to add floating families
Justification
Notes
Questions
Test Case
# | Step | Pass / Fail | Comment |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
Additional tester comments: |