Aller au contenu principal

Gestion de la donnée

A chaque changement de page du questionnaire, on actualise le contenu d'une unité enquêtée, que ce soit pour persister sa valeur actualisée en collecte ou pour pouvoir la télécharger en visualisation.

L'unité enquêtée est représentée par un objet au format suivant :

{
"id": "",
"questionnaireId": "",
"stateData": {
"state": "INIT",
"date": 1718368330616,
"currentPage": "2"
},

"data": {
"EXTERNAL": {},
"COLLECTED": {
"AGE": 2
},
"CALCULATED": {}
}
}

Dans la mise à jour de l'unité enquêtée, on s'intéresse aux 2 parties :

  • data : données de questionnaire, correspondant aux données de Lunatic
  • stateData : données relatives à l'état du questionnaire

Données de questionnaire

Le format de l'objet data est celui des données Lunatic.

Concernant sa mise à jour pour persistance / téléchargement :

  • EXTERNAL : il n'est pas modifié, puisqu'il s'agit d'un concept de variables non modifiables
  • CALCULATED : n'est pas modifié, pour des questions de charge. Lors de la passation du questionnaire Lunatic recalcule les variables calculées, mais on ne stocke pas leur résultat
  • COLLECTED : à chaque page Lunatic fournit les variables collectées qui ont été modifiées. On met à jour l'objet 'COLLECTED' en remplaçant les valeurs de ces variables

Nb : Pour limiter la taille des données, on retire toutes les variables collectées qui ont une valeur null ; elles ne sont pas nécessaires pour la passation du questionnaire, même en cas de réouverture du questionnaire.
Dans le cas d'une variable de boucle (dont la valeur peut-être [null] ou [1, null]), on ne la modifie pas pour conserver sa taille.

État du questionnaire

Le stateData est facultatif pour une unité enquêtée. C'est notamment le cas pour une nouvelle unité enquêtée en collecte, ou en visualisation sans avoir renseigné de fichier de data.
Si le stateData n'est pas défini, à l'ouverture du questionnaire on l'initialise :

{
"state": null,
"date": xxxx, // date courante au format unix en ms
"currentPage": "1"
}

A chaque changement de page du questionnaire, on recalcule le stateData :

  • date : vaut la date courante au format unix (en ms)
  • currentPage : prend la valeur de la nouvelle page courante
  • state : il s'agit de l'état du questionnaire, dont les valeurs possibles sont : null, "INIT", "COMPLETED", "VALIDATED", "EXTRACTED"

Les règles de calcul de l'état du questionnaire sont les suivantes :

  • à l'ouverture du questionnaire, si le stateData n'est pas défini, il est initialisé et l'état vaut null ; sinon il n'est pas modifié
  • à la modification d'une donnée dans le questionnaire : passage à l'état "INIT" (quel que soit l'état actuel)
  • lors d'une action utilisateur de validation du questionnaire (arrêt définitif via le menu, ou bouton "Valider et quitter" de fin de questionnaire) : passage à l'état "COMPLETED" puis "VALIDATED"

Lorsque l'état du questionnaire est modifié à "INIT", "COMPLETED", ou "VALIDATED", l'orchestrateur envoie également un événement. Cet événement peut être capté par l'application qui intègre Drama-Queen.