Repeat Group iterativo por model

Hola estoy diseñando una aplicacion en la cual la idea es tener una lookup table inicial con datos de una madre y luego un repeat group de ciertas preguntas que se deban realizar en función a la cantidad de hijos que tenga esa madre:

pero quisiera poder decirle al modelo que haga el número de repeticiones cuándo indique el número de hijos que tenga una madre seleccionada, lógicamente los hijos están en otro lookuptable.

Por el momento no me funciona si arrastro el campo al Model iteration ID Query,
pero si coloco un id genérico de forma manual que esté en el lookuptable de la madre si hace la repetición solo el número de hijos que tienen ese id:

instance('item-list:Hijos')/Hijos_list/Hijos[id_madre = "234144"]/id
y debería ser algo así para filtrar dinámicamente:
instance('item-list:Hijos')/Hijos_list/Hijos[id_madre = #form/seleccione_a_la_madre]/id

instance('item-list:Hijos')/Hijos_list/Hijos[id_madre = #form/seleccione_a_la_madre]/id

Eso no funciona porque "Model Iteration ID Query" es evaluada solo cuando se abre el formulario. En ese momento, #form/seleccione_a_la_madre ya no existe.

Se puede probar inserir un otro grupo adentro de preguntas_hijos, con una "Display Condition" que filtra los hijos, mas o menos así:

instance('item-list:Hijos')/Hijos_list/Hijos[id=../@id]/id_madre = #form/seleccione_a_la_madre

Debes también considerar usar casos y "child cases" por madres y hijos, in lugar de "lookup tables"

https://confluence.dimagi.com/display/commcarepublic/Child+Cases

Ok muchas gracias,

también tengo otra duda, tengo en un repeat group una lookup table y quiero poder acceder a los datos de la lookuptable segun seleccionen la primer repetición obtener id, name y age de la persona en hidden values, luego en la segunda repetición lo mismo, pero cuándo hago esto me marca un error de nodos, quisiera saber si usando current() o de alguna forma podría obtener estos campos.

Saludos.

Sí, eso se puede hacer. Si tu "Model Iteration ID Query" es:

instance('item-list:Hijos')/Hijos_list/Hijos/id```

Podría usar esos expresiones por ID, name, y age:

../@id
instance('item-list:Hijos')/Hijos_list/Hijos[id=../@id]/name
instance('item-list:Hijos')/Hijos_list/Hijos[id=../@id]/age

O si tu repeat group sea uno que usa solo "repeat count", se puede usar position(..) para obtener el indice de cada repetición.

Ok muchas gracias,

para este caso nosotros tenemos en el repeat group una lookuptable que recorre los hijos que tiene una madre que ha sido seleccionada anteriormente y hace el conteo de hijos para saber cuántas repeticiones debe realizar:

count(instance('Hijos3')/Hijos3_list/Hijos3[id_madre = #form/seleccione_a_la_madre])

y el repeat se observa así:

pero quisiéramos poder hacerlo teniendo únicamente una lookuptable que al seleccionarla en hiddenvalues podamos obtener el nombre, edad, sexo y otra información pero al momento de incorporar esta sección en un hidden al hacer la segunda repetición del repeat da error: esto es en la encuesta otra propuesta que estamos piloteando

Aplicación:

Valores obtenidos en hidden values:

instance('Hijos3')/Hijos3_list/Hijos3[id = #form/preguntas_hijos/hijosp]/nombre

instance('Hijos3')/Hijos3_list/Hijos3[id = #form/preguntas_hijos/hijosp]/edad

instance('Hijos3')/Hijos3_list/Hijos3[id = #form/preguntas_hijos/hijosp]/sexo

cuando se hace la primer repetición obtenemos bien los valores de la lookuptable

imagen.png
imagen.png

Pero al realizar la segunda repetición muestra éste error en el emulador:

imagen.png
y en la aplicación del teléfono sigue mostrando los datos del primer hijo,

Mi consulta es como debo implementar estos hidden values para que funcione con el valor de la posición actual. No estoy usando Model Iteration sino repeticiones según el conte de hijos.

instance('Hijos3')/Hijos3_list/Hijos3[id = #form/preguntas_hijos/hijosp]/nombre

instance('Hijos3')/Hijos3_list/Hijos3[id = #form/preguntas_hijos/hijosp]/edad

instance('Hijos3')/Hijos3_list/Hijos3[id = #form/preguntas_hijos/hijosp]/sexo

Gracias.