PetDentX Docs

Clinic

The complete A-to-Z workflow for clinic staff — patients, appointments, clinical records, ordering lab work, billing, and procurement.

Before this page, make sure you've read Getting Started — creating your account, signing in, and setting up staff/roles/branches works the same for every workspace type. This page covers everything specific to running a Clinic.

Overview

A Clinic workspace revolves around the Patient record — every appointment, visit note, treatment plan, odontogram, prescription, lab case, and invoice hangs off a patient. The typical day-to-day flow is:

Patients

/patients is your patient directory.

  • Add Patient opens a dialog, not a separate page: First name, Last name, and Phone are required; Date of birth and Gender (Male/Female/Other) are optional. Saving takes you straight to the new patient's profile.
  • The list has stat tiles (Total, Active, Male, Female), a search box, and filters for Gender and Status (Active/Inactive/Suspended).
  • Editing a patient (pencil icon, or the Edit button on their profile) adds a Status field and, on the full profile editor, an Address section (house/street number plus a Cambodia province/district/commune cascading select).

The patient profile — your hub

Every patient's page (/patients/[id]) has a profile card up top, then five tabs that pull together everything about that person:

TabShows
AppointmentsDate, Type, Doctor, Status
Visit RecordsVisit Date, Chief Complaint, Diagnosis
Treatment PlansPlan #, Date, Status, Est. Total — click through to the plan
InvoicesNumber, Date, Status, Total — click through to the invoice
OdontogramsChart Date, Notes — "View" link to the chart

You don't create records from inside these tabs — you create an appointment, medical record, plan, odontogram, or invoice from its own module (below) and pick the patient there; the profile just collects everything afterward.

Appointments

/appointments has a List and Calendar toggle.

  • Calendar view — a month grid; each day shows up to 3 appointment chips (time · patient name, colored by status). Click an empty future day to book at that date; click a chip to edit it.
  • List view — search by patient/doctor, filter by Doctor, Date range (Today/This week/This month), and Status. You can change an appointment's status directly from an inline dropdown in the row, no need to open it.

Book appointment: Patient* and Doctor* are required selects (you're pre-selected as the doctor if you are one on that branch); Date* can't be in the past; Time defaults to 09:00; Type defaults to Consultation. Editing an existing appointment adds Duration (minutes), clinical Notes, and an optional Follow-up Date, plus a destructive Delete action (cancels the appointment).

Appointment types: Consultation, Dental Exam, Follow Up, Procedure, Checkup, Emergency.

Appointment statuses: Scheduled → Confirmed → In Progress → Completed, or Cancelled / No Show at any point. Status can be changed freely from the list.

Clinical Records

Medical Records (visit notes)

/medical-records/new — one form, three cards: Record Information (Patient*, Attending Doctor, Chief Complaint), Vital Signs (Temperature °C, Blood Pressure, Heart Rate bpm, Weight kg, Height cm — all optional free text), and Clinical Notes (a single notes textarea). There's no status — a visit record is just documentation. On the record's own page, every field stays directly editable (no separate edit mode) — change something and click Save Record.

Treatment Plans

/treatment-plans/new captures Patient*, Attending Doctor, Plan Date (defaults today), Chief Complaint, Exam Findings, and Notes; new plans start at status Draft.

Statuses: Draft → Active → In Progress → Completed, or Cancelled — changeable at any time from the list, there's no enforced order.

Once a plan exists, its detail page is where the actual clinical content lives, in two independently managed tables:

  • Diagnoses — Description* and an ICD-style Code (e.g. K02.1), typed as Primary / Secondary / Complication.
  • Treatment Items — Description*, Tooth # (free text, e.g. 11,12), Qty, Unit Price, and Notes — these roll up into the plan's Estimated Total.

Odontograms (tooth chart)

/odontograms/new — pick a Patient*, a Chart Date, a Dentist, and optionally link an existing Treatment Plan. The chart uses the Universal Numbering System (teeth 1–32), drawn as an upper arch (1–16) and lower arch (32→17).

Click a tooth to select it — a detail panel opens below with:

  • Condition — one click sets the tooth's status: Healthy, Decayed, Filled, Crowned, Extracted, Missing, Implant, Bridge Abutment, Bridge Pontic, Root Canal, Fractured, Veneer (each has its own color on the chart, with a legend underneath).
  • Affected Surfaces — toggle any of Mesial / Distal / Occlusal / Buccal / Lingual (hidden once a tooth is marked Extracted or Missing).
  • Tooth Notes — free text for that specific tooth.

Below the chart: Periodontal / Gum Health notes and General Chart Notes. Like medical records, the chart stays editable in place — Save Chart to persist.

Prescriptions

/prescriptions/new — Patient*, Prescribing Doctor, Prescription Date, Status (defaults Active), and Notes, then a repeatable Medications list (at least one required):

  • Drug Name* (e.g. "Amoxicillin"), Dosage (e.g. "500mg"), Form (Tablet, Capsule, Liquid, Injection, Topical, Inhaler, Drops, Patch, Suppository, Other), Quantity, Frequency, Duration, Instructions.

Statuses: Active, Completed, On Hold, Cancelled — changeable any time. The prescription's own page has a Print button (opens a printable view) and lets you add/remove medications after creation.

Ordering Lab Work

When a patient needs lab-fabricated work (crowns, dentures, diagnostic tests), send a case to a connected Laboratory branch via /lab-orders — labeled "Lab Cases" in the sidebar.

Creating a case (/lab-orders/new)

  1. Dates & parties — Sent Date* (defaults today), optional Expected Date, Priority (Normal or Urgent), then Laboratory* (pick any connected lab branch), Doctor* (Dr. First Last), Patient*.
  2. Dental Units — an interactive FDI-numbered tooth chart (18↔28 upper, 48↔38 lower); click teeth to select them. Delivery Type: Link (Bridge), Individual, or Cement Implant Crown.
  3. Services per Dental Unit — once you've picked a lab and at least one tooth, a tab appears per selected tooth showing that lab's service catalog (grouped by category) as checkboxes — each tooth can have its own independent set of requested services.
  4. Resend / remake — tick "This is a resend / remake" to flag rework; pick a Reason (Margin, Shade, Fit, Broken, Design Error, Other) and optionally link back to the Original Case.
  5. Doctor Note — free text for special instructions. (Signature capture is available once the case exists, on its detail page — not on this creation form.)

Click Create Lab Case — you land on the case's detail page.

Case statuses

StatusMeaning
DraftNot yet sent to the lab
SubmittedSent — the lab is notified
ReceivedLab has acknowledged intake
ProcessingLab is actively working the case
CompletedFinished — the lab notifies you, and if the case is linked to a patient record, a visit record documenting the lab result is created automatically
CancelledCancelled — both sides are notified

Once a case is Submitted, the Laboratory/Doctor/Patient fields lock — you can't change who the case is for after it's in flight. Once Completed or Cancelled, the whole case becomes read-only (only Print still works).

While a case is in flight

  • Signature — from the case detail page, capture a signature by drawing on a canvas pad or uploading a PNG/JPG.
  • Print — if the case has more than one tooth, you'll be asked which tooth's slip to print (each lab print is one tooth per page); with a single tooth it prints immediately.
  • Change status from the dropdown next to the order number, or inline from the list.

Billing Patients

/invoices shows two tabs for a clinic: Patient (your invoices to patients — this section) and Business (B2B invoices you've received from labs/suppliers — read-only from here).

Creating an invoice (/invoices/new)

  • Patient — optional (walk-in/anonymous invoices are allowed).
  • Due Date, Tax Rate (%), Discount (none / fixed amount / percentage), Notes.
  • Line Items — add rows picking a Product or Service from your catalog (or a free-text custom line); products show live stock right in the dropdown. Each row has Qty, Unit Price, and a per-line Discount.
  • Totals compute live: Subtotal → Discount → Tax → Total.

If a line requests more of a product than you have in stock, a Stock Warning dialog lists every short/out-of-stock item and requires you to confirm before the invoice is created.

Statuses: Draft, Sent, Paid, Overdue, Cancelled. The invoice's own page is a read-only summary with a Print button that renders a bilingual (Khmer/English) formatted invoice — logo, bank account/QR payment details if configured in Settings, and signature lines.

Procurement

Clinics buy supplies from a connected Supplier through a genuine two-step flow: a Purchase Order you send, and a Goods Receipt you record when stock physically arrives. They are tracked independently — a receipt isn't generated automatically from a PO's line items, you re-enter what you actually received.

Purchase Orders (/purchase-orders)

Pick a Supplier* branch, optional Expected Delivery date, Currency, Notes, then add line items from that supplier's product catalog (product, qty, unit price).

Status flow: Draft → Submitted → Acknowledged → Processing → Shipped → Delivered, or Cancelled. From the clinic side you can:

  • Send to Supplier (Draft → Submitted)
  • Cancel (only while Draft or Submitted)
  • Confirm Delivery (Shipped → Delivered) — the final step is yours; everything in between (Acknowledged/Processing/Shipped) is driven by the supplier.

Goods Receipts (/purchases)

Recording what actually arrived: Supplier Name (free text), Date, Reference/Invoice #, Notes, and line items (product, qty, unit cost) from your own catalog.

New receipts start as Draft. Click Confirm Receipt to finalize it — this is the step that actually updates your inventory stock levels. Once confirmed, the receipt is locked (or Void it instead if it was entered in error).

Reports

The Reports section (sidebar) covers Income, Invoice, Service, Lab Order, and Purchase reports — every one has a date-range filter, stat cards, a chart, a detail table, and CSV/XLSX export.

On this page