Is there any way to update the select option values of a form without replacing the whole form?

Good news -- no tricks are needed!

https://docs.opendatakit.org/form-update/ describes how Aggregate handles form updates. If you're using an external file for your patient data, you can upload the exact same version of a form and the new data file each time you need to change the list. If you're embedding the patient data in the form, you can change the form version and re-upload it.

On the Collect side, enumerators will need to make sure they always have the latest form version. If they go to Get Blank Form, they'll see a message that indicates a form update is available and can download that one.

You can also set up Collect to auto update forms. To do that, go to General Settings > Form management, set periodic form updates to a certain time interval and enable automatic downloads. I would still recommend that the enumerators check Get Blank Form to make sure they have the latest version.

Note that for this kind of setup to work well, you really need to make sure enumerators can have access to an Internet connection periodically to ensure they have the correct version of the form. Something you may want to do is always increase the form version and send it as part of the submission. You can see Can the form version be accessed from inside the form? - #4 by LN for how. That way you can be sure that each enumerator is updating as expected.

3 Likes