FHIR Release 3 (STU) CI-Build

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0 . For a full list Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3 R2

12.12 12.15 Resource Schedule - Content

Responsible Owner: Patient Administration icon Work Group Maturity Level : 3   Trial Use Security Category : Business Compartments : Device , Patient , Practitioner , RelatedPerson

A container for slots 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, while still being able to determine if an appointment might be available.

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

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 analogue 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 instance of a service or resource. This is normally a HealthcareService, Practitioner, Location or Device. In the case where a single resource can provide different services, potentially at different location, then the schedulable resource is considered the composite of the actors.
For example, if a practitioner can provide services at multiple locations, they might have one schedule per location, where each schedule includes both the practitioner and location actors. When booking an appointment with multiple schedulable resources, multiple schedules may need to be checked depending on the configuration of the system.

If an appointment has two 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 determine which schedules are applicable, then check for available slots within each schedule.

Determining which schedules should be consulted often will involve searching via the properties of the referenced actors, such as the ServiceCategory on the HealthcareService, or the Address on a Location.

The type parameter can be used to filter the type of services that can be booked within the associated slots.

If all slots are busy, the caller may attempt to book an appointment into a already booked an already-booked slot, but the server business rules will dictate whether overbooking is allowed, or whether the appointment may be given a higher precedence and allocated the overbooked slot.

This resource is referenced by slot 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.

Structure

0..1 A broad categorisation of the service that is to be performed during this appointment The specific The specialty The resource this Schedule resource is providing The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . Schedule TU DomainResource A container for slots of time that may be available for booking appointments

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier Σ 0..* Identifier External Ids for this item

. . . active ?! Σ 0..1 boolean Whether this schedule is in active use
. . . serviceCategory Σ 0..* CodeableConcept High-level category
Binding: ServiceCategory Service Category ( Example )

. . . specialty Σ 0..* CodeableConcept Type of a practitioner that would be required to perform the service requested in this appointment specialty needed
Binding: Practice Setting Code Value Set ( Preferred Example )

. . actor . name Σ 0..1 string 1..* Human-readable label
. . . actor Σ 1..* Reference ( Patient | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location ) Resource(s) that availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, PractitionerRole, Device, Patient or RelatedPerson is being provided for

. . . planningHorizon Σ 0..1 Period Period 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 covered by schedule
. . . comment 0..1 string markdown Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

Schedule ( DomainResource ) External Ids for this item identifier : Identifier [0..*] Whether this schedule record is in active use, 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 categorization of the service that is to be performed during this appointment serviceCategory : CodeableConcept [0..1] [0..*] « null (Strength=Example) ServiceCategory ?? » The specific service that is to be performed during this appointment serviceType : CodeableConcept CodeableReference [0..*] « HealthcareService ; null (Strength=Example) ServiceType ?? » The specialty of a practitioner that would be required to perform the service requested in this appointment specialty : CodeableConcept [0..*] « Additional details about where the content was created (e.g. clinical specialty) (Strength=Preferred) null (Strength=Example) Practice Setting Code Value PracticeSettingCodeValueSet ?? » S... Further description of the schedule as it would be presented to a consumer while searching name ? : string [0..1] The resource Slots that reference this Schedule schedule resource is providing provide the availability information for. These are expected details to usually be one of HealthcareService, Location, Practitioner, PractitionerRole, Device, Patient or RelatedPerson these referenced resource(s) actor : Reference [1..*] « Patient | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location » The period of time that the slots that are attached to reference 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" "template" for planning outside these dates planningHorizon : Period [0..1] Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated comment : string markdown [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>
 <
 <</serviceCategory>
 <</serviceType>
 <</specialty>
 <|
   </actor>
 <</planningHorizon>
 <

 <active value="[boolean]"/><!-- 0..1 Whether this schedule is in active use -->
 <serviceCategory><!-- 0..* CodeableConcept High-level category --></serviceCategory>
 <serviceType><!-- 0..* CodeableReference(HealthcareService) Specific service --></serviceType>
 <specialty><!-- 0..* CodeableConcept Type of specialty needed --></specialty>
 <name value="[string]"/><!-- 0..1 Human-readable label -->
 <actor><!-- 1..* Reference(CareTeam|Device|HealthcareService|Location|Patient|
   Practitioner|PractitionerRole|RelatedPerson) Resource(s) that availability information is being provided for --></actor>

 <planningHorizon><!-- 0..1 Period Period of time covered by schedule --></planningHorizon>
 <comment value="[markdown]"/><!-- 0..1 Comments on availability -->

</Schedule>

Turtle Template

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


[ a fhir:Schedule;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:|
  
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External Ids for this item
  fhir:active [ boolean ] ; # 0..1 Whether this schedule is in active use
  fhir:serviceCategory  ( [ CodeableConcept ] ... ) ; # 0..* High-level category
  fhir:serviceType  ( [ CodeableReference(HealthcareService) ] ... ) ; # 0..* Specific service
  fhir:specialty  ( [ CodeableConcept ] ... ) ; # 0..* Type of specialty needed
  fhir:name [ string ] ; # 0..1 Human-readable label
  fhir:actor  ( [ Reference(CareTeam|Device|HealthcareService|Location|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ... ) ; # 1..* Resource(s) that availability information is being provided for

  fhir:planningHorizon [ Period ] ; # 0..1 Period of time covered by schedule
  fhir:comment [ markdown ] ; # 0..1 Comments on availability

]

Changes since DSTU2 from both R4 and R4B

Schedule
Schedule.active Schedule.serviceType
  • Added Element Type changed from CodeableConcept to CodeableReference
Schedule.serviceCategory Schedule.name
  • Added Element
Schedule.serviceType Renamed from type to serviceType Schedule.specialty Schedule.actor
  • Type Reference: Added Element Target Type CareTeam
Schedule.actor Schedule.comment
  • Max Cardinality Type changed from 1 string to * Add Reference(PractitionerRole) markdown

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

Structure

0..1 A broad categorisation of the service that is to be performed during this appointment The specific The specialty The resource this Schedule resource is providing The period of time that the slots that are attached to this Schedule resource cover (even if none exist). These cover the amount
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . Schedule TU DomainResource A container for slots of time that may be available for booking appointments

Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier Σ 0..* Identifier External Ids for this item

. . . active ?! Σ 0..1 boolean Whether this schedule is in active use
. . . serviceCategory Σ 0..* CodeableConcept High-level category
Binding: ServiceCategory Service Category ( Example )

. . . specialty Σ 0..* CodeableConcept Type of a practitioner that would be required to perform the service requested in this appointment specialty needed
Binding: Practice Setting Code Value Set ( Preferred Example )

. . actor . name Σ 0..1 string Human-readable label
1..*
. . . actor Σ 1..* Reference ( Patient | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location ) Resource(s) that availability information for. These are expected to usually be one of HealthcareService, Location, Practitioner, PractitionerRole, Device, Patient or RelatedPerson is being provided for

. . . planningHorizon Σ 0..1 Period Period 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 covered by schedule
. . . comment 0..1 string markdown Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

Schedule ( DomainResource ) External Ids for this item identifier : Identifier [0..*] Whether this schedule record is in active use, 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 categorization of the service that is to be performed during this appointment serviceCategory : CodeableConcept [0..1] [0..*] « null (Strength=Example) ServiceCategory ?? » The specific service that is to be performed during this appointment serviceType : CodeableConcept CodeableReference [0..*] « HealthcareService ; null (Strength=Example) ServiceType ?? » The specialty of a practitioner that would be required to perform the service requested in this appointment specialty : CodeableConcept [0..*] « Additional details about where the content was created (e.g. clinical specialty) (Strength=Preferred) null (Strength=Example) Practice Setting Code Value PracticeSettingCodeValueSet ?? » S... Further description of the schedule as it would be presented to a consumer while searching name ? : string [0..1] The resource Slots that reference this Schedule schedule resource is providing provide the availability information for. These are expected details to usually be one of HealthcareService, Location, Practitioner, PractitionerRole, Device, Patient or RelatedPerson these referenced resource(s) actor : Reference [1..*] « Patient | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location » The period of time that the slots that are attached to reference 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" "template" for planning outside these dates planningHorizon : Period [0..1] Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated comment : string markdown [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>
 <
 <</serviceCategory>
 <</serviceType>
 <</specialty>
 <|
   </actor>
 <</planningHorizon>
 <

 <active value="[boolean]"/><!-- 0..1 Whether this schedule is in active use -->
 <serviceCategory><!-- 0..* CodeableConcept High-level category --></serviceCategory>
 <serviceType><!-- 0..* CodeableReference(HealthcareService) Specific service --></serviceType>
 <specialty><!-- 0..* CodeableConcept Type of specialty needed --></specialty>
 <name value="[string]"/><!-- 0..1 Human-readable label -->
 <actor><!-- 1..* Reference(CareTeam|Device|HealthcareService|Location|Patient|
   Practitioner|PractitionerRole|RelatedPerson) Resource(s) that availability information is being provided for --></actor>

 <planningHorizon><!-- 0..1 Period Period of time covered by schedule --></planningHorizon>
 <comment value="[markdown]"/><!-- 0..1 Comments on availability -->

</Schedule>

Turtle Template

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


[ a fhir:Schedule;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:|
  
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External Ids for this item
  fhir:active [ boolean ] ; # 0..1 Whether this schedule is in active use
  fhir:serviceCategory  ( [ CodeableConcept ] ... ) ; # 0..* High-level category
  fhir:serviceType  ( [ CodeableReference(HealthcareService) ] ... ) ; # 0..* Specific service
  fhir:specialty  ( [ CodeableConcept ] ... ) ; # 0..* Type of specialty needed
  fhir:name [ string ] ; # 0..1 Human-readable label
  fhir:actor  ( [ Reference(CareTeam|Device|HealthcareService|Location|Patient|Practitioner|PractitionerRole|
  RelatedPerson) ] ... ) ; # 1..* Resource(s) that availability information is being provided for

  fhir:planningHorizon [ Period ] ; # 0..1 Period of time covered by schedule
  fhir:comment [ markdown ] ; # 0..1 Comments on availability

]

Changes since DSTU2 from both R4 and R4B

Schedule
Schedule.active Schedule.serviceType
  • Added Element Type changed from CodeableConcept to CodeableReference
Schedule.serviceCategory Schedule.name
  • Added Element
Schedule.serviceType Renamed from type to serviceType Schedule.specialty Schedule.actor
  • Type Reference: Added Element Target Type CareTeam
Schedule.actor Schedule.comment
  • Max Cardinality Type changed from 1 string to * Add Reference(PractitionerRole) markdown

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

 

Alternate Additional definitions: Master Definition ( XML , + JSON ), , XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ) + see the extensions , the spreadsheet version & the dependency analysis

Path Definition ValueSet Type Reference Documentation
Schedule.serviceCategory ServiceCategory Example ServiceCategory

This value set defines an example set of codes that can be used to classify groupings of service-types/specialties.

Schedule.serviceType ServiceType Example ServiceType

This value set defines an example set of codes of service-types.

Schedule.specialty Additional details about where the content was created (e.g. clinical specialty) PracticeSettingCodeValueSet Preferred Example Practice Setting Code

This is the code representing the clinical specialty of the clinician or provider who interacted with, treated, or provided a service to/for the patient. The value set used for clinical specialty has been limited by HITSP to the value set reproduced from HITSP C80 Table 2-149 Clinical Specialty Value Set Definition.

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 icon .

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. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Name Type Description Expression In Common
active token Is the schedule in active use Schedule.active
actor reference The individual(HealthcareService, Practitioner, Location, ...) to find a Schedule for Schedule.actor
( Practitioner , CareTeam , Device , Patient , HealthcareService , PractitionerRole , RelatedPerson , Location )
date date Search for Schedule resources that have a period that contains this date specified Schedule.planningHorizon
identifier token A Schedule Identifier Schedule.identifier
name string type A portion of the Schedule name Schedule.name
service-category token High-level category Schedule.serviceCategory
service-type token The type (by coding) of appointments that can be booked into associated slot(s) Schedule.serviceType.concept
service-type-reference Schedule.serviceType reference The type (by HealthcareService) of appointments that can be booked into associated slot(s) Schedule.serviceType.reference
specialty token Type of specialty needed Schedule.specialty