Partager via


Valider des ressources FHIR pour des profils dans Services de données de santé Azure

Dans les profils de magasin dans l’article du service FHIR®, vous avez parcouru les bases des profils FHIR et les stockez. Le service FHIR dans Azure Health Data Services permet de valider les ressources par rapport aux profils pour voir si les ressources sont conformes aux profils. Cet article vous guide tout au long de l’utilisation $validate de la validation des ressources par rapport aux profils.

$validate est une opération dans Fast Healthcare Interopérabilité Resources (FHIR) qui vous permet de vous assurer qu’une ressource FHIR est conforme aux exigences de ressources de base ou à un profil spécifié. Cette opération garantit que les données d’un service FHIR ont les attributs et valeurs attendus. Pour plus d’informations sur l’opération de validation, consultez la spécification HL7 FHIR.

Par spécification, le mode peut être spécifié avec $validate, par exemple, créer et mettre à jour :

  • create: le service FHIR vérifie que le contenu du profil est unique à partir des ressources existantes et qu’il est acceptable de créer en tant que nouvelle ressource.
  • update: vérifie que le profil est une mise à jour par rapport à la ressource existante nommée (autrement dit, aucune modification n’est apportée aux champs immuables).

Il existe différentes façons de valider la ressource :

  • Option 1 : Valider une ressource existante avec l’opération de validation.
  • Option 2 : Valider une nouvelle ressource avec l’opération de validation.
  • Option 3 : Valider sur la ressource CREATE ou UPDATE à l’aide d’un en-tête.

Lors de la validation réussie d’une ressource existante ou nouvelle avec l’opération de validation, la ressource n’est pas conservée dans le service FHIR. Utilisez l’option 3 pour conserver correctement les ressources validées dans le service FHIR.

Le service FHIR retourne toujours un OperationOutcome résultat de validation pour une opération de $validate. Une fois qu’une ressource est passée dans $validate point de terminaison, le service FHIR effectue deux étapes de validation. La première étape est une validation de base pour vous assurer que la ressource peut être analysée. Pendant l’analyse des ressources, les erreurs individuelles doivent être corrigées avant de passer à l’étape suivante. Une fois qu’une ressource est correctement analysée, la validation complète est effectuée en tant que deuxième étape.

Remarque

Tous les ensembles de valeurs à utiliser pour la validation doivent être chargés sur le serveur FHIR. Cela inclut tous les ensembles de valeurs qui font partie de la spécification FHIR, ainsi que les ensembles de valeurs définis dans les guides d’implémentation. Seuls les ensembles de valeurs entièrement développés qui contiennent une liste complète de tous les codes sont pris en charge. Toutes les définitions ValueSet qui référencent des sources externes ne sont pas prises en charge.

Option 1 : Validation d’une ressource existante

Pour valider une ressource existante, utilisez-la $validate dans une GET requête.

GET http://<your FHIR service base URL>/{resource}/{resource ID}/$validate

Par exemple :

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

Dans cet exemple, vous validez la ressource a6e11662-def8-4dde-9ebc-4429e68d130e Patient existante par rapport à la ressource Patient de base. S’il est valide, vous obtenez un OperationOutcome exemple de code suivant.

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

Si la ressource n’est pas valide, vous obtenez un code d’erreur et un message d’erreur avec des détails sur la raison pour laquelle la ressource n’est pas valide. Un exemple OperationOutcome est retourné avec des messages d’erreur et peut ressembler à l’exemple de code suivant.

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient.identifier[1]"
            ]
        },
        {
            "severity": "error",
            "code": "invalid",
            "details": {
                "coding": [
                    {
                        "system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
                        "code": "1028"
                    }
                ],
                "text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
            },
            "location": [
                "Patient"
            ]
        }
    ]
}

Dans cet exemple, la ressource n’était pas conforme au profil patient fourni, ce qui nécessitait une valeur d’identificateur de patient et un sexe.

Si vous souhaitez spécifier un profil en tant que paramètre, vous pouvez spécifier l’URL canonique pour le profil à valider, comme l’exemple suivant pour le profil de base HL7 pour heartrate.

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

Option 2 : Validation d’une nouvelle ressource

Si vous souhaitez valider une nouvelle ressource que vous chargez sur le serveur, vous pouvez effectuer une POST demande.

POST http://<your FHIR service base URL>/{Resource}/$validate

Par exemple :

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

Cette demande valide la ressource. Une nouvelle ressource que vous spécifiez dans la demande sera créée après la validation. Le serveur retourne toujours un OperationOutcome résultat.

Option 3 : Valider sur la ressource CREATE ou UPDATE à l’aide d’un en-tête

Vous pouvez choisir quand vous souhaitez valider votre ressource, par exemple sur la ressource CREATE ou UPDATE. Par défaut, le service FHIR est configuré pour refuser la validation sur la ressource Create/Update. Cette fonctionnalité permet la validation à Create/Update l’aide de l’en-tête x-ms-profile-validation . Défini x-ms-profile-validation sur true pour la validation.

Remarque

Dans le service FHIR open source, vous pouvez modifier le paramètre de configuration du serveur, sous CoreFeatures.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

Pour activer la validation stricte, utilisez un en-tête « Préférer : gérer » avec une valeur stricte. En définissant cet en-tête, un avertissement de validation est signalé comme une erreur.

Étapes suivantes

Dans cet article, vous avez appris à valider des ressources par rapport aux profils à l’aide $validatede . Pour en savoir plus sur les autres fonctionnalités prises en charge par le service FHIR, consultez

Remarque

FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.