MurrayM: I believe they contain a JSON structure of a few hundred characters) they need to be displayed optimally in order for the scan to work.
And therein lies the problem. They could probably get away with a v10 code (all they need is a store ID/business ID), which would be the easiest/most reliable to scan, but instead they go for the innately difficult-to-scan option.
The MoH app and its deployment is starting to look like a design example of how not to do something like this. Almost everything you can get wrong, they've got wrong. I can understand a few problems here and there, but not this end-to-end fail.