# Notification Center

The optional `notification_center` module unifies accountable operational alerts and technical monitoring without replacing the clinical critical-result workflow.

## Module pages

The module uses a consistent left navigation and separate pages for Dashboard, Telegram Bot, Staff & Groups, Workflow Rules, System Alerts, Notification History and Settings. The dashboard is summary-only; configuration and operational management are intentionally separated.

## Radiology Operations

New Exam Request, Patient Waiting, Portable Request and Urgent Request are generated from RIS workflow signals. Equipment Down and Shift Handover alerts are entered by authorized staff. Workflow Dashboard cards summarize waiting, in-progress, urgent and unavailable-equipment activity.

## System Monitoring

The dashboard evaluates Server Health, Database, Orthanc/PACS configuration, DICOM reconciliation, Laravel queue failures/backlog, Laravel environment, local backup evidence, security/server failures and audit-log activity. Degraded checks create deduplicated alerts; recovery resolves the active monitor alert while preserving history.

## Governance

- Alerts use Information, Warning, Urgent or Critical severity and New, Assigned, Acknowledged or Resolved status.
- Every transition requires an action note and creates an append-only history event.
- Category generation and Telegram severity routing are configurable; disabling a category preserves existing records.
- Telegram routing requires both optional modules, an assigned staff member with a verified Telegram link, and an enabled severity. Telegram contains operationally safe text only.
- Patient identifiers and clinical content are excluded from general Notification Center and Telegram metadata.
- Production must run Laravel's scheduler and queue workers under a process supervisor. The scheduled `notification-center:collect` command refreshes monitoring every five minutes; the dashboard also performs an on-demand collection for authorized technical staff.
- Provider calls are isolated behind `NotificationProvider`, `NotificationManager`, `TelegramProvider` and `TelegramClient`. Workflow and system services do not depend directly on Telegram, allowing future providers without changing business rules.
