Overview
The mobile application allows user to answer questionnaires and perform timed tasks (termed in RADAR parlance "active remote monitoring".
The RADAR-Questionnaire app is developed in the hybrid Ionic framework with modular plugins to support native elements. The key functions of the mobile application includes
- Composable questionnaires, which can be generated from REDCap Data Dictionaries for a simple authoring process
- Remote Configuration of Schedule and Questionnaire
- Remote notifications using Firebase Cloud Messaging (FCM)
This is supported on both Android (minimum version Android 6) and iOS (minimum version iOS 11).
Registration
TODO link to RADAR-registration page, this is general to all RADAR data sources so document it in one place
In-App Settings
It is possible to force the configuration to be refreshed by clicking on button.
The current version of the aRMT Questionnaire app is shown as well as the Configuration (currently versioning is taken/set on the Protocol.json file,
Remote Configuration
Configuration (i.e. the Questionnaire metadata) see RADAR-REDCap-aRMT-Definitions
Protocol/Schedule see Protocol & Schedule
Protocol
See configuration options Protocol & Schedule & Firebase Cloud Messaging & Notifications Server (XMPP) [XMPP is now considered DEPRECATED]
Remote Notification using Firebase Cloud Messaging and the Appserver https://github.com/RADAR-base/RADAR-Appserver most business is now located server-side and handled by the appserver, with the last mile delegated to Firebase Cloud Messaging (FCM).
A high level architecture and data flow diagram for the AppServer and its example interaction with a Cordova application (hybrid) like the RADAR-Questionnaire (Active App).
// Database controlled
ADDED, UPDATED, CANCELLED
// Scheduler Controlled
SCHEDULED, EXECUTED
// Controlled by entities outside the appserver.
// These will need to be reported to the appserver.
DELIVERED, OPENED, DISMISSED
// Miscellaneous
ERRORED, UNKNOWN
REST Endpoints are provided to update and query the STATE. Update can only be made to any of the ones above that can be updated by external entities(i.e. DELIVERED, OPENED, DISMISSED, ERRORED and UNKNOWN ).
Here is a simple flow between the states
Questionnaires & Tasks
The Questionnaire app supports questionnaires containing different input types, which must be specified in a definition file (either through REDCap or by manually creating one). See RADAR-REDCap-aRMT-Definitions.
The following input types are supported:
Radio/Checkbox | Range | Range Info | Info Screen | Slider | Timed Test | Audio | Date | Text |
---|---|---|---|---|---|---|---|---|
Language Support
Language translations for the in-app text are fairly easy to do see the inter RADAR-Questionnaire/src/assets/data/localisation.ts