This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
(v4.0.1:
R4
-
Mixed
Normative
and
STU
3).
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
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
R4
R3
R2
Patient
Administration
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
TriggerDefinition
and
Slot
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
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
|
|
Σ | 0..* | CodeableConcept |
|
|
Σ | 0..* | CodeableConcept |
Type
of
Practice Setting Code Value Set ( Preferred ) |
|
Σ | 1..* | Reference ( Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location ) |
|
|
Σ | 0..1 | Period |
Period
of
time
|
|
0..1 | string |
Comments
on
|
|
Documentation
for
this
format
|
||||
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..* CodeableConcept Specific service --></serviceType> <specialty><!-- 0..* CodeableConcept Type of specialty needed --></specialty> <actor><!-- 1..* Reference(Patient|Practitioner|PractitionerRole|RelatedPerson| Device|HealthcareService|Location) Resource(s) that availability information is being provided for --></actor> <planningHorizon><!-- 0..1 Period Period of time covered by schedule --></planningHorizon> <comment value="[string]"/><!-- 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" : [{ CodeableConcept }], // Specific service
"specialty" : [{ CodeableConcept }], // Type of specialty needed
"actor" : [{ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|
Device|HealthcareService|Location) }], // R! Resource(s) that availability information is being provided for
"planningHorizon" : { Period }, // Period of time covered by schedule
"comment" : "<string>" // 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 Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:Schedule.identifier [ Identifier ], ... ; # 0..* External Ids for this item
fhir: fhir: fhir: fhir: fhir:| fhir: fhir:fhir:Schedule.active [ boolean ]; # 0..1 Whether this schedule is in active use fhir:Schedule.serviceCategory [ CodeableConcept ], ... ; # 0..* High-level category fhir:Schedule.serviceType [ CodeableConcept ], ... ; # 0..* Specific service fhir:Schedule.specialty [ CodeableConcept ], ... ; # 0..* Type of specialty needed fhir:Schedule.actor [ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|Device|HealthcareService| Location) ], ... ; # 1..* Resource(s) that availability information is being provided for fhir:Schedule.planningHorizon [ Period ]; # 0..1 Period of time covered by schedule fhir:Schedule.comment [ string ]; # 0..1 Comments on availability ]
Changes
since
DSTU2
R3
| Schedule |
|
|
|
|
|
|
|
See the Full Difference for further information
This analysis is available as XML or JSON .
See
R2
<-->
R3
<-->
R4
Conversion
Maps
(status
=
1
test
3
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
all
r3
resources
are
valid.).
valid.)
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
|
|---|---|---|---|---|
|
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
|
|
Σ | 0..* | CodeableConcept |
|
|
Σ | 0..* | CodeableConcept |
Type
of
Practice Setting Code Value Set ( Preferred ) |
|
Σ | 1..* | Reference ( Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location ) |
|
|
Σ | 0..1 | Period |
Period
of
time
|
|
0..1 | string |
Comments
on
|
|
Documentation
for
this
format
|
||||
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..* CodeableConcept Specific service --></serviceType> <specialty><!-- 0..* CodeableConcept Type of specialty needed --></specialty> <actor><!-- 1..* Reference(Patient|Practitioner|PractitionerRole|RelatedPerson| Device|HealthcareService|Location) Resource(s) that availability information is being provided for --></actor> <planningHorizon><!-- 0..1 Period Period of time covered by schedule --></planningHorizon> <comment value="[string]"/><!-- 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" : [{ CodeableConcept }], // Specific service
"specialty" : [{ CodeableConcept }], // Type of specialty needed
"actor" : [{ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|
Device|HealthcareService|Location) }], // R! Resource(s) that availability information is being provided for
"planningHorizon" : { Period }, // Period of time covered by schedule
"comment" : "<string>" // 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 Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:Schedule.identifier [ Identifier ], ... ; # 0..* External Ids for this item
fhir: fhir: fhir: fhir: fhir:| fhir: fhir:fhir:Schedule.active [ boolean ]; # 0..1 Whether this schedule is in active use fhir:Schedule.serviceCategory [ CodeableConcept ], ... ; # 0..* High-level category fhir:Schedule.serviceType [ CodeableConcept ], ... ; # 0..* Specific service fhir:Schedule.specialty [ CodeableConcept ], ... ; # 0..* Type of specialty needed fhir:Schedule.actor [ Reference(Patient|Practitioner|PractitionerRole|RelatedPerson|Device|HealthcareService| Location) ], ... ; # 1..* Resource(s) that availability information is being provided for fhir:Schedule.planningHorizon [ Period ]; # 0..1 Period of time covered by schedule fhir:Schedule.comment [ string ]; # 0..1 Comments on availability ]
Changes
since
DSTU2
Release
3
| Schedule |
|
|
|
|
|
|
|
See the Full Difference for further information
This analysis is available as XML or JSON .
See
R2
<-->
R3
<-->
R4
Conversion
Maps
(status
=
1
test
3
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
all
r3
resources
are
valid.).
valid.)
Alternate
See
the
Profiles
&
Extensions
and
the
alternate
definitions:
Master
Definition
(
XML
,
+
JSON
),
,
XML
Schema
/
Schematron
(for
)
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
the
extensions
&
the
dependency
analysis
| Path | Definition | Type | Reference |
|---|---|---|---|
| Schedule.serviceCategory | Example | ServiceCategory | |
| Schedule.serviceType | Example | ServiceType | |
| Schedule.specialty |
Additional
details
about
where
the
content
was
created
(e.g.
clinical
|
Preferred |
|
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. 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 , 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 | |
|
| token | High-level category | Schedule.serviceCategory | |
| service-type | token | The type of appointments that can be booked into associated slot(s) | Schedule.serviceType | |
| specialty | token | Type of specialty needed | Schedule.specialty |