Vérification du QR Health ID
Le QR Health ID permet à quiconque, au comptoir, de confirmer qu’une carte est authentique et à jour. La réponse est toujours l’un de quatre états clairs, jamais une simple erreur.
Le flux
Faites défiler les étapes sous le diagramme, ou survolez-en une, pour la mettre en évidence.
- Présenter le QR Health ID Le patient ouvre sa carte Health ID en mode présentation.
- Scan, /verify/qr/{token} N’importe quelle caméra ouvre la page de vérification sur opescare.com.
- Vérifier l’état du jeton Le jeton est recherché et contrôlé : expiration et révocation.
- Vérifié, expiré, révoqué ou invalide La page affiche exactement l’un des quatre états.
- Enregistrer le scan réussi Une vérification réussie est enregistrée comme événement de vérification.
Comment ce diagramme est vérifié 21 contrôles sur 21 réussis
L'image, les étapes, le PDF et le JSON sont générés à partir d'une seule spécification. Un test automatisé démontre le graphe et vérifie chaque référence ci-dessous dans l'application en fonctionnement.
- Chaque carte a un identifiant unique
- Chaque carte a un type connu
- Chaque flèche relie deux cartes existantes
- Un seul point de départ (personne, appareil ou partenaire)
- Chaque carte est atteignable depuis le départ
- Chaque carte mène à une issue (aucune impasse)
- Aucun cycle sauf les boucles de nouvel essai déclarées
- Chaque étape numérotée suit de vraies flèches
- Les issues terminent le flux
- Deux cartes ne partagent jamais une case
- Chaque carte cite sa preuve
- Chaque route, classe, méthode et réglage existe
- Chaque icône vient du jeu Lucide
- Chaque icône correspond au type de sa carte
- Chaque libellé existe en anglais et en français
- Chaque libellé tient dans sa carte
- Aucune flèche ne traverse une carte
- Deux flèches sans rapport ne se superposent jamais
- Aucune étiquette de flèche ne couvre une carte ou une autre étiquette
- Chaque pointe de flèche est visible
- Deux cartes reliées de types différents ne partagent jamais une couleur
| Carte | Preuve dans le code |
|---|---|
| Présenter le QR Health ID | route:portals.patient.health-id-card method:App\Services\Identity\QrTokenService::generateToken |
| Scan, /verify/qr/{token} | route:verify.qr |
| Vérifier l’état du jeton | method:App\Http\Controllers\MedicalId\VerifyController::qr method:App\Services\Identity\QrTokenService::verifyToken method:App\Services\Identity\QrTokenService::failureState |
| Enregistrer le scan réussi | class:App\Models\HealthIdVerificationEvent |
| Invalide | method:App\Services\Identity\QrTokenService::failureState |
| Révoqué | method:App\Services\Identity\QrTokenService::revokeToken |
| Expiré | class:App\Models\HealthIdQrToken |
| Vérifié | route:verify.qr |
Ce que cela garantit
- Le QR porte un jeton, pas de données médicales.
- Chaque réponse est l’un de quatre états exploitables.
- Les vérifications réussies sont enregistrées.
Où cela se trouve dans le code
route:portals.patient.health-id-cardmethod:App\Services\Identity\QrTokenService::generateTokenroute:verify.qrmethod:App\Http\Controllers\MedicalId\VerifyController::qrmethod:App\Services\Identity\QrTokenService::verifyTokenmethod:App\Services\Identity\QrTokenService::failureStateclass:App\Models\HealthIdVerificationEventmethod:App\Services\Identity\QrTokenService::revokeTokenclass:App\Models\HealthIdQrToken