it-swarm.dev

Voglio tutti i casi gravidanza_pp il cui nonno case_id è uguale al mio family_id

Stiamo cercando di ottenere un'etichetta di avviso da visualizzare se qualcuno sta registrando una cliente incinta in una famiglia che contiene già una donna incinta. I clienti sono casi figlio di casi familiari. I casi di gravidanza sono casi di estensione dei clienti.

1
sclazenby

L'espressione è:

count(instance('casedb')/casedb/case[selected(join(" ", instance('casedb')/casedb/case[index/parent = instance('commcaresession')/session/data/case_id_load_family_0]/@case_id), index/Host)][@status = "open"][@case_type = "pregnancy_pp"]) > 0 and /data/pregnancy_pp/pregnant = 'yes'

Spiegare:

instance('casedb')/casedb/case[index/parent = instance('commcaresession')/session/data/case_id_load_family_0]/@case_id

Questa parte fornisce i case_ids dei client nella famiglia corrente Tuttavia, non è strutturata come un elenco separato da spazi. È un XML strutturato. Quindi non abbiamo potuto usare selected() su questo. Quindi abbiamo prima convertito l'XML strutturato in un elenco separato da spazi con join(" ", xxxx) Quindi siamo riusciti a inserirlo in selected(xxx, index/Host).

1
sclazenby