PackagesCanonicalsLogsProblems
    Packages
    servicewell.fhir.wof-connect@0.1.1
    http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
description: 'Grouped characteristics for a HealthcareService: Scheduling, API and Security.'
package_name: servicewell.fhir.wof-connect
derivation: constraint
name: WofConnectCharacteristic
type: Extension
elements:
  extension:
    index: 0
    slicing:
      slices:
        scheduling:
          match: {}
          schema:
            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-connect/CodeSystem/wc-characteristic'}
                            index: 26
                        required: [system]
                required: [value, valueCodeableConcept]
            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-connect/CodeSystem/wc-characteristic'}
                                    index: 26
                                required: [system]
                        required: [value, valueCodeableConcept]
              url:
                pattern: {type: Uri, value: scheduling}
                index: 27
              value:
                choices: []
                index: 29
        workflow:
          match: {}
          schema:
            index: 30
            extensions:
              deviceBookingAvailable:
                url: null
                index: 31
                extensions: {}
                elements:
                  extension: {index: 32}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 33
                  value:
                    choices: []
                    index: 35
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: 1
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                            choices: [valueBoolean]
                            _required: true
                            index: 37
                          min: 1
                          max: 1
                  valueBoolean:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    type: boolean
                    choiceOf: value
                    index: 38
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 38}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
              healthcareServiceAvailable:
                url: null
                index: 39
                extensions: {}
                elements:
                  extension: {index: 40}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 41
                  value:
                    choices: []
                    index: 43
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: 1
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                            choices: [valueBoolean]
                            _required: true
                            index: 45
                          min: 1
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choiceOf: value
                    index: 46
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, _required: true, index: 46}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
            elements:
              extension:
                index: 31
                slicing:
                  slices:
                    deviceBookingAvailable:
                      match: {}
                      schema:
                        index: 31
                        extensions: {}
                        elements:
                          extension: {index: 32}
                          url:
                            pattern: {type: Uri, value: deviceBookingAvailable}
                            index: 33
                          value:
                            choices: []
                            index: 35
                            slicing:
                              rules: open
                              ordered: false
                              discriminator:
                              - {path: $this, type: type}
                              min: 1
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema:
                                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                                    choices: [valueBoolean]
                                    _required: true
                                    index: 37
                                  min: 1
                                  max: 1
                          valueBoolean:
                            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                            type: boolean
                            choiceOf: value
                            index: 38
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 38}
                                  min: 1
                                  max: 1
                        required: [value, valueBoolean]
                    healthcareServiceAvailable:
                      match: {}
                      schema:
                        index: 39
                        extensions: {}
                        elements:
                          extension: {index: 40}
                          url:
                            pattern: {type: Uri, value: healthcareServiceAvailable}
                            index: 41
                          value:
                            choices: []
                            index: 43
                            slicing:
                              rules: open
                              ordered: false
                              discriminator:
                              - {path: $this, type: type}
                              min: 1
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema:
                                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                                    choices: [valueBoolean]
                                    _required: true
                                    index: 45
                                  min: 1
                                  max: 1
                          valueBoolean:
                            type: boolean
                            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                            choiceOf: value
                            index: 46
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, _required: true, index: 46}
                                  min: 1
                                  max: 1
                        required: [value, valueBoolean]
              url:
                pattern: {type: Uri, value: workflow}
                index: 47
              value:
                choices: []
                index: 49
        security:
          match: {}
          schema:
            index: 50
            extensions:
              requiresNativeIdPLogin:
                url: null
                index: 51
                extensions: {}
                elements:
                  extension: {index: 52}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 53
                  value:
                    choices: []
                    index: 55
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: null
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            short: Identity provider used for patient login (e.g., BankID).
                            choices: [valueBoolean]
                            index: 57
                          min: 0
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Identity provider used for patient login (e.g., BankID).
                    choiceOf: value
                    index: 58
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 58}
                          min: 0
                          max: 1
            elements:
              extension:
                index: 51
                slicing:
                  slices:
                    requiresNativeIdPLogin:
                      match: {}
                      schema:
                        index: 51
                        extensions: {}
                        elements:
                          extension: {index: 52}
                          url:
                            pattern: {type: Uri, value: requiresNativeIdPLogin}
                            index: 53
                          value:
                            choices: []
                            index: 55
                            slicing:
                              rules: open
                              ordered: false
                              discriminator:
                              - {path: $this, type: type}
                              min: null
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema:
                                    short: Identity provider used for patient login (e.g., BankID).
                                    choices: [valueBoolean]
                                    index: 57
                                  min: 0
                                  max: 1
                          valueBoolean:
                            type: boolean
                            short: Identity provider used for patient login (e.g., BankID).
                            choiceOf: value
                            index: 58
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 58}
                                  min: 0
                                  max: 1
              url:
                pattern: {type: Uri, value: security}
                index: 59
              value:
                choices: []
                index: 61
  url:
    pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic'}
    index: 62
  value:
    choices: []
    index: 64
package_version: 0.1.1
extensions:
  scheduling:
    url: null
    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-connect/CodeSystem/wc-characteristic'}
                    index: 26
                required: [system]
        required: [value, valueCodeableConcept]
    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-connect/CodeSystem/wc-characteristic'}
                            index: 26
                        required: [system]
                required: [value, valueCodeableConcept]
      url:
        pattern: {type: Uri, value: scheduling}
        index: 27
      value:
        choices: []
        index: 29
  workflow:
    url: null
    index: 30
    extensions:
      deviceBookingAvailable:
        url: null
        index: 31
        extensions: {}
        elements:
          extension: {index: 32}
          url:
            pattern: {type: Uri, value: deviceBookingAvailable}
            index: 33
          value:
            choices: []
            index: 35
            slicing:
              rules: open
              ordered: false
              discriminator:
              - {path: $this, type: type}
              min: 1
              slices:
                valueBoolean:
                  match: {}
                  schema:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    choices: [valueBoolean]
                    _required: true
                    index: 37
                  min: 1
                  max: 1
          valueBoolean:
            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
            type: boolean
            choiceOf: value
            index: 38
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 38}
                  min: 1
                  max: 1
        required: [value, valueBoolean]
      healthcareServiceAvailable:
        url: null
        index: 39
        extensions: {}
        elements:
          extension: {index: 40}
          url:
            pattern: {type: Uri, value: healthcareServiceAvailable}
            index: 41
          value:
            choices: []
            index: 43
            slicing:
              rules: open
              ordered: false
              discriminator:
              - {path: $this, type: type}
              min: 1
              slices:
                valueBoolean:
                  match: {}
                  schema:
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choices: [valueBoolean]
                    _required: true
                    index: 45
                  min: 1
                  max: 1
          valueBoolean:
            type: boolean
            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
            choiceOf: value
            index: 46
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, _required: true, index: 46}
                  min: 1
                  max: 1
        required: [value, valueBoolean]
    elements:
      extension:
        index: 31
        slicing:
          slices:
            deviceBookingAvailable:
              match: {}
              schema:
                index: 31
                extensions: {}
                elements:
                  extension: {index: 32}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 33
                  value:
                    choices: []
                    index: 35
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: 1
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                            choices: [valueBoolean]
                            _required: true
                            index: 37
                          min: 1
                          max: 1
                  valueBoolean:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    type: boolean
                    choiceOf: value
                    index: 38
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 38}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
            healthcareServiceAvailable:
              match: {}
              schema:
                index: 39
                extensions: {}
                elements:
                  extension: {index: 40}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 41
                  value:
                    choices: []
                    index: 43
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: 1
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                            choices: [valueBoolean]
                            _required: true
                            index: 45
                          min: 1
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choiceOf: value
                    index: 46
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, _required: true, index: 46}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
      url:
        pattern: {type: Uri, value: workflow}
        index: 47
      value:
        choices: []
        index: 49
  security:
    url: null
    index: 50
    extensions:
      requiresNativeIdPLogin:
        url: null
        index: 51
        extensions: {}
        elements:
          extension: {index: 52}
          url:
            pattern: {type: Uri, value: requiresNativeIdPLogin}
            index: 53
          value:
            choices: []
            index: 55
            slicing:
              rules: open
              ordered: false
              discriminator:
              - {path: $this, type: type}
              min: null
              slices:
                valueBoolean:
                  match: {}
                  schema:
                    short: Identity provider used for patient login (e.g., BankID).
                    choices: [valueBoolean]
                    index: 57
                  min: 0
                  max: 1
          valueBoolean:
            type: boolean
            short: Identity provider used for patient login (e.g., BankID).
            choiceOf: value
            index: 58
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 58}
                  min: 0
                  max: 1
    elements:
      extension:
        index: 51
        slicing:
          slices:
            requiresNativeIdPLogin:
              match: {}
              schema:
                index: 51
                extensions: {}
                elements:
                  extension: {index: 52}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 53
                  value:
                    choices: []
                    index: 55
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: null
                      slices:
                        valueBoolean:
                          match: {}
                          schema:
                            short: Identity provider used for patient login (e.g., BankID).
                            choices: [valueBoolean]
                            index: 57
                          min: 0
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Identity provider used for patient login (e.g., BankID).
                    choiceOf: value
                    index: 58
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 58}
                          min: 0
                          max: 1
      url:
        pattern: {type: Uri, value: security}
        index: 59
      value:
        choices: []
        index: 61
class: extension
kind: complex-type
url: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic
base: http://hl7.org/fhir/StructureDefinition/Extension
version: 0.1.1
required: [extension]