So what you're looking to do is create a multiselect that lists cases to be selected? Unfortunately this is not supported in CommCareHQ's Application Builder. It can be done through a custom method described below, but is not recommended.
Warning | ||
---|---|---|
| ||
The instructions below are for advanced users only; Dimagi may not be able to help if you attempt to make changes to xml by hand and make a mistake. |
Warning | ||
---|---|---|
| ||
Full access to this feature is only available for projects on a Standard software plan or higher. For more information, see https://www.commcarehq.org/pricing/ |
This is useful if, for example, you have a form where you want to check off which of your cases are attending.
Modifying the XForm
<instance id="casedb" src="jr://instance/casedb"/>
...
Multiexcerpt include macro | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
This is now supported in the Application Builder using the 'Custom Single and Multiple Answer Questions' add on.
Step 1: Turn on the Feature Preview
Inside your form, you want to display existing cases in a checklist or single select question. To do this, you need to turn enable an Add On called "Custom Single and Multiple Answer Questions". This allows you to display custom choice lists in forms (i.e. a list of case sharing groups) instead of just items from a Lookup Table.
Go to your Application Settings , then Select the Add-Ons tab.
Choose the button with three lines on the right-hand side that is next to the save button and select 'Calculatons'
Turn on the "Custom Single and Multiple Answer Questions" Add-Ons to enable the necessary feature:
Step 2: Configure Your Form
In your form, add a new Checkbox Lookup Table question
Choose the Lookup Table Data item below the added question to configure the data that will be displayed in the question. Choose the (...) button and enter the following:
Set the query expression to
instance('casedb')/casedb/case[@case_type='your_type']
...
Variations
...
(Replacing your_type with the case type you want to display)
Set instance ID to
casedb
Set the Instance URI to
jr://instance/casedb
Hit the Save button
Set the value to
@case_id
Set the label to
case_name
Variations
If you would like to restrict the cases shown to be only child cases of the chosen case which you are updating you can
...
add the following
...
to the end of the query:
[index/parent = instance('commcaresession')/session/data/case_id]
For Dimagi people reference:
You can look at this app for reference: https://www.commcarehq.org/a/tdhtesting/apps/view/39d3a2c79d16e59d035a4093fa0cf3cd/modules-1/forms-2/source/
...
If you would like to restrict the cases shown to be only open cases you can add the following to the end of the query:
[@status='open']