The Time Off page atDocumentation Index
Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
Use this file to discover all available pages before exploring further.
/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 frompm_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 permissionpm.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.viewpermission. - To submit a request, you must also hold
pm.time_off.createand be authenticated (aprovider_idderived from the current user is attached to the request).
Steps
Navigate to Time Off
Go to
/pm/time-off. The page loads and displays all time-off records for the organization.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.Key concepts
Time-off types
Time-off types
Observable types from the code:
vacation (Vacation), sick (Sick Leave), personal (Personal), continuing_education (Continuing Education), conference (Conference), other (Other).Status values
Status values
pending (Pending — outline badge), approved (Approved — default badge), denied (Denied — destructive badge), cancelled (Cancelled — secondary badge).Empty state
Empty state
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.Error state
Error state
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.Related
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.
Documentation sources
Documentation sources
- 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