API Reference

Operatories

Overview

An operatory represents a chair or room in a medical practice where providers service patients. It is also sometimes referred to as a vertical column in the scheduling calendar.

❗️

Not all EHRs support operatories

In EHRs where they exist, operatory id is a fundamental concept in organizing a calendar and is therefore a required value on all appointment records. However, a minority of EHRs do not have a concept of operatory and therefore all NexHealth appointments read from and written to these databases will not contain an operatory id. Please note that the presence of operatories in the target EHR also changes the way that new appointments are created via the NexHealth API.


Use Cases

Reading and writing appointments

Appointment record workflows change significantly depending on the presence of operatories. Therefore, it is necessary to understand the expected values for a particular location and adjust application behavior accordingly. The list of Supported Health Records Systems at the bottom of this page provides a summary of nuances per integration. Additionally, the same information is available programmatically via the boolean location.map_by_operatory attribute.

  • If location.map_by_operatory is set to false, all appointments in NexHealth associated to this location will contain a null operatory id.
  • If location.map_by_operatory is set to true, all attempts to create a new appointment in the target EHR for this location will fail if the appointment object is missing a validoperatory_id. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Setting up availabilties for use with appointment slots

Availabilties define the rules in which appointments may be booked online. In it's most basic form, an availability maps a provider (ex: Dr. Brian Albert) to a time frame (example: Monday through Friday 9am - 5pm). For syncs where the target database supports operatories, availabilities also define the operatory for that combination of provider and time frame. This allows for complex scheduling configurations.

As an example, imagine that for a given demo location, one availability allows emergency appointment types to be booked with Dr. Brian Albert in OP01 on Mondays and Thursdays, while a second availability allows cleaning appointment types to be booked with the same provider in HYG02 during the remaining weekdays.


It is possible to include two operatories in one availability. In this scenario, passing the optional overlapping_operatory_slots parameter will return all available slots for operatories at a given time instead of returning only the first found.

As an example, imagine that for a given demo location, one availability allows appointments to be booked with Dr. Brian Albert in OP01 and HYG02 on Fridays and the calendar is currently free in the morning.

  • Passing overlapping_operatory_slots:true will return one appointment slot for 9am in OP01 and one appointment slot for 9am in HYG02.
  • Passing overlapping_operatory_slots:false (or passing no value) will return one appointment slot for 9am in OP01 only.

For more information on using availabilities, see the Availabilities landing page.

📘

Double Booking

In some cases, offices will allow patients to double book a provider, meaning the same provider will see two patients at the same time. For the purposes of calculating available time slots, operatories are most commonly treated as a limiting resource. In other words, providers may be assigned to overlapping appointments in different operatories, but operatories cannot contain more than one appointment at a time.

Health record systems which do not utilize operatories (such as eCW) have alternative ways to allow double bookings. For more information, see the Supported Health Records Systems section at the bottom of this page.


Supported Health Record Systems

Athena

Importance of passing an operatory id

For Athena locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Cloud9

Importance of passing an operatory id

For Cloud9 locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Curve

Importance of passing an operatory id

For Cuve locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Denticon

Importance of passing an operatory id

For Denticon locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Dentrix

Importance of passing an operatory id

For Dentrix locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Dentrix Ascend

Importance of passing an operatory id

For Dentrix Ascend locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Dentrix Enterprise

Importance of passing an operatory id

For Dentrix Enterprise locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Dolphin

Importance of passing an operatory id

For Dolphin locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

DrChrono

Importance of passing an operatory id

For DrChrono locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

Eaglesoft

Importance of passing an operatory id

For Eaglesoft locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

eClinicalWorks

Absence of operatory ids

For eCW locations, the map_by_operatory is set to false and therefore any operatory ids passed when creating new appointments will be ignored.

Resources and double booking

Configuring an eCW integration for double booking is an advanced setting in which appointments are created in eCW with both a provider and mapped resource. This setting can only be enabled upon request at this time. For assistance, please reach out to [email protected] with details of the booking scenario.

Open Dental

Importance of passing an operatory id

For Open Dental locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.

ModMed

Absence of operatory ids

For ModMed locations, the map_by_operatory is set to false and therefore any operatory ids passed when creating new appointments will be ignored.

PracticeWorks

Importance of passing an operatory id

For PracticeWorks locations, the map_by_operatory is set to true and therefore new appointments must contain a valid operatory id or else result in an appointment insert error. For more insight into the results of appointment creation attempts, please subscribe to the the appointment_insertion webhook.