Updating forms with the mobile application

Our fieldworkers will back-capture case report forms (CRFs) that will be completed by nurses to the CommCare app. These CRFs might be incomplete and the field workers will have to check them regularly. The fieldworkers will, therefore, have to see which variables are missing. Is it possible to save the completed variables to the phone and inform the fieldworks of missing variables? How do they update information already captured?

Hi André,

You can use Default Values to allow field workers to review and update case information that was previously collected by nurses.

For example, you could have the “Case Report Form” as well as the exact same form copied as a new form and called “Update Case Report Form,” both with the same case type. Every question in the CRF should be saved as a case property, and this case property can then be dragged in as the “Default Value” (in the Logic section) for the same question in the “Update Case Report Form.” You would then want to save all of the questions in the “Update Case Report Form” as the same case property name as well, so that if answers are edited/updated they are saved to the case.

There are a few different ways you could then allow your mobile workers to access/update the missing variables. The easiest option would be to allow your mobile workers to access this “Update Case Report Form” for all forms, regardless of whether they have any missing variables, and can edit/update questions by progressing question by question through the form (like normal). Alternatively, you could use hidden values in the original CRF to determine if any questions are left blank (e.g. if(question_1 = ‘’ or question_2 = ‘’ or question_3 = ‘’, “missing data”, “complete data”) or if specific questions are left blank (e.g. if(question_1 = ‘’, “question1 missing data”, “question1 complete”)) and then save these hidden values as case properties and use to filter the “Update CRF” case list (to only display forms with missing data) or use as display conditions for questions (to only display individual questions with missing data).

I hope this helps and please let me know if you have any questions!


1 Like

Hi Kaley,

Thank you very much!


Hi Kaley,

I’ve used your suggestion and it seems to work. However, it is rather time-consuming.

Is it essential to create a duplicate “Update Case Report Form” based on the Case Report Form? What will happen if I create the “Case Report Form” only, save the case properties based on the questions in that form, and then populate exactly the same form with default values based on the case properties created by completing the “Case Report Form”?

Best regards,


You could do this too, but I am not sure how you would word the questions to make it easy to understand the very first time someone is collecting data on a case. Usually, the first form would say:

“What is the child’s weight?”

The the second (update) form would say:

“The child’s weight is: #case/weight”

And you could update it from there if you find that this is incorrect. Certainly there would be a creative way to write the question such that the default null value always shows up the first time you enter a form for a case and it doesn’t look funny. But, this might not be worth the effort since I would expect the update form to be used far less frequently than the normal form. If you find that you need to use the update form constantly, there may be other factors (better validations, better training of users) that may be needed.

Unless the original form is very large and it would take many hours to set default values for in an update form, I would think from a clear and efficient design perspective, the update form is good idea. Finally, the use of default values for a case definitely will not work if it’s a registration form since you technically won’t have default values at that point anyway.


1 Like

Hi Andre,

The most straightforward way to configure what you are describing would be
to make the Case Create form do very little (only create the case), and
then direct you to fill out the update form, which preloads all properties
(whether or not they have been set), and sets all of the properties. That
will allow you to avoid duplicating the configuration between the create
and the edit form. You could use Form Display Logic to not show forms for
cases which haven’t filled out that form for the first time if you need
properties to be set before the forms work.


1 Like

Hi Kai and Clayton,

Thank you very much for the clarification.

I can see how adding update forms are relevant to some studies and forms but it doesn’t make sense to me to use it for all forms. It’s adding extra complexity to the app and takes more time to configure, especially for people who haven’t worked with CommCare before.

Also, there is an additional form for data export when creating “update forms”. Which one should be exported for analysis, the original or the update form?

I hope this image would clarify what I would like to achieve.

This is not relevant to my study, the questions in my forms shouldn’t change.

The fieldworkers might have to go back to the source more than 3 times. Every time they go back they might find new variables have been completed. I believe from the PIs that the nurses might even correct variables. We haven’t agreed on how to confirm if the data source is complete for final data capture. Our instruction to the staff is to go back and look for changes.

Sure, this seems to be relevant to some forms and questions. But is there another reason to do it for all forms?

This makes sense.

Thanks, your feedback is appreciated.

Best wishes,