Hmm, so the problem on the demo server was that the admin user’s default locale was set to Spanish (and this revealed the bug that Daniel linked to the commit for).
I actually don’t understand how the language got set to Spanish, because there’s a DB trigger that should prevent editing the admin user (mentioned here). I temporarily disabled the trigger, changed the admin user’s default locale to English UK, and re-enabled the trigger. And now the patient dashboard is working again.
If anyone knows how the admin user’s default locale is being changed, I’m curious!