An appointment is a time booked with a provider to receive a service. These actions write to the health record system:
- Creating an appointment (
POST /appointments), on every system - Confirming or cancelling it (
PATCHwithconfirmedorcancelled) - Checking the patient in (
PATCHwithcheckin_at), on seven systems - Rescheduling it, or changing its room or note (
PATCHwithstart_timeandend_time,operatory_idornote), on five systems
Which systems take which write is on Testing writes, per system.
Reading blocksSchedule blocks are times when a practice does not want anyone to book an appointment. NexHealth reads them as appointments with the
unavailableproperty set totrue.
Appointment creation
POST /appointments writes a new appointment, along with its patient, to the health record system. If the patient does not exist in the health record system at that point, NexHealth creates the patient there.
Appointments in the pastYou can only create appointments in the future. Send a
start_timelater than today.
Before you create an appointment, make sure you have:
- Working hours that show the provider and operatory can be booked. See Working hours.
subdomainandlocation_id. See Institutions and Locations.patient_id. See Patients.provider_id. See Providers.start_time. See Available slots.- An appointment duration. See Appointment duration.
operatory_id, if the location'smap_by_operatoryattribute istrue. See Operatories.
Monitor appointment creationThe API answers before it writes the appointment to the health record system. Subscribe to the appointment insertion webhook. It fires when the integration returns
complete,failedortimed_outfor the write to the health record system.
Appointment duration
Set the duration yourself by sending an end_time. If you send an appointment_type_id instead, NexHealth works out the end time from the type's minutes. See Appointment types.
Appointment updates
PATCH /appointments/{id} changes an appointment in NexHealth and, where the system takes the change, sends it to the health record system.
confirmed: trueis sent to every system,confirmed: falseonly to the five systems that take appointment updates.cancelled: trueis sent to 13 of the 15 systems; on OrthoTrac and PracticeWorks it stays in NexHealth.checkin_atis sent to Denticon, Dentrix, Dentrix Enterprise, Eaglesoft, ModMed, NextGen Office and Open Dental. On the rest it stays in NexHealth.start_timeandend_time,operatory_idandnoteare sent to Denticon, Dentrix, Dentrix Enterprise, Eaglesoft and Open Dental. Other systems return400EMR does not support appointment updatefor a time or note change; a change tooperatory_idalone is accepted and stays in NexHealth.- Any other field you change is overwritten by the next sync from the health record system.
On a live practice, a PATCH is accepted only once the appointment has reached the system (foreign_id set). The exception is cancelled: true, which is always accepted so you can free the slot after a failed insertion. A cancelled appointment and a scheduling block cannot be patched.
When one of these writes finishes in the system, an appointment_updated webhook fires: appointment_updated on success, appointment_updated.failed, appointment_updated.timed_out or appointment_updated.incomplete otherwise, with previous_attributes showing the field you changed.