PackagesCanonicalsLogsProblems
    Packages
    ca.qc.sq.sgrdv@1.2.1
    http://sante.quebec/fhir/CapabilityStatement/sgrdv
{
  "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), de retrait de verrou ($release-lock), de réservation ($book) et d'annulation ($cancel) 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.2.1",
  "status": "active",
  "id": "50111dd6-96f9-4bc5-8142-87a513ac0033",
  "kind": "requirements",
  "url": "http://sante.quebec/fhir/CapabilityStatement/sgrdv",
  "version": "1.2.1",
  "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 (mode proposed) ou des rendez-vous existants du patient (mode booked) 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."
      }, {
        "name": "book",
        "definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-book",
        "documentation": "Réserve un rendez-vous sur une disponibilité préalablement verrouillée via $lock. Contrat actuellement en draft (status = #draft) — le contrat peut évoluer avant stabilisation. En entrée : appointment + slot en logical reference, patient enrichi (telecom + sms + rank), orientation-id, encounter-reason, location-string, lockIdentifier et Provenance multi-agents. En sortie : Bundle collection contenant un Parameters qui expose la disponibilité réservée en logical reference (Reference.identifier seul) en cas de succès — l'Appointment et les ressources associées ne sont pas rématérialisés, le portail dispose déjà de l'information via $find ; OperationOutcome seul en cas de refus (verrou expiré ou refus DMÉ)."
      }, {
        "name": "cancel",
        "definition": "http://sante.quebec/fhir/OperationDefinition/sgrdv-appointment-cancel",
        "documentation": "Annule un rendez-vous préalablement réservé via $book. Contrat actuellement en draft (status = #draft). En entrée : appointment en logical reference (IdDispoDME), raison d'annulation optionnelle (texte libre) et Provenance multi-agents. SGRDV identifie le DMÉ responsable et relaie la demande. En sortie : Parameters avec cancellationCompleted (booléen) et, en cas de refus, un ou plusieurs OperationOutcomes explicatifs (MSG_RV_INEXISTANT, MSG_RV_NOTBOOKED, MSG_DELAI_INSUFFISANT)."
      } ],
      "interaction": [ {
        "code": "create"
      } ],
      "documentation": "Gestion des disponibilités (recherche, agrégation, verrouillage, prolongation et retrait de verrou, réservation, annulation) 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", "http://sante.quebec/fhir/StructureDefinition/sgrdv-book-request-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-book-response-bundle", "http://sante.quebec/fhir/StructureDefinition/sgrdv-cancel-request-parameters", "http://sante.quebec/fhir/StructureDefinition/sgrdv-cancel-response-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, retirent un verrou via POST Appointment/$release-lock, réservent un rendez-vous sur une disponibilité verrouillée via POST Appointment/$book, et annulent un rendez-vous réservé via POST Appointment/$cancel.\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."
  } ]
}