Peer-to-Peer Sync
Starting this page for scoping - Derek Pollard to add initial detail.
Responsible Person: | |
Other parties to review/input: | |
FYI: | |
Targeted release date: | - RVL-163Getting issue details... STATUS |
Jira Status: | - RVL-163Getting issue details... STATUS |
*Note opensrp code for opensrp generic peer-to-peer sync: https://github.com/OpenSRP/android-p2p-sync
*For Reveal we have to build the ability to sync structures and task and filter by plans
Process
- Prepare rough business analysis/reqs doc (Derek Pollard: Complete) Pierre Dane, please review before requesting CHAI team to review.
- Get CHAI review
- Get Akros Review
- Get Ona feedback
- One iteration
- Ona sign off
- Ona tech spec scoping
- Ona LOE
- Ona scheduling
Assumptions
Each user would have to pre-download the plan, maps etc for each area as those cannot be synced.
- Query running sync will first look at which plans are shared by the two users trying to sync.
- Two tablets sync to each other at a time.
- A sync from one sender device to another receiver device will send all data to the receiver that does not already exist on the receiving tablet.
- All synced data should have a sync id.
Definitions
- Peer-to-peer sync in the process by which, a "master tablet" syncs one by one to each of the other tablets of interest without syncing to the server first. This would be done through some local network mechanism (bluetooth, hotpsot) from the devices. The outcome will be to provide offline coverage indicators for the "master tablet."
Requirements
Sync data within a specific operational area between tablets that collected data in that operational area.
Ensure data is not sent back to a tablet that it was already synced from (sync unique ids)
Get confirmation of what data was synced between tablets to ensure all data was sent and received.
Display coverage indicators for that operational area that reflect all synced data and filters out any duplicates to show one spray status per structure. See workflow below for indicators suggested and reason.
Views
- Select icon from hamburger menu to view on app indicators.
- Select progress dashboard icon
- Note that it would be good to show the total number of structures within this operational area and the completeness status based on coverage. Complete = 90% and over. Nearly there = 60 to 90%. Far out = 10 to 60%. Not visited yet = less than 10%.
- Note the ‘Sync’ at the top has changed to ‘Server Sync’
- OR select icon from map view to bring up on app indicators
- Brings up a page of key indicators. Select MAP to go back to the map or select PEER SYNC to start peer to peer sync with other data collectors devices.
- Note the order of indicators is to try simulate the decision process whether using structures or rooms as your spray coverage per operational area.
- Have I reached my target > No. How many structures are there still to possibly spray (Not visited plus not sprayed) to help inform how many teams I should send back > 63. Of those how many do I need to spray to reach my 90% minimum target coverage > 34. Is spray success rate below 90% and therefore will require revisiting some structures already visited but not sprayed > No. If yes, to determine if it’s worthwhile trying to convert not sprayed to sprayed, then how many of those were because of refused > 3. How many structures are available that weren’t refused >60. Is this above my minimum target of 34 structures and therefore likely for my teams to be able to reach the 90% target if they continue to spray > Yes. If no, then likely need to bring someone in to convince people to accept IRS or decide to get coverage as high as possible and then leave it at that.
- Get peers you need to sync with to also select ‘PEER SYNC’ and wait for them to connect and become available. ‘RUN SYNC’ is not selectable until at least 1 user is selected.
- Select peers to sync with and then select ‘RUN SYNC’ to start syncing between devices.
- Once SYNC is complete go back to indicators by selecting the ‘progress dashboard icon’ – not visible here but should be below MAP in the grey.
Notes
Overview of sync and offline indicators from mSpray:
To date, the spray effectiveness of an area can only be determined once teams have returned from the field and uploaded data from their tablets to the mSpray server; internet or network is required for this upload. At that point, teams can see on the dashboard, the coverage of that area; when coverage is not at 90%, teams revisit those areas. However, the travel costs of reaching areas are quite high, so teams should be able to review coverage across multiple tablets before leaving the field, so that if coverage has not reached 90%, they can address that before leaving the field. This requires local syncing across tablets. This particular feature was specifically requested by our donors, the President’s Malaria Initiative. The key additions needed for this optimization are:
- Mechanism for a “local sync” of un- submitted data across all tablets that are in use in the same area in a given day. This could involve one tablet acting to provide a local network via Bluetooth, for example. This must work in an area that has no network.
- Display on mobile application (ideally on map of area), the key indicators achieved (spray effectiveness, spray coverage, found coverage) in that area.
- With sync, update of spray status and appropriate colour change, of each structure appearing on the map in that area.
Indicators
- Spray coverage
- Room coverage
- Number of structures required to get to 95%
- Number of rooms required to get to 95%
- * Accuracy of the calculation is key
- Show how many records have been sent.
- Deal with multiple data collected from the same structure
- Is all data synced
Justification
Dependencies
Questions
Test Case
# | Step | Pass / Fail | Comment |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
Additional tester comments: |
This site is no longer maintained. Please visit docs.opensrp.io for current documentation.