PackagesCanonicalsLogsProblems
    Packages
    servicewell.fhir.wof-portal@1.0.0
    https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-appointment
description: The public API model for 'Portal Appointment  \nAppointment representation of a booked visit.\n Inherits IHE Scheduling Appointment.  \n\n This profile is to be used in a patient context and where the appointment status is anything other than '#proposed'.\n
package_name: servicewell.fhir.wof-portal
derivation: constraint
name: PortalAppointment
type: Appointment
elements:
  meta:
    elements:
      versionId: {index: 0}
      profile: {index: 1}
  extension:
    type: Extension
    short: Service and booking characteristics
    url: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
    index: 2
    slicing:
      slices:
        characteristic:
          match: {}
          schema:
            type: Extension
            short: Service and booking characteristics
            url: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
            index: 2
            extensions:
              scheduling:
                url: null
                index: 3
                extensions:
                  childPatientThreshold: {url: null, mustSupport: true, index: 4}
                  minChangeHours: {url: null, mustSupport: true, index: 5}
                  webReschedulingCountAllowed: {url: null, mustSupport: true, index: 6}
                  schedulingAvailability: {url: null, mustSupport: true, index: 7}
                  bookingConfirmation:
                    url: null
                    mustSupport: true
                    index: 8
                    elements:
                      value[x]:
                        elements:
                          code: {mustSupport: true, index: 9}
                elements:
                  extension:
                    mustSupport: true
                    index: 4
                    slicing:
                      slices:
                        childPatientThreshold:
                          match: {}
                          schema: {mustSupport: true, index: 4}
                        minChangeHours:
                          match: {}
                          schema: {mustSupport: true, index: 5}
                        webReschedulingCountAllowed:
                          match: {}
                          schema: {mustSupport: true, index: 6}
                        schedulingAvailability:
                          match: {}
                          schema: {mustSupport: true, index: 7}
                        bookingConfirmation:
                          match: {}
                          schema:
                            mustSupport: true
                            index: 8
                            elements:
                              value[x]:
                                elements:
                                  code: {mustSupport: true, index: 9}
            elements:
              extension:
                index: 3
                slicing:
                  slices:
                    scheduling:
                      match: {}
                      schema:
                        index: 3
                        extensions:
                          childPatientThreshold: {url: null, mustSupport: true, index: 4}
                          minChangeHours: {url: null, mustSupport: true, index: 5}
                          webReschedulingCountAllowed: {url: null, mustSupport: true, index: 6}
                          schedulingAvailability: {url: null, mustSupport: true, index: 7}
                          bookingConfirmation:
                            url: null
                            mustSupport: true
                            index: 8
                            elements:
                              value[x]:
                                elements:
                                  code: {mustSupport: true, index: 9}
                        elements:
                          extension:
                            mustSupport: true
                            index: 4
                            slicing:
                              slices:
                                childPatientThreshold:
                                  match: {}
                                  schema: {mustSupport: true, index: 4}
                                minChangeHours:
                                  match: {}
                                  schema: {mustSupport: true, index: 5}
                                webReschedulingCountAllowed:
                                  match: {}
                                  schema: {mustSupport: true, index: 6}
                                schedulingAvailability:
                                  match: {}
                                  schema: {mustSupport: true, index: 7}
                                bookingConfirmation:
                                  match: {}
                                  schema:
                                    mustSupport: true
                                    index: 8
                                    elements:
                                      value[x]:
                                        elements:
                                          code: {mustSupport: true, index: 9}
        appointmentUpdate:
          match: {}
          schema: {type: Extension, short: Current appointment update status, url: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-appointment-update', index: 10}
          min: 0
          max: 1
        activityDefinitionReference:
          match: {}
          schema: {short: Reference to related activity definition, type: Extension, url: 'https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/activity-definition-reference', index: 11}
          min: 0
          max: 1
        consentToMarketing:
          match: {}
          schema: {short: Patient consent to marketing, type: Extension, mustSupport: true, url: 'http://portal.wof.purified.link/fhir/StructureDefinition/extConsentToMarketing', index: 12}
          min: 0
          max: 1
  identifier:
    index: 13
    elements:
      type: {index: 14}
    slicing:
      rules: open
      discriminator:
      - {path: type.text, type: value}
      min: null
      slices:
        sourceSystemIdentifier:
          match:
            type: {text: source systems appointment concept}
          schema:
            mustSupport: true
            _required: true
            index: 15
            elements:
              type:
                elements:
                  text:
                    pattern: {type: String, value: source systems appointment concept}
                    index: 16
                required: [text]
              system: {short: Identifier-based reference to the Appointment concept in the source system., mustSupport: true, index: 17}
              value: {short: Source systems identifier for the appointment, mustSupport: true, index: 18}
            required: [value, system]
  serviceCategory: {index: 19}
  reasonCode: {index: 20}
  participant:
    array: true
    min: 3
    max: 3
    index: 21
    slicing:
      rules: open
      ordered: false
      discriminator:
      - {path: actor.type, type: value}
      min: 3
      max: 3
      slices:
        healthcareService:
          match:
            actor: {type: HealthcareService}
          schema:
            index: 22
            elements:
              actor:
                type: Reference
                refers: ['https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/healthcare-service-portal']
                index: 23
                elements:
                  type:
                    pattern: {type: Uri, value: HealthcareService}
                    index: 24
                required: [type]
        practitionerRole:
          match:
            actor: {type: PractitionerRole}
          schema:
            index: 25
            elements:
              actor:
                type: Reference
                refers: ['https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/practitioner-role-portal']
                index: 26
                elements:
                  type:
                    pattern: {type: Uri, value: PractitionerRole}
                    index: 27
                required: [type]
        patient:
          match:
            actor: {type: Patient}
          schema:
            _required: true
            index: 28
            elements:
              actor:
                type: Reference
                refers: ['https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-patient']
                index: 29
                elements:
                  reference: {mustSupport: true, index: 30}
                  type:
                    pattern: {type: Uri, value: Patient}
                    index: 31
                  identifier:
                    index: 32
                    elements:
                      system: {short: Patient pnr identifier system | SHOULD be an identifier system from a national FHIR Patient profile., mustSupport: true, index: 33}
                      value: {short: personalnumber as reference to the Patient, mustSupport: true, index: 34}
                    required: [value, system]
                required: [identifier, type]
              status:
                pattern: {type: Code, value: accepted}
                index: 35
package_version: 1.0.0
extensions:
  characteristic:
    url: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
    type: Extension
    short: Service and booking characteristics
    index: 2
    extensions:
      scheduling:
        url: null
        index: 3
        extensions:
          childPatientThreshold: {url: null, mustSupport: true, index: 4}
          minChangeHours: {url: null, mustSupport: true, index: 5}
          webReschedulingCountAllowed: {url: null, mustSupport: true, index: 6}
          schedulingAvailability: {url: null, mustSupport: true, index: 7}
          bookingConfirmation:
            url: null
            mustSupport: true
            index: 8
            elements:
              value[x]:
                elements:
                  code: {mustSupport: true, index: 9}
        elements:
          extension:
            mustSupport: true
            index: 4
            slicing:
              slices:
                childPatientThreshold:
                  match: {}
                  schema: {mustSupport: true, index: 4}
                minChangeHours:
                  match: {}
                  schema: {mustSupport: true, index: 5}
                webReschedulingCountAllowed:
                  match: {}
                  schema: {mustSupport: true, index: 6}
                schedulingAvailability:
                  match: {}
                  schema: {mustSupport: true, index: 7}
                bookingConfirmation:
                  match: {}
                  schema:
                    mustSupport: true
                    index: 8
                    elements:
                      value[x]:
                        elements:
                          code: {mustSupport: true, index: 9}
    elements:
      extension:
        index: 3
        slicing:
          slices:
            scheduling:
              match: {}
              schema:
                index: 3
                extensions:
                  childPatientThreshold: {url: null, mustSupport: true, index: 4}
                  minChangeHours: {url: null, mustSupport: true, index: 5}
                  webReschedulingCountAllowed: {url: null, mustSupport: true, index: 6}
                  schedulingAvailability: {url: null, mustSupport: true, index: 7}
                  bookingConfirmation:
                    url: null
                    mustSupport: true
                    index: 8
                    elements:
                      value[x]:
                        elements:
                          code: {mustSupport: true, index: 9}
                elements:
                  extension:
                    mustSupport: true
                    index: 4
                    slicing:
                      slices:
                        childPatientThreshold:
                          match: {}
                          schema: {mustSupport: true, index: 4}
                        minChangeHours:
                          match: {}
                          schema: {mustSupport: true, index: 5}
                        webReschedulingCountAllowed:
                          match: {}
                          schema: {mustSupport: true, index: 6}
                        schedulingAvailability:
                          match: {}
                          schema: {mustSupport: true, index: 7}
                        bookingConfirmation:
                          match: {}
                          schema:
                            mustSupport: true
                            index: 8
                            elements:
                              value[x]:
                                elements:
                                  code: {mustSupport: true, index: 9}
  appointmentUpdate: {url: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-appointment-update', min: 0, max: 1, type: Extension, short: Current appointment update status, index: 10}
  activityDefinitionReference: {url: 'https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/activity-definition-reference', min: 0, max: 1, short: Reference to related activity definition, type: Extension, index: 11}
  consentToMarketing: {url: 'http://portal.wof.purified.link/fhir/StructureDefinition/extConsentToMarketing', min: 0, max: 1, short: Patient consent to marketing, type: Extension, mustSupport: true, index: 12}
class: profile
kind: resource
url: https://canonical.fhir.link/servicewell/wof-portal/StructureDefinition/portal-appointment
base: https://canonical.fhir.link/servicewell/wof-base/StructureDefinition/wof-base-appointment
version: 1.0.0