smart-on-fhir / smart-scheduling-links

Clinical Appointment Slot Discovery
28 stars 15 forks source link

SMART Scheduling Links

What if booking clinical appointments looked more like booking airline tickets?

Status
Draft proposal for discussion

Lightweight, scalable appointment booking API

"SMART Scheduling Links" is a standards-based specification enabling patients to:

  1. find appointment slots using an appointment booking tool of their choice, searching by geography, specialty, health system, etc
  2. follow a deep link into the provider's booking portal, to book a specific slot
  3. complete a booking, e.g., by providing details, answering questions, or submitting referral documentation

We are parsimonious in our use of standards, so that:

Roles and responsibilities

This specification defines four functional roles:

Is the UX good enough?

Examining the SMART Scheduling Links workflow described above, there are some potential user-experience challenges:

In other words, compared with a deeply-integrated scheduling paradigm where a booking tool could guide the user through every step of the process, SMART Scheduling Links provides a more loosely-coupled user experience. But we have strong evidence that this is a viable UX trade-off, because it works just like a very familiar and highly successful booking system...

Analogy: airline booking

Cross-industry standards analogies can sometimes be misleading -- but to build up an intuition, it's worth comparing the SMART Scheduling Links workflow with the consumer airline booking experience. Briefly: the Slot Discovery Client plays the same role as a travel booking tool like KAYAK or Hipmunk. These systems help their users search for relevant options across multiple service providers, and help users evaluate trade-offs among these options. Once the user makes a selection, a deep link takes them to a service provider to complete the workflow. The Provider Booking Portal plays the same role as an airline like United or Delta. These systems manage user accounts and enable a booking-completion workflow. They also serve as gatekeepers, e.g. to collect data about a user's background as well as identifiers such as a Known Traveler Number or redress number. They can "call off" the workflow at any point (e.g., if a user is unable to provide the required information, or if a previously-available slot has been booked by another user).

This pattern works well in airline booking, and could dramatically reduce the difficulty of healthcare appointment booking.