PackagesCanonicalsLogsProblems
    Packages
    ca.qc.sq.sgrdv@1.0.6
    http://sante.quebec/fhir/StructureDefinition/sgrdv-source-lock-notification-message-header
description: 'MessageHeader des notifications d''événements de verrou émises par SGRDV vers un système source via $process-message. SGRDV agit comme autorité du verrou : les ajouts, prolongations et retraits sont propagés aux DMÉ par ce canal ; le DMÉ n''expose pas d''opération $lock transactionnelle. eventCoding identifie l''événement (lock-create, lock-extend, lock-release). source.endpoint identifie SGRDV de manière fixe. destination.endpoint identifie le DMÉ/SIP-C destinataire (URL technique, variable). focus pointe en logical reference vers l''Appointment (1..1) et le ou les Slots (1..*) concernés — les ressources cibles ne sont pas matérialisées dans le Bundle, le DMÉ est l''autorité d''origine de ces ressources. L''extension lock-end-time porte l''heure de fin du verrou. id sert de corrélation FHIR-natif (en complément de l''en-tête HTTP X-Correlation-Id). Le moment de l''événement est porté par Bundle.timestamp (FHIR R4 ne définit pas de MessageHeader.timestamp).'
package_name: ca.qc.sq.sgrdv
derivation: constraint
name: SGRDVSourceLockNotificationMessageHeader
type: MessageHeader
elements:
  id: {mustSupport: true, index: 0}
  extension:
    index: 1
    slicing:
      rules: open
      ordered: false
      discriminator:
      - {path: url, type: value}
      min: 1
      slices:
        lockEndTime:
          match: {url: null}
          schema:
            type: Extension
            mustSupport: true
            url: http://sante.quebec/fhir/StructureDefinition/sgrdv-lock-end-time
            index: 2
            elements:
              value:
                mustSupport: true
                choices: []
                index: 4
  event:
    mustSupport: true
    choices: [eventCoding]
    index: 6
  eventCoding: {type: Coding, mustSupport: true, choiceOf: event, index: 7}
  event[x]:
    elements:
      system: {mustSupport: true, index: 8}
      code: {mustSupport: true, index: 9}
    required: [system, code]
  destination:
    mustSupport: true
    index: 10
    elements:
      endpoint: {mustSupport: true, index: 11}
      receiver: {index: 12}
  source:
    mustSupport: true
    index: 13
    elements:
      name:
        pattern: {type: String, value: SGRDV}
        mustSupport: true
        index: 14
      endpoint:
        pattern: {type: Url, value: 'http://sante.quebec/fhir/source/sgrdv'}
        mustSupport: true
        index: 15
    required: [name]
  focus:
    mustSupport: true
    array: true
    min: 2
    index: 16
    slicing:
      rules: closed
      discriminator:
      - {path: type, type: value}
      min: 2
      slices:
        appointment:
          match: {type: Appointment}
          schema:
            type: Reference
            mustSupport: true
            refers: ['http://hl7.org/fhir/StructureDefinition/Appointment']
            _required: true
            index: 17
            elements:
              reference: {index: 18}
              type:
                pattern: {type: Uri, value: Appointment}
                mustSupport: true
                index: 19
              identifier:
                mustSupport: true
                index: 20
                elements:
                  type:
                    mustSupport: true
                    index: 21
                    elements:
                      coding:
                        mustSupport: true
                        index: 22
                        elements:
                          system:
                            pattern: {type: Uri, value: 'http://sante.quebec/fhir/CodeSystem/sgrdv-identifier-type'}
                            index: 23
                          code:
                            pattern: {type: Code, value: IdDispoDME}
                            index: 24
                    required: [coding]
                  system: {mustSupport: true, index: 25}
                  value: {mustSupport: true, index: 26}
                required: [value, type, system]
            required: [identifier, type]
        slot:
          match: {type: Slot}
          schema:
            min: 1
            index: 27
            refers: ['http://hl7.org/fhir/StructureDefinition/Slot']
            type: Reference
            mustSupport: true
            array: true
            elements:
              reference: {index: 28}
              type:
                pattern: {type: Uri, value: Slot}
                mustSupport: true
                index: 29
              identifier:
                mustSupport: true
                index: 30
                elements:
                  type:
                    mustSupport: true
                    index: 31
                    elements:
                      coding:
                        mustSupport: true
                        index: 32
                        elements:
                          system:
                            pattern: {type: Uri, value: 'http://sante.quebec/fhir/CodeSystem/sgrdv-identifier-type'}
                            index: 33
                          code:
                            pattern: {type: Code, value: IdSlotDME}
                            index: 34
                    required: [coding]
                  system: {mustSupport: true, index: 35}
                  value: {mustSupport: true, index: 36}
                required: [value, type, system]
            _required: true
            required: [identifier, type]
package_version: 1.0.6
extensions:
  lockEndTime:
    url: http://sante.quebec/fhir/StructureDefinition/sgrdv-lock-end-time
    type: Extension
    mustSupport: true
    index: 2
    elements:
      value:
        mustSupport: true
        choices: []
        index: 4
class: profile
kind: resource
url: http://sante.quebec/fhir/StructureDefinition/sgrdv-source-lock-notification-message-header
base: http://hl7.org/fhir/StructureDefinition/MessageHeader
version: null
required: [destination, id, extension]