Display selected values of a multiselect question in a new form

(ferdinand) #1

image

I have a multiselect question in the registration as illustrated by the picture above, ‘‘outro’’ means ‘‘other’’, ‘’ especifica outro factor de risco ‘’ means specify other risk factor’’.

What I want is to display the selected answers in the question above in a follow up form in module 2. Any hints on how I can do this are welcome.

Ethan suggested I handle each selection individually, making group for each risk factor and setting up display condition for each of it. I would like to follow this approach, but I didn’t understand what he means by grouping. In add question dropdown, there are options for groups: group, repeat group and question list. What would be the most appropriate type in this situation?

(Ethan Soergel) #2

I was referring to the basic “group” type. You certainly don’t need to use groups, that would simply be a convenient way to have a series of questions all hidden by the same display condition.

As an example, in your followup form, you may want to have a series of followup questions related to “Uso abusivo do álcool”. One approach would be to make a group “abusivo_do_alcool”, with the display condition: selected(#case/fatores_de_risco, 'abusivo_do_alcool').

Then you can add a series of labels and questions to that group, all related to alcohol abuse, and they’ll only appear if that was selected as a risk factor in the registration form.

(ferdinand) #3

Hi, Ethan.The explanation you have given now is much clearer. hopefully I will this approach in another workflow, but in my current workflow there is no series of questions related to each choice, I just want to see the selected choices in the registration form in the follow up form. In this situation what would be the approach?

(Ethan Soergel) #4

I listed a couple other options in my original response on the other thread.

You can simply show the value of that case property, but it will contain the choice values from the “fatores de risco” question, not the display text.

The simplest solution would be to use the replace() function once for each choice option, to replace the choice value with the desired display text. For example, if the case property is

"falta_de_apoio depressao"

Then you can use

replace(
    replace(
        replace(
            replace(#case/fatores_de_risco, " ", ", "),
            "falta_de_apoio", "Falta de apoio familiar"),
        "depressao", "Tristeza/depressao"),
    "abusivo_alcool", "Uso abusivo do álcool")

(And so on) to transform that into "Falta de apoio familiar, Tristeza/depressao". You can apply this transformation either in a hidden value in the original form, saving the result to the case, or in the followup form.

This means you have to duplicate each label, which will be tedious, though unfortunately there’s no straightforward way to get the display text directly.

(ferdinand) #5

Hi, Ethan. My M& A officer has another issue saying that the selected choice values in the registration must appear as a checkbox in the follow up form where a chw can tick them. I have thought of using a question list with each risk factor as a checkbox question with a display condition. The example is as follows:

Does this approach make sense? if this approach is ok, how can treat the other option in the multiselect question as it is a free text?

I appreciate your help.