PackagesCanonicalsLogsProblems
    Packages
    servicewell.fhir.wof-portal@1.0.0
    http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
description: 'Composite extension structuring key characteristics for HealthcareService and Appointment.\n Contains three main areas: \n - ''scheduling'' (booking rules and availability), \n - ''workflow'' (API and resource functionality),  \n - ''security'' (security requirements, e.g., login). \n\n Enables standardized and machine-readable communication of clinic booking policies, API capabilities, and security level.'
package_name: servicewell.fhir.wof-portal
derivation: constraint
name: WofBaseCharacteristic
type: Extension
elements:
  extension:
    index: 0
    slicing:
      slices:
        scheduling:
          match: {}
          schema:
            short: Scheduling capability container
            index: 1
            extensions:
              childPatientThreshold:
                url: null
                index: 2
                extensions: {}
                elements:
                  extension: {index: 3}
                  url:
                    pattern: {type: Uri, value: childPatientThreshold}
                    index: 4
                  value:
                    short: Upper age limit (in years) for booking as a child patient.
                    maxValueInteger: 100
                    minValueInteger: 0
                    choices: [valueInteger]
                    index: 6
                  valueInteger: {type: integer, short: Upper age limit (in years) for booking as a child patient., maxValueInteger: 100, minValueInteger: 0, choiceOf: value, index: 7}
              minChangeHours:
                url: null
                index: 8
                extensions: {}
                elements:
                  extension: {index: 9}
                  url:
                    pattern: {type: Uri, value: minChangeHours}
                    index: 10
                  value:
                    short: Number of hours before appointment start after which changes are no longer allowed.
                    choices: [valueInteger]
                    index: 12
                  valueInteger: {type: integer, short: Number of hours before appointment start after which changes are no longer allowed., choiceOf: value, index: 13}
              webReschedulingCountAllowed:
                url: null
                index: 14
                extensions: {}
                elements:
                  extension: {index: 15}
                  url:
                    pattern: {type: Uri, value: webReschedulingCountAllowed}
                    index: 16
                  value:
                    short: Number of allowed reschedulings for this appointment.
                    choices: [valueInteger]
                    index: 18
                  valueInteger: {type: integer, short: Number of allowed reschedulings for this appointment., choiceOf: value, index: 19}
              schedulingAvailability:
                url: null
                index: 20
                extensions: {}
                elements:
                  extension: {index: 21}
                  url:
                    pattern: {type: Uri, value: schedulingAvailability}
                    index: 22
                  value:
                    short: Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.
                    choices: [valueCodeableConcept]
                    index: 24
                  valueCodeableConcept: {type: CodeableConcept, short: 'Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.', choiceOf: value, index: 25}
                  value[x]:
                    elements:
                      coding:
                        elements:
                          system:
                            pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                            index: 26
                          code:
                            binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-schedule'}
                            index: 27
                        required: [system, code]
                required: [value, valueCodeableConcept]
              bookingConfirmation:
                url: null
                array: true
                index: 28
                extensions: {}
                elements:
                  extension: {index: 29}
                  url:
                    pattern: {type: Uri, value: bookingConfirmation}
                    index: 30
                  value:
                    short: Booking confirmation method
                    choices: [valueCoding]
                    index: 32
                  valueCoding: {type: Coding, short: Booking confirmation method, choiceOf: value, index: 33}
                  value[x]:
                    elements:
                      system:
                        pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                        index: 34
                      code:
                        binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-booking-confirmation'}
                        index: 35
                    required: [system]
            elements:
              extension:
                index: 2
                slicing:
                  slices:
                    childPatientThreshold:
                      match: {}
                      schema:
                        index: 2
                        extensions: {}
                        elements:
                          extension: {index: 3}
                          url:
                            pattern: {type: Uri, value: childPatientThreshold}
                            index: 4
                          value:
                            short: Upper age limit (in years) for booking as a child patient.
                            maxValueInteger: 100
                            minValueInteger: 0
                            choices: [valueInteger]
                            index: 6
                          valueInteger: {type: integer, short: Upper age limit (in years) for booking as a child patient., maxValueInteger: 100, minValueInteger: 0, choiceOf: value, index: 7}
                    minChangeHours:
                      match: {}
                      schema:
                        index: 8
                        extensions: {}
                        elements:
                          extension: {index: 9}
                          url:
                            pattern: {type: Uri, value: minChangeHours}
                            index: 10
                          value:
                            short: Number of hours before appointment start after which changes are no longer allowed.
                            choices: [valueInteger]
                            index: 12
                          valueInteger: {type: integer, short: Number of hours before appointment start after which changes are no longer allowed., choiceOf: value, index: 13}
                    webReschedulingCountAllowed:
                      match: {}
                      schema:
                        index: 14
                        extensions: {}
                        elements:
                          extension: {index: 15}
                          url:
                            pattern: {type: Uri, value: webReschedulingCountAllowed}
                            index: 16
                          value:
                            short: Number of allowed reschedulings for this appointment.
                            choices: [valueInteger]
                            index: 18
                          valueInteger: {type: integer, short: Number of allowed reschedulings for this appointment., choiceOf: value, index: 19}
                    schedulingAvailability:
                      match: {}
                      schema:
                        index: 20
                        extensions: {}
                        elements:
                          extension: {index: 21}
                          url:
                            pattern: {type: Uri, value: schedulingAvailability}
                            index: 22
                          value:
                            short: Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.
                            choices: [valueCodeableConcept]
                            index: 24
                          valueCodeableConcept: {type: CodeableConcept, short: 'Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.', choiceOf: value, index: 25}
                          value[x]:
                            elements:
                              coding:
                                elements:
                                  system:
                                    pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                                    index: 26
                                  code:
                                    binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-schedule'}
                                    index: 27
                                required: [system, code]
                        required: [value, valueCodeableConcept]
                    bookingConfirmation:
                      match: {}
                      schema:
                        array: true
                        index: 28
                        extensions: {}
                        elements:
                          extension: {index: 29}
                          url:
                            pattern: {type: Uri, value: bookingConfirmation}
                            index: 30
                          value:
                            short: Booking confirmation method
                            choices: [valueCoding]
                            index: 32
                          valueCoding: {type: Coding, short: Booking confirmation method, choiceOf: value, index: 33}
                          value[x]:
                            elements:
                              system:
                                pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                                index: 34
                              code:
                                binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-booking-confirmation'}
                                index: 35
                            required: [system]
              url:
                pattern: {type: Uri, value: scheduling}
                index: 36
              value:
                choices: []
                index: 38
        workflow:
          match: {}
          schema:
            short: Workflow capability container
            index: 39
            extensions:
              deviceBookingAvailable:
                url: null
                index: 40
                extensions: {}
                elements:
                  extension: {index: 41}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 42
                  value:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    choices: [valueBoolean]
                    index: 44
                  valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 45}
                required: [value, valueBoolean]
              healthcareServiceAvailable:
                url: null
                index: 46
                extensions: {}
                elements:
                  extension: {index: 47}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 48
                  value:
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choices: [valueBoolean]
                    index: 50
                  valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 51}
                required: [value, valueBoolean]
            elements:
              extension:
                index: 40
                slicing:
                  slices:
                    deviceBookingAvailable:
                      match: {}
                      schema:
                        index: 40
                        extensions: {}
                        elements:
                          extension: {index: 41}
                          url:
                            pattern: {type: Uri, value: deviceBookingAvailable}
                            index: 42
                          value:
                            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                            choices: [valueBoolean]
                            index: 44
                          valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 45}
                        required: [value, valueBoolean]
                    healthcareServiceAvailable:
                      match: {}
                      schema:
                        index: 46
                        extensions: {}
                        elements:
                          extension: {index: 47}
                          url:
                            pattern: {type: Uri, value: healthcareServiceAvailable}
                            index: 48
                          value:
                            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                            choices: [valueBoolean]
                            index: 50
                          valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 51}
                        required: [value, valueBoolean]
              url:
                pattern: {type: Uri, value: workflow}
                index: 52
              value:
                choices: []
                index: 54
        security:
          match: {}
          schema:
            short: Security capability container
            index: 55
            extensions:
              requiresNativeIdPLogin:
                url: null
                index: 56
                extensions: {}
                elements:
                  extension: {index: 57}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 58
                  value:
                    short: Identity provider used for patient login (e.g., BankID).
                    choices: [valueBoolean]
                    index: 60
                  valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 61}
            elements:
              extension:
                index: 56
                slicing:
                  slices:
                    requiresNativeIdPLogin:
                      match: {}
                      schema:
                        index: 56
                        extensions: {}
                        elements:
                          extension: {index: 57}
                          url:
                            pattern: {type: Uri, value: requiresNativeIdPLogin}
                            index: 58
                          value:
                            short: Identity provider used for patient login (e.g., BankID).
                            choices: [valueBoolean]
                            index: 60
                          valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 61}
              url:
                pattern: {type: Uri, value: security}
                index: 62
              value:
                choices: []
                index: 64
  url:
    pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic'}
    index: 65
  value:
    choices: []
    index: 67
package_version: 1.0.0
extensions:
  scheduling:
    url: null
    short: Scheduling capability container
    index: 1
    extensions:
      childPatientThreshold:
        url: null
        index: 2
        extensions: {}
        elements:
          extension: {index: 3}
          url:
            pattern: {type: Uri, value: childPatientThreshold}
            index: 4
          value:
            short: Upper age limit (in years) for booking as a child patient.
            maxValueInteger: 100
            minValueInteger: 0
            choices: [valueInteger]
            index: 6
          valueInteger: {type: integer, short: Upper age limit (in years) for booking as a child patient., maxValueInteger: 100, minValueInteger: 0, choiceOf: value, index: 7}
      minChangeHours:
        url: null
        index: 8
        extensions: {}
        elements:
          extension: {index: 9}
          url:
            pattern: {type: Uri, value: minChangeHours}
            index: 10
          value:
            short: Number of hours before appointment start after which changes are no longer allowed.
            choices: [valueInteger]
            index: 12
          valueInteger: {type: integer, short: Number of hours before appointment start after which changes are no longer allowed., choiceOf: value, index: 13}
      webReschedulingCountAllowed:
        url: null
        index: 14
        extensions: {}
        elements:
          extension: {index: 15}
          url:
            pattern: {type: Uri, value: webReschedulingCountAllowed}
            index: 16
          value:
            short: Number of allowed reschedulings for this appointment.
            choices: [valueInteger]
            index: 18
          valueInteger: {type: integer, short: Number of allowed reschedulings for this appointment., choiceOf: value, index: 19}
      schedulingAvailability:
        url: null
        index: 20
        extensions: {}
        elements:
          extension: {index: 21}
          url:
            pattern: {type: Uri, value: schedulingAvailability}
            index: 22
          value:
            short: Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.
            choices: [valueCodeableConcept]
            index: 24
          valueCodeableConcept: {type: CodeableConcept, short: 'Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.', choiceOf: value, index: 25}
          value[x]:
            elements:
              coding:
                elements:
                  system:
                    pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                    index: 26
                  code:
                    binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-schedule'}
                    index: 27
                required: [system, code]
        required: [value, valueCodeableConcept]
      bookingConfirmation:
        url: null
        array: true
        index: 28
        extensions: {}
        elements:
          extension: {index: 29}
          url:
            pattern: {type: Uri, value: bookingConfirmation}
            index: 30
          value:
            short: Booking confirmation method
            choices: [valueCoding]
            index: 32
          valueCoding: {type: Coding, short: Booking confirmation method, choiceOf: value, index: 33}
          value[x]:
            elements:
              system:
                pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                index: 34
              code:
                binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-booking-confirmation'}
                index: 35
            required: [system]
    elements:
      extension:
        index: 2
        slicing:
          slices:
            childPatientThreshold:
              match: {}
              schema:
                index: 2
                extensions: {}
                elements:
                  extension: {index: 3}
                  url:
                    pattern: {type: Uri, value: childPatientThreshold}
                    index: 4
                  value:
                    short: Upper age limit (in years) for booking as a child patient.
                    maxValueInteger: 100
                    minValueInteger: 0
                    choices: [valueInteger]
                    index: 6
                  valueInteger: {type: integer, short: Upper age limit (in years) for booking as a child patient., maxValueInteger: 100, minValueInteger: 0, choiceOf: value, index: 7}
            minChangeHours:
              match: {}
              schema:
                index: 8
                extensions: {}
                elements:
                  extension: {index: 9}
                  url:
                    pattern: {type: Uri, value: minChangeHours}
                    index: 10
                  value:
                    short: Number of hours before appointment start after which changes are no longer allowed.
                    choices: [valueInteger]
                    index: 12
                  valueInteger: {type: integer, short: Number of hours before appointment start after which changes are no longer allowed., choiceOf: value, index: 13}
            webReschedulingCountAllowed:
              match: {}
              schema:
                index: 14
                extensions: {}
                elements:
                  extension: {index: 15}
                  url:
                    pattern: {type: Uri, value: webReschedulingCountAllowed}
                    index: 16
                  value:
                    short: Number of allowed reschedulings for this appointment.
                    choices: [valueInteger]
                    index: 18
                  valueInteger: {type: integer, short: Number of allowed reschedulings for this appointment., choiceOf: value, index: 19}
            schedulingAvailability:
              match: {}
              schema:
                index: 20
                extensions: {}
                elements:
                  extension: {index: 21}
                  url:
                    pattern: {type: Uri, value: schedulingAvailability}
                    index: 22
                  value:
                    short: Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.
                    choices: [valueCodeableConcept]
                    index: 24
                  valueCodeableConcept: {type: CodeableConcept, short: 'Clinic-level scheduling capabilities, such as cancellation and rescheduling availability.', choiceOf: value, index: 25}
                  value[x]:
                    elements:
                      coding:
                        elements:
                          system:
                            pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                            index: 26
                          code:
                            binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-schedule'}
                            index: 27
                        required: [system, code]
                required: [value, valueCodeableConcept]
            bookingConfirmation:
              match: {}
              schema:
                array: true
                index: 28
                extensions: {}
                elements:
                  extension: {index: 29}
                  url:
                    pattern: {type: Uri, value: bookingConfirmation}
                    index: 30
                  value:
                    short: Booking confirmation method
                    choices: [valueCoding]
                    index: 32
                  valueCoding: {type: Coding, short: Booking confirmation method, choiceOf: value, index: 33}
                  value[x]:
                    elements:
                      system:
                        pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-base/CodeSystem/wc-characteristic'}
                        index: 34
                      code:
                        binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic-booking-confirmation'}
                        index: 35
                    required: [system]
      url:
        pattern: {type: Uri, value: scheduling}
        index: 36
      value:
        choices: []
        index: 38
  workflow:
    url: null
    short: Workflow capability container
    index: 39
    extensions:
      deviceBookingAvailable:
        url: null
        index: 40
        extensions: {}
        elements:
          extension: {index: 41}
          url:
            pattern: {type: Uri, value: deviceBookingAvailable}
            index: 42
          value:
            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
            choices: [valueBoolean]
            index: 44
          valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 45}
        required: [value, valueBoolean]
      healthcareServiceAvailable:
        url: null
        index: 46
        extensions: {}
        elements:
          extension: {index: 47}
          url:
            pattern: {type: Uri, value: healthcareServiceAvailable}
            index: 48
          value:
            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
            choices: [valueBoolean]
            index: 50
          valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 51}
        required: [value, valueBoolean]
    elements:
      extension:
        index: 40
        slicing:
          slices:
            deviceBookingAvailable:
              match: {}
              schema:
                index: 40
                extensions: {}
                elements:
                  extension: {index: 41}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 42
                  value:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    choices: [valueBoolean]
                    index: 44
                  valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 45}
                required: [value, valueBoolean]
            healthcareServiceAvailable:
              match: {}
              schema:
                index: 46
                extensions: {}
                elements:
                  extension: {index: 47}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 48
                  value:
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choices: [valueBoolean]
                    index: 50
                  valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 51}
                required: [value, valueBoolean]
      url:
        pattern: {type: Uri, value: workflow}
        index: 52
      value:
        choices: []
        index: 54
  security:
    url: null
    short: Security capability container
    index: 55
    extensions:
      requiresNativeIdPLogin:
        url: null
        index: 56
        extensions: {}
        elements:
          extension: {index: 57}
          url:
            pattern: {type: Uri, value: requiresNativeIdPLogin}
            index: 58
          value:
            short: Identity provider used for patient login (e.g., BankID).
            choices: [valueBoolean]
            index: 60
          valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 61}
    elements:
      extension:
        index: 56
        slicing:
          slices:
            requiresNativeIdPLogin:
              match: {}
              schema:
                index: 56
                extensions: {}
                elements:
                  extension: {index: 57}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 58
                  value:
                    short: Identity provider used for patient login (e.g., BankID).
                    choices: [valueBoolean]
                    index: 60
                  valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 61}
      url:
        pattern: {type: Uri, value: security}
        index: 62
      value:
        choices: []
        index: 64
class: extension
kind: complex-type
url: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 1.0.0
required: [extension]