Nerve
FHIRResources

Appointment

Maturity LevelSecurity CategoryResource Category
3Patient
Base

A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s).

Resource Content

NameRequired
Type
Description & Constraints
identifierIdentifier[]External Ids for this item
statuscodeproposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist
cancelationReasonCodeableConceptThe coded reason for the appointment being cancelled
serviceCategoryCodeableConcept[]A broad categorization of the service
serviceTypeCodeableConcept[]The specific service to be performed
specialtyCodeableConcept[]Required practitioner specialty
appointmentTypeCodeableConceptThe style of appointment booked
reasonCodeCodeableConcept[]Coded reason this appointment is scheduled
reasonReferenceReference<Condition|Procedure|Observation|ImmunizationRecommendation>[]Reason the appointment is to take place
priorityunsignedIntUsed to make informed decisions if needing to re-prioritize
descriptionstringShown on subject line in meeting request
supportingInformationReference<Any>[]Additional information to support the appointment
startinstantWhen appointment is to take place
endinstantWhen appointment is to conclude
minutesDurationpositiveIntCan be less than start/end (e.g. estimate)
slotReference<Slot>[]The slots that this appointment is filling
createddateTimeThe date that this appointment was initially created
commentstringAdditional comments
patientInstructionstringDetailed information and instructions for the patient
basedOnReference<ServiceRequest>[]The service request this appointment is allocated to assess
participantBackboneElementParticipants involved in appointment
└─ typeCodeableConcept[]Role of participant in the appointment
└─ actorReference<Patient|Practitioner|PractitionerRole|RelatedPerson|Device|HealthcareService|Location>Person, Location/HealthcareService or Device
└─ requiredcoderequired | optional | information-only
└─ statuscodeaccepted | declined | tentative | needs-action
└─ periodPeriodParticipation period of the actor
requestedPeriodPeriod[]Potential date/time interval(s) requested

Search Parameters

NameTypeDescriptionExpression
actorreferenceAny one of the individuals participating in the appointmentAppointment.participant.actor
appointment-typetokenThe style of appointment or patient that has been booked in the slot (not service type)Appointment.appointmentType
based-onreferenceThe service request this appointment is allocated to assessAppointment.basedOn
datedateAppointment date/time.Appointment.start
identifiertokenAn Identifier of the AppointmentAppointment.identifier
locationreferenceThis location is listed in the participants of the appointmentAppointment.participant.actor.where(resolve() is Location)
part-statustokenThe Participation status of the subject, or other participant on the appointmentAppointment.participant.status
patientreferenceOne of the individuals of the appointment is this patientAppointment.participant.actor.where(resolve() is Patient)
practitionerreferenceOne of the individuals of the appointment is this practitionerAppointment.participant.actor.where(resolve() is Practitioner)
reason-codetokenCoded reason this appointment is scheduledAppointment.reasonCode
reason-referencereferenceReason the appointment is to take place (resource)Appointment.reasonReference
service-categorytokenA broad categorization of the service that is to be performed during this appointmentAppointment.serviceCategory
service-typetokenThe specific service that is to be performed during this appointmentAppointment.serviceType
slotreferenceThe slots that this appointment is fillingAppointment.slot
specialtytokenThe specialty of a practitioner that would be required to perform the serviceAppointment.specialty
statustokenThe overall status of the appointmentAppointment.status
supporting-inforeferenceAdditional information to support the appointmentAppointment.supportingInformation
enddateThe end time of the AppointmentAppointment.end

Scope and Usage

Appointment resources provide information about planned meetings, whether future or past. Each resource represents a single meeting - repeating visits require multiple appointment resources. Examples include:

  • Scheduled surgeries
  • Follow-up clinical visits
  • Clinical case conference calls
  • Diagnostic equipment reservations

Appointment Workflows

There are two typical workflows that occur with appointments:

Outlook Style - Community

These types of requests are typically handled by selecting a specific time from a list of available slots, then making the request for that timeslot.

Hospital Scheduling - Clinical

Clinical scheduling is often far more complex in its requirements and processing. Often this involves checking multiple availabilities across multiple systems and timing with other internal systems, not just those exposed by the Slot resources.

Implementation Note: This type of clinical appointment scheduling has not been specifically covered with this definition of the Appointment resource (and other related resources). If you would like to contribute to the modification of this resource to cover these use cases, please contact the HL7 Patient Administration work-group.

Consideration should be given to situations where scheduling needs to be handled in more of a queue-like process.

Basic Workflow

1. Discovery/Addressing

  • Determine address/endpoint details for scheduling
  • Based on healthcare service type and formatting requirements
  • Typically handled via Schedule resource

2. Checking Availability (Optional)

  • Review available times (Slot resources) on selected Schedule
  • Available time doesn't guarantee booking success
  • Booking system may apply additional qualifying criteria
    • Permissions
    • Assessments
    • Resource availability

3. Making the Appointment Request

  • Create new Appointment resource with status="proposed"
  • All participants should have status="needs-action"
  • System business rules may trigger automatic status updates

4. Replying to the Request

  • Handlers update participant statuses as needed
  • Multiple systems create AppointmentResponse entries
  • Overall Appointment status updated after all participants respond

5. Checking Overall Status

  • Requester monitors appointment status using FHIR pub-sub
  • May restart process if rescheduling needed

6. Waitlisting (Optional)

  • Create waitlisted appointment when preferred times unavailable
  • Requires two appointments:
    • Booked appointment in available slot
    • Waitlisted appointment with preferred requestedPeriod
  • Patient notification process for new availability is implementation-specific

Boundaries and Relationships

The Appointment resource follows specific patterns and workflows that are important to understand for implementation.

Request/Response Pattern

Appointments use a request-response pattern implemented through Appointment and AppointmentResponse resources:

  • Initial requests use an Appointment with status="proposed" or "pending"
  • Participants start with status="needs-action"
  • Participants respond via AppointmentResponse resources
  • Overall Appointment status updates after all responses received

The participant type property can specify required practitioner roles, even before specific actors are assigned. This property must match between Appointment-participant and AppointmentResponse for proper allocation.

Relationship with Encounters

  • Appointments are primarily administrative, while Encounters have clinical implications
  • Encounters typically created when service starts, not at patient arrival
  • Patient arrival marked by Appointment status="arrived"
  • Emergency Room scenarios should use Encounters directly, not Appointments

Integration Considerations

The Appointment pattern differs from typical FHIR order-response patterns to maintain compatibility with:

  • iCal standard
  • Non-clinical appointment systems
  • Consumer-facing calendar applications

Location Management

  • Locations specified through participant references to Location or HealthcareService resources
  • Enables schedule checking and conflict management
  • Allows tracking of location availability

Referenced Elements

This resource is referenced by: