STU3 Candidate

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

12.11 Resource Schedule - Content

Patient Administration Work GroupMaturity Level: 1Compartments: Device, Patient, Practitioner, RelatedPerson

A container for slot(s) of time that may be available for booking appointments.

Schedule resources provide a container for time-slots that can be booked using an appointment, It provides the window of time (period) that slots are defined for and what type of appointments can be booked.
The schedule does not provide any information about actual appointments. This separation also greatly assists where access to the appointments would not be permitted for security or privacy reasons, and still being able to determine if an appointment might be available.

Note: A schedule is not used for the delivery of medication, that is the Timing data type.

A schedule controls the dates and times available for the performance of a service and/or the use of a resource. One schedule applies to one service or resource, since each service or resource can be reserved independently of the others.
(If two or more services, people, locations, or things cannot be reserved independently of one another, they are considered to be one activity or resource.)

A schedule consists of slots of time during which the controlled service or resource is potentially available for provision or use. Slots are categorized as open, booked, or blocked. An open slot on a schedule indicates that the service or resource is available for provision or use during that period of time. A booked slot indicates that the service or resource is not available during the time period, because an appointment has been scheduled. A blocked slot indicates that a service or resource is unavailable for reasons other than a scheduled appointment.

The real-world, non-automated analog of the schedule described above is a standard appointment book. These books are generally organized with rows of time slots, during which a service or resource is available.

A slot is one unit on a schedule. A slot represents the smallest unit of time or quantity that a service or resource may be booked. Depending on the nature of the service or resource, there may be more than one defined slot at a given instant of time. For example, if a service is an open group therapy session with twelve available seats, then there are twelve slots for the given block of time.

The schedule belongs to a single owner, the actor. This is normally a HealthcareService, Practitioner, Location or Device. When booking an appointment, multiple schedules may need to be checked depending on the configuration of the system.

If an appointment has 2 practitioners, a specific medical device and a room then there could be a schedule for each of these resources that may need to be consulted to ensure that no collisions occur.
If the schedule needed to be consulted, then there would be one created covering the planning horizon for the time of the appointment.

When checking availability for an appointment, the creator of the appointment should check that the see what schedules are applicable, then check for available slots within these schedules.

The searching could be done via the properties of the referenced actors, such as the ServiceCategory on the HealthcareService, or the Address on a Location.

The type property can be used to filter the types of appointments that can be booked within the appointment. These can be filtered down further by specifying types on the slots too.
The terminology bound to this property will be the same as that used on appointment and slot too.

If all slots are busy, the caller could find some slots that they believe are close enough, and request for the appointment in these slot(s)
(the appointment may be given a higher precedence and allocated in an overbooked status if business rules permit)

This resource is referenced by slot

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Schedule DomainResourceA container for slot(s) of time that may be available for booking appointments
... identifier Σ0..*IdentifierExternal Ids for this item
... active ?!Σ0..1booleanWhether this schedule is in active use
... serviceCategory Σ0..1CodeableConceptA broad categorisation of the service that is to be performed during this appointment
ServiceCategory (Example)
... serviceType Σ0..*CodeableConceptThe specific service that is to be performed during this appointment
ServiceType (Example)
... specialty Σ0..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Practice Setting Code Value Set (Preferred)
... actor Σ1..1Reference(Patient | Practitioner | RelatedPerson | Device | HealthcareService | Location)The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson
... planningHorizon Σ0..1PeriodThe period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates
... comment 0..1stringComments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated

doco Documentation for this format

UML Diagram (Legend)

Schedule (DomainResource)External Ids for this itemidentifier : Identifier [0..*]Whether this schedule record is in active use, or should not be used (such as was entered in error) (this element modifies the meaning of other elements)active : boolean [0..1]A broad categorisation of the service that is to be performed during this appointmentserviceCategory : CodeableConcept [0..1] « (Strength=Example)ServiceCategory?? »The specific service that is to be performed during this appointmentserviceType : CodeableConcept [0..*] « (Strength=Example)ServiceType?? »The specialty of a practitioner that would be required to perform the service requested in this appointmentspecialty : CodeableConcept [0..*] « Additional details about where the content was created (e.g. clinical specialty) (Strength=Preferred)Practice Setting Code Value S...? »The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPersonactor : Reference [1..1] « Patient|Practitioner|RelatedPerson|Device| HealthcareService|Location »The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these datesplanningHorizon : Period [0..1]Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associatedcomment : string [0..1]

XML Template

<Schedule xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External Ids for this item --></identifier>
 <active value="[boolean]"/><!-- 0..1 Whether this schedule is in active use -->
 <serviceCategory><!-- 0..1 CodeableConcept A broad categorisation of the service that is to be performed during this appointment --></serviceCategory>
 <serviceType><!-- 0..* CodeableConcept The specific service that is to be performed during this appointment --></serviceType>
 <specialty><!-- 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment --></specialty>
 <actor><!-- 1..1 Reference(Patient|Practitioner|RelatedPerson|Device|
   HealthcareService|Location) The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson --></actor>
 <planningHorizon><!-- 0..1 Period The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates --></planningHorizon>
 <comment value="[string]"/><!-- 0..1 Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated -->
</Schedule>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Schedule;
  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:Schedule.identifier [ Identifier ], ... ; # 0..* External Ids for this item
  fhir:Schedule.active [ boolean ]; # 0..1 Whether this schedule is in active use
  fhir:Schedule.serviceCategory [ CodeableConcept ]; # 0..1 A broad categorisation of the service that is to be performed during this appointment
  fhir:Schedule.serviceType [ CodeableConcept ], ... ; # 0..* The specific service that is to be performed during this appointment
  fhir:Schedule.specialty [ CodeableConcept ], ... ; # 0..* The specialty of a practitioner that would be required to perform the service requested in this appointment
  fhir:Schedule.actor [ Reference(Patient|Practitioner|RelatedPerson|Device|HealthcareService|Location) ]; # 1..1 The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson
  fhir:Schedule.planningHorizon [ Period ]; # 0..1 The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates
  fhir:Schedule.comment [ string ]; # 0..1 Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated
]

Changes since DSTU2

Schedule
Schedule.active added Element
Schedule.serviceCategory added Element
Schedule.serviceType Renamed from type to serviceType
Schedule.specialty added Element

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Schedule DomainResourceA container for slot(s) of time that may be available for booking appointments
... identifier Σ0..*IdentifierExternal Ids for this item
... active ?!Σ0..1booleanWhether this schedule is in active use
... serviceCategory Σ0..1CodeableConceptA broad categorisation of the service that is to be performed during this appointment
ServiceCategory (Example)
... serviceType Σ0..*CodeableConceptThe specific service that is to be performed during this appointment
ServiceType (Example)
... specialty Σ0..*CodeableConceptThe specialty of a practitioner that would be required to perform the service requested in this appointment
Practice Setting Code Value Set (Preferred)
... actor Σ1..1Reference(Patient | Practitioner | RelatedPerson | Device | HealthcareService | Location)The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson
... planningHorizon Σ0..1PeriodThe period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates
... comment 0..1stringComments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated

doco Documentation for this format

UML Diagram (Legend)

Schedule (DomainResource)External Ids for this itemidentifier : Identifier [0..*]Whether this schedule record is in active use, or should not be used (such as was entered in error) (this element modifies the meaning of other elements)active : boolean [0..1]A broad categorisation of the service that is to be performed during this appointmentserviceCategory : CodeableConcept [0..1] « (Strength=Example)ServiceCategory?? »The specific service that is to be performed during this appointmentserviceType : CodeableConcept [0..*] « (Strength=Example)ServiceType?? »The specialty of a practitioner that would be required to perform the service requested in this appointmentspecialty : CodeableConcept [0..*] « Additional details about where the content was created (e.g. clinical specialty) (Strength=Preferred)Practice Setting Code Value S...? »The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPersonactor : Reference [1..1] « Patient|Practitioner|RelatedPerson|Device| HealthcareService|Location »The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these datesplanningHorizon : Period [0..1]Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associatedcomment : string [0..1]

XML Template

<Schedule xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External Ids for this item --></identifier>
 <active value="[boolean]"/><!-- 0..1 Whether this schedule is in active use -->
 <serviceCategory><!-- 0..1 CodeableConcept A broad categorisation of the service that is to be performed during this appointment --></serviceCategory>
 <serviceType><!-- 0..* CodeableConcept The specific service that is to be performed during this appointment --></serviceType>
 <specialty><!-- 0..* CodeableConcept The specialty of a practitioner that would be required to perform the service requested in this appointment --></specialty>
 <actor><!-- 1..1 Reference(Patient|Practitioner|RelatedPerson|Device|
   HealthcareService|Location) The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson --></actor>
 <planningHorizon><!-- 0..1 Period The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates --></planningHorizon>
 <comment value="[string]"/><!-- 0..1 Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated -->
</Schedule>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Schedule;
  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:Schedule.identifier [ Identifier ], ... ; # 0..* External Ids for this item
  fhir:Schedule.active [ boolean ]; # 0..1 Whether this schedule is in active use
  fhir:Schedule.serviceCategory [ CodeableConcept ]; # 0..1 A broad categorisation of the service that is to be performed during this appointment
  fhir:Schedule.serviceType [ CodeableConcept ], ... ; # 0..* The specific service that is to be performed during this appointment
  fhir:Schedule.specialty [ CodeableConcept ], ... ; # 0..* The specialty of a practitioner that would be required to perform the service requested in this appointment
  fhir:Schedule.actor [ Reference(Patient|Practitioner|RelatedPerson|Device|HealthcareService|Location) ]; # 1..1 The resource this Schedule resource is providing availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, Device, Patient or RelatedPerson
  fhir:Schedule.planningHorizon [ Period ]; # 0..1 The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These  cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a "template" for planning outside these dates
  fhir:Schedule.comment [ string ]; # 0..1 Comments on the availability to describe any extended information. Such as custom constraints on the slot(s) that may be associated
]

Changes since DSTU2

Schedule
Schedule.active added Element
Schedule.serviceCategory added Element
Schedule.serviceType Renamed from type to serviceType
Schedule.specialty added Element

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),

PathDefinitionTypeReference
Schedule.serviceCategory ExampleServiceCategory
Schedule.serviceType ExampleServiceType
Schedule.specialty Additional details about where the content was created (e.g. clinical specialty)PreferredPractice Setting Code Value Set

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 .

Due to the dynamic nature of slots they are not included as a part of this resource.

It is anticipated that this resource is likely to be updated intermittently when the scope of slots is changed, i.e. to change the period of slots in the planning horizon. This could be performed each night to move the start and end date forward to keep the planning horizon as exactly 4 weeks.

The slot resource however is anticipated to be updated very regularly as the appointments that reference them are created/updated/cancelled.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPathsIn Common
activetokenIs the schedule in active useSchedule.active
actorreferenceThe individual(HealthcareService, Practitioner, Location, ...) to find a Schedule forSchedule.actor
(Practitioner, Device, Patient, HealthcareService, RelatedPerson, Location)
datedateSearch for Schedule resources that have a period that contains this date specifiedSchedule.planningHorizon
identifiertokenA Schedule IdentifierSchedule.identifier
typetokenThe type of appointments that can be booked into associated slot(s)Schedule.serviceType