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 Passes screen lives at /rh/passes and provides a searchable, filterable list of resident pass requests with the ability to create new pass requests.

Overview

The page renders a header with a “New Pass Request” button, a freetext search input, and two select dropdowns for filtering by Status and Type. Pass status and type options are loaded dynamically from the picklists pass_status and pass_type via usePicklistItems. The PassesTable component renders the filtered list. Clicking “New Pass Request” opens the PassDialog modal, which renders PassForm. The form requires an active episode (status admitted), a pass type, start and end datetimes, a destination (minimum 3 characters), and a purpose (minimum 10 characters). Contact person and contact phone are optional. Phase eligibility is checked via usePassEligibility for the selected episode; if the episode is ineligible, the form shows a destructive alert and disables submission.

Who it’s for

Requires RH_PERMISSIONS.DASHBOARD_VIEW (rh.dashboard.view) via the parent RHViewGuard. No additional permission gate is on this route in rh.tsx.

Before you start

Hold the rh.dashboard.view permission. At least one resident episode with status admitted must exist to create a new pass request.

Steps

1

Navigate to Passes

Go to /rh/passes.
2

Filter the list

Use the search box to search by text. Use the Status dropdown to filter by pass status and the Type dropdown to filter by pass type.
3

Open New Pass Request

Click the “New Pass Request” accent button in the header.
4

Select a resident episode

Choose an admitted episode from the “Resident Episode” dropdown. The form checks eligibility and shows the current phase and allowed pass types.
5

Complete the form

Select a pass type (only allowed types are enabled), enter start and end datetimes, destination, and purpose. Optionally add contact person and phone.
6

Submit the request

Click “Request Pass”. The form is disabled if the episode is ineligible or if required fields are missing.

Key concepts

When an episode is selected in the form, usePassEligibility returns eligible (boolean), currentPhase (string), allowedTypes (array of pass type values), and reason (shown when ineligible). The form blocks submission when eligible is false.
The form maps internal pass type codes to labels: day_pass → “Day Pass”, overnight_pass → “Overnight Pass”, job_interview → “Job Interview”, housing_search → “Housing Search”, other → “Other”.

Recovery Housing

Recovery Housing references and overview.

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/rh.tsx
  • src/cores/rh/pages/PassesPage.tsx
  • src/cores/rh/components/forms/PassDialog.tsx
  • src/cores/rh/components/forms/PassForm.tsx