Incomplete forms store as per user logging

Dear Commcare users,

Greeting for the day!

I'm looking for a way on the incomplete form stored as a per-user logging in. Currently incomplete forms saved in device, but sometimes we lose accessof mobile device, like it breaks or is lost so Incomplete Forms saved on the device will not be recoverable.

Please advise.

Thank you.

Regards,
Latika B.
Sneha

Hi Latika,

I am not sure I understand what you mean by 'stored as a per-user logging in'. Could you elaborate on that a bit, please?

Additionally, we recently clarified our explanation of this capability over here. The key info to note:

Thank you,
Dev

Hi Laitika,

As you've identified, although Incomplete Forms are useful for circumstances where a form entry needs to be stopped temporarily, there are a few structural limitations to them that make them dangerous for long term usage

Specifically:

  1. They are not synced with CommCareHQ and are only ever stored locally
  2. **Consequence: **Even if syncing regularly with the server, a loss of access to the mobile device (say it is lost or destroyed) will result in the entered data being unavailable.
  3. They do not "Snapshot" the state of the phones databases (casedb, lookup tables, etc), but instead just load those databases in their current form when the form is resumed
  4. **Consequence: **If a form is saved as incomplete, then resumed after data the form relies on, the form will have undefined/unpredictable behavior
  5. Example: A followup form for Mary is started and saved incomplete. After, a Death form is filled out, and Mary's case is closed and removed from device. Resuming the followup form results in an error.
  6. CommCare doesn't store the "original" version of the app a form may have been started with when the app is Updated to a newer version
  7. **Consequence: **Changes to the structure of the form's data, or changes to the assets relied upon by the form (like the availability of images or audio), can make forms unresumable

We recommend that Incomplete Forms never be used as part of a predicted workflow, but rather as a tool for end-users on the ground who need to temporarily save work. If it's expected that, say, a visit needs to be completed 2 weeks after the first visit, we'd build that interaction with two different forms and a case that stores any needed intermediate state.

-Clayton

Hi Latika,

Only completed forms are submitted to the server, so as you said, incomplete forms are only available on the device. This means they are more susceptible to loss. You may be able to avoid this issue by modifying the workflow so as not to use incomplete forms. For instance, if a patient visit happens in two phases, I'd recommend using a separate form for each phase, and training your users to submit each form as soon as possible to mitigate the risk of losing access to the data on the device.

  • Ethan