Introduction
Les questionnaires numériques sont largement utilisés dans le domaine de la santé pour collecter des données structurées. Ils contrôlent ce qui est demandé et assurent la cohérence des réponses.
Le problème survient après la soumission. Un QuestionnaireResponse stocke les réponses dans une structure imbriquée propre au formulaire. Bien qu'idéale pour la saisie, cette structure n'est pas optimisée pour l'interrogation, l'interopérabilité ou l'analyse.
L'extraction de données résout ce problème. Elle permet plusieurs capacités essentielles : l'interopérabilité entre différents systèmes de santé, l'analyse des données et l'intégration des données en temps réel. Les données provenant de sources multiples peuvent être consolidées sans rester bloquées dans un seul système ou dans des formats de code QR qui limitent le traitement.
FHIR recommande d'utiliser les Questionnaires pour saisir les données brutes, puis de convertir le QuestionnaireResponse en ressources FHIR standard telles que les Observations ou les MedicationStatements. Une fois transformées, les données peuvent être recherchées, partagées et utilisées entre les systèmes.
Le défi de l'extraction de données
Les Questionnaires FHIR excellent dans la saisie de données structurées. Cependant, les instances finales de QuestionnaireResponse sont difficiles à rechercher, à comparer ou à intégrer avec d'autres ressources FHIR. Le défi central consiste à convertir ces réponses en ressources FHIR standard (p. ex., Observations, Patient, Condition) pour une utilisation transparente dans des documents, des messages ou des API REST.
Le guide SDC fournit quatre mécanismes d'extraction, chacun adapté à des cas d'utilisation spécifiques en termes de complexité, de contrôle et d'évolutivité. Dans cet article, nous n'aborderons que trois d'entre eux et omettrons l'extraction fondée sur StructureMap. Vous pouvez en savoir plus à ce sujet ici.
Extraction fondée sur les Observations
Idéale pour : les évaluations cliniques simples ou les sondages correspondant directement à des Observations individuelles.
- À utiliser lorsque les questions s'alignent 1:1 avec des valeurs codées (p. ex., LOINC/SNOMED) et des réponses (p. ex., PHQ-9, signes vitaux comme le poids ou la tension artérielle).
- Rapide et légère — aucun mappage personnalisé requis.
- Limitation : génère uniquement des Observations ; inadaptée aux sorties complexes ou multi-ressources.
Extraction fondée sur les définitions
Idéale pour : les formulaires structurés conçus pour refléter des profils FHIR ou des ressources de base.
- Idéale lorsque la structure du questionnaire reflète la structure de la ressource cible (p. ex., données démographiques du patient → Patient, liste de médicaments → MedicationStatement).
- Gère automatiquement les groupes répétitifs, les éléments de structure, le découpage en tranches et les contraintes de profil (valeurs fixes, champs obligatoires).
- Limitations : la structure du formulaire est étroitement couplée à la structure de la ressource.
Extraction fondée sur les gabarits
Idéale pour : les formulaires produisant plusieurs ressources liées
L'extraction fondée sur les gabarits est le mécanisme le plus récent ajouté à la spécification SDC (après l'extraction fondée sur les Observations, sur les définitions et sur StructureMap). Elle utilise des ressources FHIR contenues ou des gabarits de Bundle annotés avec des expressions FHIRPath.
Elle a été introduite spécifiquement pour surmonter la complexité et les défis de gouvernance que les implementeurs rencontraient fréquemment avec les méthodes antérieures, et elle devient rapidement le choix privilégié dans de nombreux projets.
- Prise en charge des boucles et des conditions via FHIRPath (p. ex., inclure l'identifiant uniquement si une réponse est fournie ; répéter les composantes du nom).
- Contrôle total sur le contenu passe-partout et le contenu statique.
- Lisibilité maximale et barrière technique minimale.
- Utilise des gabarits de ressources contenues — indépendants des profils externes.
Ce qu'est l'extraction fondée sur les gabarits dans SDC
L'extraction fondée sur les gabarits est l'un des quatre mécanismes de la spécification FHIR SDC permettant de transformer un QuestionnaireResponse complété en une ou plusieurs ressources FHIR ou en un Bundle de transaction complet.
Elle offre une approche équilibrée :
- Plus expressive que l'extraction fondée sur les Observations.
- Beaucoup plus facile à concevoir et à comprendre que l'extraction fondée sur StructureMap.
- Plus explicite et visuelle que l'extraction fondée sur les définitions.
Les équipes la choisissent lorsqu'elles ont besoin d'un contrôle clair sur la sortie et d'une logique modérée telle que des groupes répétitifs, des conditions, des valeurs fixes, des profils, sans avoir à apprendre le langage de mappage FHIR.
Idée centrale
Vous intégrez des ressources de gabarits prêtes à l'emploi (ou un Bundle gabarit) directement dans le Questionnaire en tant que ressources contenues. Ces gabarits contiennent déjà le contenu passe-partout requis — profils méta, codes fixes, extensions, récit, etc.
Vous annotez ensuite des parties de ces gabarits avec de courtes expressions FHIRPath qui définissent comment les données sont renseignées :
- Remplir un champ à l'aide de la réponse à une question spécifique.
- Répéter une section une fois pour chaque réponse fournie par l'utilisateur.
- Supprimer un élément si l'utilisateur a laissé la question sans réponse.
Lorsque l'opération $extract s'exécute, le moteur copie les gabarits, évalue les expressions par rapport au QuestionnaireResponse, répète ou supprime les éléments selon les instructions, et retourne un Bundle de transaction prêt à soumettre.

Comment cela fonctionne en pratique
Dans Aidbox Form Builder, le processus est visuel : vous dessinez simplement votre formulaire, puis vous déposez des gabarits de ressources prêts à l'emploi dans les groupes exacts où les données se trouvent. Aidbox répète automatiquement les gabarits, résout les références, applique les profils et retourne un Bundle de transaction parfait.
Construisons un formulaire complet de saisie des allergies qui extrait :
- Patient
- Un AllergyIntolerance par allergie lié à ce patient
Étape 1 – Construire le Questionnaire destiné à l'utilisateur (Historique des allergies)
Aidbox Form Builder → Nouveau Questionnaire → Titre : « Historique des allergies »
Structure exacte du formulaire (ce que voient les cliniciens) :
-
En-tête du patient Nom complet
-
Date de naissance
-
Genre
-
Allergies Allergène
-
Type d'allergie
-
Réaction
-
Gravité
-
Criticité

Étape 2 – Définir les gabarits d'extraction dans le groupe Patient
Ajouter un gabarit de ressource Patient en tant que ressource contenue.
Étape 3 – Remplir les gabarits avec des valeurs
Mapper les champs du formulaire aux éléments Patient à l'aide d'expressions FHIRPath.
Étape 4 – Ajouter le gabarit pour l'extraction d'AllergyIntolerance
Ajouter un gabarit de ressource AllergyIntolerance dans le groupe Allergies répétitif afin qu'une ressource soit créée pour chaque allergie enregistrée.
Étape 5 – Remplir le gabarit avec des valeurs et le lier au Patient
Vous pouvez également renseigner des champs du gabarit avec des valeurs statiques, par exemple en sélectionnant une option dans un ValueSet lorsque celle-ci reste constante d'une ressource à l'autre.
Étape 6 – Tester l'extraction
Tout est automatiquement lié, profilé et prêt à être soumis via POST.
Conclusion
L'extraction fondée sur les gabarits offre un équilibre pratique entre flexibilité, lisibilité et maintenabilité au sein de la spécification FHIR SDC. Elle est particulièrement utile lorsque l'expertise complète en StructureMap n'est pas disponible ou lorsque les concepteurs ont besoin d'un contrôle direct sur la structure des ressources FHIR résultantes.
En intégrant des gabarits de ressources ou de Bundle directement dans le Questionnaire (en tant que ressources contenues) et en les annotant avec de simples extensions templateExtractContext et templateExtractValue pilotées par FHIRPath, les concepteurs peuvent définir précisément :
- quels éléments n'apparaissent que lorsque des réponses pertinentes sont fournies,
- comment les éléments répétitifs génèrent plusieurs éléments de structure ou des ressources entières,
- les valeurs par défaut ou fixes, les détails de conformité aux profils et les métadonnées au niveau du Bundle,
- la logique d'inclusion/exclusion conditionnelle et le comportement de bouclage — le tout sans écrire une seule ligne de script de mappage.
Cette méthode offre une clarté visuelle et une testabilité immédiate tout en prenant en charge des transformations complexes, notamment plusieurs ressources, des références croisées entre ressources via allocateId, des sections conditionnelles et des Bundles de transaction complets. Puisque la structure de sortie est explicitement définie dans le gabarit, les implementeurs peuvent valider les résultats attendus au moment de la conception, ce qui réduit considérablement les erreurs d'exécution par rapport aux alternatives plus procédurales.
Pour les équipes qui souhaitent créer des ressources robustes, réutilisables et conformes aux profils à partir de formulaires, tout en évitant la courbe d'apprentissage de StructureMap ou la rigidité du mappage purement fondé sur les définitions, l'extraction fondée sur les gabarits se démarque comme l'option la plus accessible offrant de hautes capacités dans la boîte à outils SDC.
Voir aussi : SQL on FHIR : Qu'est-ce qu'une ViewDefinition?.




