Documentation des guides d'implémentation de l'ANS
0.1.8 - trial-use
This page is part of the Documentation des guides d'implémentation de l'ANS (v0.1.8: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Cette page a pour but d’expliquer comment valider qu’une instance de ressource est conforme à un profil. Elle est particulièrement utile lors de la phase de modélisation de nouveaux profils, ou lors de la création d’exemples.
Cette documentation est destinée aux:
Pour tester les profils, il faudra avoir à disposition: 1. la / les StructureDefinition (des profils, des extensions …) qui indiquent les contraintes, 2. une ou plusieurs instances de ces profils à tester.
La plateforme de test Gazelle, et plus particulièrement EVSClient, est la plateforme à privilégier.
Plusieurs projets open-source permettent de valider des ressources FHIR via l’interface graphique d’un site web :
Le serveur HAPI utilise le validateur FHIR. Il est ainsi possible d’utiliser HAPI et l’opération $validate. Les urls définies ci-dessous pointent vers le serveur public d’HAPI, mais cette documentation reste valide sur tous les serveurs HAPI déployés en ligne ou en local.
Les StructureDefinition peuvent être accessibles sous deux formes:
Les packages sont très intéressants pour valider les ressources, car ils contiennent l’intégralité des ressources d’un Implementation Guide, et plus particulièrement l’ensemble des StructureDefinition des extensions et des profils. Le package permet donc de s’assurer que tout ait bien été importé sur HAPI et que toutes les StructureDefinition de conformité soient bien à disposition pour valider les instances.
Pour importer un package issu d’un Implementation Guide, il suffit d’utiliser ce script python: [https://github.com/nmdp-bioinformatics/igloader]
Prérequis : une StructureDefinition au format JSON ou XML avec le snapshot populé (dans forge, il y a une option persistante permettant de générer en permanence le snapshot).
Attention : Si vous utilisez ce cas b, assurez-vous que l’ensemble des StructureDefinition soient bien fournies, c’est à dire celles des extensions, des datatypes profilés, etc…
Pour exporter une StructureDefinition vers HAPI, il y a deux possibilités:
https://hapi.fhir.org/baseR4/StructureDefinition
en mettant la StructureDefinition dans le body de la requête.https://hapi.fhir.org/resource?serverId=home_r4&pretty=false&_summary=&resource=StructureDefinition
> CRUD Operations > Create (Note : limité à 10.000 caractères)Prérequis : disposer d’une instance de ressource, l’url du profil doit être définie dans Resource.meta.profile
Lorsque l’ensemble des StructureDefinition (snapshot) nécessaires à la validation d’un profil (profils, extensions…) est importé dans HAPI, il devient possible de valider une instance contre un profil. Pour cela, il faudra utiliser l’opération $validate définie par la spec FHIR.
Cette opération peut s’utiliser de deux façons:
https://hapi.fhir.org/baseR4/[ResourceType]/$validate?_format=json&_pretty=true
en remplaçant ResourceType par le nom de la ressource à tester et en mettant l’instance dans le bundlehttps://hapi.fhir.org/resource?serverId=home_r4&pretty=false&_summary=&resource=[ResourceType]
> CRUD Operations > validate