Settings → Staff (the Staff Log)
Purpose
The Staff page is your clinic's Staff Log, the register of everyone who handles controlled substances, mirroring the personnel list every clinic keeps on its paper logs. Each transaction, disposal, and correction in CS Logbook is attributed to a Staff Log entry, so this register is the source of truth for who did what.
Route: /home/[account]/settings/staff (paths.config.ts → accountStaffSettings).
When to use it
- Add a staff member when they start handling controlled substances at the clinic.
- Edit a member's name, initials, role, prescriber flag, or employment dates.
- Deactivate a member when they leave: set them inactive; never delete them.
- Reactivate a returning member.
What the Staff Log captures
| Field | Why it matters |
|---|---|
| Full name + initials | Initials are what appear on controlled-substance log entries (e.g. JDS). |
| Role + prescriber flag | Marks who can prescribe controlled substances (license validity is checked separately via Licenses). |
| Employment start date / employment end date | The person's first and last day at the clinic, which lets a historical log entry be tied to who was on staff at the time. |
| Status (active / inactive) | Active staff appear in pickers; inactive staff are retained for history. |
Position, and why it is separate from Clinical Position
The Position field records how the clinic classifies this staff record. It offers seven values: Practice manager, Veterinarian, Prescribing veterinarian, Veterinary technician, Veterinary assistant, Receptionist, and Other. Choosing Other requires a job title, so the record still says what the person does.
Veterinary technician and veterinary assistant are separate values on purpose. Training is assigned by position, so a clinic that cannot tell the two apart cannot give a credentialed technician different training from an office assistant.
Two of the values are tied to the prescriber switch, and the form keeps them consistent:
- Prescribing veterinarian requires the DEA prescriber switch to be on.
- Veterinarian requires it to be off.
ℹ️ Position here and Clinical Position on the Members page are two different fields, and they are meant to be. Clinical Position (Settings, Members) is what a person states about themselves on their own membership. Position here is how the clinic classifies their Staff Log record for training and reporting. They usually agree, and CS Logbook does not force them to. Changing one does not change the other, so correct each one where it lives: Clinical Position on the Members page, Position on this form.
ℹ️ Older records may show a position the form no longer offers (Technician / assistant, Practice manager, or Clinic admin, each marked legacy). Those records stay editable: you can change a name or a date without touching the position. When you do change the position, pick one of the seven current values. A new staff member can only be created with a current value.
A Staff Log entry can exist without a login: historical staff, or active staff
who never sign in to the app. (clinic_staff.user_id is nullable.) These roster-only
staff still appear on the Staff Identification Log report,
so your compliance roster is complete even for people who never open the app.
ℹ️ Saving without an employment start date. The start date is optional. If you leave it blank, CS Logbook shows an amber note: "No start date recorded. Your Clinic Staff Log won't show when this person's initials became valid on a controlled-substance record. You can save without it." This is a soft alert only; it never blocks saving (per the CS Logbook compliance philosophy, ADR-006). Add the date later from the same form whenever you have it.
Walkthrough: deactivate vs. delete
There is no delete. To retire a staff member, open the row menu
(clinic-staff-row-menu-<id>) → Set Inactive (clinic-staff-deactivate-<id>).
This sets status = inactive; their history and every record they touched are preserved.
Set Active (clinic-staff-reactivate-<id>) reverses it.
⚠️ Deactivating is NOT the same as recording a last day. Deactivating stamps an internal system date that CS Logbook manages and overwrites on the next status change; it is not your record of when the person stopped working here. If you want the Clinic Staff Log to show when to stop honoring someone's initials, type their last day into the "Employment end date" field on the staff form. The two are deliberately separate: a value you type is yours and is never overwritten by a status change.
Hard deletion is blocked at the database (clinic_staff_delete_blocked RLS policy);
deleting a staff row would orphan the controlled-substance records that reference it,
which DEA record-retention rules forbid.
When the clinic's subscription is not active
While a subscription is past due, unpaid, paused, or canceled within the last 90 days, the Staff page stays available for offboarding: you can record an employment end date and deactivate a staff member. Adding staff, editing other details, reactivating someone and changing prescriber status resume when the clinic resubscribes. A notice at the top of the page says so. More than 90 days after cancellation the Staff page closes with the rest of the clinic's records; you can still remove a person's login from Settings → Members.
Staff Log vs. app members (two separate things)
Staff Log (clinic_staff) |
Members (accounts_memberships) |
|
|---|---|---|
| What it is | Compliance roster of CS handlers | App login seats |
| Counts toward the plan user limit? | No | Yes (maxUsers) |
| How someone leaves | Set inactive (never deleted) | Remove (revokes login, frees a seat) |
| Managed on | this Staff page | Settings → Members |
A person who both handles controlled substances and logs in has a row in both. Deactivating them on the Staff page should also remove their membership so the login seat is freed; reactivation re-invites them.
Related
- Settings → Members: app login seats + roles
- Compliance Requirements §11.1.3: the Staff Log requirement
- ADR-016: the
clinic_staffclinical-actor model (identity independent ofauth.users) - Licenses: DEA/state license tracking for prescribers