description: Container extension for booking rules that govern cancellation, rescheduling, age limits, and minimum advance booking time.\n\nThis extension is designed to be reusable across multiple WOF Portal resources, including healthcare services and organization-level configurations such as service providers. package_name: servicewell.fhir.wof-portal derivation: constraint name: BookingRules type: Extension elements: extension: short: Hours after registration when cancellation remains allowed index: 0 slicing: slices: allowCancellationAfterRegistrationHours: match: {} schema: short: Hours after registration when cancellation remains allowed index: 0 extensions: {} elements: extension: {index: 1} url: pattern: {type: Uri, value: allowCancellationAfterRegistrationHours} index: 2 value: choices: [valueInteger] index: 4 valueInteger: {type: integer, choiceOf: value, index: 5} allowCancellationRemainingHours: match: {} schema: short: Remaining hours before start when cancellation is allowed index: 6 extensions: {} elements: extension: {index: 7} url: pattern: {type: Uri, value: allowCancellationRemainingHours} index: 8 value: choices: [valueInteger] index: 10 valueInteger: {type: integer, choiceOf: value, index: 11} allowRescheduleAfterRegistrationHours: match: {} schema: short: Hours after registration when rescheduling remains allowed index: 12 extensions: {} elements: extension: {index: 13} url: pattern: {type: Uri, value: allowRescheduleAfterRegistrationHours} index: 14 value: choices: [valueInteger] index: 16 valueInteger: {type: integer, choiceOf: value, index: 17} allowRescheduleRemainingHours: match: {} schema: short: Remaining hours before start when rescheduling is allowed index: 18 extensions: {} elements: extension: {index: 19} url: pattern: {type: Uri, value: allowRescheduleRemainingHours} index: 20 value: choices: [valueInteger] index: 22 valueInteger: {type: integer, choiceOf: value, index: 23} cancellationAllowed: match: {} schema: short: Whether cancellation is allowed index: 24 extensions: {} elements: extension: {index: 25} url: pattern: {type: Uri, value: cancellationAllowed} index: 26 value: choices: [valueBoolean] index: 28 valueBoolean: {type: boolean, choiceOf: value, index: 29} reschedulingAllowed: match: {} schema: short: Whether rescheduling is allowed index: 30 extensions: {} elements: extension: {index: 31} url: pattern: {type: Uri, value: reschedulingAllowed} index: 32 value: choices: [valueBoolean] index: 34 valueBoolean: {type: boolean, choiceOf: value, index: 35} minimumPatientAgeYears: match: {} schema: short: Minimum patient age in years index: 36 extensions: {} elements: extension: {index: 37} url: pattern: {type: Uri, value: minimumPatientAgeYears} index: 38 value: choices: [valuePositiveInt] index: 40 valuePositiveInt: {type: positiveInt, choiceOf: value, index: 41} minimumAdvanceBookingMinutes: match: {} schema: short: Minimum advance booking time in minutes index: 42 extensions: {} elements: extension: {index: 43} url: pattern: {type: Uri, value: minimumAdvanceBookingMinutes} index: 44 value: choices: [valueInteger] index: 46 valueInteger: {type: integer, choiceOf: value, index: 47} url: pattern: {type: Uri, value: 'http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules'} index: 48 value: choices: [] index: 50 package_version: 1.0.0 extensions: allowCancellationAfterRegistrationHours: url: null short: Hours after registration when cancellation remains allowed index: 0 extensions: {} elements: extension: {index: 1} url: pattern: {type: Uri, value: allowCancellationAfterRegistrationHours} index: 2 value: choices: [valueInteger] index: 4 valueInteger: {type: integer, choiceOf: value, index: 5} allowCancellationRemainingHours: url: null short: Remaining hours before start when cancellation is allowed index: 6 extensions: {} elements: extension: {index: 7} url: pattern: {type: Uri, value: allowCancellationRemainingHours} index: 8 value: choices: [valueInteger] index: 10 valueInteger: {type: integer, choiceOf: value, index: 11} allowRescheduleAfterRegistrationHours: url: null short: Hours after registration when rescheduling remains allowed index: 12 extensions: {} elements: extension: {index: 13} url: pattern: {type: Uri, value: allowRescheduleAfterRegistrationHours} index: 14 value: choices: [valueInteger] index: 16 valueInteger: {type: integer, choiceOf: value, index: 17} allowRescheduleRemainingHours: url: null short: Remaining hours before start when rescheduling is allowed index: 18 extensions: {} elements: extension: {index: 19} url: pattern: {type: Uri, value: allowRescheduleRemainingHours} index: 20 value: choices: [valueInteger] index: 22 valueInteger: {type: integer, choiceOf: value, index: 23} cancellationAllowed: url: null short: Whether cancellation is allowed index: 24 extensions: {} elements: extension: {index: 25} url: pattern: {type: Uri, value: cancellationAllowed} index: 26 value: choices: [valueBoolean] index: 28 valueBoolean: {type: boolean, choiceOf: value, index: 29} reschedulingAllowed: url: null short: Whether rescheduling is allowed index: 30 extensions: {} elements: extension: {index: 31} url: pattern: {type: Uri, value: reschedulingAllowed} index: 32 value: choices: [valueBoolean] index: 34 valueBoolean: {type: boolean, choiceOf: value, index: 35} minimumPatientAgeYears: url: null short: Minimum patient age in years index: 36 extensions: {} elements: extension: {index: 37} url: pattern: {type: Uri, value: minimumPatientAgeYears} index: 38 value: choices: [valuePositiveInt] index: 40 valuePositiveInt: {type: positiveInt, choiceOf: value, index: 41} minimumAdvanceBookingMinutes: url: null short: Minimum advance booking time in minutes index: 42 extensions: {} elements: extension: {index: 43} url: pattern: {type: Uri, value: minimumAdvanceBookingMinutes} index: 44 value: choices: [valueInteger] index: 46 valueInteger: {type: integer, choiceOf: value, index: 47} class: extension kind: complex-type url: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules base: http://hl7.org/fhir/StructureDefinition/Extension version: 1.0.0