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.0 latest
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