Skip to main content
Dashboard & Modules

Patient Portal

Written By Dev010

Last updated About 1 month ago

The CareNova Patient Portal gives each clinic a branded, patient-facing area for appointments, invoices, profile details, and account security.

Enable the portal

The portal has two controls:

  1. Set PATIENT_PORTAL_ENABLED=true, or leave it unset because the portal is enabled by default.

  2. Enable Patient Portal access for the intended clinic in the clinic settings.

If the global value is false, the portal displays the unavailable/coming-soon experience for every clinic.

Open the correct clinic

Use the clinic's public portal link or a URL that includes the clinic/workspace code. Keep that clinic context through signup, confirmation, sign-in, and OAuth so the patient is linked to the intended clinic.

Patients use /portal. Clinic staff and platform administrators must continue using their own sign-in pages.

Patient signup and sign-in

Patients can use:

  • Email and password, with email confirmation when required by Supabase.

  • Google or GitHub when the provider is configured in Supabase.

The production hostname must be allowed in Supabase as:

https://your-domain.com/auth/callback

CareNova does not use /auth/confirm in version 1.2.0.

Profile

The portal profile contains four areas:

  • Personal: name, phone, date of birth, address, and profile photo.

  • Health: patient-provided health information used by the clinic workflow.

  • Emergency: emergency contact name, phone, and relationship.

  • Security: password change and portal login-account deletion.

Deleting the portal account removes the login identity. It does not automatically erase the clinic's clinical patient record. Each deployment must follow its legal and operational retention policy.

Appointments

The patient selects Schedule appointment inside the portal. The request opens in a themed side panel instead of leaving the portal.

The patient selects the service and preferred date, then submits the request. The clinic receives it in the staff dashboard for review and confirmation. Once confirmed, it appears in the patient's appointment list.

A confirmed appointment includes Add to my calendar, which exports the appointment data to the device's native calendar workflow.

Invoices and payments

Patients can view clinic-issued invoices and download a PDF copy. If the clinic enabled bank transfer or Stripe, an unpaid invoice also offers the configured payment option.

Patient-facing bank transfer and Stripe actions use the full current outstanding invoice balance. The portal does not offer subscriptions or partial invoice payments.

Recommended acceptance test

Use a disposable patient account and verify:

  1. Email signup and confirmation.

  2. Each enabled OAuth provider separately.

  3. Personal, health, emergency, and photo updates.

  4. Appointment request and clinic confirmation.

  5. Calendar export.

  6. Invoice display and PDF download.

  7. Bank transfer or Stripe sandbox payment.

  8. Password change.

  9. Account deletion.

Use separate browser profiles or incognito windows when testing patient and staff accounts at the same time.