Enable Case Management/Preloading

Hi all,

this is related to a use case we have:

  • Turtle nesting beaches are surveyed, turtle tracks and nests are recorded by multiple teams using multiple devices. The nesting beaches are in several geographically separated locations.
  • Turtle nests will eventually hatch. We want to follow up and re-visit some of the nests.
  • Nests are marked with a stake carrying a unique ID. The ID is recorded every time we encounter the nest. The data warehouse ingesting the data from ODK Aggregate can filter nests by ID, so we get a full life history for each nest.
  • A user visiting a beach will want to know all recorded turtle nests for only that beach (there are thousands of records on other beaches, possibly too many for one device to download/store).
    The users only want to navigate back to geolocations of existing nests, or see which existing nests are near - their own location.
  • As each encounter with a nest, even if already recorded earlier, is a new record (ODK form), the users want to view, but don't need to edit, the existing records. Viewing existing records doesn't even have to occur in ODK Collect.
  • We would like to have an offline-capable, following mapping app showing some background rasters (aerial image), some user-supplied vectors (e.g. place markers, administrative boundaries, place names etc), and all previously recorded nests on a given location.

A possible data flow could look like this:

  • All data collection devices upload to one ODK Aggregate server. As we want to access data from multiple devices, ODK-A is the first data container which holds all the required data.
  • There is one form for turtle track/nest encounters.
  • There should be one export of that form per location (filtered to that location) into a format like KML/GeoJSON.
  • Users should have an offline-capable mapping app on their data collection devices (7" tablets or larger).
  • There should be a user-friendly way for users to sync data from ODK Aggregate and the other background data to their devices.

I have built a proof of concept using the offline-capable mapping app MapIt and a data warehouse (which ingests ODK Aggregate and offers an API), docs are here. However, this process involves opening a bookmarked API URL behind basicauth (returning GeoJSON), saving the resulting JSON to a local directory, and deleting/recreating a layer in MapIt.

A similar use case is asset management - a ranger visits existing inventory (benches, bbqs, toilets, shelters, displays and signs) in a national park to record its presence, any maintenance needed (which again causes a follow-up visit by a ranger with a paint bucket searching the park bench that needs painting), and scanning the bar code on the asset label.

1 Like