Scheduling

ANSI
ANSI/HL7 V3 SC, R1-2003
HL7 Version 3 Standard: Scheduling, Release 1
12/17/2003
Responsible Group Scheduling and Logistics Work Group
HL7
Scheduling & Logistics Co-Chair Anita Benson
Datascene
Primary Contributor Tom de Jong
ChipSoft B.V.
Scheduling & Logistics Co-Chair Jane Foard
McKesson Information Solutions
Primary Contributor Melvin Reynolds
AMS Consulting

Content Last Edited: 2008-06-05T17:23:04



Table of Contents


Preface
    i Notes to Readers
    ii Acknowledgements
    iii Prerequisites, Assumptions & Conventions
    iv Known Issues & Planned Changes
    v Message Design Element Navigation
Overview
    1.1 Introduction & Scope
    1.2 Domain Information Models
    1.3 Storyboards
Appointment Topic
    2.1 Introduction
    2.2 Storyboards
    2.3 Application Roles
    2.4 Trigger Events
    2.5 Refined Message Information Models
    2.6 Hierarchical Message Descriptions
    2.7 Interactions
Quality Analysis Report Topic
4  CMETs Defined by this Domain
5  Interactions Annex
    5.1 By Application Role
    5.2 By Trigger Event
    5.3 By Message Type
6  Glossary

This first release of Scheduling supports the simple scenario of a scheduling application sending basic notifications to an auxiliary application. The intent is to establish a standard for the minimum functionaity that is useful and comprehensive enough to explore the important concepts. This miimum functionality is notifications of new appointments, revised appontments, cancelled appointments, and rescheduled appointments. Later releases will build upon this basic set of interactins to include requests and queries. In addition to appointments, Scheduling also includes the concepts of resource time slots. Slots will also be supported in later releases.

In addition to the authors, the Scheudling and Logistics Techinical Committee would like to thank Dave McDowell of Chartlinks for his cotributions in the early days and later the helpful comments from the VA and Oracle.

The following prerequisites, assumptions, and conventions apply to this first release of Scheduling.

A Scheduling message can specify individual resources associated with an appointment. A prerequisite for exchanging messages about resources is a synchronized catalog of locations, equipment, supply items, and staff. These resources can be identified by ID, name or type.

iii.b Assumtions

Scheduling messages are genereic and can be used to schedule any type of activity. The basic assumption behind Scheduling messages is that these messages can be customized. Therefore, the class code and Act.code for the Appointment is not constrained. The assumption is that they will be specified during implementation or at run time according to the type of activity being scheduled.

There are some conventions used by Scheduling that are slightly different from other domains. Since Scheduling is active before the actual service is performed, some of the prototypical state and transition names are misleading when used within the Scheduing context. Therefore, Scheduling follows the convention of using New rather than Activate to indicate that a new appointment has been booked. Also, Scheduling uses Cancel rather than Abort to indicate that an appoiintment is no longer booked.

In addition to naming conventions, revising the time of an appointment is a frequent and special case of appointment revisions. For this reason, there is a separate trigger event and interaction for Reschedule Appointment in addition to Revise Appointment.

Another convention is the use of the participation effective times to indicate when a resource is needed before or after the actual Appointment time. In other domain messages, activity time may be used for this purpose. The effective time in the Appointment is the default and usually, the patient's time.

There are two known issues that have been discovered since Release 1 was finalized. The first is the timing of participations in the Reschedule Appointment message. Since each participation may have a different effective time from the effective time of the Appointment, the Reschedule message must contain these participation times also. The second issue is the lack of a Supply Order ID. These issues are easily remedied without viololating backwards compatibility and will be part of Release 2.

 Appointment Topic ()
 
pointer Full Appointment RMIM (PRSC_RM010000UV01
pointer Minimum Appointment RMIM (PRSC_RM020000UV01

In Version 3, Scheduling is both a domain and a process. As a domain, Scheduling offers a generic set of messages and behavior to implement any number of Scheduling scenarios. As a process, Scheduling offers an abstract data model and a set of operations to any domain within HL7 that utilizes scheduling concepts. We can consider Scheduling as a service and the use of that service as an interface. This release of V3 contains generic scheduling messages that can be implemented by themselves or they can be used as a pattern for domain-specific messages.

The scheduling messages in this section are designed to communicate various events related to the scheduling of generic appointments for healthcare services. There are three basic types of interactions defined in the scheduling domain:

  • Request messages and their responses

  • Query messages and their responses, and

  • Unsolicited notifications

Request transactions communicate requests for the scheduling of appointments for healthcare services or for the booking of resource slots. These transactions occur between placer (requesting) applications and fulfiller (scheduling) applications. The query transactions allow any application to query the current schedule of booked and available slots or booked appointments. Unsolicited transactions provide for the notification of scheduling information between systems.

For this publication of the HL7 Scheduling standard, we are limiting the scope to four basic appointment notification interactions: New Appointment, Revise Appointment, Cancel Appointment. and Reschedule Appointment Future releases will expand the scope to include additional scenarios, including requests, queries and slot management.

Scheduling as an Interface to Services

To understand Scheduling as a service, consider the Unified Modeling Language (UML) concept of an interface in the graphic below. In object terminology, an interface is a collection of operations that are used to specify a service of a class or component. In HL7 Version 3, the ActAppointment class is the focus class for all scheduling notification messages. The initial operations offered by the ActAppointment class are the four interactions listed above. The domain classes that might interface to Scheduling are Encounter, Procedure, Observation, etc. as listed along the right-hand side of the graphic.

Scheduling is a Service offered by the generic ActAppointment class.

The interface concept defines a service that is realized by an object through its operations. These operations are the interactions listed inside the interface object in the graphic.

Definitions and Relationships

In this section, a generic scheduling service is defined using abstract concepts that apply equally well to any scheduling activity. While some of the following concepts are not supported in this first release, it is important to understand the entire Scheduling domain first by reviewing the definitions. In addition to the Patient, which is defined as elsewhere in this standard, the following terms have a special meaning within the context of HL7 V3 Scheduling:

  • Schedules control the allocation of slots to certain services and the use of particular resources. They consist of a set of open, booked, reserved, and blocked slots for one particular service or resource.

  • Slots are identifiable periods of time that can be scheduled.

    • Open slots are periods of time on a schedule during which a service may occur and/or a resource is available for use.

    • Booked slots are periods of time on a schedule that have already been reserved.

    • Reserved slots are periods of time on a schedule that have been tentatively or generally reserved (for example, a block of time set aside for new patients)

    • Blocked slots on a schedule are periods of time during which a service or resource is unavailable for reasons other than booked appointments (for example, a piece of equipment may be unavailable for maintenance reasons).

  • Appointments occupy sets of one or more booked slots on a schedule.

  • Repeating appointments are repetitions of the same appointment occurring at later slots but sharing the same patient, service and resource characteristics as the first appointment in the repeating series.

  • Services are real-world events, such as clinic appointments, the performance of which is controlled by a schedule.

  • Resources are tangible items whose use is controlled by a schedule. These items are often people, locations, or things low in supply but high in demand.

This Scheduling standard supports both closely and loosely-coupled systems. In general, closely-coupled systems will need to exchange slot information frequently in order to stay synchronized, while more loosely-coupled systems can exchange appointment information without needing to be constantly synchronized. The Patient can be identified with an ID or by name and the resources can be specified by ID or by type.

Application Roles

Many application roles have been identified within the scheduling process. Shown below are the definitions of these application roles. For this publication of the HL7 Scheduling standard, all application roles are not supported due to the limited scope. It is important to note that a scheduling application can fulfill multiple roles. For example, the application can be both an informer of an appointment as well as a requestor for an appointment from another application. .

  • Appointment Informer - In this role, the application notifies a tracking system that an appointment has been booked or modified in some way.

  • Appointment Tracker - In this role the application is only a receiver of scheduling information. In other words, the application does not generate any messages, but receives notifications.

The following application roles are planned for future releases:

  • Slot Requester - In a tightly-coupled environment where applications share knowledge about slots, the requesting application can request booking by slots. In this application role, a system can request a new appointment, modify an appointment, or request slot status changes.

  • Slot Request Responder - In this role, the owner of the schedule or an intermediary responds to a request to book an appointment by specific slots.

  • Slot Informer - In the role of Slot Notifier, the owner of the schedule or an intermediary sends out unsolicited notifications about changes in slot status information.

  • Slot Tracker - In this role, the application is receiviing unsolicited information about slots.

  • Appointment Requestor - In this role, the application requests a new appointment or modifications to an existing appointment from the request responder. Usually, the request responder is the owner of the schedule.

  • Appointment Request Responder - The schedule owner or an intermediary responds to a request from another application. For example, another application sends an appointment request and the request responder returns with a confirmed appointment or a denial.

  • Appointment Inquirer - In this role, the application makes inquires to the schedule owner application. For example, it inquires for a list of all patients booked from 8 AM till 5 PM, for hearing examinations.

  • Appointment Query Responder - In this role, the schedule owner or intermediary responds to a query submitted by an Appointment Inquirer role. An example of the inquiry responder role is the case where an application requests a list of all booked slots for Dr. Miller and the Appointment Query Responder responds with that information.

Types of Interactions

There are three basic types of interactions in the Scheduling domain:

  • Notifications are unsolicited messages from an Informer application notifying a Tracking application of changes in the owner's schedule. In the case of notifications, the only obligation of the tracker is to acknowledge receipt of the message.

  • Requests/responses are the messages and trigger events used between requesting applications and the schedule owner. The requesting application initiates a message requesting that the schedule owner modify its schedule with the given trigger event and information. The schedule owner responds to these requests to either grant or deny the request and to supply additional details about the confirmed request.

  • Queries/responses are the messages and trigger events used between querying applications and schedule owner applications. Querying applications initiate the interaction by sending a query transaction. The owner or an intermediary then responds to the query with the appropriate appointment ot slot information.

As mentioned above, this first release only supports Notifications for New, Revised, Cancelled, and Rescheduled Appointments..

Relationship Between Order, Appointment and Encounter or Service

An order is what begins the entire scheduling process. An order may cause one or more requests for the booking of resources. When the scheduling application receives the request(s), it creates the appointment by booking slot(s) in the schedule associated with the particular resource. Now the appointment has been booked.

In an outpatient scenario, when the patient arrives for an appointment with the physician, the outpatient encounter starts and the appointment is complete. If the patient does not arrive, the appointment is marked as a no show. When the visit is complete, the encounter is completed.

In the case of an inpatient visit, where multiple services are required, when the patient arrives at the hospital, the inpatient encounter is started, but the encounter is not complete until all necessary services have been rendered and the patient is discharged from the hospital.

Procedures and observations, as well as other clinical and non-clinical activities may be controlled by a schedule. In cases where the target of the scheduling process is a clinical activity, it may be preceded by an order or it may be part of a larger ordered service. In either case, the order would precede the appointment request, which in turn, would precede the appointment. When the service begins, the appointment is complete.

Scheduling Status Codes Mapped to V3 Act Status Codes

The prototypical status codes for Act.status_cd in the RIM may be interpreted as shown in the following tables:

Appointment Status Code RIM Status Codes

Complete Complete
Delete Nullify
Discontinue Abort
Cancelled Abort
Booked Active
To Be Rescheduled Hold
No Show Complete

In V2, two additional status codes exist: Pending and Waitlist. The corresponding V3 messages are not included in the scope of this publication, but will be included in a future V3 release. The V2 'Pending' filler status code will be equivalent to the V3 Appointment Request status code of 'Active'. The V2 Waitlist filler status code will be equivalent to the V3 Appointment Request status of 'Suspend'.

Go To Top

Diagram

T-PRSC_DM000000UV.png
Description

The Scheduling DMIM has a central focus on the ActAppointment class. This class represents the activity being scheduled. It has a mood of APT for Appointment and a class_code of ACT for any kind of Act. This is a generic appointment and can be used for any sub-class of Act, including Encounters, Procedures, and Observations, among others. An appointment can also be a battery where multiple services are scheduled as a group. This is accomplished through the recursive act-relationship of an ActAppointment with itself.

This generic model represents the arguments of a Scheduling service. In other words, if a specialization of Act in another domain wants to realize scheduling services, this abstract model describes the data needed to perform scheduling operations. Another domain may also wish to associate domain-specific information with the appointment messages. This can be accomplished by enhancing one of the Scheduling RMIMs and publishing those enhancements within the other domain.

ActAppointment is a booked appointment. It may have been previously requested by a "placer application" in an ActAppointmentRequest. Additionally, the originating Order may also be referenced from a booked appointment. The difference between the ActOrder and the ActAppointmentRequest is that the order is authored by a healthcare practitioner and carries a professional responsibility while the request is merely asking to reserve the resources. Not all appointments are initiated by orders, as in the case of a patient-initiated request. This chain of references is for identification purposes only and does not contain detailed information about the request or the order.

The subject (usually the patient) participates directly or indirectly in the appointment. The cardinality is 1..* patients to allow for group appointments and the Participation.modeCode is included to allow for appointments where the patient is not physically present. The subject Participation.time attribute allows the patient's appointment start time and duration to take place within the start time and duration for the whole appointment. Both the subject and the performer participations have a modeCode attribute to indicate a physical or remote presence.

The performer, location, and reusable device participations associate the resources being reserved in this appointment. These are practitioners and high-use items that are typically controlled by a schedule. Each resource can have its own effective time interval or it can default to the time interval of the appointment. The Participation.performInd is a boolean indicating that this participation is controlled by a schedule and must be reserved before use. A participation that does not have this indicator set is not actively scheduled, i.e., for information purposes only. Consumables can also be associated with the appointment. The Supply Order allows for a quantity of consumables (i.e., manufactured material) to be specified either by name, id, or optionally, the manufacturer.

The author is the person who originated the appointment and who must confirm changes or substitutions. This participation is optional and should be a duplicate of the author participation in the Control Act wrapper for a new appointment. For all other interactions, the author of the Control Act could be different from the author of the Appointment. Of course, they could also be the same.

A Schedule is a set of slots associated with a resource and may be used here to designate which schedule(s) the appointment is occupying (for example, a physician's OR session schedule and his/her office schedule. A Schedule may also be used for any time block which is further divided into slots.

Go To Top

 Storyboards (Sorted by Title)
 Storyboards (Sorted by Display Order)
 
pointer Appointment Introduction (DOSC_ST000001UV01
For details on the interpretation of this section, see the storyboard discussion in the Version 3 Guide.
Purpose

The Scheduling domain storyboards are structured according to the focus of the interaction: Appointments or Resource Slots. If the applications are tightly-coupled, they will want to synchronize schedules at the slot level, while more loosely-coupled applications will stay at the appointment level.

In this second release of Version 3, the Scheduling and Logistics TC is publishing Appointment Notifications and Slot Booking interactions. More interactions, including Appointment Requests without slots and Queries are planned for subsequent releases.

Scheduling interactions assume there is one owner or manager of a schedule that knows the current status of an appointment or the availablity of a resource slot. Depending on the focus of the message, this is either the Appointment Manager or the Slot Manager. The Manager has sub-roles depending on the type of interaction. For Notifications, the sub-role is Informer. For Requests and Queries, the sub-roles are Request Responder and Query Responder respectively.

Diagram
Activity Diagram
Narrative Example

The scheduling process is not limited to any specific domain in healthcare, but applies to any situation where reservations for scarce resources have to be made in advance. All kinds of healthcare activities can be scheduled such as in- and outpatient encounters, procedures, observations, food and transportation services.

The storyboards in this domain illustrate several different scenarios for scheduling. The scenarios illustrated under the Appointment topic are typical loosely-coupled applications communicating for mutual benefit, but with a minimum of required responsibility. In these scenarios, various systems may be interested in maintaining the status of a certain category of patient appointments. The appointment data may be used as auxiliary information within their database, or serve as input for their software process (external triggers).

The scenario under the Slot topic is for a tightly-coupled cinfiguration where systems must maintain scheduling information in near-real time. Schedules of slots are maintained in separate systems and synchronized through frequent communication. Slots are requested for booking and the response must be timely.

Return to top of page