For an application to have case management, we need more than one form. We've already created a "registration" form which can be used to create, or register, a new case. But we also will want to create a Home Visit form which can be used to follow up with the pregnant woman, and a Birth form which can close the case and remove it from the phone.
Case Management Tutorial: Creating Follow-up Forms
In the Follow-up Form Building Part of the Case Management Tutorial you will learn:
- How a form can be represented in spreadsheet form
- More tools to use when building a form, including the "copy" function
1. Another Way to Represent Form Contents
When we created the Beginner's Tutorial we walked through adding questions step-by-step, so we won't do that again here. But you have a Registration Form which looks like this:
We could also represent these questions in a table format. For the beginner's tutorial above, it would look like this:
Question ID or
|village_name||Text Question||Village Name:||yes|
|woman_name||Text Question||Woman's Name:||yes|
|lmp||Date||Date of Last Menstrual Period||yes|
The woman's EDD is:
Has the woman given birth to
children that are still alive?
|living_boys||Integer||How many living boys?||#form/living_children = 'yes'||. <= 15|
The number of living
boys must be less than
or equal to 15!
|living_girls||Integer||How many living girls?||#form/living_children = 'yes'||. <= 15|
The number of living
girls must be less than
or equal to 15!
|feeling_sick||Multiple Choice||Is the woman feeling sick today?||no|
Remind the pregnant woman
to go to the clinic for her check-up!
|total_children||Hidden Value||#form/living_boys + #form/living_girls||no|
|edd||Hidden Value||date(#form/lmp + 274)||no|
if(#form/total_children > 5 and
#form/feeling_sick = 'yes',
For each question you can see the Question ID, the question type, the label text, the display condition, any validation conditions and messages, any calculations, and whether the question is required or not. You know how to do all these things so creating another form should be easy!
Just so you know - there are various reasons why it is helpful to represent the questions like this, e.g. it provides an easy way to see details about each question and the relationships between questions, and serves as a discussion document for multiple people involved in the application design process. You can see any form in a similar format to this one by going to "Tools" then "Export Form Contents" in the Form Builder. (Instructions can be found here: Export Form Contents.)
2. Building a Home Visit Form
We want to build a new form:
- In CommCareHQ, if you are not there already, go to Applications -> Village Health
- Because you selected "Case List" when you started your application, a second form, titled "Follow Up" is ready as your second form.
- Set the Form Name to "Home Visit" by clicking the edit pen next to the form name, and then click Save
You can now start working on your new form
We will walk through building this form, but much more quickly than in the Beginner Tutorial.
Let's start by prompting the mobile user to follow up if the woman stated she was feeling sick at the last visit.
Add a Label Question by using the dropdown menu next to the "T" in the Question Bar and make the following changes:
- Question ID: previously_sick
- Label Text: Last time this woman reported she was sick! Ask her if she recovered
You can see that later we are going to want to link this to the question from the Registration Form.
Next let's find out how she is feeling today.
Add a Single Answer Multiple Choice Question from the Question Bar and make the following changes:
- Question ID: feeling_sick
- Label Text: Is the woman feeling sick today?
Now add two choices- set the Item IDs/Label Text to: yes/Yes and no/No respectively
Now we are going to ask a couple of yes/no questions about whether or not the woman has gone to the clinic. We could add those questions just like we added the yes/no questions above, but since we already have a yes/no question we don't need to start from scratch. We can create a copy of the question "feeling_sick" and just change the Question ID and Label Text; we don't have to change Yes and No since they always remain the same.
Select the question "Is the woman feeling sick today" in the Question Tree and click Ctrl + C to copy the question, and then Ctrl + V to paste it.
Click on the newly created copy and make the following changes:
- Question ID: clinic_visit_1
- Label Text: Has woman been to clinic visit 1?
Make a copy of the question you just created, go to the newly created copy, and make the following changes:
- Has woman been to clinic visit 2?
We'll come back later and add all the logic, since it is a bit complex! Right now you should have a form like this:
3. Building a Birth Outcome Form
For this next form, we're just going to show you the desired form contents in table format. You are expert form builders so building a form using the table should be no problem!
If you don't have a second followup form you'll need to add one:
- Click on "+" next to "Case List"
- Change the Form Name to "Birth Outcome"
- Build the form contents as follows:
|pregnancy_outcome||Multiple Choice||Pregnancy Outcome:||yes|
|birth_weight||Decimal||Weight at birth (kg):||#form/pregnancy_outcome = 'live_birth'|
|baby_name||Text||Child's Name:||#form/pregnancy_outcome = 'live_birth'||yes|
|dob||Date||Date of Birth:||#form/pregnancy_outcome = 'live_birth'||. <= today()||Date of Birth cannot be in the future!|
4. Test your Application
Great! We now have three forms:
- Registration Form - used to register a new pregnant mother in the phone
- Home Visit Form - used to collect data and provide information at visits throughout the pregnancy
- Birth Form - used to record the outcome of the pregnancy and remove the pregnant mother's name from the phone
Following the same procedure you used in the Beginner Tutorial, go to Deploy -> Make a New Version and install the application on your phone. Or test in CloudCare.
Try accessing each form. You will find that you can directly go to any of the forms.
That would be fine if they were all separate surveys, but we want them to be linked! We can use case management to get a workflow that links everything together
Just wait until you see how powerful case management can be!!! (You can see we're excited about it!)
In the next section will we set the Registration Form to open, or register, a new case.
Go to the Next Section.