ko
Use casesHealthcare & Home Health
Developer view · Home-health scheduling

Healthcare & Home Health

You built the scheduling platform a home-health agency runs on. At 8:05 a post-discharge referral needs a nurse this morning — and three medication windows across town cannot move to make room.

You may never ring one of those doorbells — but your code decides whether the 9:00 timing window holds. Re-planning credentialed caregivers around fixed timing windows and travel between homes is the code you don’t want to own. Your app flags the referral priority: "p0"; Crisphive re-plans visits against credentials, timing windows, continuity and travel; your app confirms and coordinates. (Scheduling and coordination only — no patient records pass through the solver.)

You’re building
Home-health scheduling, EMR scheduling add-ons, and care-coordination platforms
On the API for
Care coordinators, nurses on the road, and the patient whose visit can’t slip

Try it in your language

Pick a scenario, switch the server SDK. Every snippet is the actual call the API reference generates — with home-health values filled in.

Wound care · schedule a planned visit

POST/job-requests전체 참조
import { Configuration, JobRequestBusinessApi } from "@crisphive/sdk";

const config = new Configuration({ accessToken: "chsk_test_4eC8xQ9mZ2pL7Ka0rT" });
const api = new JobRequestBusinessApi(config);

const res = await api.createJobRequest({
  jobRequestCreateRequest: {
    "customer_id": "a1b2c3d4-0000-4a01-8c01-000000000001",
    "description": "Wound-care visit — routine",
    "job_dates": [
      {
        "date": "2026-07-24",
        "periods": [
          {
            "business_view": [],
            "period": "morning"
          }
        ]
      }
    ],
    "job_type_id": "b2c3d4e5-0000-4a02-8c02-000000000002",
    "priority": "p3",
    "skill_ids": [
      "c3d4e5f6-0000-4a03-8c03-000000000003"
    ],
    "sla_deadline": "2026-07-30T17:00:00"
  },
});
const { error_code, message, data } = res.data;

Switch to Go, Ruby, PHP, Java or .NET — the class names, model types and method casing all follow that SDK’s generated conventions. Swap chsk_test_ for chsk_live_ and the same code runs against production.

Three ways this bites

These are the days a home-health scheduler is judged on — each a dropped billable visit, a duplicated drive, or a timing window at risk. Every one maps to a field the API already carries.

1
Post-discharge visit, no room in the day

The pain ·An urgent referral triggers an hour of phone re-routing; nurses idle between calls and a billable visit is dropped to make room.

Crisphive ·Flag priority: "p0"; the emergency re-plan preview re-plans the day in one call and never moves a hard timing-window sla_deadline.

2
Uncredentialed nurse for an IV start

The pain ·The visit is assigned to a nurse without the credential; it fails and a second nurse is dispatched — a duplicated drive across town.

Crisphive ·The visit’s skill_ids gate the assignment — only caregivers whose credentials cover it are eligible.

3
The pharmacy stop that wrecked the timing

The pain ·An unplanned supply pickup adds 25 minutes of drive time and threatens a downstream medication window.

Crisphive ·Model the pharmacy stop in dependencies with real travel time; continuity holds via preferred_technician_id.

Reading the re-plan call

The An urgent referral just hit scenario above is the re-plan itself — it previews the moves so nothing is confirmed until you accept it. Its fields map to the story like this:

FieldWhat it is
emergency_job_idThe urgent visit driving the re-plan — the referral that has to be seen this morning.
technician_idThe caregiver in play for that visit — here, the IV-credentialed one.
start_atWhen the referral lands — 08:05 in the story.
modeHow hard the solver may push to fit the visit in (here, allow overtime).
displacement_modeWhat may happen to the visits it moves (here, reschedule them rather than drop them).

The urgency flag from the intro — priority: "p0" — is set when you book or update the visit on POST /job-requests (the Wound care scenario shows a routine p3). The full priority ladder and the allowed values for mode and displacement_mode live in each endpoint’s Full reference.

Hard constraints, not suggestions

A scheduler that ignores these isn’t planning — it’s moving a medication window to save a drive. Each one is a first-class field in the API.

The ruleWhat the API enforces
Timing & medication windowsA medication window is a hard sla_deadline — visits move around it, it does not move.
Caregiver credentialsAn IV start needs an IV-credentialed RN. Only caregivers whose skill_ids cover the visit get assigned.
Continuity of carePatients know their caregiver. A preferred_technician_id keeps continuity; the solver reaches for a reassignment last.
Visit orderAssessment before care; morning meds before mobility. Clinical order is first-class dependencies.
Caregiver hours & loadBreak rules and maximum visit loads are hard constraints. The compliant day is the only day the API returns.

What you ship

You ship coordination that never touches a timing window.

  • No hand-rolled scheduling engine — timing windows, credentials, continuity and travel are API fields.
  • Deterministic means accountable: replay the exact day a family asks about.
  • Coordinator copy comes back with the plan, ready for the family update verbatim.

What their day feels like

One urgent visit stops shaking the whole day.

  • Coordinators stop rebuilding routes by phone.
  • Timing windows are protected; the right credential gets the visit.
  • The discharged patient is seen by 9:00 — and every medication window holds.

Every job has stakeholders

An urgent referral touches far more than the nurse who takes it. Every visit is a web of stakeholders who feel it when the day drifts — and a tighter operation quietly serves all of them. (Scheduling and coordination only — no patient records pass through the solver.)

In plain sight
Patient & family

The visit happens on time, the medication window holds, and — where possible — it’s the caregiver they already know.

The care coordinator

Confirms a re-plan in one click instead of an hour of phone re-routing.

The agency director

More visits per caregiver-hour with fewer dropped or duplicated visits — a tighter operation.

Often invisible — until they’re not
Accreditation & payer audits

Deterministic scheduling replays for an accreditation or payer review — granular proof that windows and credentials were honoured.

Agency reputation & optics

On-time visits and continuity protect the agency’s standing with families and referral sources.

Caregivers & retention

Sane loads and honoured breaks keep caregivers off unsustainable days — retention in a field that bleeds staff.

What you get back, and what gets pushed

The An urgent referral just hit preview returns the whole plan in data: moves and reassignments (which visit shifts, from and to which caregiver and time), a total_moves count, and warnings such as TECH_NOT_FEASIBLE — so a coordinator can see the re-plan before it’s confirmed.

To let coordinators see moves the moment they’re confirmed, register a webhook endpoint and Crisphive POSTs each scheduling event to your URL with a Crisphive-Signature header. Verify it against your whsec_… secret over the raw body before you trust the payload — Webhooks has the event shape and copy-paste verify snippets.

Cascades, previews, reads and MCP access are never billed — call the solver on every disruption without architecting around your own bill. The core is a deterministic solver: same inputs, same plan, every time. The LLM only sits at the edges, turning a plan into the message your customer reads.

Start building

The snippet above imports @crisphive/sdk — grab the package for your language, drop in a key, and the same call runs. Every response comes back in one { error_code, message, data } envelope.