Skip to main content
The Programs screen is at /rh/programs and renders the ProgramsPage component. It lists all programs belonging to the current organization from the rh_programs table and exposes a search filter and an inline dialog to create new programs.

Overview

The page loads all programs for the current organization via usePrograms. Results include a derived total_phases count. A search box filters programs by name or description. The ProgramsTable renders the filtered list; the ProgramDialog (opened by “Add Program”) allows inline program creation.

Who it’s for

The outer RHViewGuard requires RH_PERMISSIONS.DASHBOARD_VIEW (rh.dashboard.view). The /rh/programs list route carries no additional permission gate beyond the guard. The /rh/programs/new wizard route (separate from this screen) requires RH_PERMISSIONS.PROGRAMS_ADMIN (rh.programs.admin).

Before you start

  • Hold the rh.dashboard.view permission to access any RH route.

Steps

1

Navigate to Programs

Go to /rh/programs. The page loads and the ProgramsTable displays all programs for the current organization.
2

Search programs (optional)

Type in the search box. The list filters in real time by program name or description.
3

Open a program record

Click a row in the table. The browser navigates to /rh/programs/:id to show the Program Details screen.
4

Add a new program (optional)

Click “Add Program”. The ProgramDialog opens inline. Fill in the required fields and submit to create the program.

Key concepts

Viewing a program

The Program Details screen is at /rh/programs/:id and renders the ProgramDetailPage component. It surfaces a single program record from the rh_programs table together with its associated rh_program_phases, rh_phase_privileges, and rh_phase_milestones records. The page loads a program by its UUID path parameter using the useProgramDetail hook, which queries rh_programs (joined to phases, privileges, and milestones) scoped to the current organization. A guided tour (phaseManagementTour) can be launched via the Help button. Summary cards show Program Type, Duration (days), and Capacity. If program_rules is populated, a dedicated card displays the rules text. The PhasesAccordion component renders each phase with its privileges and milestones. The outer RHViewGuard requires rh.dashboard.view; no additional gate exists on this route. A program record with the target ID must exist and belong to the current organization.
1

Navigate to the Programs list

Go to /rh/programs. All programs for the current organization are listed in the ProgramsTable.
2

Open a program record

Click a row in the Programs table. The browser navigates to /rh/programs/:id and the page loads program details.
3

Review summary cards

The three summary cards show the program type, baseline duration in days, and capacity limit (or “Unlimited” when capacity_limit is null).
4

Review program rules (if present)

If program_rules is populated, the Program Rules card displays the free-text content.
5

Inspect phases

The Phases card renders the PhasesAccordion. Expand each phase to view its privileges and milestones.
6

Launch the guided tour (optional)

Click the Help button to start the phaseManagementTour guided tour overlay.

Key concepts

Creating a program

The New Program wizard guides users through creating a new Recovery Housing program structure, accessible at /rh/programs/new. The wizard uses a five-step timeline layout (WizardShell with layout="timeline"). After clicking Create program, the wizard calls createProgram and navigates to the new program’s detail page. Exiting at any step navigates to /rh/programs without saving. The program is saved with status: 'active' immediately on submission. This route requires RH_PERMISSIONS.PROGRAMS_ADMIN (rh.programs.admin) in addition to the outer rh.dashboard.view guard. Before you start: hold both rh.dashboard.view and rh.programs.admin. Review the planned phase structure before starting — phase definitions cannot be reordered in this wizard.
1

Step 1 — Program Identity

Enter the Program Name (required) and an optional Description. Set the Default Duration in days (required; default 120, minimum 1, maximum 730). Select the Program Type: Standard (structured 120-day program with phases), Specialized (custom phase structure for specific populations), or Transitional (short-term bridge program). All three required fields are validated on Next.
2

Step 2 — Phase Ladder

Define the ordered phase sequence. The wizard pre-populates four default phases: Phase 1 — Stabilization (30 days, required), Phase 2 — Integration (60 days, required), Phase 3 — Transition (30 days, required), and Extension (30 days, optional). For each phase, edit the Phase Label and Duration (days). At least one phase is required; each phase must have a duration of at least 1 day. Validation runs on Next.
3

Step 3 — Milestones & Privileges

Optionally add named milestones, assign them to phases, and mark them as required. Set the Visitor Policy (default: limited) and Pass Eligibility (default: none). No validation gate on this step.
4

Step 4 — Progression Rules

Set Progression Type (default: automatic), toggle Allow Regression (default: off), Require Approval for Extension (default: on), and Require Manager Approval for Advance (default: off). No validation gate on this step.
5

Step 5 — Review & Activate

Review a summary of identity, phases, milestones, and progression settings on the ReviewActivateStep screen. Click Create program to submit. On success a toast confirms creation and the page navigates to the new program detail. On error a sanitized error message appears in a toast.

Key concepts

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/ProgramsPage.tsx
  • src/cores/rh/pages/ProgramDetailPage.tsx
  • src/cores/rh/pages/ProgramCreationWizardPage.tsx
  • src/cores/rh/hooks/usePrograms.ts
  • src/cores/rh/hooks/useProgramDetail.ts
  • src/cores/rh/components/PhasesAccordion.tsx
  • src/cores/rh/components/wizards/program-creation/ProgramCreationWizard.tsx
  • src/cores/rh/components/wizards/program-creation/steps/ProgramIdentityStep.tsx
  • src/cores/rh/components/wizards/program-creation/steps/PhaseLadderStep.tsx