Level 2a -Multiple providers, multiple operatories, lunch breaks (manual)

📌

Go back to the main guide here: https://docs.nexhealth.com/docs/scheduling-configuration-guide#/

Happy Smiles Dental - Configuration 2

The practice has two dentists and a hygienist. Dr. Smith works out of Operatory 3, Dr. Patel splits between Operatories 1 and 2, and Hygienist Lee floats across all three. Each provider has a break in the middle of their day. Hours are still fixed each week.

Two new things at this level: additional working hour records (one per provider-operatory pair) and gaps in the day (lunch). Manual handles both by treating them as data structure problems — more POSTs, split records.

Configure

For Dr. Patel working two operatories, you POST twice where each working hour record binds a single operatory_id.
For lunch, you split the day into two records: a 9:00–12:00 morning block and a 1:00–5:00 afternoon block. There's no "lunch" concept in manual configuration. Lunch is just an absence between two records.

# Dr. Patel, Operatory 1, morning
curl -X POST 'https://nexhealth.info/working_hours?subdomain=YOUR_SUBDOMAIN&location_id=YOUR_LOCATION_ID' \
  -H 'Nex-Api-Version: v20240412' \
  -H 'Authorization: Bearer YOUR_BEARER_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "working_hour": {
      "active": true,
    "provider_id": 158936025,
    "begin_time": "09:00",
    "end_time": "12:00",
    "operatory_id": 1,
    "days": ["Monday","Wednesday"]
    }
  }'

# Dr. Patel, Operatory 1, afternoon — second POST with begin_time 13:00, end_time 17:00
# Dr. Patel, Operatory 2, morning + afternoon — two more POSTs

A GET /working_hours call for the location returns the individual provider working hour records. For the practice above, that's roughly 18 records with one per provider, per operatory assignment, per half-day.

Response (trimmed)

"data": [
    {
      "id": 96878614,
      "provider_id": 158936025,
      "location_id": 21241,
      "operatory_id": 1,
      "begin_time": "09:00",
      "end_time": "12:00",
      "days": ["Monday","Wednesday"],
      "active": true,
      "source": "manual",
      "label": null
    },
    {
      "id": 96879940,
      "provider_id": 158936025,
      "location_id": 21241,
      "operatory_id": 2,
      "begin_time": "09:00",
      "end_time": "12:00",
      "days": ["Monday","Wednesday"],
      "active": true,
      "source": "manual",
      "label": null
    },
    {
      "id": 96878901,
      "provider_id": 158936025,
      "location_id": 21241,
      "operatory_id": 2,
      "begin_time": "13:00",
      "end_time": "17:00",
      "days": ["Monday","Wednesday"],
      "active": true,
      "source": "manual",
      "label": null
    },
    {
      "id": 96883945,
      "provider_id": 158936025,
      "location_id": 21241,
      "operatory_id": 1,
      "begin_time": "13:00",
      "end_time": "17:00",

Gotchas

One provider working day, multiple records.

A provider working two operatories returns two records, not one with multiple operatories. A provider with a lunch break returns two records per day, not one with a gap.