Release notes

Changelog SGRDV — release 1.2.0

Date de publication : 17 juin 2026

Légende : 🔴 = rupture sur contrat de production (experimental = false) · 🟠 = rupture sur contrat en validation (experimental = true) · 🟢 = ajout rétrocompatible


1. Versionnement et statut

1.1 Publication de la version 1.2.0 🟠

Cette release applique un bump MINEUR portant deux changements :

  • §2 — $find : nouveau paramètre obligatoire appointment-status permettant de distinguer une recherche de disponibilités (proposed) d'une consultation de rendez-vous existants (booked). Rupture sur les clients qui ne fournissent pas ce paramètre. 🟠
  • §3 — $cancel : nouvel endpoint d'annulation de rendez-vous sur les deux surfaces (api-sgrdv et api-source). Ajout rétrocompatible. 🟢

Le bump MINEUR est déclenché par §3 (nouvel endpoint) conformément à la politique de versionnement SGRDV. La rupture §2 est sur des artefacts experimental = true.

Tous les artefacts versionnés sont alignés sur la version 1.2.0 via la configuration du paquet IG.


2. $find — Mode liste de rendez-vous : appointment-status obligatoire 🟠

S'applique au profil partagé SGRDVBaseFindPayloadParameters (et donc aux deux profils surface-spécifiques SGRDVFindRequestParameters et SGRDVSourceFindRequestParameters qui en héritent).

2.1 Nouveau paramètre obligatoire appointment-status 🟠

Élément Avant Après
parameter[appointmentStatus] absent 1..1 — nouveau paramètre obligatoire
parameter[appointmentStatus].value[x] n/a code bindé required à SGRDVFindAppointmentStatusVS
Valeurs acceptées n/a proposed (disponibilités) · booked (RV réservés)

Le paramètre appointment-status pilote le mode de la recherche :

  • proposed — comportement inchangé : recherche de créneaux disponibles dans une fenêtre start/end.
  • booked — nouveau mode : liste de rendez-vous réservés associés au patient. end et appointmentType sont optionnels dans ce mode (règles métier documentaires, non contraintes par invariant FHIR).

2.2 Paramètres rendus optionnels 🟢

Élément Avant Après Règle métier associée
parameter[end] 1..1 0..1 Obligatoire si appointment-status = proposed
parameter[appointmentType] 1..1 0..1 Obligatoire si appointment-status = proposed

Ces assouplissements sont rétrocompatibles : les payloads précédents fournissant end et appointmentType restent conformes en 1.2.0.

2.3 SGRDVBaseFindPatientadmisGap rendu optionnel 🟢

Élément Avant Après
extension[admisGap] 1..1 MS 0..1 MS

L'extension admisGap n'est pas pertinente dans le mode booked. Le portail peut l'omettre lorsque appointment-status = booked.

2.4 Nouveau ValueSet SGRDVFindAppointmentStatusVS 🟢

Artefact Type Codes
SGRDVFindAppointmentStatusVS ValueSet commun proposed · booked (sous-ensemble de AppointmentStatus FHIR R4)

Binding required sur parameter[appointmentStatus].valueCode.

2.5 Nouvelle extension SGRDVAppointmentCancellableExtension sur Appointment 🟢

Élément Type Cardinalité Description
SGRDVBaseFindResponseAppointment.extension[cancellable] SGRDVAppointmentCancellableExtension 0..1 MS Indique si le RV peut être annulé depuis un portail. Retourné par le DMÉ dans les réponses $find mode booked. Une absence est interprétée comme true (valeur par défaut implicite).

2.6 Nouveaux codes d'erreur 🟢

Code Libellé Contexte
MSG_PATIENT_NOT_FOUND Patient non trouvé par le DMÉ Mode booked : le patient n'existe pas dans le DMÉ
MSG_AUCUN_RV Aucun rendez-vous réservé associé au patient pour la période couverte Mode booked : aucun RV ne correspond aux critères

2.7 Nouvelles instances d'exemple — mode booked 🟢

Instance Surface Rôle
SGRDVFindExampleBookedRequest api-sgrdv Requête $find avec appointment-status = booked
SGRDVFindExampleBookedResponseSuccess api-sgrdv Bundle de réponse succès (mode booked) avec Appointment + Provenance
SGRDVFindExampleBookedResponseAppointment api-sgrdv Appointment avec extension cancellable
SGRDVFindExampleBookedResponseProvenance api-sgrdv Provenance associée au RV retourné
SGRDVFindExampleBookedResponseOutcome api-sgrdv OperationOutcome informational
SGRDVSourceFindExampleBookedRequest api-source Requête $find mode booked côté source
SGRDVSourceFindExampleBookedResponseSuccess api-source Bundle de réponse succès mode booked côté source

2.8 Artefacts mis à jour

Artefact Type Modification
SGRDVBaseFindPayloadParameters Profile (Parameters) commun Nouveau slice appointmentStatus 1..1 · end 1..1 → 0..1 · appointmentType 1..1 → 0..1
SGRDVBaseFindPatient Profile (Patient) commun extension[admisGap] 1..1 → 0..1
SGRDVBaseFindResponseAppointment Profile (Appointment) commun Nouvelle extension cancellable 0..1 MS
SGRDVFindRequestParameters Profile (Parameters) api-sgrdv Héritage aligné (tightening inchangé)
SGRDVSourceFindRequestParameters Profile (Parameters) api-source Héritage aligné (tightening inchangé)
SGRDVFindResponseBundle Profile (Bundle) api-sgrdv Agrégat mis à jour
SGRDVSourceFindResponseBundle Profile (Bundle) api-source Agrégat mis à jour
SGRDVFindAppointmentStatusVS ValueSet commun Nouveau
SGRDVAppointmentCancellableExtension Extension commune Nouveau
SGRDVOperationOutcomeCS CodeSystem commun Ajout MSG_PATIENT_NOT_FOUND · MSG_AUCUN_RV

3. $cancel — Nouvel endpoint d'annulation de rendez-vous 🟢

Nouvel endpoint POST [base]/Appointment/$cancel disponible sur les deux surfaces.

3.1 Comportement fonctionnel

Le portail transmet la disponibilité à annuler en logical reference (IdDispoDME), une raison d'annulation optionnelle (texte libre) et la Provenance multi-agents (identique à $book). SGRDV identifie le DMÉ responsable et relaie la demande via la surface source. La réponse indique si l'annulation a été effectuée (cancellationCompleted = true) ou refusée (cancellationCompleted = false) avec des OperationOutcome explicatifs.

3.2 Profils de requête / réponse

Artefact Type Surface Description
SGRDVBaseCancelPayloadParameters Profile (Parameters) commun Les deux Paramètres d'entrée neutres : appointment (logical ref, 0..1), cancellationReason (string, 0..1), provenance (0..1)
SGRDVBaseCancelResponseParameters Profile (Parameters) commun Les deux Paramètres de sortie neutres : cancellationCompleted (boolean, 1..1), outcome (SGRDVBaseOperationOutcome, 0..*)
SGRDVCancelRequestParameters Profile (Parameters) api-sgrdv api-sgrdv Tightening : appointment 1..1 · provenance 1..1
SGRDVCancelResponseParameters Profile (Parameters) api-sgrdv api-sgrdv Tightening MustSupport
SGRDVSourceCancelNotificationParameters Profile (Parameters) api-source api-source Tightening : appointment 1..1 · provenance 1..1
SGRDVSourceCancelResponseParameters Profile (Parameters) api-source api-source Tightening MustSupport

3.3 Opérations

Artefact Surface URL
SGRDVAppointmentCancelOperation api-sgrdv POST [base]/Appointment/$cancel
SGRDVSourceAppointmentCancelOperation api-source POST [base]/Appointment/$cancel

3.4 Nouveaux codes d'erreur 🟢

Code Libellé Contexte
MSG_RV_INEXISTANT Le rendez-vous demandé est inexistant Le DMÉ ne trouve pas la disponibilité référencée
MSG_RV_NOTBOOKED Le rendez-vous n'a pas le statut BOOKED Seuls les RV au statut booked sont annulables
MSG_DELAI_INSUFFISANT Le délai avant le rendez-vous est insuffisant pour permettre l'annulation Le DMÉ applique un délai minimum avant annulation

3.5 Nouvelles instances d'exemple 🟢

Instance Surface Rôle
SGRDVCancelExampleRequest api-sgrdv Requête $cancel (portail → SGRDV)
SGRDVCancelExampleRequestProvenance api-sgrdv Provenance multi-agents de la requête
SGRDVCancelExampleContainedDevicePortail api-sgrdv Device portail embarqué dans la Provenance
SGRDVCancelExampleResponseSuccess api-sgrdv Réponse succès (cancellationCompleted = true)
SGRDVCancelExampleResponseRefused api-sgrdv Réponse refus avec OperationOutcome
SGRDVCancelExampleOutcomeRefused api-sgrdv OperationOutcome de refus
SGRDVSourceCancelExampleRequest api-source Notification $cancel (SGRDV → DMÉ)
SGRDVSourceCancelExampleRequestProvenance api-source Provenance multi-agents côté source
SGRDVSourceCancelExampleContainedDeviceSGRDV api-source Device SGRDV embarqué dans la Provenance
SGRDVSourceCancelExampleResponseSuccess api-source Réponse succès DMÉ
SGRDVSourceCancelExampleResponseRefused api-source Réponse refus DMÉ avec OperationOutcome
SGRDVSourceCancelExampleOutcomeRefused api-source OperationOutcome de refus DMÉ

4. Recommandations de migration pour les partenaires

Si vous intégrez $find (api-sgrdv ou api-source)

  1. Ajoutez appointment-status à toutes vos requêtes $find — ce paramètre est désormais obligatoire. Utilisez proposed pour conserver le comportement précédent (recherche de disponibilités).
  2. Si vous utilisez le mode booked : end et appointmentType sont optionnels. Exploitez extension[cancellable] sur l'Appointment retourné pour déterminer si le RV peut être annulé avant d'offrir l'option d'annulation.
  3. Traitez les nouveaux codes d'erreur MSG_PATIENT_NOT_FOUND et MSG_AUCUN_RV dans votre gestion des OperationOutcome.

Si vous intégrez $cancel (api-sgrdv)

  1. Implémentez POST [base]/Appointment/$cancel avec le profil SGRDVCancelRequestParameters : appointment (logical ref IdDispoDME) en 1..1, provenance en 1..1, cancellationReason optionnel.
  2. Gérez les trois codes de refus : MSG_RV_INEXISTANT, MSG_RV_NOTBOOKED, MSG_DELAI_INSUFFISANT — présentez un message explicite à l'utilisateur dans chaque cas.
  3. Vérifiez la présence de extension[cancellable] sur les Appointment retournés par $find (mode booked) avant d'offrir l'option d'annulation.

Si vous intégrez $cancel (api-source — DMÉ/SIP-C)

  1. Exposez POST [base]/Appointment/$cancel conforme au profil SGRDVSourceCancelNotificationParameters.
  2. Retournez SGRDVSourceCancelResponseParameters avec cancellationCompleted = true en cas de succès, ou cancellationCompleted = false + au moins un OperationOutcome en cas de refus.
  3. Gérez les règles métier de délai minimum avant annulation et retournez MSG_DELAI_INSUFFISANT si applicable.

Toutes intégrations confondues

  1. Mettez à jour vos références au paquet SUSHI (version: 1.2.0).
  2. Revalidez vos jeux de tests $find : les requêtes sans appointment-status ne sont plus conformes.
  3. Intégrez les nouveaux codes d'erreur SGRDV dans votre mapping de messages utilisateur.
Info
Created:
Organization Canadian FHIR Registry

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
>
To install the command line tool, download Firely Terminal
>
For using npm with FHIR packages, read more here
Name Version Release date
ca.qc.sq.sgrdv 1.2.3 latest
ca.qc.sq.sgrdv 1.2.2
ca.qc.sq.sgrdv 1.2.1
ca.qc.sq.sgrdv 1.2.0
ca.qc.sq.sgrdv 1.1.5
ca.qc.sq.sgrdv 1.1.4
ca.qc.sq.sgrdv 1.1.2
ca.qc.sq.sgrdv 1.1.1
ca.qc.sq.sgrdv 1.1.0
ca.qc.sq.sgrdv 1.0.6
ca.qc.sq.sgrdv 1.0.5
ca.qc.sq.sgrdv 1.0.4
ca.qc.sq.sgrdv 1.0.3
ca.qc.sq.sgrdv 1.0.2
ca.qc.sq.sgrdv 1.0.0