Digitaler-Impfnachweis / certification-apis

API Documentation
Apache License 2.0
169 stars 46 forks source link

ICAO Reference-Algorithm for Test DCCs - Ubirch's support is needed #232

Open vaubaehn opened 2 years ago

vaubaehn commented 2 years ago

Dear @thinkberg ,

Ubirch is using an ICAO algorithm to transliterate contents of name fields in vaccination certificates into standardized name fields. Standardized name fields are used by wallet and check apps to group a series of (different) certificates to a user.

While you are taking care about vaccination certificates, T-Systems is handling ICAO issues in the context of Rapid Antigen Test DCCs. T-Systems offers a RAT portal, where connected test centers are able to process the whole work flow for registration of testees, entering test results, submission of test results to apps and health authorities (in case of positive result), and issuance of RAT DCCs (in case of a negative test result). Currently, all medical staff entering data via TSI's RAT portal must enter transliterated standardized names manually(!) which is for obvious reasons prone for errors, and according to reports of test center staff rather time consuming. Volunteer help to change this situation is offered by @janhoffmann , who proposed a solution to automatically fill standardized name fields with ICAO transliterated names. The PR is here: https://github.com/corona-warn-app/cwa-quick-test-frontend/pull/290 TSI is assessing the PR and signals to use it for the RAT portal, as soon as it is functional and fully compliant to ICAO guidelines.

But there are also 3rd party providers, that are connected to TSI's backend, and that implemented their own ICAO algorithms in the context of issuing RAT DCCs. For 3rd party providers, there are some general links or hints TSI provides for developers, but in the end developers are on their own, and based on my own experiences/discussions with developers, ICAO algorithms are searched across the internet, and what can be found is implemented on their side. It is questionnable whether all 3rd party providers always thoroughly assesed these implemented algorithms for full confomity/compliance with the official ICAO guideline.

Furthermore, even the ICAO guideline itself is a bit fuzzy in some parts of transliteration (see p. 24 for example):

... and so on.

It seems to be obvious, to have the best possible outcome in grouping Test DCCs with Vaccination DCCs, it would be good when all transliterations in this context rely on a single reference ICAO algorithm.

Ubirch was the first entity that implemented an ICAO algorithm for vaccination DCCs. TSI could be second, but for the RAT portal nothing is fixed yet, and for the 3rd party providers we can expect a rather heterologous variety of solutions.

About one month ago I kindly asked you, if someone of your dev department could have a look at the proposed ICAO algorithm in https://github.com/corona-warn-app/cwa-quick-test-frontend/pull/290 to ensure alignment of the future TSI RAT portal algorithm with Ubirch's algorithm. The resulting algorithm then can be used as THE reference algorithm for all parts in the project.

So, I'm renewing my request to kindly have a look to that proposed algorithm, whether it is in line with Ubirch's. If you don't find time to evaluate the proposed algorithm, you could also open source the algorithm you used for the vaccination DCCs here in this repository.

Thanks again very much for your support, kind regards, v.

thinkberg commented 2 years ago

We are currently checking all this and the rules and implementation are planned for a public release to exactly fix this problem. As you already found out, there are quite a few fuzzy rules, which doesn't make it simpler.

vaubaehn commented 2 years ago

@thinkberg Thanks for your reply, that's good news actually. Could you provide a rough estimation for a public release? Will it be some weeks, or some months? A rough estimation would be highly appreciated for "our" time planning and to avoid unnecessary further pings into your direction. Thanks!