Plan follow-up
A React block (a whole screen) in Beamline's Clinic app.
The practice's follow-up lists, for the person who turns accepted treatment into booked chairs. Treatment plans lead with what's at stake: the value accepted but not booked (and how many visits) and the plans nobody is chasing; the figures are the filters. Each plan reads at rest: patient and age (an accepted plan past two weeks and not fully booked is marked), coordinator (nobody yet said, changed from its own menu), value, status and a pip per visit booked (all booked replaces the Book action). Plans at locations this person can't see are left out and counted. Unbooked treatments with their total, one per row with tooth, provider, location, fee and pre-authorisation; one leaves the list only when its booking comes back. Payment-plan patients with the total outstanding and how many have no next visit, the last payment and how long ago, the last and next visit, the last statement and the codes waiting to be generated. On a phone each row stacks; nothing scrolls sideways.
Use it for
- A front desk's or treatment coordinator's lists of patients to call and book.
- Any worklist where an item leaves only when the outside system confirms it.
Not for
- One patient's plan (treatment-plan).
- A day's visits (visit-board).
Anatomy
- header: the product's mark, the title, the list with its count
- plans: three figures that are the filters (all, accepted not booked with visits to book, no coordinator), left-out locations; patient and age, coordinator (its own menu), value, status, a pip per visit booked, book
- treatments: the total to book, provider filter; patient, code and name with tooth, provider, location, fee, pre-authorisation, book
- payment plans: the total outstanding and how many have no next visit; patient, outstanding, last payment and how long ago, last and next visit, last statement, codes to generate
States
- coordinator: nobody yet (warning), changed from its menu (said)
- age: an accepted plan past coldAfter days and not fully booked (warning)
- booked: a pip per visit, booked ones green; all booked (success, no book action)
- pre-authorisation: approved (success), waiting (warning), denied (danger), not needed
- payment: over 45 days ago or none (warning); no next visit (warning)
- booking: leaves the list only when it returns; refused (said, stays)
- empty lists said
- phone: the figures become three short rows; every row stacks, nothing scrolls sideways
- right to left: the layout mirrors
- reduced motion: nothing animates
Keyboard
- Tab through the lists, the three figures (toggle buttons; Enter or Space shows those plans), each row's coordinator and actions; Enter opens the coordinator's menu
Motion
Nothing moves. Nothing runs at rest.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
plans (required) | FollowPlan[] | — | |
treatments (required) | FollowTreatment[] | — | |
payers (required) | FollowPayer[] | — | |
coordinators (required) | string[] | — | |
locations (required) | string[] | — | Locations this person can see; plans elsewhere are left out and counted. |
defaultList | "payments" | "plans" | "treatments" | — | |
now | string | — | |
currency | string | — | |
coldAfter | number | 14 | Days after which an accepted plan that isn't fully booked reads as going cold. Default 14. |
onAssign | ((planId: string, coordinator: string) => Promise<unknown>) | — | |
onSchedule | ((planId: string) => void) | — | |
onBook | ((treatmentId: string) => Promise<{ date: string; }>) | — | Book a treatment; resolve with the appointment's ISO date. It leaves the list only then. |
onGenerate | ((payerId: string) => Promise<unknown>) | — | |
product | string | — | Your product's name, shown as its mark. |
className | string | — | Classes on the documented visual root; no override by default. |
ref | Ref<HTMLDivElement> | — | Receives the documented native target or imperative handle; omitted by default. |
Built from
Import
import { PlanFollowUp } from "@beamline/plan-follow-up";
Get it
Plan follow-up is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent
More in Clinic
- Appointment book: The desk's day with the appointment editor beside it. The appointment being edited is a block on the day like any other, drawn in the accent while it is…
- Book an appointment: A client books an appointment on the practice's own site: a service (length and price beside it), who gives it or anyone free, and where; a day with…
- Services and hours: A practice's services and the hours its practitioners can be booked, one relation seen from both ends. A service reads as values and changes on demand…
- Patient overview: One patient's record on a page. A search finds patients by name, chart number or birth date (recent patients when empty; same names told apart by birth…
- Patient chart: A clinic's chart for one client and their animals. The client's header (phone, email, contact preferences, the balance with what it means and as of when…
- Health questionnaire: A patient's medical history as a versioned questionnaire. Every question takes Yes, No or I don't know, and one not answered says so, never read as No; a…
- Case workspace: A patient's clinical cases and how cases work at the practice. A case shows its status, type, teeth, staff, location and start; its checklist counts…
- Care plan: A client's care plan composed beside what the client will see of it. Every field says who sees it (the care team only, or the client too) and the…
- Treatment plan: A patient's treatment plan in named phases. Each procedure shows its tooth, status and fee beside the patient's and the insurer's estimate (not known…
- Plan templates: Reusable treatment-plan templates. A template reads as words at rest and changes on demand: its name edits in place; the status its procedures start as…
- Plan acceptance: A treatment plan presented for acceptance, from both sides. The practice chooses the agreement (the account's default or this location's own) and how…
- Session notes and tasks: A session's note beside its follow-up tasks, each task tied to the exact words it came from: choose a task and its words light in the note or the…
- Note templates: A practitioner's note templates in one library with three ways in. My templates lists their own by kind, favourites first, each with when it was last…
- Probing chart: A periodontal probing chart. Six sites per tooth (three buccal, three lingual) across both arches as you face the patient, each depth in its cell and…
- Procedure picker: Procedures, conditions and bundles put on a patient's teeth from the chair. The mode (existing, planned, completed) is chosen before adding and each…
- Results notebook: A notebook entry's structured results. The entry's text above a bounded results table with typed columns: a sample link, numbers in their unit with their…
- Insurance claims: Insurance claims as a queue: every claim at first, in the order a person works them (rejected by the clearinghouse, denied by the payer, partly paid, not…
- Account ledger: A patient's account. All transactions or the ones needing attention, each dated with its type in a word, its amount and the running balance; entries that…
- Dispensing: Dispensing from the shelf by lot. A product is found with its stock and prices (consumables left out unless asked); the quantity is drawn across its…
- Record sharing: Records sent out of a clinic. Several visits' records and their documents (record, invoice, plan, lab result, image) are chosen separately, with how much…
- Client journal: A client's journal from both ends. The client's side is their home, built around their day: today's goals with how many are done and a mark each, done…