@czue I don't think this would necessarily be an issue, because there will never be more than 5 forms per case, nor 2 cases per form. The function should not perform more than 10 updates at any time. Furthermore, we need to be able to change the status via the UI, which as far as I'm aware is impossible using pillows. We can, however, narrow the forms handled in the function down to the 5 we require for our mCCT reports, which should speed things up. We could also ignore all `McctStatus` objects with `status == "hidden"`, but that could break whenever a form was archived, as previous rows would never be updated.

An additional problem is that with pillows, we would have to replicate some of the logic multiple times, in each of the flat fields we would use, as this is a particularly troublesome chain of conditions that need to be handled.