Documentation des guides d'implémentation de l'ANS
0.1.0 - ci-build
This page is part of the Documentation des guides d'implémentation de l'ANS (v0.1.0: Release) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 0.1.8. 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 sur HAPI FHIR. Elle est particulièrement utile lors de la phase de modélisation de nouveaux profils, ou lors de la création d’exemples. Pour les tests sur les profils français éprouvés, il est préférable de privilégier l’espace de tests gazelle.
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.
Le serveur HAPI utilise le validateur FHIR. Il est ainsi possible d’utiliser HAPI et l’opération $ validate ou directement le validateur FHIR développé par HL7. Lien vers le validateur FHIR : https://confluence.hl7.org/display/FHIR/Using+the+FHIR+Validator
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 et fonctionne également 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