Closed mlberg closed 5 years ago
Updated pages (will get individual issues):
There are other updates covered in created and to be created issues such as the new FI naming convention, mark as complete, list of complete FI's, etc. that will be reflected in these issues.
@mberg reminder there is one unknown issue around Start Date and whether this is just a label that appears or if it actually schedules a focus investigation to start at a certain point in time. If it's the former, you will see all active investigations on the mobile client regardless of start date. If it's the latter, it's more work and there'll need to be more emphasis (or even a new status) that communicates "active but scheduled for the future". Update 16 July from @mberg: The start date is for display and naming and doesn't impact when it "activates" for data entry. The FI is active as soon as it is in "active" status.
@mberg the plan can be submitted to OpenSRP via NiFI so that NIFI can manage the task templates.
Task generation should also be scoped when a plan is activated.
@mberg I will add content from Confluence here so that it is visible to all:
For FI Planning MVP, by end of July, CHAI is expecting the following:
For MVP we restrict users from modifying already published plans
Completion date in reporting should be automatically set with the timestamp when the "Mark as Complete" button was pressed
When you create an ad hoc plan, is the idea to click create a plan and from there you can click on a number of activities (LLIN, RACD, etc) and input a target? What is the geographic unit for that plan? Yes – idea is to click on a number of activities to create the plan. The geographic unit should be the focus, but targets may be a bit complicated. For LLIN targets are always 100%, but not certain about RACD or MBS since data collection for these two may be in different parts of the focus. @mberg – re: RACD and MBS, you noted that doing a plan within a plan would be very complicated. Any initial thoughts or questions on how we would address if target is not 100%? Can we just manually enter a target?
The set of interventions included in a plan does not need to be hardcoded for MVP as long as a user can pick and choose from interventions for the plan. Also, for MVP, the user does not need to be able to manually set targets for each intervention added to the plan, these can be hardcoded if easier.
Eventually IRS will need to be one of the options since Thailand does some focal IRS; not priority right now. The targets will matter less for IRS in this use case since it is focused IRS rather than a focus-wide campaign.
Confluence document is here: https://smartregister.atlassian.net/wiki/spaces/REV/pages/1145798679/Reveal+3+-+FI+Planning @rowo @githengi unsure if you have seen the mockups and narratives in there
@mberg @craigappl @armageddon @rowo it is not clear to me how the proposed will result in a typical plan object e.g.
{
"identifier": "ca1c952f-0e53-4047-b84e-6a4150b8af6e",
"version": "1",
"name": "A1-TwoTwoOne_01-2019-07-10",
"title": "A1 - TwoTwoOne_01 - 2019-07-10",
"status": "active",
"date": "2019-07-10",
"effectivePeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"useContext": [
{
"code": "interventionType",
"valueCodableConcept": "FI"
},
{
"code": "fiStatus",
"valueCodableConcept": "A1"
},
{
"code": "fiReason",
"valueCodableConcept": "Case-triggered"
},
{
"code": "opensrpEventId",
"valueCodableConcept": ""
},
{
"code": "caseNum",
"valueCodableConcept": "00000000001"
}
],
"jurisdiction": [
{
"code": "35968df5-f335-44ae-8ae5-25804caa2d86"
}
],
"serverVersion": 0,
"goal": [
{
"id": "Case_Confirmation",
"description": "Confirm the index case",
"priority": "medium-priority",
"target": [
{
"measure": "Number of case confirmation forms complete",
"detail": {
"detailQuantity": {
"value": 1,
"comparator": ">=",
"unit": "form(s)"
}
},
"due": "2019-07-20"
}
]
},
{
"id": "RACD_register_all_families",
"description": "Register all families and family members in all residential structures enumerated or added (100%) within operational area",
"priority": "medium-priority",
"target": [
{
"measure": "Percent of residential structures visited",
"detail": {
"detailQuantity": {
"value": 100,
"comparator": ">=",
"unit": "Percent"
}
},
"due": "2019-07-30"
}
]
},
{
"id": "RACD_blood_screening_1km_radius",
"description": "Visit all residential structures (100%) within a 1 km radius of a confirmed index case and test each registered person",
"priority": "medium-priority",
"target": [
{
"measure": "Number of registered people tested",
"detail": {
"detailQuantity": {
"value": 50,
"comparator": ">=",
"unit": "person(s)"
}
},
"due": "2019-07-30"
}
]
},
{
"id": "RACD_bednet_dist_1km_radius",
"description": "Visit 100% of residential structures in the operational area and provide nets",
"priority": "medium-priority",
"target": [
{
"measure": "Percent of residential structures visited",
"detail": {
"detailQuantity": {
"value": 90,
"comparator": ">=",
"unit": "Percent"
}
},
"due": "2019-07-30"
}
]
},
{
"id": "Larval_Dipping_Min_3_Sites",
"description": "Perform a minimum of three larval dipping activities in the operational area",
"priority": "medium-priority",
"target": [
{
"measure": "Number of larval dipping forms submitted",
"detail": {
"detailQuantity": {
"value": 3,
"comparator": ">=",
"unit": "form(s)"
}
},
"due": "2019-07-30"
}
]
},
{
"id": "Mosquito_Collection_Min_3_Traps",
"description": "Set a minimum of three mosquito collection traps and complete the mosquito collection process",
"priority": "medium-priority",
"target": [
{
"measure": "Number of mosquito collection forms submitted",
"detail": {
"detailQuantity": {
"value": 3,
"comparator": ">=",
"unit": "form(s)"
}
},
"due": "2019-07-30"
}
]
},
{
"id": "BCC_Focus",
"description": "Complete at least 1 BCC activity for the operational area",
"priority": "medium-priority",
"target": [
{
"measure": "Number of BCC forms submitted",
"detail": {
"detailQuantity": {
"value": 1,
"comparator": ">=",
"unit": "form(s)"
}
},
"due": "2019-07-30"
}
]
}
],
"action": [
{
"identifier": "f2f70793-dba2-4b45-aa9c-ee000af692ed",
"prefix": 1,
"title": "Case Confirmation",
"description": "Confirm the index case",
"code": "Case Confirmation",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-20"
},
"reason": "Investigation",
"goalId": "Case_Confirmation",
"subjectCodableConcept": {
"text": "Operational Area"
},
"taskTemplate": "Case_Confirmation"
},
{
"identifier": "4db9e170-404b-4b1a-8101-2c2ac579f8fa",
"prefix": 2,
"title": "Household Registration",
"description": "Register all families & famiy members in all residential structures enumerated (100%) within the operational area",
"code": "RACD Register Family",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"reason": "Investigation",
"goalId": "RACD_register_all_families",
"subjectCodableConcept": {
"text": "Residential_Structure"
},
"taskTemplate": "RACD_register_families"
},
{
"identifier": "d276cf53-b41a-4883-88e3-77cb17aa5f35",
"prefix": 3,
"title": "Blood screening",
"description": "Visit all residential structures (100%) within a 1 km radius of a confirmed index case and test each registered person",
"code": "Blood Screening",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"reason": "Investigation",
"goalId": "RACD_blood_screening_1km_radius",
"subjectCodableConcept": {
"text": "Person"
},
"taskTemplate": "RACD_Blood_Screening"
},
{
"identifier": "06632c3e-04d2-49c1-88ff-08f06c61e2f8",
"prefix": 4,
"title": "Bednet Distribution",
"description": "Visit 100% of residential structures in the operational area and provide nets",
"code": "Bednet Distribution",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"reason": "Routine",
"goalId": "RACD_bednet_dist_1km_radius",
"subjectCodableConcept": {
"text": "Residential_Structure"
},
"taskTemplate": "ITN_Visit_Structures"
},
{
"identifier": "9be98b0a-3b6b-4348-b636-3d08a8e6afde",
"prefix": 5,
"title": "Larval Dipping",
"description": "Perform a minimum of three larval dipping activities in the operational area",
"code": "Larval Dipping",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"reason": "Investigation",
"goalId": "Larval_Dipping_Min_3_Sites",
"subjectCodableConcept": {
"text": "Breeding_Site"
},
"taskTemplate": "Larval_Dipping"
},
{
"identifier": "c91e7ebf-703c-4f85-9da6-92c5090511ea",
"prefix": 6,
"title": "Mosquito Collection",
"description": "Set a minimum of three mosquito collection traps and complete the mosquito collection process",
"code": "Mosquito Collection",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"reason": "Investigation",
"goalId": "Mosquito_Collection_Min_3_Traps",
"subjectCodableConcept": {
"text": "Mosquito_Collection_Point"
},
"taskTemplate": "Mosquito_Collection_Point"
},
{
"identifier": "c2ea7a84-c5a1-46e3-b4d8-b6dce3599f76",
"prefix": 7,
"title": "Behaviour Change Communication",
"description": "Conduct BCC activity",
"code": "BCC",
"timingPeriod": {
"start": "2019-07-10",
"end": "2019-07-30"
},
"reason": "Investigation",
"goalId": "BCC_Focus",
"subjectCodableConcept": {
"text": "Operational_Area"
},
"taskTemplate": "BCC_Focus"
}
]
}
Specifically:
@mberg @githengi @craigappl How does the work that @Wambere is doing for plan generation in NiFi affect this issue?
Hi @moshthepitt,
We aren't creating case triggered. Those will done by Biophics and will show up in draft mode for review and then completion. If we wanted we could potentially add the option to allow creation of a new FI and select case triggered and change the focus investigation reason.
For now the activities will be templated (similar to how they are hard coded now) in reveal. More specifically to your response:
For the activities we should basically just have a CONST array with the preset activity values, units, goalID etc that we need for the 7 activity types.
Let me know if you have any more q's.
Thanks for clarifying @mberg
ID - I believe this will be system generated upon submission so we don't need to pass anything
@craigappl @githengi can you confirm this please?
We are not generating the IDs for Plans, those should be generated externally. Its a UUID so any UUID generator can be used
We are not generating the IDs for Plans, those should be generated externally. Its a UUID so any UUID generator can be used
@githengi it is not the plan id that is in question, but the goal id e.g. Mosquito_Collection_Min_3_Traps
--> how do we get that?
@moshthepitt thanks for clarifying.
That should be generated externally before saving the Plan. It can either be a UUID or generated by combining the action and goal measure.
The action needs this field its referenced in action's goalId
field that should have 0..*
goal id(s) linked to the action
That should be generated externally before saving the Plan. It can either be a UUID or generated by combining the action and goal measure. The action needs this field its referenced in action's goalId field that should have 0..* goal id(s) linked to the action
Thanks @githengi - I guess the web app needs to somehow generate this from the other inputs
cc: @mberg
@mberg @craigappl are the requirements in this ticket being met? Are there new requirements that aren't already captured via newer tickets?
This looks like the same as #297
Was partly fixed by #227, the next part will be fixed in #297
We need to add support to add focus investigations to Reveal. These can be initiated by the user (adhoc creation) or created externally by a system by Biophics.
We need to support the following status for FI creation in the workflow.
Creating A Focus Investigation
We will add a "New Focus Investigation" button on the active Focus Investigation page and on each Focus Area page.
https://user-images.githubusercontent.com/42673455/60639763-fedbaf00-9df1-11e9-8ef1-be4de65cb9d0.png
This will launch a form with the following components:
Clicking on the checkbox will make visible a target. This will be a target or percent based on the activity description in the data dictionary.
Finally, the user will have the option to save the form and set the FI status to either being draft or active.
Reviewing a draft FI
Once the FI form is saved, the FI will be added the the active FI list and marked as either draft or active.
Clicking on the draft mode, will relaunch the form above with the data pre-filled. Everything will be editable except the FI Name which should now have a value.
Saving and updating plans to server
The web UI will submit a form submission to either the OpenSRP plan api directly or to the nifi endpoint. The Plan 1 template is a potential candidate for this. @githengi and @moshthepitt should confirm approach.
We also need to discuss how updating a plan works.
Once a plan is saved as active, we will also need to discuss if there are any server side task generation that needs to be initiated and how that would work.
Some Logic
Resources Link to data dictionary https://docs.google.com/spreadsheets/d/1kGPgyF0eJdag19FFL1Oog2gdphdPtKobY4EQ0gMgtgw/edit#gid=1195610913
Web UI / Reporting Data dictionary https://docs.google.com/spreadsheets/d/1tK1cWvLrgHJ2TKEtlHwCXV6bv2ZH2ONVTgk28uooYpw/edit#gid=1834208304&range=A4