InseeFr / Pogues

Questionnaire designer
MIT License
20 stars 17 forks source link

Visu KO - IndexOutOfBoundsException: Index 8 out of bounds for length 8 #883

Open JulienCarmona opened 1 day ago

JulienCarmona commented 1 day ago

Bug de visu

Image

Env : Demo Questionnnaire : ly4nbfn0 (EHIS 2025 - questionnaire test EST - Module 2 : Recours aux soins)

Note

La génération DDI fonctionne bien. Je note cependant qu'on a dedans des var avec un seul $ Image Ici $HS2REF= "1" Pourtant, on a bien le filtre dans Pogues avec les deux `$ Image

Pb de génération Eno ?

J'ai essayé de supprimer les filtres qui posent pb mais ca change rien

Version

Pogues - 1.7.3

Solution

Côté génération, on peut implémenter une amélioration à faible coût pour améliorer la gestion de l'erreur de ce cas là (pas souhaitable de tomber sur une IndexOutOfBoundsException) : ici ça donnerait quelque chose comme :

Code list CodeList[id=lxyri80e, name=SOINS] has 9 codes, and is used in multiple choice question SimpleMultipleChoiceQuestion[id=ly4kdxba, name=UNX0BIS] that has 8 responses.
AnneHuSKa commented 1 day ago

@JulienCarmona Variable UNX0BIS : elle a 8 variables collectées mais 9 lignes dans sa liste de réponses. Astuce : tenter la génération sous séquence par sous-séquence, puis question par question pour identifier le souci

La présence de $ est lié au fait que la variable HS2REF n'est que référencée dans ce questionnaire, mais pas créée.

nsenave commented 1 day ago

Côté génération, on peut implémenter une amélioration à faible coût pour améliorer la gestion de l'erreur de ce cas là (pas souhaitable de tomber sur une IndexOutOfBoundsException) : ici ça donnerait quelque chose comme :

Code list CodeList[id=lxyri80e, name=SOINS] has 9 codes, and is used in multiple choice question SimpleMultipleChoiceQuestion[id=ly4kdxba, name=UNX0BIS] that has 8 responses.
AnneHuSKa commented 1 day ago

@JulienCarmona @lailabent Je déplace en sprint 4 car pas prio mais ca serait top @nsenave

JulienCarmona commented 1 day ago

@nsenave si tu peux estimer le coup de cette évolution/correction ? Et le passer en triage. Comme ça on prévoit ça pour le prochain sprint

nsenave commented 14 hours ago

Pour mémoire je remets le message que je vous avez envoyé :

L'utilisateur a ajouté un code dans une liste de code, et n'a pas re-généré les variables collectées sur les questions à choix multiple qui utilisent cette liste de code.

  1. Pogues UI gère pas ce cas là on dirait
  2. Pogues back fait pas de contrôle à ce niveau là
  3. Eno Pogues -> DDI plante pas mais le DDI résultant a des problèmes
  4. Eno DDI -> Lunatic s'en rend compte un peu par hasard quand il essaye de mapper les libellés de la liste de code sur les "responses" de l'objet question à choix multiples ("CHECKBOX_GROUP") : la liste de code a un code en trop => IndexOutOfBoundsException

Les actions à mener pour améliorer l'expérience utilisateur (tout ou partie ça sera à vous de juger) :

@JulienCarmona J'avais déjà tout sous la main quand j'ai debug dans Eno java (j'ai mis la PR direct dans le backlog d'équipe) :