Overview
Every delivery uses the same envelope. The pages
below document the data each event carries.
Appointments
Section titled “Appointments”| Event | Sent when |
|---|---|
appointment.create |
An appointment is booked. |
appointment.update |
An appointment changes, including reschedules and cancellations. |
appointment.delete |
An appointment is permanently deleted. |
appointment.request |
An appointment is requested and is waiting for approval. |
Patients
Section titled “Patients”| Event | Sent when |
|---|---|
patient.create |
A patient is added to the workspace. |
patient.update |
Any field on a patient record changes. |
patient.archive |
A patient is archived. |
patient.restore |
An archived patient is restored. |
Vitals scans
Section titled “Vitals scans”| Event | Sent when |
|---|---|
vitalsScan.create |
A scan is created, before the patient has taken it. |
vitalsScan.complete |
A scan finishes successfully and its results are available. |
vitalsScan.fail |
A scan could not be completed. |
vitalsScan.abort |
A scan is abandoned or left unfinished. |
Reading the field tables
Section titled “Reading the field tables”| undefinedin the type means the field may be absent from the payload.| nullin the type means the field may be present with anullvalue.- Nested objects are documented in their own table below the main one, named
after the path to reach them —
staff,results.metrics,answers[].
Patient and vitals scan payloads are shaped by their schema, so they carry only the fields documented here. Appointment payloads predate the current format and are delivered as they are stored, so they may carry extra fields beyond the documented ones; those extras are not guaranteed and can change without notice.
Payloads grow over time
Section titled “Payloads grow over time”New fields are added to existing payloads as the platform grows, and new event types are added alongside them. Neither is treated as a breaking change, so your handler has to tolerate both:
- Ignore fields you do not recognize. Read the fields you need and leave the
rest alone. A parser that rejects unknown properties — a strict schema, a
switchthat throws on an unexpected key, a deserializer configured to fail on extras — will start failing the first time a field is added. - Ignore events you do not recognize. Return a 2xx for any event
nameyour handler has no case for, rather than failing the request.
Fields on their way out are marked Deprecated in the tables, with the replacement to read instead.