This page is part of the FHIR Specification (v1.8.0: STU 3 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
Patient Administration Work Group | Maturity Level: 1 | Compartments: Not linked to any defined compartments |
A slot of time on a schedule that may be available for booking appointments.
Slot resources are used to provide time-slots that can be booked using an appointment.
They do not provide any information about appointments that are available, just the time,
and optionally what the time can be used for. These are effectively spaces of free/busy time.
Slots can also be marked as busy without having appointments associated.
A slot can have more than one appointment allocated to it. A scheduling system may permit multiple allocations up to a specific number of places. An example of this type of usage could be where the slot is being used for a group service that permits 5 participants at the same time.
A slot can be marked as over-booked indicating that there are too many appointments allocated to it.
In some situations a service may have a specific set of slots reserved for specific uses, such
as "walk-ins" or a specific organization has a "standing booking" for Thursday mornings.
These should be represented using the type field with a specified and agreed value.
Security Permissions or specific business rules on the system could enforce that only eligible
appointments are allocated to them.
If a service had a weekly schedule created that permitted eight 1 hour appointments each
day of a working week (Monday - Friday), this would be constructed by a single Schedule
resource with the dates for the start and end of the week set, and then 40 (5x8) Slot
resources associated with it.
As appointments fill up the schedule, these slots would individually be marked as busy
as the appointments are filled into the slots.
The slots in a schedule do not need to be the same size, and can be different for different
days of the week.
Slot instances do not have any recurrence information included. If recurring information is
desired, this will be managed outside these resources, or included as extensions.
This resource is referenced by appointment
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Slot | DomainResource | A slot of time on a schedule that may be available for booking appointments | ||
identifier | Σ | 0..* | Identifier | External Ids for this item |
serviceCategory | Σ | 0..1 | CodeableConcept | A broad categorisation of the service that is to be performed during this appointment 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 ServiceType (Example) |
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Practice Setting Code Value Set (Preferred) |
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) v2 Appointment reason codes (Preferred) |
schedule | Σ | 1..1 | Reference(Schedule) | The schedule resource that this slot defines an interval of status information |
status | Σ | 1..1 | code | busy | free | busy-unavailable | busy-tentative | entered-in-error SlotStatus (Required) |
start | Σ | 1..1 | instant | Date/Time that the slot is to begin |
end | Σ | 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 | |
Documentation for this format |
UML Diagram (Legend)
XML Template
<Slot xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier External Ids for this item --></identifier> <serviceCategory><!-- 0..1 CodeableConcept A broad categorisation of the service that is to be performed during this appointment --></serviceCategory> <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 --></serviceType> <specialty><!-- 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment --></specialty> <appointmentType><!-- 0..1 CodeableConcept The style of appointment or patient that has been booked in the slot (not service type) --></appointmentType> <schedule><!-- 1..1 Reference(Schedule) The schedule resource that this slot defines an interval of status information --></schedule> <status value="[code]"/><!-- 1..1 busy | free | busy-unavailable | busy-tentative | entered-in-error --> <start value="[instant]"/><!-- 1..1 Date/Time that the slot is to begin --> <end value="[instant]"/><!-- 1..1 Date/Time that the slot is to conclude --> <overbooked value="[boolean]"/><!-- 0..1 This slot has already been overbooked, appointments are unlikely to be accepted for this time --> <comment value="[string]"/><!-- 0..1 Comments on the slot to describe any extended information. Such as custom constraints on the slot --> </Slot>
JSON Template
{ "resourceType" : "Slot", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // External Ids for this item "serviceCategory" : { CodeableConcept }, // A broad categorisation of the service that is to be performed during this appointment "serviceType" : [{ 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 "specialty" : [{ CodeableConcept }], // The specialty of a practitioner that would be required to perform the service requested in this appointment "appointmentType" : { CodeableConcept }, // The style of appointment or patient that has been booked in the slot (not service type) "schedule" : { Reference(Schedule) }, // R! The schedule resource that this slot defines an interval of status information "status" : "<code>", // R! busy | free | busy-unavailable | busy-tentative | entered-in-error "start" : "<instant>", // R! Date/Time that the slot is to begin "end" : "<instant>", // R! Date/Time that the slot is to conclude "overbooked" : <boolean>, // This slot has already been overbooked, appointments are unlikely to be accepted for this time "comment" : "<string>" // Comments on the slot to describe any extended information. Such as custom constraints on the slot }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Slot; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:Slot.identifier [ Identifier ], ... ; # 0..* External Ids for this item fhir:Slot.serviceCategory [ CodeableConcept ]; # 0..1 A broad categorisation of the service that is to be performed during this appointment fhir:Slot.serviceType [ CodeableConcept ], ... ; # 0..* 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 fhir:Slot.specialty [ CodeableConcept ], ... ; # 0..* The specialty of a practitioner that would be required to perform the service requested in this appointment fhir:Slot.appointmentType [ CodeableConcept ]; # 0..1 The style of appointment or patient that has been booked in the slot (not service type) fhir:Slot.schedule [ Reference(Schedule) ]; # 1..1 The schedule resource that this slot defines an interval of status information fhir:Slot.status [ code ]; # 1..1 busy | free | busy-unavailable | busy-tentative | entered-in-error fhir:Slot.start [ instant ]; # 1..1 Date/Time that the slot is to begin fhir:Slot.end [ instant ]; # 1..1 Date/Time that the slot is to conclude fhir:Slot.overbooked [ boolean ]; # 0..1 This slot has already been overbooked, appointments are unlikely to be accepted for this time fhir:Slot.comment [ string ]; # 0..1 Comments on the slot to describe any extended information. Such as custom constraints on the slot ]
Changes since DSTU2
Slot | |
Slot.serviceCategory | added Element |
Slot.serviceType |
Renamed from type to serviceType Max Cardinality changed from 1 to * |
Slot.specialty | added Element |
Slot.appointmentType | added Element |
Slot.status | Renamed from freeBusyType to status |
See the Full Difference for further information
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Slot | DomainResource | A slot of time on a schedule that may be available for booking appointments | ||
identifier | Σ | 0..* | Identifier | External Ids for this item |
serviceCategory | Σ | 0..1 | CodeableConcept | A broad categorisation of the service that is to be performed during this appointment 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 ServiceType (Example) |
specialty | Σ | 0..* | CodeableConcept | The specialty of a practitioner that would be required to perform the service requested in this appointment Practice Setting Code Value Set (Preferred) |
appointmentType | Σ | 0..1 | CodeableConcept | The style of appointment or patient that has been booked in the slot (not service type) v2 Appointment reason codes (Preferred) |
schedule | Σ | 1..1 | Reference(Schedule) | The schedule resource that this slot defines an interval of status information |
status | Σ | 1..1 | code | busy | free | busy-unavailable | busy-tentative | entered-in-error SlotStatus (Required) |
start | Σ | 1..1 | instant | Date/Time that the slot is to begin |
end | Σ | 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 | |
Documentation for this format |
XML Template
<Slot xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier External Ids for this item --></identifier> <serviceCategory><!-- 0..1 CodeableConcept A broad categorisation of the service that is to be performed during this appointment --></serviceCategory> <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 --></serviceType> <specialty><!-- 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment --></specialty> <appointmentType><!-- 0..1 CodeableConcept The style of appointment or patient that has been booked in the slot (not service type) --></appointmentType> <schedule><!-- 1..1 Reference(Schedule) The schedule resource that this slot defines an interval of status information --></schedule> <status value="[code]"/><!-- 1..1 busy | free | busy-unavailable | busy-tentative | entered-in-error --> <start value="[instant]"/><!-- 1..1 Date/Time that the slot is to begin --> <end value="[instant]"/><!-- 1..1 Date/Time that the slot is to conclude --> <overbooked value="[boolean]"/><!-- 0..1 This slot has already been overbooked, appointments are unlikely to be accepted for this time --> <comment value="[string]"/><!-- 0..1 Comments on the slot to describe any extended information. Such as custom constraints on the slot --> </Slot>
JSON Template
{ "resourceType" : "Slot", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // External Ids for this item "serviceCategory" : { CodeableConcept }, // A broad categorisation of the service that is to be performed during this appointment "serviceType" : [{ 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 "specialty" : [{ CodeableConcept }], // The specialty of a practitioner that would be required to perform the service requested in this appointment "appointmentType" : { CodeableConcept }, // The style of appointment or patient that has been booked in the slot (not service type) "schedule" : { Reference(Schedule) }, // R! The schedule resource that this slot defines an interval of status information "status" : "<code>", // R! busy | free | busy-unavailable | busy-tentative | entered-in-error "start" : "<instant>", // R! Date/Time that the slot is to begin "end" : "<instant>", // R! Date/Time that the slot is to conclude "overbooked" : <boolean>, // This slot has already been overbooked, appointments are unlikely to be accepted for this time "comment" : "<string>" // Comments on the slot to describe any extended information. Such as custom constraints on the slot }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Slot; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:Slot.identifier [ Identifier ], ... ; # 0..* External Ids for this item fhir:Slot.serviceCategory [ CodeableConcept ]; # 0..1 A broad categorisation of the service that is to be performed during this appointment fhir:Slot.serviceType [ CodeableConcept ], ... ; # 0..* 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 fhir:Slot.specialty [ CodeableConcept ], ... ; # 0..* The specialty of a practitioner that would be required to perform the service requested in this appointment fhir:Slot.appointmentType [ CodeableConcept ]; # 0..1 The style of appointment or patient that has been booked in the slot (not service type) fhir:Slot.schedule [ Reference(Schedule) ]; # 1..1 The schedule resource that this slot defines an interval of status information fhir:Slot.status [ code ]; # 1..1 busy | free | busy-unavailable | busy-tentative | entered-in-error fhir:Slot.start [ instant ]; # 1..1 Date/Time that the slot is to begin fhir:Slot.end [ instant ]; # 1..1 Date/Time that the slot is to conclude fhir:Slot.overbooked [ boolean ]; # 0..1 This slot has already been overbooked, appointments are unlikely to be accepted for this time fhir:Slot.comment [ string ]; # 0..1 Comments on the slot to describe any extended information. Such as custom constraints on the slot ]
Changes since DSTU2
Slot | |
Slot.serviceCategory | added Element |
Slot.serviceType |
Renamed from type to serviceType Max Cardinality changed from 1 to * |
Slot.specialty | added Element |
Slot.appointmentType | added Element |
Slot.status | Renamed from freeBusyType to status |
See the Full Difference for further information
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle), JSON-LD (for RDF as JSON-LD),
Path | Definition | Type | Reference |
---|---|---|---|
Slot.serviceCategory | Example | ServiceCategory | |
Slot.serviceType | Example | ServiceType | |
Slot.specialty | Additional details about where the content was created (e.g. clinical specialty). | Preferred | Practice Setting Code Value Set |
Slot.appointmentType | Preferred | v2 Appointment reason codes | |
Slot.status | The free/busy status of the slot. | Required | SlotStatus |
The strong desire is that implementers of this resource should consider providing this resource
in the iCalendar format as an alternative representation. Many 3rd party applications and component providers
have parsers and user interface controls to display this information.
This may lower the entry point to integrate outside the health-care specific applications, and into the
consumer space. This would permit the easier creation of a mobile application that creates appointments
in the devices native calendar.
The iCalendar specification can be found at http://www.ietf.org/rfc/rfc2445.txt .
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths | In Common |
identifier | token | A Slot Identifier | Slot.identifier | |
schedule | reference | The Schedule Resource that we are seeking a slot within | Slot.schedule (Schedule) | |
slot-type | token | The type of appointments that can be booked into the slot | Slot.serviceType | |
start | date | Appointment date/time. | Slot.start | |
status | token | The free/busy status of the appointment | Slot.status |