FQL is a query language that allows you to retrieve, filter and project data from any data source containing FHIR Resources. It brings the power of three existing languages together: SQL, JSON and FhirPath. It allows you to create tables and is useful for gaining insight and perform quality control.
Changelog SGRDV — release 1.1.2
Date de publication : 19 juillet 2026
Légende : 🔴 = rupture sur contrat de production (
experimental = false) · 🟠 = rupture sur contrat en validation (experimental = true) · 🟢 = ajout ou assouplissement rétrocompatible
1. Versionnement et statut
1.1 Bump 1.1.1 → 1.1.2
Cette release correspond à un bump PATCH. Tous les artefacts modifiés portent experimental = true. Les ruptures individuelles justifient le symbole 🟠 mais n'imposent qu'un bump PATCH conformément à la politique de versionnement.
Résumé des changements :
- §2 —
$bookcommun : refonte de la représentation de la réorientation REO. La Provenance de la demande passe d'une structure multi-agents (portail + professionnel réorienteur enRelatedPerson) à un agent unique (le portail, unDevice). Le nom du professionnel réorienteur est désormais porté par une extension dédiée. 🟠 - §3 —
$bookcommun : le slicing d'identifiant et l'invariant de portail sur leDevicesource (introduits en 1.1.1) sont remplacés par une contrainte souple — au moins un identifiant dont le système émetteur est renseigné, sans figer la liste des portails. 🟢 - §4 — Device source commun :
deviceNamerendu optionnel sur leDevicesource de base. 🟢 - §5 — Audit :
SGRDVAuditEvent.outcomerendu optionnel ;type.systemrendu obligatoire ; alignement duDeviceacteur d'audit sur leDevicesource des autres surfaces (identifiant parsystemseul, prise en charge de la tuile de portail). 🟠 / 🟢 - §6 —
$booksurface source : correction d'une référencesupportedProfileduCapabilityStatementlaissée sur l'ancien canonical lors du renommage effectué en 1.1.1. 🟢
1.2 Version explicite sur tous les artefacts
Tous les artefacts définitionnels du guide portent désormais explicitement la version de la release : profils, extensions, ValueSet, CodeSystem, OperationDefinition et CapabilityStatement sont alignés sur 1.1.2. Les ressources NamingSystem ne portent pas de version — l'élément version n'existe pas sur cette ressource en FHIR R4.
2. $book — Refonte de la réorientation REO sur la Provenance 🟠
2.1 Provenance à agent unique 🟠
La Provenance de la demande $book modélisait la réorientation REO au moyen d'un second agent (professionnelREO) référençant un RelatedPerson contenu représentant la personne ayant effectué la réorientation. Cette modélisation est remplacée : la Provenance ne porte plus qu'un seul agent, le portail source (un Device). Le nom du professionnel réorienteur, lorsqu'il s'applique, est porté par une extension dédiée sur la Provenance (voir §2.3).
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
agent |
Slicing ouvert : portail (1..1, Device) + professionnelREO (0..1, RelatedPerson) |
Slicing fermé : portail seul (1..1, Device) |
contained |
Ouvert : portail (Device) + orienteur (RelatedPerson) |
Fermé : portail seul (Device) |
agent[professionnelREO] |
Présent (référence #orienteur) |
Supprimé |
L'organisation d'origine de la réorientation (Clinique, Institution hospitalière ou CIUSS) reste portée par agent[portail].onBehalfOf en référence logique (identifiant seul, référence littérale interdite).
2.2 Suppression du profil RelatedPerson réorienteur 🟠
Le profil SGRDVBaseBookOrienteurRelatedPerson (Id sgrdv-base-book-orienteur-related-person) est supprimé. La personne réorientatrice n'est plus modélisée comme un RelatedPerson distinct.
2.3 Nouvelle extension Nom du professionnel REO 🟢
Une extension porte le nom du professionnel de santé ayant effectué la réorientation REO, directement sur la Provenance de la demande $book.
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
extension[nomProfessionnelREO] (sgrdv-provenance-nom-professionnel-reo) |
absent | 0..1 MS (valeur HumanName, contexte Provenance) |
2.4 Cardinalité location.identifier.system 🟠
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
location.identifier.system |
valeur fixée sans cardinalité explicite | 1..1 (+ valeur fixée) |
2.5 Artefacts mis à jour
| Artefact | Type | Modification |
|---|---|---|
SGRDVBaseBookRequestProvenance |
Profile (Provenance) commun |
Agent unique portail ; extension nomProfessionnelREO ; location.identifier.system 1..1 |
SGRDVBaseBookOrienteurRelatedPerson |
Profile (RelatedPerson) commun |
Supprimé |
SGRDVProvenanceNomProfessionnelREOExtension |
Extension commun |
Nouvelle extension (HumanName, contexte Provenance) |
⚠️ Action requise : Les implémentations qui produisaient une Provenance $book avec un agent professionnelREO (RelatedPerson contenu #orienteur) doivent migrer vers un agent unique portail et, le cas échéant, renseigner le nom du professionnel réorienteur dans l'extension sgrdv-provenance-nom-professionnel-reo.
3. $book — Identifiant de portail : passage à une contrainte souple 🟢
Le slicing d'identifiant (reo / votresante) et l'invariant sgrdv-book-device-portail-identifier ajoutés en 1.1.1 sur le Device source d'une demande $book — qui figeaient la liste des portails émetteurs et imposaient l'un des deux systèmes reconnus — sont remplacés par une contrainte souple. Le Device source doit porter au moins un identifiant dont le système émetteur (identifier.system) est renseigné, sans énumérer ni figer les portails : un nouveau portail s'identifie via son propre système sans modification de l'IG.
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
identifier |
Slicing ouvert reo / votresante (systèmes figés) |
1..* (au moins un identifiant, sans slicing par portail) |
Invariant sgrdv-book-device-portail-identifier |
Erreur si aucun identifiant portail reconnu | Supprimé |
identifier.system |
Figé par slice (RVSQREO / VOTRESANTE) |
1..1 (système émetteur renseigné, non figé) |
identifier.value |
Non contraint | 0..1 |
owner |
0..1 MS |
0..1 (flag MS retiré) |
3.1 Artefacts mis à jour
| Artefact | Type | Modification |
|---|---|---|
SGRDVBaseBookSourceDevice |
Profile (Device) commun |
Remplacement du slicing identifier et de l'invariant portail par identifier 1..* avec system 1..1 ; owner sans MS |
Les instances d'exemple $book portent désormais l'identifiant de portail (système émetteur seul).
4. Device source commun — deviceName optionnel 🟢
Le Device source de base rendait deviceName obligatoire. Il devient optionnel : le système source est identifié par son identifier.system (URL de NamingSystem reconnue), le nom lisible n'étant plus exigé.
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
deviceName |
1..1 MS |
0..1 |
deviceName.name |
1..1 MS |
1..1 (flag MS retiré) |
deviceName.type |
1..1 MS |
1..1 (flag MS retiré) |
4.1 Artefacts mis à jour
| Artefact | Type | Modification |
|---|---|---|
SGRDVBaseSourceSystemDevice |
Profile (Device) commun |
deviceName rendu optionnel |
5. Audit — Ajustements de contraintes 🟠 / 🟢
5.1 SGRDVAuditEvent 🟠 / 🟢
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
type.system |
valeur fixée sans cardinalité explicite | 1..1 MS (+ valeur fixée) 🟠 |
outcome |
1..1 MS |
0..1 MS 🟢 |
outcome devient optionnel : l'issue de la transaction n'est renseignée que lorsqu'elle est connue au moment de la journalisation.
5.2 Device acteur d'audit aligné sur les autres surfaces 🟢
Le Device acteur d'audit (SGRDVAuditAgent) reprend le contrat du Device source des autres surfaces : l'acteur est identifié par identifier.system seul, identifier.value restant facultative. La tuile de portail REO est prise en charge (via property[tuilePortail]) et n'est renseignée que lorsque la transaction auditée s'y prête ($book).
| Élément | Avant (1.1.1) | Après (1.1.2) |
|---|---|---|
identifier.value |
1..1 MS |
Facultative (retrait de l'obligation) |
deviceName |
1..1 MS |
Non contraint (hérité du parent, optionnel) |
property[tuilePortail] |
absent | 0..1 MS (tuile REO, SGRDVTuilePortailREOVS) |
5.3 Artefacts mis à jour
| Artefact | Type | Modification |
|---|---|---|
SGRDVAuditEvent |
Profile (AuditEvent) commun |
type.system 1..1 MS ; outcome → 0..1 MS |
SGRDVAuditAgent |
Profile (Device) commun |
identifier.value facultative ; ajout property[tuilePortail] |
Les instances d'exemple d'audit sont alignées (identifiant par system seul).
6. $book surface source — Correction du supportedProfile du CapabilityStatement 🟢
Le profil des paramètres d'entrée de l'opération $book sur la surface source a été renommé en 1.1.1 (SGRDVSourceBookNotificationParameters → SGRDVSourceBookRequestParameters, canonical …/sgrdv-source-book-notification-parameters → …/sgrdv-source-book-request-parameters). Le CapabilityStatement de la surface source continuait toutefois de référencer, dans sa liste supportedProfile, l'ancien canonical — qui n'est plus produit et ne résout donc plus. La référence est corrigée vers le canonical courant.
| Élément | Avant (1.1.2, hérité de 1.1.1) | Après (1.1.2) |
|---|---|---|
supportedProfile $book (entrée) du CapabilityStatement source |
…/sgrdv-source-book-notification-parameters (ne résout plus) |
…/sgrdv-source-book-request-parameters |
6.1 Artefacts mis à jour
| Artefact | Type | Modification |
|---|---|---|
CapabilityStatement (surface source) |
CapabilityStatement |
supportedProfile du $book (entrée) pointé vers le canonical courant |
⚠️ Action requise : Les implémentations qui résolvaient les profils listés dans le supportedProfile du CapabilityStatement source obtiennent désormais un canonical valide pour les paramètres d'entrée $book. Aucune action si vous référenciez déjà le profil par son canonical courant.
7. Recommandations de migration pour les partenaires
Si vous intégrez $book
- Migrer la Provenance de la demande vers un agent unique
portail(Device). Retirer l'agentprofessionnelREOet leRelatedPersonréorienteur contenu (#orienteur). - Le cas échéant, renseigner le nom du professionnel réorienteur dans l'extension
sgrdv-provenance-nom-professionnel-reo(valeurHumanName). - Le
Devicesource d'une demande$bookdoit porter au moins un identifiant dont le système émetteur (identifier.system) est renseigné ; la liste des portails n'est plus figée par le profil. Continuez de renseigner l'identifiant de portail attendu par le service.
Si vous produisez ou consommez des Bundles d'audit
outcomesurAuditEventest désormais optionnel — aucune action requise si vous le renseigniez déjà.- Le
Deviceacteur d'audit est identifié paridentifier.systemseul ;identifier.valuereste acceptée mais n'est plus exigée. - Pour une transaction
$book, la tuile de portail peut être portée parDevice.property[tuilePortail].
Toutes intégrations confondues
- Revalidez vos payloads contre la version
1.1.2du paquet IG. - Traitez la §2 comme une rupture sur contrat expérimental — une mise à jour est requise avant la prochaine validation partenaire.
Canonical claims
| http://sante.quebec/fhir/ | Claimed |
| http://sante.quebec/fhir/StructureDefinition/ | Claimed |
| http://sante.quebec/fhir/ImplementationGuide/ | Claimed |
| http://sante.quebec/fhir/OperationDefinition/ | Claimed |
| http://sante.quebec/fhir/CodeSystem/ | Claimed |
| http://sante.quebec/fhir/ValueSet/ | Claimed |
| http://sante.quebec/fhir/CapabilityStatement/ | Claimed |
| http://sante.quebec/ | Claimed |
| http://sante.quebec/fhir/NamingSystem/ | Claimed |