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
.
Page
versions:
R5
R4B
R4
R3
R2
Responsible
Owner:
Patient
Administration
Work
Group
|
|
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
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
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 |
|
|
Σ | 0..* | Identifier |
External
Ids
for
this
item
|
|
?! Σ | 0..1 | boolean |
Whether
this
schedule
is
in
active
use
|
|
Σ | 0..* | CodeableConcept |
High-level
category
Binding: |
|
Σ | 0..* |
|
Specific
service
Binding: |
|
Σ | 0..* | CodeableConcept |
Type
of
Binding: Practice Setting Code Value Set ( |
|
Σ | 0..1 |
string
|
Human-readable
label
|
| Σ | 1..* | Reference ( Patient | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location ) |
Resource(s)
that
availability
information
|
|
Σ | 0..1 | Period |
Period
of
time
|
|
0..1 |
|
Comments
on
|
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
UML Diagram ( Legend )
XML Template
<<Schedule 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> <</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>
JSON Template
{
"resourceType" : "",
"resourceType" : "Schedule",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"
"
"
"
"
"|
"
"
"identifier" : [{ Identifier }], // External Ids for this item
"active" : <boolean>, // Whether this schedule is in active use
"serviceCategory" : [{ CodeableConcept }], // High-level category
"serviceType" : [{ CodeableReference(HealthcareService) }], // Specific service
"specialty" : [{ CodeableConcept }], // Type of specialty needed
"name" : "<string>", // Human-readable label
"actor" : [{ Reference(CareTeam|Device|HealthcareService|Location|Patient|
Practitioner|PractitionerRole|RelatedPerson) }], // R! Resource(s) that availability information is being provided for
"planningHorizon" : { Period }, // Period of time covered by schedule
"comment" : "<markdown>" // Comments on availability
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ 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 | |
|
|
|
|
|
|
|
|
|
|
|
|
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
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
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 |
|
|
Σ | 0..* | Identifier |
External
Ids
for
this
item
|
|
?! Σ | 0..1 | boolean |
Whether
this
schedule
is
in
active
use
|
|
Σ | 0..* | CodeableConcept |
High-level
category
Binding: |
|
Σ | 0..* |
|
Specific
service
Binding: |
|
Σ | 0..* | CodeableConcept |
Type
of
Binding: Practice Setting Code Value Set ( |
|
Σ | 0..1 | string |
Human-readable
label
|
| Σ | 1..* | Reference ( Patient | Practitioner | PractitionerRole | CareTeam | RelatedPerson | Device | HealthcareService | Location ) |
Resource(s)
that
availability
information
|
|
Σ | 0..1 | Period |
Period
of
time
|
|
0..1 |
|
Comments
on
|
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
XML Template
<<Schedule 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> <</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>
JSON Template
{
"resourceType" : "",
"resourceType" : "Schedule",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"
"
"
"
"
"|
"
"
"identifier" : [{ Identifier }], // External Ids for this item
"active" : <boolean>, // Whether this schedule is in active use
"serviceCategory" : [{ CodeableConcept }], // High-level category
"serviceType" : [{ CodeableReference(HealthcareService) }], // Specific service
"specialty" : [{ CodeableConcept }], // Type of specialty needed
"name" : "<string>", // Human-readable label
"actor" : [{ Reference(CareTeam|Device|HealthcareService|Location|Patient|
Practitioner|PractitionerRole|RelatedPerson) }], // R! Resource(s) that availability information is being provided for
"planningHorizon" : { Period }, // Period of time covered by schedule
"comment" : "<markdown>" // Comments on availability
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ 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 | |
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
Type |
|
|---|---|---|---|
| Schedule.serviceCategory | ServiceCategory | Example |
This value set defines an example set of codes that can be used to classify groupings of service-types/specialties. |
| Schedule.serviceType | ServiceType | Example |
This value set defines an example set of codes of service-types. |
| Schedule.specialty |
|
|
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
.
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
|
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 |
|
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 |