Zdrovia uses a persistent left sidebar for navigation. This page is a complete reference of all routes, sections, and their purposes.
:::info The sidebar appears after onboarding On a brand-new organization the sidebar stays hidden until organization onboarding is complete, so a half-configured clinic isn’t offered pages that cannot work yet. Onboarding saves per step, so you can stop and come back.
If your account belongs to exactly one organization, Zdrovia selects it on sign-in rather than making you pick from a list. :::
Sidebar Sections
The sidebar is grouped into four sections, plus a footer.
Main Menu
Day-to-day work — the pages a clinic touches every shift.
| Sidebar Item | Route | Description |
|---|---|---|
| Patients | /dashboard |
Browse, search, and manage all patient records |
| Schedule | /dashboard/schedule |
Calendar view of all appointments |
| Messages | /dashboard/messages |
Secure patient inbox — carries an unread badge |
| Invoices | /dashboard/invoices |
Billing, payments, and outstanding balances |
| Inventory | /dashboard/inventory |
Products, stock levels, and dispensing |
| Storefront | /dashboard/storefront |
What the clinic sells online |
| Promotions | /dashboard/promotions |
Codes, private links, and automatic offers |
| Analytics | /dashboard/analytics |
Clinic statistics and revenue reports |
| Reviews | /dashboard/reviews |
Ratings and comments patients left after visits |
Messages sits above Invoices deliberately: it is a queue with people waiting on the other end, not a ledger that keeps.
Clinical Tools
What the clinic offers, and the documents behind it.
| Sidebar Item | Route | Description |
|---|---|---|
| Services | /dashboard/services |
The service catalogue patients can book |
| Packages | /dashboard/packages |
Session bundles and gift cards |
| Chart Templates | /dashboard/journal |
Reusable clinical note templates |
| Patient Instructions | /dashboard/patient-instructions |
Pre and post-appointment instructions |
| Smart Blocks | /dashboard/smart-blocks |
Clinic-authored structured chart blocks |
Clinic Operations
Running the practice.
| Sidebar Item | Route | Description |
|---|---|---|
| Staff | /dashboard/staff |
Practitioners, accounts, and terminal PINs |
| Rooms | /dashboard/rooms |
Treatment room definitions and calendar colours |
| Graphs | /dashboard/graphs |
Saved graph definitions over clinical data |
| Forms | /dashboard/forms |
Custom form builder and form library |
| Form Reviews | /dashboard/form-reviews |
Submissions gating a product purchase |
| Insurance | /dashboard/insurance |
Providers and the claims queue |
| Files | /dashboard/media |
Clinic-wide media library |
| Commissions | /dashboard/commissions |
Staff commissions and the rules behind them |
| Tips | /dashboard/tips |
Tips collected, allocated, and paid out |
Settings
| Sidebar Item | Route | Description |
|---|---|---|
| Organization | /dashboard/account/organizations |
Members, invitations, and clinic settings |
| Tax Settings | /dashboard/tax-settings |
How sales tax is charged |
| Org Profile | /dashboard/org-profile |
The clinic’s public profile and booking page |
| Account Settings | /dashboard/account/settings |
Personal profile, password, preferences |
Footer
| Item | Route | Description |
|---|---|---|
| Payments | /dashboard/connect |
Payment account, payouts, documents, tax |
| Help | This help centre | Documentation and support |
| Account menu | — | Your profile, organization switcher, sign out |
Active patient strip
When forms are queued for a patient, a strip at the bottom of the sidebar shows who the active patient is, so a queue in progress is never invisible. Clearing the queue clears the strip.
Full Route Reference
Patients & Clinical
| Route | Page | Description |
|---|---|---|
/dashboard |
Patient List | Search, filter, and manage all patients |
/dashboard/patient/:id |
Patient Profile | Header plus an arrangeable dashboard of cards |
/dashboard/treatments |
Service Lines | The records visits, charts and forms hang off |
/dashboard/treatment/:id |
Patient Record | Clinical workspace: charts, visits, forms, files |
/dashboard/journal |
Chart Templates | List of all chart/note templates |
/dashboard/journal/:id |
Template Editor | Rich text editor for a specific template |
/dashboard/patient-instructions |
Patient Instructions | Reusable pre/post instruction documents |
/dashboard/patient-instructions/:id |
Instruction Editor | Edit one instruction |
/dashboard/smart-blocks |
Smart Blocks | Clinic-authored block definitions |
/dashboard/smart-blocks/:id |
Block Editor | Field editor with live preview |
/dashboard/graphs |
Graphs | Saved graph definitions |
/dashboard/graphs/:id |
Graph | One saved graph |
/dashboard/annotate |
Annotate | Drawing and markup over a file |
Scheduling
| Route | Page | Description |
|---|---|---|
/dashboard/schedule |
Calendar | Day, week, and month views, waitlist, working hours |
Commerce & Billing
| Route | Page | Description |
|---|---|---|
/dashboard/invoices |
Invoice List | All invoices with filtering, search, and metrics |
/dashboard/inventory |
Inventory | Product list, stock levels, reorder management |
/dashboard/storefront |
Storefront | Products listed for online sale |
/dashboard/packages |
Packages | Session bundles and gift cards |
/dashboard/promotions |
Promotions | Discounts, codes, and private links |
/dashboard/insurance |
Insurance | Claims queue and providers |
/dashboard/commissions |
Commissions | Earned commission and rules |
/dashboard/tips |
Tips | Tips collected and distributed |
/dashboard/connect |
Payments | Settings, payments, payouts, documents, tax |
/dashboard/connect-onboard |
Payment Onboarding | First-time payment account setup |
/dashboard/tax-settings |
Sales Tax | Tax rates and treatment |
Configuration
| Route | Page | Description |
|---|---|---|
/dashboard/services |
Services | Service catalogue, grouped by service line |
/dashboard/rooms |
Rooms | Treatment room management |
/dashboard/staff |
Staff | Practitioners and their accounts |
/dashboard/forms |
Forms Library | List of all custom forms |
/dashboard/forms/:id |
Form Editor | Drag-and-drop form builder |
/dashboard/form-reviews |
Form Reviews | Approve, reject, or invalidate gating submissions |
/dashboard/media |
Files | Clinic-wide media library |
/dashboard/org-profile |
Org Profile | Public clinic profile |
/dashboard/account/:view |
Account | Settings, organizations, security |
/dashboard/new-organization |
New Organization | Create another clinic |
/dashboard/select-organization |
Select Organization | Switch between clinics |
/dashboard/lock |
Terminal Lock | Shared-device lock screen |
Patient-Facing Routes
| Route | Description |
|---|---|
/portal |
Patient portal home |
/portal/login |
Patient sign-in |
/portal/explore |
Clinic directory |
/portal/book |
Self-serve booking |
/portal/book/:slug |
Booking straight into one clinic |
/portal/visits |
The patient’s appointments |
/portal/messages |
Patient side of the secure inbox |
/portal/shop |
The clinic’s storefront, with cart and checkout |
/portal/documents/:id |
A shared document |
/portal/instructions/:id |
A patient instruction |
/portal/journals/:id |
A patient-visible chart |
/portal/organization/:slug |
A clinic’s public profile |
No-Login Routes
These use a short-lived access code rather than a session.
| Route | Description |
|---|---|
/fill |
Form queue on a clinic device |
/kiosk |
Waiting-room device: code, forms, checkout |
/form-handoff |
Hand a form from a clinic screen to the patient’s phone |
/embed/forms/:code |
Chrome-less forms, embedded elsewhere |
/embed/instructions/:id |
An instruction embedded in your own site |
/embed/journals/:id |
A patient-visible chart, embedded |
/shared/chart/:id |
A chart shared by link |
Search — Cmd/Ctrl + K
Press ⌘K (or Ctrl+K) anywhere in the dashboard to open the command dialog. Start typing to jump to a page, or use a prefix to search one kind of record:
| Prefix | Searches |
|---|---|
p: |
Patients — by name or date of birth |
i: |
Inventory — stock items |
t: |
Treatments — service lines |
s: |
Services |
Without a prefix, the dialog offers pages and the prefixes themselves.
Right Panel Tab Reference
Patient Record (/dashboard/treatment/:id)
| Tab | Contents | Context |
|---|---|---|
| Intake | Forms required once for the course of care | Always visible |
| Visit | Visit forms, stock usage, telehealth, visit files | Requires a visit selected |
| Files | Files attached to this record | Always visible |
Patient Profile (/dashboard/patient/:id)
The patient profile is no longer a fixed set of tabs. Below the header, cards sit on a dashboard you arrange yourself — move, resize, remove, and re-add them, across as many tabbed dashboards as you like.
| Card | Contents |
|---|---|
| Timeline | Everything that has happened on this patient’s record |
| Treatments | Their courses of care |
| Charts | Their clinical notes |
| Files | Files on the patient record |
| Packages | Sessions and balance they hold |
| Patient Intake Forms | Clinic-wide required forms and their status |
| Invoices | Their billing history, with checkout |
| Insurance Policies | Policies on file |
See Patients for how to arrange these.
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Open search / command dialog | ⌘K or Ctrl+K |
| Save chart | ⌘S or Ctrl+S (in the chart editor) |
| Insert a smart block | Type / in the chart editor |
| Toggle sidebar | Click the hamburger menu icon |
| Expand chart editor | Click the expand icon in the chart panel header |
Page Layout Patterns
List pages with filter tiles
Most operational pages — Tips, Commissions, Insurance, Packages, Storefront — put a row of tiles above the list. The tiles filter the same list they count, so the number you are looking at is the number you get when you press it.
┌────────────────────────────────────────────┐
│ Page Title + Primary Action Button │
├────────────────────────────────────────────┤
│ [ Tile ] [ Tile ] [ Tile ] [ Tile ] │ ← filter + count
├────────────────────────────────────────────┤
│ Search Bar | Filters | Sort │
├────────────────────────────────────────────┤
│ Item List / Table / Cards │
└────────────────────────────────────────────┘
Detail pages
┌─────────────────────────────────────────────────────┐
│ Page Header / Entity Details │
├─────────────────────────────────┬───────────────────┤
│ Main Content Area │ Right Panel │
│ (charts, record) │ (tabbed) │
└─────────────────────────────────┴───────────────────┘
Editor pages
┌─────────────────────────────────────────────────────┐
│ Editor Header (name, save, actions) │
├──────────────┬──────────────────────────────────────┤
│ Component │ Canvas / Editor Area │
│ Palette │ (drag-drop, rich text, live preview)│
└──────────────┴──────────────────────────────────────┘
Common UI Elements
Status Badges
| Badge | Meaning |
|---|---|
Complete / Incomplete |
Form submission status |
Updated |
Form has a newer revision |
DRAFT / SENT / PAID / OVERDUE |
Invoice status |
Pending / Approved / Paid out / Voided |
Commission status |
Pending / Ready to collect / Appealing / Denied / Paid |
Insurance claim status |
Published / Hidden |
Storefront listing status |
In-Person / Telehealth |
Visit type |
Action Menus
Most list items and cards have a three-dot (⋯) context menu with actions relevant to that item.
Confirmation Dialogs
Destructive actions always confirm first. Where a record has history attached, Zdrovia offers withdraw, deactivate or archive instead of deletion — the record stops being offered while everything already attached to it keeps working.
Empty States
A section with no data yet shows an empty state and a primary action to get started. The wording is specific to the filter you are on: an empty Hidden tile on Storefront says “Everything listed is published”, not “no results”.
