{
"description": "Capacités FHIR R4 de SGRDV en tant que serveur vis-à-vis des portails utilisateurs. Décrit les opérations de recherche de disponibilités ($find), d'agrégation ($aggregate), de verrouillage ($lock), de prolongation de verrou ($extend-lock) et de retrait de verrou ($release-lock) acceptées en provenance des portails et des DMÉs.",
"_filename": "CapabilityStatement-SGRDVCapabilityStatement.json",
"package_name": "ca.qc.sq.sgrdv",
"format": [ "json", "xml" ],
"date": "2026-04-20",
"publisher": "Santé Québec",
"fhirVersion": "4.0.1",
"name": "SGRDVCapabilityStatement",
"type": null,
"experimental": "true",
"resourceType": "CapabilityStatement",
"title": "SGRDV — CapabilityStatement Surface API",
"package_version": "1.0.3",
"status": "active",
"id": "0b65fd5c-d1bd-4fbe-b906-23489788b023",
"kind": "requirements",
"url": "http://sante.quebec/fhir/CapabilityStatement/sgrdv",
"version": "1.0.3",
"rest": [ {
"mode": "server",
"resource": [ {
"type": "Appointment",
"operation": [ {
"name": "lock",
"definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-lock",
"documentation": "Verrouille une disponibilité candidate parmi une liste ordonnée. Contrat portail : sans lockIdentifier ni lockEndTime en entrée."
}, {
"name": "find",
"definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-find",
"documentation": "Recherche des disponibilités de rendez-vous selon les critères fournis par le portail. Retourne un Bundle searchset."
}, {
"name": "aggregate",
"definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-aggregate",
"documentation": "Agrège les disponibilités de rendez-vous selon les critères fournis. Retourne un Parameters avec comptage groupé par date."
}, {
"name": "extend-lock",
"definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-extend-lock",
"documentation": "Prolonge un verrou existant identifié par lockIdentifier. Retourne un Bundle identique à celui du $lock (lockIdentifier conservé + nouveau lockEndTime)."
}, {
"name": "release-lock",
"definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-release-lock",
"documentation": "Retire un verrou existant identifié par lockIdentifier. En sortie : HTTP 204 sans corps en cas de succès, HTTP 400 avec OperationOutcome en cas d'erreur."
} ],
"interaction": [ {
"code": "create"
} ],
"documentation": "Gestion des disponibilités (recherche, agrégation, verrouillage, prolongation et retrait de verrou) par les portails.",
"supportedProfile": [ "http://sante.quebec/fhir/StructureDefinition/sgrdv-find-request-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-find-response-bundle", "http://sante.quebec/fhir/StructureDefinition/sgrdv-aggregate-request-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-aggregate-response-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-lock-request-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-lock-response-bundle", "http://sante.quebec/fhir/StructureDefinition/sgrdv-extend-lock-request-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-release-lock-request-parameters" ]
} ],
"documentation": "SGRDV agit comme serveur FHIR R4 pour les portails. Les portails recherchent des disponibilités via POST Appointment/$find, obtiennent des comptages agrégés via POST Appointment/$aggregate, soumettent des demandes de verrou via POST Appointment/$lock, prolongent un verrou existant via POST Appointment/$extend-lock, et retirent un verrou via POST Appointment/$release-lock.\n\n**HTTP header X-Correlation-Id** — Tous les appels (toutes opérations confondues) doivent inclure le header `X-Correlation-Id` portant un identifiant unique (UUID recommandé) généré par le portail client. SGRDV retourne ce même identifiant en écho dans la réponse HTTP, le propage aux appels en aval (DMÉ/SIP-C) et le journalise. La corrélation avec le citoyen (NIU) et, le cas échéant, le professionnel relève de la responsabilité du portail/DMÉ qui a initié la transaction. Ce mécanisme est strictement HTTP — il n'est pas représenté dans le payload FHIR."
} ]
}