Slot
Introduction
Scope and Usage
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 appointmentType 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.
Note that booking an appointment does not necessarily require that slot resources be identified. When attempting to book an appointment, if the requestor knows ahead of time which schedulable resources are required, then identifying individual slots from the resources' schedules prior to creating the appointment is appropriate. However, in some medical scheduling scenarios, determining which resources are required for an appointment is very complex, and options other than using schedule+slot may be a better solution.
Boundaries and Relationships
Slot: Provides the granular, bookable units within the Schedule.
Schedule: Defines the broader availability and context for an individual or service.
Appointment: Is the outcome of a scheduling process. That scheduling process may involve consulting Slot and Schedule resources, or it may be the result of other processes.
Notes
Notes:
- Interaction with other Standards
There is a strong desire that implementers of this resource should consider providing the 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.
StructureDefinition
Elements (Simplified)
- Slot [0..*]: - A slot of time on a schedule that may be available for booking appointments
- Slot.identifier [0..*]: Identifier External Ids for this item
- Slot.serviceCategory [0..*]: CodeableConcept example:service-category A broad categorization of the service that is to be performed during this appointment
- Slot.serviceType [0..*]: CodeableReference example:service-type 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 Schedule resource
- Slot.specialty [0..*]: CodeableConcept example:c80-practice-codes The specialty of a practitioner that would be required to perform the service requested in this appointment
- Slot.appointmentType [0..*]: CodeableConcept preferred:v2-0276 The style of appointment or patient that may be booked in the slot (not service type)
- Slot.schedule [1..1]: Reference(Schedule) The schedule resource that this slot defines an interval of status information
- Slot.status [1..1]: code required:slotstatus busy | free | busy-unavailable | busy-tentative | entered-in-error
- Slot.start [1..1]: instant Date/Time that the slot is to begin
- Slot.end [1..1]: instant Date/Time that the slot is to conclude
- Slot.overbooked [0..1]: boolean This slot has already been overbooked, appointments are unlikely to be accepted for this time
- Slot.comment [0..1]: string Comments on the slot to describe any extended information. Such as custom constraints on the slot
Mappings
- Slot Mappings — 13 mapping entries
Resource Packs
list-Slot-packs.xml
<?xml version="1.0" encoding="UTF-8"?>
<List xmlns="http://hl7.org/fhir">
<id value="Slot-packs"/>
<status value="current"/>
<mode value="working"/>
</List>
Search Parameters
- appointment-type — token — The style of appointment or patient that may be booked in the slot (not service type) —
Slot.appointmentType - identifier — token — A Slot Identifier —
Slot.identifier - schedule — reference — The Schedule Resource that we are seeking a slot within —
Slot.schedule - service-category — token — A broad categorization of the service that is to be performed during this appointment —
Slot.serviceCategory - service-type — token — The type (by coding) of appointments that can be booked into the slot —
Slot.serviceType.concept - service-type-reference — reference — The type (by HealthcareService) of appointments that can be booked into the slot —
Slot.serviceType.reference - specialty — token — The specialty of a practitioner that would be required to perform the service requested in this appointment —
Slot.specialty - start — date — Appointment date/time. —
Slot.start - status — token — The free/busy status of the appointment —
Slot.status
Examples
- 1 — slot-example-busy — Example for a slot that has an appointment allocated to it
- 2 — slot-example-tentative — Example for tentatively occupied slot
- 3 — slot-example-unavailable — Example of a slot that has been marked as unavailable
- example — slot-example — Example of an available slot (no appointments allocated)
- example-hcs — slot-example-hcs — Example of a slot constrained to a specific HealthcareService reference
- slot-example — slot-example
- slot-example-busy — slot-example-busy
- slot-example-hcs — slot-example-hcs
- slot-example-tentative — slot-example-tentative
- slot-example-unavailable — slot-example-unavailable
- slot-examples-header — slot-examples-header
Mapping Exceptions
slot-fivews-mapping-exceptions.xml
Unmapped Elements
- FiveWs.what — Unknown
- FiveWs.recorded — Unknown
- FiveWs.author — Unknown
- FiveWs.actor — Unknown
- FiveWs.cause — Unknown
- FiveWs.version — Unknown
- FiveWs.witness — Unknown
- FiveWs.where — Unknown
- FiveWs.context — Unknown
- FiveWs.init — Unknown
- FiveWs.why — Unknown
- FiveWs.source — Unknown
- FiveWs.who — Unknown
- FiveWs.grade — Unknown
- FiveWs.status — Unknown
- FiveWs.done — Unknown
- FiveWs.subject — Unknown