Patients

A complete guide to the Patients module — creating and managing patient profiles, medical history, emergency contacts, full profile view, search, and CSV export.

Written By Dev010

Last updated 19 days ago

The Patients module is the foundation of CareNova. Every clinical workflow — appointments, prescriptions, medical records, invoices — connects back to a patient record. This guide covers everything from creating a patient profile to exporting the full patient list.

Accessing the Module

Sidebar → Patients

Direct URL:

https://yourdomain.com/dashboard/patients

Who can access:

Action

Admin

Doctor

Receptionist

Nurse

View patients

Create patient

Edit patient

Delete patient

Export patients

Patient List

The main patients page shows a paginated, searchable list of all registered patients.

Each row in the list displays:

  • Full name

  • Date of birth and age

  • Phone number

  • Gender

  • Blood group

  • Primary doctor

  • Department

  • Registration date

  • Action buttons (view, edit, delete)

Search and Filters

The search bar filters patients in real time across the following fields:

  • Full name

  • Phone number

  • Email address

Results update as you type. The search is handled server-side — no client-side filtering.

Pagination

The patient list is paginated. Large clinics with thousands of patients will see records split across pages. Navigation controls appear at the bottom of the list.

Bulk Actions

Select multiple patients using the checkboxes on the left of each row to perform bulk actions:

  • Bulk delete — permanently removes selected patient records

Bulk delete shows a confirmation dialog before executing. Deleting a patient also cascades and removes all linked records — appointments, medical records, prescriptions, invoices, and payments. This action cannot be undone.

Creating a Patient

Click the Add Patient button in the top right of the patients list.

Direct URL:

https://yourdomain.com/dashboard/patients/new

Required Fields

Field

Notes

Full Name

Patient's complete legal name

Date of Birth

Used to calculate age automatically

Phone

Primary contact number

Optional Fields

Demographics:

Field

Notes

Email

For appointment reminders and communication

Gender

Free text or select

Blood Group

A+, A-, B+, B-, AB+, AB-, O+, O-

Height

Stored as text (e.g. 175cm or 5'9")

Weight

Stored as text (e.g. 70kg or 154lbs)

Address

Full postal address

Medical Background:

Field

Notes

Medical History

Free text — existing conditions, surgeries, chronic illnesses

Allergies

Free text — medications, foods, environmental

Assignment:

Field

Notes

Primary Doctor

Assign a doctor from the users list

Department

Link patient to a clinic department

Emergency Contact:

Field

Notes

Contact Name

Name of emergency contact person

Contact Phone

Emergency phone number

Relationship

Relationship to patient (e.g. spouse, parent)

Saving the Patient

Click Create Patient to save. The patient is immediately added to the list and assigned a unique UUID. You are redirected to the patient detail page after creation.

Patient Detail Page

Each patient has a dedicated detail page accessible by clicking their name in the list.

Direct URL:

https://yourdomain.com/dashboard/patients/[id]

The detail page shows a complete overview of the patient including:

  • Full demographics and contact information

  • Medical history and allergies

  • Emergency contact details

  • Primary doctor and department assignment

  • Summary counts — total appointments, prescriptions, invoices

From this page you can:

  • Open the Full Profile Sheet

  • Navigate to Edit Patient

  • Access linked records directly

Full Profile Sheet

Clicking View Full Profile on a patient opens a slide-in sheet showing a 360° view of the patient's history across all modules — without leaving the current page.

The Full Profile Sheet contains tabbed sections:

Tab

What It Shows

Overview

Demographics, medical history, allergies, emergency contact

Appointments

All appointments — date, doctor, service, status

Prescriptions

All prescriptions — medication, dosage, doctor, date

Medical Records

Linked visit records

Invoices

All invoices — number, amount, status, date

Test Reports

Lab reports linked to this patient

This sheet is accessible from the patient list row actions and the patient detail page. It is available to all roles that have patients.view permission.

Editing a Patient

Click the Edit button on the patient list row or the patient detail page.

Direct URL:

https://yourdomain.com/dashboard/patients/[id]/edit

All fields from the creation form are editable. Changes are saved immediately on form submission and the patient list is refreshed automatically.

Deleting a Patient

Patients can be deleted from:

  • The action menu on the patient list row

  • The patient detail page (Admin only)

A confirmation dialog appears before deletion.

⚠️ Deleting a patient is permanent and cascades to all linked records:

  • Appointments

  • Medical records, vitals, clinical notes, diagnoses, and attachments

  • Prescriptions

  • Invoices and invoice items

  • Payments

  • Test reports

  • Odontograms

Only Admin accounts can delete patients. This action cannot be undone.

CSV Export

The full patient list can be exported as a CSV file for use in spreadsheets or external systems.

Click the Export button on the patients list page. The export runs server-side and downloads immediately.

The exported CSV includes:

  • Full name

  • Date of birth

  • Phone

  • Email

  • Gender

  • Blood group

  • Address

  • Medical history

  • Allergies

  • Emergency contact details

  • Primary doctor name

  • Department name

  • Registration date

CSV export requires the patients.export permission. By default this is granted to Admin only. Adjust in Dashboard → Permissions if needed.

Patient Database Fields

For developers and admins, here is the complete patients table schema:

Column

Type

Description

id

uuid

Unique patient identifier

full_name

text

Full legal name

date_of_birth

date

Date of birth

phone

text

Primary phone number

email

text

Email address

gender

text

Gender

blood_group

text

Blood type

height

text

Height

weight

text

Weight

address

text

Postal address

medical_history

text

Pre-existing conditions

allergies

text

Known allergies

emergency_contact_name

text

Emergency contact name

emergency_contact_phone

text

Emergency contact phone

emergency_contact_relation

text

Relationship to patient

primary_doctor_id

uuid

FK → users

department_id

uuid

FK → departments

created_at

timestamptz

Registration timestamp

updated_at

timestamptz

Last updated timestamp

Indexes are set on phone and full_name for fast search performance.

Workflow Examples

Register a walk-in patient and book their first appointment:

  1. Sidebar → Patients → Add Patient

  2. Fill in name, date of birth, phone

  3. Assign primary doctor and department

  4. Click Create Patient

  5. From the patient detail page, click Book Appointment

  6. Select service, doctor, date and time

Look up a returning patient quickly:

  1. Sidebar → Patients

  2. Type their name or phone in the search bar

  3. Click their row to open the Full Profile Sheet

  4. Review their appointment and prescription history

Check a patient's outstanding invoices:

  1. Open patient from the list

  2. Click View Full Profile

  3. Navigate to the Invoices tab

  4. Review unpaid invoice amounts

Troubleshooting

Patient does not appear in search after creation:

  • Hard refresh the browser

  • Confirm the patient was saved — check Supabase → Table Editor → patients

  • Search checks name and phone — try searching by phone number if name search returns nothing

Cannot create patients (button missing):

  • Confirm your role has patients.create permission in Dashboard → Permissions

  • Nurses do not have create permission by default

Delete button not visible:

  • Patient deletion is restricted to Admin role only

  • Doctor, Receptionist, and Nurse accounts do not see the delete option

CSV export not downloading:

  • Confirm your account has patients.export permission — Admin only by default

  • Check browser popup/download blocker settings

  • Try a different browser if the download does not start

Next Step

Continue to the Appointments module guide to learn how to schedule, manage, and track patient appointments in CareNova.