Appearance
Offline & Sync
The mobile app is designed for patients who are not always online. Everything needed to answer a questionnaire is stored on the phone, and everything the patient produces is kept until it has safely reached the organisation's instance.
What works offline
| Offline | Needs a connection |
|---|---|
| Opening the app and seeing the Home and Records screens | Pairing with a new organisation |
| Answering any questionnaire whose window is currently open | Receiving new or changed enrollments and questionnaires |
| Reminders firing at the scheduled time | Sending answers to the instance |
| Changing language, theme and accessibility settings | Downloading a questionnaire engine the phone does not have yet |
How answers are sent
When the patient submits a questionnaire, the app first stores the answers locally and then tries to send them. If the phone is offline, the patient sees a message that the questionnaire will be submitted once the connection returns. Nothing is lost by closing the app.
The app retries pending submissions on every sync: when the app is opened, periodically while it is open, and, on native builds, from a background task while the app is closed. A submission is removed from the queue only after the instance has confirmed it.
Two situations end a retry early:
- Already submitted — the instance reports that this slot already has an answer (for example, the same questionnaire was submitted from another device). The local copy is discarded because the answer is already on record.
- Rejected — the instance refuses the payload permanently (for example, the enrollment was terminated in the meantime). The submission is dropped and the care team can see the enrollment status in the web application.
Slots and access windows
A schedule defines access windows: periods during which a questionnaire can be answered. Each window is a slot, and a slot accepts exactly one submission. This is what makes it safe to retry sends: sending the same answers twice can never create a duplicate.
On the Home screen each questionnaire shows one of:
- Answer your questions — a window is open now.
- Available in … — the next window has not opened yet; the countdown updates while the app is open.
- Currently unavailable — no upcoming window (the enrollment has ended or the schedule has no further dates).
- Spontaneous answer — the questionnaire can be answered at any time, without waiting for a window.
When a window closes before the patient submits, the questionnaire returns to the "available in" state and the missed slot cannot be answered later. Whether missed slots matter is decided by the care team when they design the schedule.
Sync in detail
Every sync pass performs the same steps for each paired organisation:
- Refresh the enrollments and their status.
- Refresh the questionnaires and download any engine that is missing on the phone.
- Send pending submissions.
- Rebuild the reminder plan from the refreshed schedules.
If an organisation's instance cannot be reached, the app keeps the local data and tries again on the next pass. If the instance reports that the device is no longer authorised, the organisation is removed from the phone and the patient is told.
Drafts
Answers in progress are kept by the questionnaire engine while the questionnaire is open. Leaving a questionnaire before submitting asks for confirmation, because progress within the questionnaire is discarded when the patient exits.
Related pages
- Scheduling & Enrollments — how windows, slots and spontaneous questionnaires are defined.
- Notifications & Reminders — how reminders follow the same windows.
- Troubleshooting — submissions that stay pending.