PackagesCanonicalsLogsProblems
    Packages
    servicewell.fhir.wof-connect@0.1.0
    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:
                    choices: []
                    index: 6
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: null
                      slices:
                        valueInteger:
                          match: {}
                          schema:
                            minValueInteger: 0
                            short: Upper age limit (in years) for booking as a child patient.
                            choices: [valueInteger]
                            maxValueInteger: 100
                            index: 8
                          min: 0
                          max: 1
                  valueInteger:
                    minValueInteger: 0
                    short: Upper age limit (in years) for booking as a child patient.
                    type: integer
                    maxValueInteger: 100
                    choiceOf: value
                    index: 9
                    slicing:
                      slices:
                        valueInteger:
                          match: {}
                          schema: {minValueInteger: 0, short: Upper age limit (in years) for booking as a child patient., type: integer, maxValueInteger: 100, choiceOf: value, index: 9}
                          min: 0
                          max: 1
            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:
                            choices: []
                            index: 6
                            slicing:
                              rules: open
                              ordered: false
                              discriminator:
                              - {path: $this, type: type}
                              min: null
                              slices:
                                valueInteger:
                                  match: {}
                                  schema:
                                    minValueInteger: 0
                                    short: Upper age limit (in years) for booking as a child patient.
                                    choices: [valueInteger]
                                    maxValueInteger: 100
                                    index: 8
                                  min: 0
                                  max: 1
                          valueInteger:
                            minValueInteger: 0
                            short: Upper age limit (in years) for booking as a child patient.
                            type: integer
                            maxValueInteger: 100
                            choiceOf: value
                            index: 9
                            slicing:
                              slices:
                                valueInteger:
                                  match: {}
                                  schema: {minValueInteger: 0, short: Upper age limit (in years) for booking as a child patient., type: integer, maxValueInteger: 100, choiceOf: value, index: 9}
                                  min: 0
                                  max: 1
              url:
                pattern: {type: Uri, value: scheduling}
                index: 10
              value:
                choices: []
                index: 12
        workflow:
          match: {}
          schema:
            index: 13
            extensions:
              deviceBookingAvailable:
                url: null
                index: 14
                extensions: {}
                elements:
                  extension: {index: 15}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 16
                  value:
                    choices: []
                    index: 18
                    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: 20
                          min: 1
                          max: 1
                  valueBoolean:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    type: boolean
                    choiceOf: value
                    index: 21
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 21}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
              healthcareServiceAvailable:
                url: null
                index: 22
                extensions: {}
                elements:
                  extension: {index: 23}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 24
                  value:
                    choices: []
                    index: 26
                    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: 28
                          min: 1
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choiceOf: value
                    index: 29
                    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: 29}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
            elements:
              extension:
                index: 14
                slicing:
                  slices:
                    deviceBookingAvailable:
                      match: {}
                      schema:
                        index: 14
                        extensions: {}
                        elements:
                          extension: {index: 15}
                          url:
                            pattern: {type: Uri, value: deviceBookingAvailable}
                            index: 16
                          value:
                            choices: []
                            index: 18
                            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: 20
                                  min: 1
                                  max: 1
                          valueBoolean:
                            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                            type: boolean
                            choiceOf: value
                            index: 21
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 21}
                                  min: 1
                                  max: 1
                        required: [value, valueBoolean]
                    healthcareServiceAvailable:
                      match: {}
                      schema:
                        index: 22
                        extensions: {}
                        elements:
                          extension: {index: 23}
                          url:
                            pattern: {type: Uri, value: healthcareServiceAvailable}
                            index: 24
                          value:
                            choices: []
                            index: 26
                            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: 28
                                  min: 1
                                  max: 1
                          valueBoolean:
                            type: boolean
                            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                            choiceOf: value
                            index: 29
                            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: 29}
                                  min: 1
                                  max: 1
                        required: [value, valueBoolean]
              url:
                pattern: {type: Uri, value: workflow}
                index: 30
              value:
                choices: []
                index: 32
        security:
          match: {}
          schema:
            index: 33
            extensions:
              requiresNativeIdPLogin:
                url: null
                index: 34
                extensions: {}
                elements:
                  extension: {index: 35}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 36
                  value:
                    choices: []
                    index: 38
                    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: 40
                          min: 0
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Identity provider used for patient login (e.g., BankID).
                    choiceOf: value
                    index: 41
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 41}
                          min: 0
                          max: 1
            elements:
              extension:
                index: 34
                slicing:
                  slices:
                    requiresNativeIdPLogin:
                      match: {}
                      schema:
                        index: 34
                        extensions: {}
                        elements:
                          extension: {index: 35}
                          url:
                            pattern: {type: Uri, value: requiresNativeIdPLogin}
                            index: 36
                          value:
                            choices: []
                            index: 38
                            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: 40
                                  min: 0
                                  max: 1
                          valueBoolean:
                            type: boolean
                            short: Identity provider used for patient login (e.g., BankID).
                            choiceOf: value
                            index: 41
                            slicing:
                              slices:
                                valueBoolean:
                                  match: {}
                                  schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 41}
                                  min: 0
                                  max: 1
              url:
                pattern: {type: Uri, value: security}
                index: 42
              value:
                choices: []
                index: 44
  url:
    pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic'}
    index: 45
  value:
    choices: []
    index: 47
package_version: 0.1.0
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:
            choices: []
            index: 6
            slicing:
              rules: open
              ordered: false
              discriminator:
              - {path: $this, type: type}
              min: null
              slices:
                valueInteger:
                  match: {}
                  schema:
                    minValueInteger: 0
                    short: Upper age limit (in years) for booking as a child patient.
                    choices: [valueInteger]
                    maxValueInteger: 100
                    index: 8
                  min: 0
                  max: 1
          valueInteger:
            minValueInteger: 0
            short: Upper age limit (in years) for booking as a child patient.
            type: integer
            maxValueInteger: 100
            choiceOf: value
            index: 9
            slicing:
              slices:
                valueInteger:
                  match: {}
                  schema: {minValueInteger: 0, short: Upper age limit (in years) for booking as a child patient., type: integer, maxValueInteger: 100, choiceOf: value, index: 9}
                  min: 0
                  max: 1
    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:
                    choices: []
                    index: 6
                    slicing:
                      rules: open
                      ordered: false
                      discriminator:
                      - {path: $this, type: type}
                      min: null
                      slices:
                        valueInteger:
                          match: {}
                          schema:
                            minValueInteger: 0
                            short: Upper age limit (in years) for booking as a child patient.
                            choices: [valueInteger]
                            maxValueInteger: 100
                            index: 8
                          min: 0
                          max: 1
                  valueInteger:
                    minValueInteger: 0
                    short: Upper age limit (in years) for booking as a child patient.
                    type: integer
                    maxValueInteger: 100
                    choiceOf: value
                    index: 9
                    slicing:
                      slices:
                        valueInteger:
                          match: {}
                          schema: {minValueInteger: 0, short: Upper age limit (in years) for booking as a child patient., type: integer, maxValueInteger: 100, choiceOf: value, index: 9}
                          min: 0
                          max: 1
      url:
        pattern: {type: Uri, value: scheduling}
        index: 10
      value:
        choices: []
        index: 12
  workflow:
    url: null
    index: 13
    extensions:
      deviceBookingAvailable:
        url: null
        index: 14
        extensions: {}
        elements:
          extension: {index: 15}
          url:
            pattern: {type: Uri, value: deviceBookingAvailable}
            index: 16
          value:
            choices: []
            index: 18
            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: 20
                  min: 1
                  max: 1
          valueBoolean:
            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
            type: boolean
            choiceOf: value
            index: 21
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 21}
                  min: 1
                  max: 1
        required: [value, valueBoolean]
      healthcareServiceAvailable:
        url: null
        index: 22
        extensions: {}
        elements:
          extension: {index: 23}
          url:
            pattern: {type: Uri, value: healthcareServiceAvailable}
            index: 24
          value:
            choices: []
            index: 26
            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: 28
                  min: 1
                  max: 1
          valueBoolean:
            type: boolean
            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
            choiceOf: value
            index: 29
            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: 29}
                  min: 1
                  max: 1
        required: [value, valueBoolean]
    elements:
      extension:
        index: 14
        slicing:
          slices:
            deviceBookingAvailable:
              match: {}
              schema:
                index: 14
                extensions: {}
                elements:
                  extension: {index: 15}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 16
                  value:
                    choices: []
                    index: 18
                    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: 20
                          min: 1
                          max: 1
                  valueBoolean:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    type: boolean
                    choiceOf: value
                    index: 21
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', type: boolean, _required: true, choiceOf: value, index: 21}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
            healthcareServiceAvailable:
              match: {}
              schema:
                index: 22
                extensions: {}
                elements:
                  extension: {index: 23}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 24
                  value:
                    choices: []
                    index: 26
                    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: 28
                          min: 1
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choiceOf: value
                    index: 29
                    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: 29}
                          min: 1
                          max: 1
                required: [value, valueBoolean]
      url:
        pattern: {type: Uri, value: workflow}
        index: 30
      value:
        choices: []
        index: 32
  security:
    url: null
    index: 33
    extensions:
      requiresNativeIdPLogin:
        url: null
        index: 34
        extensions: {}
        elements:
          extension: {index: 35}
          url:
            pattern: {type: Uri, value: requiresNativeIdPLogin}
            index: 36
          value:
            choices: []
            index: 38
            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: 40
                  min: 0
                  max: 1
          valueBoolean:
            type: boolean
            short: Identity provider used for patient login (e.g., BankID).
            choiceOf: value
            index: 41
            slicing:
              slices:
                valueBoolean:
                  match: {}
                  schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 41}
                  min: 0
                  max: 1
    elements:
      extension:
        index: 34
        slicing:
          slices:
            requiresNativeIdPLogin:
              match: {}
              schema:
                index: 34
                extensions: {}
                elements:
                  extension: {index: 35}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 36
                  value:
                    choices: []
                    index: 38
                    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: 40
                          min: 0
                          max: 1
                  valueBoolean:
                    type: boolean
                    short: Identity provider used for patient login (e.g., BankID).
                    choiceOf: value
                    index: 41
                    slicing:
                      slices:
                        valueBoolean:
                          match: {}
                          schema: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 41}
                          min: 0
                          max: 1
      url:
        pattern: {type: Uri, value: security}
        index: 42
      value:
        choices: []
        index: 44
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.0
required: [extension]