Skip to main content

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.

The Time Off page at /pm/time-off displays all provider time-off requests for the current organization and supports submitting new requests, and approving or denying pending requests for users with the appropriate permission.

Overview

The Time Off page fetches records from pm_provider_time_off scoped to the current organization, ordered by start date descending. Each card shows the time-off type label, status badge, date range, and optional reason text. Submitting a request publishes a pm_time_off_requested domain event; approving publishes pm_time_off_approved; denying publishes pm_time_off_denied. Approve and deny actions are only visible on pending requests and only to users with the pm.time_off.approve permission.

Who it’s for

Requires permission pm.time_off.view (PM_PERMISSIONS.TIME_OFF_VIEW) to access the route. Submitting new requests additionally requires pm.time_off.create (PM_PERMISSIONS.TIME_OFF_CREATE). Approving or denying pending requests requires pm.time_off.approve (PM_PERMISSIONS.TIME_OFF_APPROVE).

Before you start

  • You must hold the pm.time_off.view permission.
  • To submit a request, you must also hold pm.time_off.create and be authenticated (a provider_id derived from the current user is attached to the request).

Steps

1

Navigate to Time Off

Go to /pm/time-off. The page loads and displays all time-off records for the organization.
2

Submit a time-off request

Click “Request Time Off” (requires pm.time_off.create). The TimeOffRequestDialog opens. Fill in start date, end date, type, and optional reason, then submit. The request is saved with status pending and a pm_time_off_requested event is published.
3

Approve or deny a pending request

On any card with status “Pending”, users holding pm.time_off.approve see “Approve” and “Deny” buttons. Clicking “Approve” sets the status to approved and publishes pm_time_off_approved. Clicking “Deny” sets the status to denied and publishes pm_time_off_denied.

Key concepts

Observable types from the code: vacation (Vacation), sick (Sick Leave), personal (Personal), continuing_education (Continuing Education), conference (Conference), other (Other).
pending (Pending — outline badge), approved (Approved — default badge), denied (Denied — destructive badge), cancelled (Cancelled — secondary badge).
When no records exist, an EmptyState component with the message “No time-off requests — Submit a time-off request to get started.” is shown, with an inline “Request Time Off” action link.
If the query fails, an EmptyState component with the title “Unable to load time-off requests” and description “Please try again later.” is rendered instead of the list.

Practice Management

Overview of the Practice Management core.

Governance & parity

Documentation coverage and governance.
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.
  • src/routes/pm.tsx
  • src/cores/pm/pages/TimeOffPage.tsx
  • src/cores/pm/hooks/useProviderTimeOffList.ts
  • src/cores/pm/hooks/useProviderTimeOffMutation.ts
  • src/platform/permissions/constants.ts