web-dev-qa-db-ja.com

祖父母のcase_idがfamily_idと同じであるすべてのpregnant_ppケースが必要です。

すでに妊娠中の女性がいる家族に妊娠中のクライアントを登録している場合に表示する警告ラベルを取得しようとしています。クライアントは家族の場合の子の場合です。妊娠の場合は、クライアントの拡張の場合です。

1
sclazenby

式は次のとおりです。

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)に貼り付けることができました。

1
sclazenby