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]