ITB - Online appointment booking service
1.0.0 - Initial Release

ITB - Online appointment booking service, published by Service Well AB. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/servicewell/servicewell.fhir.wof-portal/ and changes regularly. See the Directory of published versions

Extension: Booking Rules

Official URL: http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules Version: 1.0.0
Active as of 2026-04-20 Computable Name: BookingRules

Container extension for booking rules that govern cancellation, rescheduling, age limits, and minimum advance booking time.

This extension is designed to be reusable across multiple WOF Portal resources, including healthcare services and organization-level configurations such as service providers.

Context of Use

Usage info

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Extension Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Booking Rules
... Slices for extension Content/Rules for all slices
.... extension:allowCancellationAfterRegistrationHours 0..1 Extension Hours after registration when cancellation remains allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowCancellationAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowCancellationRemainingHours 0..1 Extension Remaining hours before start when cancellation is allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowCancellationRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleAfterRegistrationHours 0..1 Extension Hours after registration when rescheduling remains allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowRescheduleAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleRemainingHours 0..1 Extension Remaining hours before start when rescheduling is allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowRescheduleRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:cancellationAllowed 0..1 Extension Whether cancellation is allowed
..... extension 0..0 Extension
..... url 1..1 uri "cancellationAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:reschedulingAllowed 0..1 Extension Whether rescheduling is allowed
..... extension 0..0 Extension
..... url 1..1 uri "reschedulingAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:minimumPatientAgeYears 0..1 Extension Minimum patient age in years
..... extension 0..0 Extension
..... url 1..1 uri "minimumPatientAgeYears"
..... value[x] 0..1 positiveInt Value of extension
.... extension:minimumAdvanceBookingMinutes 0..1 Extension Minimum advance booking time in minutes
..... extension 0..0 Extension
..... url 1..1 uri "minimumAdvanceBookingMinutes"
..... value[x] 0..1 integer Value of extension
... url 1..1 uri "http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules"
... value[x] 0..0 Value of extension

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Booking Rules
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:allowCancellationAfterRegistrationHours 0..1 Extension Hours after registration when cancellation remains allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowCancellationAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowCancellationRemainingHours 0..1 Extension Remaining hours before start when cancellation is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowCancellationRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleAfterRegistrationHours 0..1 Extension Hours after registration when rescheduling remains allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowRescheduleAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleRemainingHours 0..1 Extension Remaining hours before start when rescheduling is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowRescheduleRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:cancellationAllowed 0..1 Extension Whether cancellation is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "cancellationAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:reschedulingAllowed 0..1 Extension Whether rescheduling is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "reschedulingAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:minimumPatientAgeYears 0..1 Extension Minimum patient age in years
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "minimumPatientAgeYears"
..... value[x] 0..1 positiveInt Value of extension
.... extension:minimumAdvanceBookingMinutes 0..1 Extension Minimum advance booking time in minutes
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "minimumAdvanceBookingMinutes"
..... value[x] 0..1 integer Value of extension
... url 1..1 uri "http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: Container extension for booking rules that govern cancellation, rescheduling, age limits, and minimum advance booking time. This extension is designed to be reusable across multiple WOF Portal resources, including healthcare services and organization-level configurations such as service providers.

  • allowCancellationAfterRegistrationHours: integer: Maximum number of hours after registration during which cancellation is allowed.
  • allowCancellationRemainingHours: integer: Minimum remaining hours before the scheduled event when cancellation is still allowed.
  • allowRescheduleAfterRegistrationHours: integer: Maximum number of hours after registration during which rescheduling is allowed.
  • allowRescheduleRemainingHours: integer: Minimum remaining hours before the scheduled event when rescheduling is still allowed.
  • cancellationAllowed: boolean: Indicates whether cancellation is allowed at all.
  • reschedulingAllowed: boolean: Indicates whether rescheduling is allowed at all.
  • minimumPatientAgeYears: positiveInt: Minimum patient age in whole years required to book the service.
  • minimumAdvanceBookingMinutes: integer: Minimum number of minutes in advance that a booking must be made.

Differential View

This structure is derived from Extension

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Booking Rules
... Slices for extension Content/Rules for all slices
.... extension:allowCancellationAfterRegistrationHours 0..1 Extension Hours after registration when cancellation remains allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowCancellationAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowCancellationRemainingHours 0..1 Extension Remaining hours before start when cancellation is allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowCancellationRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleAfterRegistrationHours 0..1 Extension Hours after registration when rescheduling remains allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowRescheduleAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleRemainingHours 0..1 Extension Remaining hours before start when rescheduling is allowed
..... extension 0..0 Extension
..... url 1..1 uri "allowRescheduleRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:cancellationAllowed 0..1 Extension Whether cancellation is allowed
..... extension 0..0 Extension
..... url 1..1 uri "cancellationAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:reschedulingAllowed 0..1 Extension Whether rescheduling is allowed
..... extension 0..0 Extension
..... url 1..1 uri "reschedulingAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:minimumPatientAgeYears 0..1 Extension Minimum patient age in years
..... extension 0..0 Extension
..... url 1..1 uri "minimumPatientAgeYears"
..... value[x] 0..1 positiveInt Value of extension
.... extension:minimumAdvanceBookingMinutes 0..1 Extension Minimum advance booking time in minutes
..... extension 0..0 Extension
..... url 1..1 uri "minimumAdvanceBookingMinutes"
..... value[x] 0..1 integer Value of extension
... url 1..1 uri "http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules"
... value[x] 0..0 Value of extension

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Extension 0..* Extension Booking Rules
... id 0..1 string Unique id for inter-element referencing
... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:allowCancellationAfterRegistrationHours 0..1 Extension Hours after registration when cancellation remains allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowCancellationAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowCancellationRemainingHours 0..1 Extension Remaining hours before start when cancellation is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowCancellationRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleAfterRegistrationHours 0..1 Extension Hours after registration when rescheduling remains allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowRescheduleAfterRegistrationHours"
..... value[x] 0..1 integer Value of extension
.... extension:allowRescheduleRemainingHours 0..1 Extension Remaining hours before start when rescheduling is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "allowRescheduleRemainingHours"
..... value[x] 0..1 integer Value of extension
.... extension:cancellationAllowed 0..1 Extension Whether cancellation is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "cancellationAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:reschedulingAllowed 0..1 Extension Whether rescheduling is allowed
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "reschedulingAllowed"
..... value[x] 0..1 boolean Value of extension
.... extension:minimumPatientAgeYears 0..1 Extension Minimum patient age in years
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "minimumPatientAgeYears"
..... value[x] 0..1 positiveInt Value of extension
.... extension:minimumAdvanceBookingMinutes 0..1 Extension Minimum advance booking time in minutes
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "minimumAdvanceBookingMinutes"
..... value[x] 0..1 integer Value of extension
... url 1..1 uri "http://canonical.fhir.link/servicewell/wof-connect/StructureDefinition/ext-booking-rules"

doco Documentation for this format

This structure is derived from Extension

Summary

Complex Extension: Container extension for booking rules that govern cancellation, rescheduling, age limits, and minimum advance booking time. This extension is designed to be reusable across multiple WOF Portal resources, including healthcare services and organization-level configurations such as service providers.

  • allowCancellationAfterRegistrationHours: integer: Maximum number of hours after registration during which cancellation is allowed.
  • allowCancellationRemainingHours: integer: Minimum remaining hours before the scheduled event when cancellation is still allowed.
  • allowRescheduleAfterRegistrationHours: integer: Maximum number of hours after registration during which rescheduling is allowed.
  • allowRescheduleRemainingHours: integer: Minimum remaining hours before the scheduled event when rescheduling is still allowed.
  • cancellationAllowed: boolean: Indicates whether cancellation is allowed at all.
  • reschedulingAllowed: boolean: Indicates whether rescheduling is allowed at all.
  • minimumPatientAgeYears: positiveInt: Minimum patient age in whole years required to book the service.
  • minimumAdvanceBookingMinutes: integer: Minimum number of minutes in advance that a booking must be made.

 

Other representations of profile: CSV, Excel, Schematron

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()