ehn-dcc-development / eu-dcc-schema

Schema for the ehn DCC payload
Apache License 2.0
165 stars 59 forks source link

What to do if vaccines not included in value set? #117

Closed andypandy47 closed 2 years ago

andypandy47 commented 3 years ago

Apologies if this isn't the right place to raise this issue but would just like to clarify the correct method of dealing with vaccines that aren't included as part of the value set provided here. Older versions of the schema stipulated that the name of the vaccine could be encoded as a string value if it was not included in the value set. However, it now states that a "change management procedure should be invoked for adding a new code".

What exactly does this mean? Particularly from the perspective of a non-member state looking to align with this standard, I'm unsure how to handle this.

Thanks

gabywh commented 3 years ago

So the valuesets provided (https://github.com/ehn-dcc-development/ehn-dcc-valuesets) are what are valid EU-wide.

From: https://github.com/ehn-dcc-development/ehn-dcc-schema/wiki/FAQ#up-front-postels-law you can see that e.g. verifiers apply verification business rules once they have the schema.

There is a weak link (by design) between the DCC Schema and the valueset values, as defined here: https://github.com/ehn-dcc-development/ehn-dcc-schema/blob/release/1.3.0/DCC.ValueSets.schema.json.

The type of any valueset entry is string (as opposed to enum) and we added a valueset-uri property to at least point the implementer to where s/he should be looking for at least the standard values in the valueset. This has two benefits:

  1. schema remains flexible - as is the intention - of being a reasonably flexible carrier of the QR payload,
  2. for any changes in the valueset values (at least one value set could - at least theoretically - change daily) then we do not need to re-develop, re-validate and re-issue all Issuer and Verifier apps, which would be the case if the enum values were taken up directly into the source code (as e.g. code generation tooling does).

So, the valueset JSON data type remains string. This means you are free to place a string there. Issuers: if you use values other than in the valueset, please don't expect your QR code to be validated by any other Member States. Verifiers: you are free to decide whether you wish to accept values in addition to those given in the official valueset. This is Postel's Law in action.

HTH, Gaby.

ryanbnl commented 2 years ago

Solved/answered.