PackagesCanonicalsLogsProblems
    Packages
    servicewell.fhir.wof-connect@0.1.3
    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-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
                          code:
                            binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic'}
                            index: 27
                        required: [system, code]
                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
                                  code:
                                    binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic'}
                                    index: 27
                                required: [system, code]
                        required: [value, valueCodeableConcept]
              url:
                pattern: {type: Uri, value: scheduling}
                index: 28
              value:
                choices: []
                index: 30
        workflow:
          match: {}
          schema:
            index: 31
            extensions:
              deviceBookingAvailable:
                url: null
                index: 32
                extensions: {}
                elements:
                  extension: {index: 33}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 34
                  value:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    choices: [valueBoolean]
                    index: 36
                  valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 37}
                required: [value, valueBoolean]
              healthcareServiceAvailable:
                url: null
                index: 38
                extensions: {}
                elements:
                  extension: {index: 39}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 40
                  value:
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choices: [valueBoolean]
                    index: 42
                  valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 43}
                required: [value, valueBoolean]
            elements:
              extension:
                index: 32
                slicing:
                  slices:
                    deviceBookingAvailable:
                      match: {}
                      schema:
                        index: 32
                        extensions: {}
                        elements:
                          extension: {index: 33}
                          url:
                            pattern: {type: Uri, value: deviceBookingAvailable}
                            index: 34
                          value:
                            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                            choices: [valueBoolean]
                            index: 36
                          valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 37}
                        required: [value, valueBoolean]
                    healthcareServiceAvailable:
                      match: {}
                      schema:
                        index: 38
                        extensions: {}
                        elements:
                          extension: {index: 39}
                          url:
                            pattern: {type: Uri, value: healthcareServiceAvailable}
                            index: 40
                          value:
                            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                            choices: [valueBoolean]
                            index: 42
                          valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 43}
                        required: [value, valueBoolean]
              url:
                pattern: {type: Uri, value: workflow}
                index: 44
              value:
                choices: []
                index: 46
        security:
          match: {}
          schema:
            index: 47
            extensions:
              requiresNativeIdPLogin:
                url: null
                index: 48
                extensions: {}
                elements:
                  extension: {index: 49}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 50
                  value:
                    short: Identity provider used for patient login (e.g., BankID).
                    choices: [valueBoolean]
                    index: 52
                  valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 53}
            elements:
              extension:
                index: 48
                slicing:
                  slices:
                    requiresNativeIdPLogin:
                      match: {}
                      schema:
                        index: 48
                        extensions: {}
                        elements:
                          extension: {index: 49}
                          url:
                            pattern: {type: Uri, value: requiresNativeIdPLogin}
                            index: 50
                          value:
                            short: Identity provider used for patient login (e.g., BankID).
                            choices: [valueBoolean]
                            index: 52
                          valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 53}
              url:
                pattern: {type: Uri, value: security}
                index: 54
              value:
                choices: []
                index: 56
  url:
    pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/wofconnect-characteristic'}
    index: 57
  value:
    choices: []
    index: 59
package_version: 0.1.3
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
                  code:
                    binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic'}
                    index: 27
                required: [system, code]
        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
                          code:
                            binding: {strength: required, valueSet: 'http://canonical.fhir.link/servicewell/wof-connect/ValueSet/wc-characteristic'}
                            index: 27
                        required: [system, code]
                required: [value, valueCodeableConcept]
      url:
        pattern: {type: Uri, value: scheduling}
        index: 28
      value:
        choices: []
        index: 30
  workflow:
    url: null
    index: 31
    extensions:
      deviceBookingAvailable:
        url: null
        index: 32
        extensions: {}
        elements:
          extension: {index: 33}
          url:
            pattern: {type: Uri, value: deviceBookingAvailable}
            index: 34
          value:
            short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
            choices: [valueBoolean]
            index: 36
          valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 37}
        required: [value, valueBoolean]
      healthcareServiceAvailable:
        url: null
        index: 38
        extensions: {}
        elements:
          extension: {index: 39}
          url:
            pattern: {type: Uri, value: healthcareServiceAvailable}
            index: 40
          value:
            short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
            choices: [valueBoolean]
            index: 42
          valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 43}
        required: [value, valueBoolean]
    elements:
      extension:
        index: 32
        slicing:
          slices:
            deviceBookingAvailable:
              match: {}
              schema:
                index: 32
                extensions: {}
                elements:
                  extension: {index: 33}
                  url:
                    pattern: {type: Uri, value: deviceBookingAvailable}
                    index: 34
                  value:
                    short: Indicates that devices (e.g., dental chairs) are directly bookable resources.
                    choices: [valueBoolean]
                    index: 36
                  valueBoolean: {type: boolean, short: 'Indicates that devices (e.g., dental chairs) are directly bookable resources.', choiceOf: value, index: 37}
                required: [value, valueBoolean]
            healthcareServiceAvailable:
              match: {}
              schema:
                index: 38
                extensions: {}
                elements:
                  extension: {index: 39}
                  url:
                    pattern: {type: Uri, value: healthcareServiceAvailable}
                    index: 40
                  value:
                    short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules.
                    choices: [valueBoolean]
                    index: 42
                  valueBoolean: {type: boolean, short: Indicates whether the source PMS provides first-class HealthcareService entities with booking rules., choiceOf: value, index: 43}
                required: [value, valueBoolean]
      url:
        pattern: {type: Uri, value: workflow}
        index: 44
      value:
        choices: []
        index: 46
  security:
    url: null
    index: 47
    extensions:
      requiresNativeIdPLogin:
        url: null
        index: 48
        extensions: {}
        elements:
          extension: {index: 49}
          url:
            pattern: {type: Uri, value: requiresNativeIdPLogin}
            index: 50
          value:
            short: Identity provider used for patient login (e.g., BankID).
            choices: [valueBoolean]
            index: 52
          valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 53}
    elements:
      extension:
        index: 48
        slicing:
          slices:
            requiresNativeIdPLogin:
              match: {}
              schema:
                index: 48
                extensions: {}
                elements:
                  extension: {index: 49}
                  url:
                    pattern: {type: Uri, value: requiresNativeIdPLogin}
                    index: 50
                  value:
                    short: Identity provider used for patient login (e.g., BankID).
                    choices: [valueBoolean]
                    index: 52
                  valueBoolean: {type: boolean, short: 'Identity provider used for patient login (e.g., BankID).', choiceOf: value, index: 53}
      url:
        pattern: {type: Uri, value: security}
        index: 54
      value:
        choices: []
        index: 56
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.3
required: [extension]