/rh/outcomes/assessments lists all outcome assessments for the current organization, allows filtering by status and type, and provides entry points to create new assessments, manage outcome checkpoints, and record individual measurements.
Overview
The page loads assessments viauseOutcomeAssessments filtered by organization_id. Active checkpoints are loaded in parallel via useOutcomeCheckpoints with isActive: true. The filter bar provides a text search (matching against notes and assessment id) plus status and type dropdowns. Status options are pending, in_progress, completed, and missed. Type options are baseline and follow_up. Below the Assessments card, an Outcome Measurements card shows active checkpoint badges from useOutcomeCheckpoints, a Manage Checkpoints button, a Record Measurement button, and an OutcomeMeasurementsTable. The New Assessment button in the header opens an OutcomeAssessmentDialog. The New Assessment (wizard) route at /rh/outcomes/assessments/new is gated by RH_PERMISSIONS.OUTCOMES_ASSESSMENTS_CREATE.
Who it’s for
No route-levelRequirePermission on /rh/outcomes/assessments beyond the outer RHViewGuard (rh.dashboard.view). The wizard route /rh/outcomes/assessments/new requires RH_PERMISSIONS.OUTCOMES_ASSESSMENTS_CREATE (rh.outcomes.assessments.create).
Before you start
- Hold
rh.dashboard.viewto access the RH module. - Hold
rh.outcomes.assessments.createto use the new-assessment wizard route.
Steps
Open the Assessments list
/rh/outcomes/assessments. The Assessments card shows a count of records matching current filters.Filter assessments
notes or assessment ID. Use the Status dropdown to filter by pending, in_progress, completed, or missed. Use the Type dropdown to filter by baseline or follow_up.Create a new assessment
OutcomeAssessmentDialog opens inline. To use the full wizard, navigate to /rh/outcomes/assessments/new (requires rh.outcomes.assessments.create).Manage checkpoints
OutcomeCheckpointDialog.Record a measurement
OutcomeMeasurementDialog.Open an assessment record
/rh/outcomes/assessments/:id.Key concepts
Empty state
Empty state
Loading state
Loading state
useOutcomeAssessments is fetching, five skeleton rows are shown in the assessments card. Checkpoint badges in the measurements card also show skeleton placeholders.Active checkpoints
Active checkpoints
is_active is true. When none exist, “No active checkpoints configured yet.” is displayed.Viewing an assessment
The Assessment Details screen at/rh/outcomes/assessments/:id displays the full record for one outcome assessment, showing the checkpoint name, assessment type and status, dates, completed-by staff name, notes, linked episode, and individual outcome measurements.
The page reads :id from URL params and loads the assessment via useOutcomeAssessmentDetail. The breadcrumb is set to the checkpoint name (assessment.checkpoint?.checkpoint_name) or “Assessment” as fallback. The header shows an OutcomeAssessmentStatusBadge and an AssessmentTypeBadge. An Edit button is shown when status is not completed; a Complete Assessment button appears when status is in_progress (currently a no-op — see SME note). The Assessment Details card surfaces: Checkpoint, days_post_discharge, Assessment Type, Assessment Date, Completed Date, Completed By staff name, and Status. Notes render when present. The Episode sidebar card shows the Episode ID (first 8 characters) with a View Episode link to /rh/episodes/:id. The Outcome Measurements card renders OutcomeMeasurementsTable filtered by episode_id. An Add Measurement button appears when status is not completed. If the record is missing or errored, “Assessment not found or an error occurred.” is displayed.
No route-level RequirePermission beyond the outer RHViewGuard (rh.dashboard.view). The assessment record must exist; a non-existent :id shows an error card.
Open an assessment record
/rh/outcomes/assessments, click a row to navigate to /rh/outcomes/assessments/:id.Review assessment details
Review notes
assessment.notes is present, it renders below the detail grid.Navigate to the linked episode
/rh/episodes/:id.Record a measurement (when status is not completed)
Edit the assessment (when status is not completed)
/rh/outcomes/assessments/:id/edit.Complete the assessment (when status is in_progress)
Error / not-found state
Error / not-found state
useOutcomeAssessmentDetail returns an error or no data, the page shows “Assessment not found or an error occurred.”Loading state
Loading state
Status-gated actions
Status-gated actions
assessment.status === 'completed'. The Complete Assessment button only appears when assessment.status === 'in_progress'.Creating an assessment
The New Assessment wizard guides users through completing a resident outcome assessment, accessible at/rh/outcomes/assessments/new.
The wizard uses a three-step timeline layout (WizardShell with layout="timeline"). An optional ?episodeId=<uuid> query parameter pre-populates the episode context. An episode ID is enforced at submission time — the form renders but cannot be submitted without one. After clicking Submit assessment, the wizard calls createAssessment and navigates to the new assessment detail page. Exiting at any step navigates to /rh/outcomes/assessments without saving.
This route requires RH_PERMISSIONS.OUTCOMES_ASSESSMENTS_CREATE (rh.outcomes.assessments.create) in addition to the outer rh.dashboard.view guard.
Before you start: hold both rh.dashboard.view and rh.outcomes.assessments.create. An organization context must be active. Navigate from an episode detail page or the Outcome Assessments list to pass the required episodeId query parameter; directly navigating to the URL without an episode ID will allow wizard entry but will block final submission.
Step 1 — Assessment Context
Step 2 — Instrument Sections
Step 3 — Review & Submit
AssessmentReviewSubmitStep screen. Click Submit assessment to finalize. On success a toast confirms submission and the page navigates to the new assessment detail page. On error a sanitized error message appears in a toast.Key concepts
Related
Recovery Housing
Governance & parity
Documentation sources
Documentation sources
- src/routes/rh.tsx
- src/cores/rh/pages/OutcomeAssessmentsPage.tsx
- src/cores/rh/pages/OutcomeAssessmentDetailPage.tsx
- src/cores/rh/pages/OutcomesAssessmentWizardPage.tsx
- src/cores/rh/hooks/useOutcomeAssessments.ts
- src/cores/rh/components/wizards/outcomes-assessment/OutcomesAssessmentWizard.tsx
- src/cores/rh/components/wizards/outcomes-assessment/steps/AssessmentContextStep.tsx
- src/cores/rh/components/wizards/outcomes-assessment/steps/InstrumentSectionsStep.tsx