1 of 15

Advanced Workflow Design

1

2 of 15

Mobile Menu Navigation

https://confluence.dimagi.com/display/commcarepublic/Menu+Navigation+Options

2

3 of 15

Default Menu Navigation

How do we get from the start menu to filling out the form?

?

3

4 of 15

Module List

Module List

Module Filters (feature preview set in module settings) determine which modules are shown

Can depend on:

  • Constant (example: false())
  • User info (custom user data, user case, location info)
  • Dates (example: only show on first of month)

4

5 of 15

Case List

Case List

Case List Filters (set in case list setup) determine which cases are shown

Can depend on:

  • Constant (example: false())
  • User info (custom user data, user case)
  • Dates (example: only show on first of month)
  • Case Properties

5

6 of 15

Form List

Form List

Form Display Conditions (set in form setup) determine which forms are shown

Can depend on:

  • Constant (example: false())
  • User info (custom user data, user case)
  • Dates (example: only show on first of month)
  • Case Properties

6

7 of 15

Filters

Form Display Condition

Module Filter

Case List Filter

7

8 of 15

Order of Menus

The order of the menus depends on a few different things:

  • Menu mode
    • Display module and then forms
    • Display only forms
  • Form Case Management Setup
    • At least one form is set to “Registers a new case”
    • No registration forms
  • Parent/Child case selection
    • The module is set to “Select Parent First”

8

9 of 15

Parent Case List

Parent/Child Case Selection

You can pick the parent case before the main case in any of the following scenarios

Child Case List

9

10 of 15

Parent/Child Case Selection

...

You can pick the parent case before the main case in any of the following scenarios

10

11 of 15

The Default: Display module and then forms, No registration forms in the module

Start

Enter Form

Module List

Case List

Form List

We can pick a case from the case list before choosing the form because all forms in the module depend on a case.

Form display conditions can depend on case properties from the selected case.

This setup allows the user to pick the case and then see which forms are relevant. This is nice because it is usually more clear from context which case a user is dealing with than what action (form) they will be performing.

11

12 of 15

Display module and then forms, there is a registration form in the module

Start

Enter Form

Module List

We cannot pick a case from the case list before choosing the form because the registration forms do not depend on a case.

In this setup, the Form List comes before the Case List. The Case List is skipped if a registration form is chosen.

Form display conditions cannot depend on case properties from the selected case because no case has been chosen when you choose the form.

Case List

Form List

12

13 of 15

Display only forms

Start

Enter Form

Sometimes there are only one or a few forms in a module and you want them to show in the main menu. Setting the module to “Display only Forms” will skip the Module List.

In this setup, the Form List is in the Main Menu, so it comes before the Case List, regardless of whether there is a registration form in the module. The Case List is skipped if a registration form is chosen.

Form display conditions cannot depend on case properties from the selected case because no case has been chosen when you choose the form.

Case List

Form List

13

14 of 15

Registration from the case list

We very often want to keep a module with the “Display module and then forms”, “No registration forms in the module” setup, but also want to access the registration form if we can’t find the appropriate patient.

We can use “Registration from the Case List” to achieve this. It always appears at the bottom of the case list so that the user has to search all patients before they can Register. This also helps avoid duplicates.

14

15 of 15

Registration from the case list

Create the registration form in a separate module. Use module filter false() so that the user never sees this module. Then choose the form in the main module.

15