> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Practice Management Patient Portal

> Self-service patient portal providing access to appointments, health records, forms, billing, and secure messaging.

The Patient Portal is a self-service area where patients access their appointments, health records, forms, billing, and messages. The route `/pm/portal` redirects to `/portal/dashboard`. Portal sub-routes are under `/portal/*`.

## Overview

The `/pm/portal` route is a `Navigate` redirect to `/portal` (and subsequently `/portal/dashboard`). The portal shell is rendered by `PortalLayout`, which redirects unauthenticated users to `/portal/login`. Navigation items available in the shell (from code) are:

* **Home** (`/portal/dashboard`)
* **Appointments** (`/portal/appointments`)
* **Health Records** (`/portal/clinical`)
* **Forms** (`/portal/forms`)
* **Billing** (`/portal/billing`)
* **Messages** (`/portal/messages`)
* **My Info** (`/portal/demographics`)
* **Security** (`/portal/security`)

Portal clinical sub-pages (`/portal/clinical/screenings`, `/portal/clinical/checkin`, `/portal/clinical/treatment-plan`, `/portal/consents`) are rendered by CL-owned components.

## Who it's for

Access follows your organization's role and module configuration. The portal shell (`PortalLayout`) redirects unauthenticated portal users to `/portal/login`. Staff-facing portal administration requires `pm.portal.manage` (`PM_PERMISSIONS.PORTAL_MANAGE`).

## Before you start

* Portal users must register at `/portal/register` and authenticate at `/portal/login` before accessing the portal.
* Portal features may be organization-configured; not all navigation items may be active for every tenant.

## Steps

<Steps>
  <Step title="Access the portal">
    Navigate to `/portal/login` to sign in, or `/portal/register` to create a portal account.
  </Step>

  <Step title="Review the dashboard">
    After authentication, the portal lands at `/portal/dashboard` showing a summary of upcoming appointments and recent activity.
  </Step>

  <Step title="Navigate to a section">
    Use the bottom navigation bar (mobile) or sidebar (desktop) to access Appointments, Health Records, Forms, Billing, or Messages.
  </Step>

  <Step title="Complete a pre-admission packet (if prompted)">
    If a pre-admission packet is assigned, it is accessible at `/portal/pre-admission/:packetId` via `PortalPreAdmissionWizardPage`.
  </Step>

  <Step title="Manage security settings">
    Access `/portal/security` to manage MFA and portal security settings via `PortalMfaPage`.
  </Step>
</Steps>

## Key concepts

* **Portal layout** — `PortalLayout` enforces portal authentication, redirecting unauthenticated users to `/portal/login`.
* **CL-owned clinical pages** — screenings, check-in, treatment plan, and consents pages are owned by the CL core but rendered within the portal layout.

## Related

<Columns cols={2}>
  <Card title="Practice Management" icon="briefcase" href="/pm/overview">
    Practice Management core overview.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index" />
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/pm.tsx
  * src/cores/pm/pages/portal/PortalLayout.tsx
  * src/cores/pm/pages/portal/PortalDashboardPage.tsx
  * src/cores/pm/pages/portal/PortalLoginPage.tsx
</Accordion>
