> ## 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.

# Expiring Assessments

> Dashboard showing assessments expiring within 30, 60, or 90 days, grouped by time window at route /cl/assessments/expiring.

The Expiring Assessments screen (`/cl/assessments/expiring`) shows clinical assessments from the `cl_assessments` table whose `expires_at` date falls within a selected future window.

## Overview

The page renders three tabs — **30 Days**, **60 Days**, and **90 Days** — each backed by `useAssessmentList({ expiresInDays: n })`. Within each tab, a card contains an `ExpiringTable` showing chart number (from the joined `cl_patient_charts` record), assessment type (capitalized, underscores replaced with spaces), current status badge (outline variant), and the formatted expiration date. Records are ordered by `expires_at` ascending so the most-urgent appear first. The hook filters server-side by date range: `expires_at >= now AND expires_at <= now + n days`, and excludes soft-deleted records (`deleted_at IS NULL`).

## Who it's for

Requires permission `cl.assessment.manage`.

## Before you start

* You must hold `cl.assessment.manage`.
* An organization must be selected; the hook returns an empty array without `organization_id`.

## Steps

<Steps>
  <Step title="Open Expiring Assessments">
    Navigate to `/cl/assessments/expiring`. The **30 Days** tab is active by default.
  </Step>

  <Step title="Select a time window">
    Click **30 Days**, **60 Days**, or **90 Days** to switch the expiration window. Each tab queries independently.
  </Step>

  <Step title="Review the expiring assessments table">
    Each row shows the chart number, assessment type, status, and expiration date. Records are sorted with the soonest expiration first.
  </Step>

  <Step title="Act on expiring assessments">
    Navigate to the patient chart to initiate a reassessment or renewal. This dashboard is read-only; no actions are available directly on this screen.
  </Step>
</Steps>

## Key concepts

<AccordionGroup>
  <Accordion title="Empty state">
    When no assessments are expiring within the selected window, the table shows a Clock icon and the message "No assessments expiring within {n} days."
  </Accordion>

  <Accordion title="Error state">
    If the query fails, a sanitized error message is displayed in destructive text color. No retry button is provided on this page.
  </Accordion>

  <Accordion title="Assessment type display">
    The `assessment_type` field value is displayed with underscores replaced by spaces and first letter capitalized (via CSS `capitalize`).
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Clinical" icon="stethoscope" href="/cl/overview">
    Overview of the Clinical core.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index">
    Documentation coverage and governance.
  </Card>
</Columns>

<Note>
  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.
</Note>

<Accordion title="Documentation sources">
  * src/routes/cl.tsx
  * src/cores/cl/pages/AssessmentExpirationDashboardPage.tsx
  * src/cores/cl/hooks/useAssessmentList.ts
</Accordion>
