I gave it another shot, and thanks to this post by Sjlver: Recomputing calculated field in repeat group, after previous instance changed - #3 by Sjlver I found a solution! It doesn’t remove previously selected answer options, but it does prevent you from selecting them again.
Here is a simplified version of the solution:
type | name | label::english | calculation | constraint | constraint_message::english |
---|---|---|---|---|---|
begin_repeat | locations | Locations | |||
text | location | Enter name of location | |||
end_repeat | locations | ||||
calculate | concat | concat(’ ‘, join(’ ', ${selected_location}), ’ ') | |||
begin_repeat | locations_assessed | Select name of location assessed | |||
select_one ${location} | selected_location | Select one location | not(contains(${concat},${selected_location})) | This location has already been assessed | |
end_repeat | locations_assessed |
Leaving this here in case anyone else runs into this issue.