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 $validate
de . 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.