Skip to main content

Scheduling

Scheduling is a common workflow and correct use of the FHIR spec supports many complex scheduling workflows.

Demo and Example App

For a brief overview of Scheduling at Medplum, see the video below. For an example scheduling application, see our Medplum Scheduling Demo.

Key Resources

ResourceDescription
SlotDefines a unit of availability for a provider. It can be assigned different appointment and service types.
ScheduleA grouping resource to collect a set of Slots. Schedules can be assigned to Practitioner, Location (facilities or rooms), and Patient resources.
AppointmentA tracking resources to define a booked Slot that may result in one or more Encounters.

Managing Availability

To manage provider availability, workflows include a Schedule resource, which has one or more Slots of availability.

The Schedule usage documentation provides a great overview on how FHIR Schedules can be used to manage availability for different types of actors, including:

Add a Timezone to a Practitioner

There are times where it may be appropriate to add a timezone to a Practitioner resource to ensure that appointments are accurately scheduled. However, there is no standard way to do this on the Practitioner resource, so you will need to add an extension.

{
resourceType: 'Practitioner',
// ...
extension: [
{
url: "http://hl7.org/fhir/StructureDefinition/timezone",
valueCode: "America/Los­_Angeles"
}
]
}

Tracking Appointments

Appointments represent the booked visit between patient and provider.

The Appointment usage documentation provides a great starting point for understanding the full appointment booking lifecycle.

More advanced workflows can implement the Appointment request/response model. In this model, participants confirm their availability using AppointmentResponse resources. Appointments can also be linked to specific Location, and Bots can be used to enforce other business logic.

See Also