Multiple Choice Questions with Cases as Choices

This is now supported in the Application Builder using the 'Custom Single and Multiple Answer Questions' add on. For more information about how to turn on this feature please see Feature Previews.

The process described below is not actively supported by CommCare

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.

This feature requires a software plan

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/

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.

  1. Go to your Application Settings, then Select the Add-Ons tab.

  2. Choose the button with three lines on the right-hand side that is next to the save button and select 'Calculatons'




  3. Turn on the "Custom Single and Multiple Answer Questions" add-on to enable the necessary feature:

Step 2: Configure Your Form

  1. In your form, add a new Checkbox Lookup Table question

  2. 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:

    1. Set the query expression to instance('casedb')/casedb/case[@case_type='your_type']  (Replacing your_type with the case type you want to display)

    2. Set instance ID to casedb

    3. Set the Instance URI to jr://instance/casedb 

    4. Hit the Save button

    5. Set the value to @case_id 

    6. 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]

  • 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']

 

See also: Updating case properties based on the outcome of a multiple choice question