Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Idempotencie et simultanéité
Clés d'impuissance
AWS HealthLake prend en charge les clés d'idempuissance pour les POST opérations FHIR, fournissant un mécanisme robuste pour garantir l'intégrité des données lors de la création des ressources. En incluant un UUID unique comme clé d'idempuissance dans l'en-tête de demande, les applications de santé peuvent garantir que chaque ressource FHIR est créée exactement une fois, même dans les scénarios impliquant une instabilité du réseau ou des tentatives automatiques.
Cette fonctionnalité est particulièrement cruciale pour les systèmes de santé où les doublons de dossiers médicaux peuvent avoir de graves conséquences. Lorsqu'une demande est reçue avec la même clé d'idempuissance qu'une demande précédente, elle HealthLake renvoie la ressource d'origine au lieu de créer un doublon. Par exemple, cela peut se produire lors d'une boucle de nouvelles tentatives ou en raison de pipelines de requêtes redondants. L'utilisation de la clé d'idempotencie permet HealthLake de maintenir la cohérence des données tout en offrant une expérience fluide aux applications clientes traitant des problèmes de connectivité intermittents.
Mise en œuvre
POST/<baseURL>/Patient x-amz-fhir-idempotency-key: 123e4567-e89b-12d3-a456-426614174000 { "resourceType": "Patient", "name": [...] }
Scénarios de réponse
- Première demande (201 créés)
-
-
Nouvelle ressource créée avec succès
-
La réponse inclut l'ID de ressource
-
- Demande dupliquée (conflit 409)
-
-
Même clé d'impuissance détectée
-
Ressource d'origine renvoyée
-
Aucune nouvelle ressource n'a été créée
-
- Demande non valide (400 demandes erronées)
-
-
UUID mal formé
-
Champs obligatoires manquants
-
Bonnes pratiques
-
Générez un UUID unique pour chaque nouvelle création de ressource
-
Stockez les clés d'impuissance pour la logique des nouvelles tentatives
-
Utiliser un format de clé cohérent : UUID v4 recommandé
-
Implémenter dans les applications clientes gérant la création de ressources
Note
Cette fonctionnalité est particulièrement utile pour les systèmes de santé qui exigent une précision stricte des données et évitent la duplication des dossiers médicaux.
ETag dans AWS HealthLake
AWS HealthLake utilise ETags pour un contrôle de simultanéité optimiste des ressources FHIR, fournissant un mécanisme fiable pour gérer les modifications simultanées et maintenir la cohérence des données. An ETag est un identifiant unique qui représente une version spécifique d'une ressource, fonctionnant comme un système de contrôle de version via des en-têtes HTTP. Lors de la lecture ou de la modification des ressources, les applications peuvent les utiliser ETags pour empêcher les remplacements involontaires et garantir l'intégrité des données, en particulier dans les scénarios impliquant des mises à jour simultanées potentielles.
Exemple de mise en œuvre
// Initial Read GET /fhir/Patient/123 Response: ETag: W/"1" // Update with If-Match PUT /fhir/Patient/123 If-Match: W/"1" {resource content} // Create with If-None-Match PUT /fhir/Patient/123 If-None-Match: * {resource content} // Succeeds only if resource doesn't exist // Fails with 412 if resource exists
Scénarios de réponse
- Opération réussie (200 OK ou 204 sans contenu)
-
-
ETag correspond à la version actuelle
-
L'opération se déroule comme prévu
-
- Conflit de version (échec de la condition préalable 412)
-
-
ETag ne correspond pas à la version actuelle
-
Mise à jour rejetée pour éviter la perte de données
-
Bonnes pratiques
-
Inclure ETags dans toutes les opérations de mise à jour et de suppression
-
Implémenter une logique de nouvelle tentative pour gérer les conflits de versions
-
Utilisez If-None-Match :* pour les create-if-not-exists scénarios
-
Vérifiez toujours la ETag fraîcheur avant de procéder à des modifications
Ce système de contrôle de simultanéité est essentiel pour maintenir l'intégrité des données de santé, en particulier dans les environnements où plusieurs utilisateurs ou systèmes accèdent aux mêmes ressources et les modifient.