Patient chart

A React block (a whole screen) in Beamline's Clinic app.

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, unknown said) sits above their animals, archived ones folded apart; choosing an animal scopes the record, history and reminders to it, reminders and refills labelled with the animal. A visit's record moves from Draft through In progress to Locked, each step said with what it means and the current one on its tone; the auto-lock time is said (or that it isn't known); locked, it reads as a summary with who locked it and when, and unlocks only where allowed, as a new revision with a reason. Billing still due is shown apart from the lock; hospitalised is its own switch. The history searches by record type, range, order and keyword (weights only when asked): each entry its date, author, type and text with the match marked; a partial index is said, and no match is never offered as proof of absence. The record's status is one line of three steps with only the current one's meaning beside it; its sections read as a document, each edited in place (an empty one offers to add it).

Use it for

  • A record keeper's view of one customer with several subjects (a client's animals, a family's patients, an owner's vehicles) where everything below scopes to the one chosen.
  • A document that moves from draft to locked, unlocks only as a new revision, and keeps who locked it and when.
  • Searching one subject's history by type, range and keyword with the match marked and the index's limits said.

Not for

Anatomy

  • header: the product's mark, the client's name, Record or History
  • side: phone and email, contact preferences as tinted chips, the balance on its tone with what it means and as of when; the animals (species, breed, age, an alert mark), archived ones folded with why and when; reminders and refills for the chosen animal, each labelled with it, overdue on a warning tint
  • animal head: colour dot and a rule in the animal's colour, name, species, breed, sex, weight; an alert on a danger tint
  • record: visits as small cards with their status; the reason, date and clinician, revision; Hospitalised; three steps (Draft, In progress, Locked) each with what it means; auto-lock or locked by whom and when; billing still due apart; sections editable, or read-only once locked; Start, Lock, or Unlock (as revision n, with a reason) or why it can't be unlocked
  • history: keyword, range, order, Include weights; record type; a partial index said; the count; entries with a type tag, date, author and text with the match marked; no match said with why it isn't proof

States

  • client: balance owed, credit, settled, unknown; preferences, no phone
  • animals: active, with an alert, archived, age or weight not known
  • record: draft, in progress, locked, auto-lock known or not, locking, lock refused, unlock allowed (revision with a reason) or not, billing due, billed, unknown, hospitalised
  • history: matches marked, filtered by type, range and order, weights included, partial index, no match
  • loading: shaped skeletons
  • phone: one column; steps stack
  • right to left: mirrored, the fold's chevron turns the other way
  • reduced motion: through the tokens

Keyboard

  • Tab through the animals, the view, the visits, the record's fields and actions, and the history's filters
  • Enter or Space chooses an animal or a visit

Motion

The current step's tint and border change in the fast duration; the archived fold's chevron turns. Nothing runs at rest.

Props

PropTypeDefaultDescription
client (required)ChartClient—
animals (required)ChartAnimal[]—
records (required)VisitRecord[]—
historyHistoryEntry[]—
remindersChartReminder[]—
defaultAnimalstring—The animal open at first; the first active one otherwise.
defaultRecordstring—The record open at first; the animal's latest otherwise.
defaultView"history" | "record"—
defaultQuerystring—
canUnlockboolean—Whether this user may unlock a locked record (as a new revision).
onRecordChange((recordId: string, change: RecordChange) => Promise<void | { lockedBy?: string | undef…—
indexedFromstring | null—The history search covers entries from this date on; null: all of it.
todaystring—
currencystring—
loadingboolean—
productstring—
classNamestring—Classes on the documented visual root; no override by default.
refRef<HTMLDivElement>—Receives the documented native target or imperative handle; omitted by default.

Built from

Dependencies

lucide-react

Import

import { PatientChart } from "@beamline/patient-chart";

Get it

Patient chart 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…
  • 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…
  • Plan follow-up: 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…
  • 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…

Part of Beamline UI: polished, editable React components and complete screens for custom applications. Build your own style from any look; tokens, fonts, radii, motion; not only colours.