1.0.0 - release

CambioOpenServicesIG - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: SlotFreeTimeslots

Official URL: https://fhir.cambio.se/StructureDefinition/SlotFreeTimeslots Version: 0.9.0
Draft as of 2025-10-27 Computable Name: SlotFreeTimeslots

Introduction

The SlotFreeTimeSlots profile is a Cambio profile, based on the profile SlotCore, with the intended use of reading time slots that are available for bookings.

Must Support

The MustSupport-flag indicates which attributes are supported by Cambio, meaning that those can be returned as part of the slot.

Specific Rules and Limitations

Type Description
Rule The start and end date range should never exceed one full day.

Extensions

Extension Data type Description
permittedPatientActions Coding Describes what actions the patient have permission for.

Supported Operations

HTTP Method Description
GET Get free time slots based on search parameters.

Search Parameters

Parameter Mandatory Format Comment
TBD

Supported Queries

  1. GET[baseURL]/Slot/

Supported _include params

Usages:

  • This Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Slot 0..* SlotCore A slot of time on a schedule that may be available for booking appointments
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension Content/Rules for all slices
.... extension:permittedPatientActions S 0..* Coding Use to describe what a patient is permitted to do
URL: http://cambio.se/fhir/StructureDefinition/common-permittedPatientActions/v1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status SΣ 1..1 code busy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.
Fixed Value: free
... start SΣ 1..1 instant Date/Time that the slot is to begin
... end SΣ 1..1 instant Date/Time that the slot is to conclude

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Slot.statusrequiredFixed Value: free
http://hl7.org/fhir/ValueSet/slotstatus|4.0.1
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSlotIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSlotIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSlotIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorSlotIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSlotA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from SlotCore

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Slot 0..* SlotCore A slot of time on a schedule that may be available for booking appointments
... Slices for extension Content/Rules for all slices
.... extension:permittedPatientActions S 0..* CommonPermittedPatientActions Use to describe what a patient is permitted to do
... schedule S 1..1 Reference(Schedule) {c} The schedule resource that this slot defines an interval of status information
... status S 1..1 code busy | free | busy-unavailable | busy-tentative | entered-in-error
Fixed Value: free
... end S 1..1 instant Date/Time that the slot is to conclude

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Slot 0..* SlotCore A slot of time on a schedule that may be available for booking appointments
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:permittedPatientActions S 0..* Coding Use to describe what a patient is permitted to do
URL: http://cambio.se/fhir/StructureDefinition/common-permittedPatientActions/v1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this item
... serviceCategory Σ 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableConcept The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource
Binding: ServiceType (example)
... specialty Σ 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty).
... appointmentType Σ 0..1 CodeableConcept The style of appointment or patient that may be booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... schedule SΣ 1..1 Reference(Schedule) {c} The schedule resource that this slot defines an interval of status information
... status SΣ 1..1 code busy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.
Fixed Value: free
... start SΣ 1..1 instant Date/Time that the slot is to begin
... end SΣ 1..1 instant Date/Time that the slot is to conclude
... overbooked 0..1 boolean This slot has already been overbooked, appointments are unlikely to be accepted for this time
... comment 0..1 string Comments on the slot to describe any extended information. Such as custom constraints on the slot

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Slot.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Slot.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
From the FHIR Standard
Slot.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
From the FHIR Standard
Slot.specialtypreferredPracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
From the FHIR Standard
Slot.appointmentTypepreferredHl7VSAppointmentReasonCodes
http://terminology.hl7.org/ValueSet/v2-0276
Slot.statusrequiredFixed Value: free
http://hl7.org/fhir/ValueSet/slotstatus|4.0.1
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSlotIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSlotIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSlotIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorSlotIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSlotA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from SlotCore

Summary

Must-Support: 5 elements
Fixed: 1 element

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Slot 0..* SlotCore A slot of time on a schedule that may be available for booking appointments
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension Content/Rules for all slices
.... extension:permittedPatientActions S 0..* Coding Use to describe what a patient is permitted to do
URL: http://cambio.se/fhir/StructureDefinition/common-permittedPatientActions/v1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status SΣ 1..1 code busy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.
Fixed Value: free
... start SΣ 1..1 instant Date/Time that the slot is to begin
... end SΣ 1..1 instant Date/Time that the slot is to conclude

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Slot.statusrequiredFixed Value: free
http://hl7.org/fhir/ValueSet/slotstatus|4.0.1
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSlotIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSlotIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSlotIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorSlotIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSlotA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from SlotCore

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Slot 0..* SlotCore A slot of time on a schedule that may be available for booking appointments
... Slices for extension Content/Rules for all slices
.... extension:permittedPatientActions S 0..* CommonPermittedPatientActions Use to describe what a patient is permitted to do
... schedule S 1..1 Reference(Schedule) {c} The schedule resource that this slot defines an interval of status information
... status S 1..1 code busy | free | busy-unavailable | busy-tentative | entered-in-error
Fixed Value: free
... end S 1..1 instant Date/Time that the slot is to conclude

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Slot 0..* SlotCore A slot of time on a schedule that may be available for booking appointments
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:permittedPatientActions S 0..* Coding Use to describe what a patient is permitted to do
URL: http://cambio.se/fhir/StructureDefinition/common-permittedPatientActions/v1
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Ids for this item
... serviceCategory Σ 0..* CodeableConcept A broad categorization of the service that is to be performed during this appointment
Binding: ServiceCategory (example)
... serviceType Σ 0..* CodeableConcept The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource
Binding: ServiceType (example)
... specialty Σ 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment
Binding: PracticeSettingCodeValueSet (preferred): Additional details about where the content was created (e.g. clinical specialty).
... appointmentType Σ 0..1 CodeableConcept The style of appointment or patient that may be booked in the slot (not service type)
Binding: hl7VS-appointmentReasonCodes (preferred)
... schedule SΣ 1..1 Reference(Schedule) {c} The schedule resource that this slot defines an interval of status information
... status SΣ 1..1 code busy | free | busy-unavailable | busy-tentative | entered-in-error
Binding: SlotStatus (required): The free/busy status of the slot.
Fixed Value: free
... start SΣ 1..1 instant Date/Time that the slot is to begin
... end SΣ 1..1 instant Date/Time that the slot is to conclude
... overbooked 0..1 boolean This slot has already been overbooked, appointments are unlikely to be accepted for this time
... comment 0..1 string Comments on the slot to describe any extended information. Such as custom constraints on the slot

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Slot.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Slot.serviceCategoryexampleServiceCategory
http://hl7.org/fhir/ValueSet/service-category
From the FHIR Standard
Slot.serviceTypeexampleServiceType
http://hl7.org/fhir/ValueSet/service-type
From the FHIR Standard
Slot.specialtypreferredPracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
From the FHIR Standard
Slot.appointmentTypepreferredHl7VSAppointmentReasonCodes
http://terminology.hl7.org/ValueSet/v2-0276
Slot.statusrequiredFixed Value: free
http://hl7.org/fhir/ValueSet/slotstatus|4.0.1
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorSlotIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorSlotIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorSlotIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorSlotIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceSlotA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from SlotCore

Summary

Must-Support: 5 elements
Fixed: 1 element

 

Other representations of profile: CSV, Excel, Schematron