すでに妊娠中の女性がいる家族に妊娠中のクライアントを登録している場合に表示する警告ラベルを取得しようとしています。クライアントは家族の場合の子の場合です。妊娠の場合は、クライアントの拡張の場合です。
式は次のとおりです。
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'
説明する:
instance('casedb')/casedb/case[index/parent = instance('commcaresession')/session/data/case_id_load_family_0]/@case_id
この部分は、現在のファミリーのクライアントのcase_idsを提供しますが、スペースで区切られたリストのような構造ではありません。構造化されたXMLです。そのため、selected()
を使用できませんでした。そのため、最初に構造化XMLをjoin(" ", xxxx)
でスペース区切りリストに変換し、それをselected(xxx, index/Host)
に貼り付けることができました。