The Vantrexia dashboard is the central command center for your remote patient monitoring operation. It provides a unified view of system health, patient vital signs, clinical KPIs, and operational metrics — all updating in real time without requiring a page refresh.

Role-Based Access

The dashboard automatically adapts its layout and visible data based on the logged-in user's role. Administrators see the full system view, while clinicians, staff, and billing users see role-appropriate sections. See Role-Based Views below for details.

System Health Cards

The top of the dashboard displays four system health indicator cards that provide instant visibility into the operational status of core platform services. Each card shows a status badge, response latency, and last-check timestamp.

Service What It Monitors Healthy Threshold Check Frequency
Database PostgreSQL connection pool, query latency, replication lag Response < 100ms Every 10 seconds
eClinicalWorks FHIR API connectivity, JWT token validity, sync status Response < 2000ms Every 10 seconds
Celery Worker availability, queue depth, task success rate Workers > 0, Queue < 100 Every 10 seconds
FHIR Engine FHIR R4 resource validation, serialization performance Response < 500ms Every 10 seconds

Each card uses a three-state color system:

  • Healthy — Service responding within acceptable thresholds
  • Degraded — Service responding but with elevated latency or partial errors
  • Down — Service unreachable or returning persistent errors
API Endpoint

System health data is also available programmatically at GET /health/. This endpoint does not require authentication and can be used by external monitoring tools like Datadog or PagerDuty.

Real-Time KPIs

Below the health cards, the dashboard displays key performance indicators that summarize the current state of your RPM program. These metrics update every 30 seconds via WebSocket or polling fallback.

KPI Description Calculation
Patients Monitored Active patients with at least one connected device Count of patients with active=True and device_count > 0
Vital Alerts Unacknowledged alerts from threshold breaches Count of alerts where acknowledged=False
Transmission Rate Percentage of expected daily device transmissions received (received_today / expected_today) × 100
Compliance Rate Patients meeting the 16-day/month transmission requirement for CPT 99454 (compliant_patients / total_active) × 100
Avg Processing Time Mean time from device reading receipt to database storage Rolling 1-hour average of observation processing latency
Monthly Revenue Total billable amount for the current calendar month Sum of all billing records with service_date in current month
API Response — Dashboard Stats
GET /api/v1/dashboard/stats/

{
  "patients_monitored": 847,
  "vital_alerts": 12,
  "transmission_rate": 94.2,
  "compliance_rate": 87.5,
  "avg_processing_time_ms": 145,
  "monthly_revenue": 38420.50,
  "last_updated": "2026-02-06T14:30:00Z"
}

Quick Actions Panel

The quick actions panel provides one-click access to the most frequently used operations. Actions adapt based on the user's role and current system state.

Action Description Available To
Add Patient Opens the patient creation form with FHIR-compliant fields Admin, Clinician, Staff
Import from eCW Triggers a sync with eClinicalWorks to import or update patient records Admin, Staff
View Triage Queue Navigates to the triage dashboard filtered to critical and warning patients Admin, Clinician
Run Billing Manually triggers the smart billing engine (normally automatic every 4 hours) Admin, Billing
Export Reports Opens the report generation interface for CSV/PDF export Admin, Billing
System Settings Quick link to platform configuration (thresholds, integrations, users) Admin

Activity Feed

The activity feed displays a chronological stream of platform events, giving clinical and administrative staff visibility into what is happening across the system. Events are filtered by relevance to the user's role.

The feed includes the following event types:

  • Patient Events: New patient enrolled, patient imported from eCW, patient archived
  • Clinical Events: Vital alert triggered, alert acknowledged, escalation created, threshold changed
  • Billing Events: Claim generated, claim submitted, claim paid, claim denied
  • System Events: eCW sync completed, billing engine run completed, system health change
  • User Events: User login, role change, password reset
API Response — Activity Feed
GET /api/v1/dashboard/stats/?limit=5

{
  "results": [
    {
      "id": "evt_20260206_001",
      "type": "vital_alert",
      "message": "Blood pressure alert for patient #1042 — systolic 182 mmHg",
      "severity": "critical",
      "timestamp": "2026-02-06T14:28:12Z",
      "user": null
    },
    {
      "id": "evt_20260206_002",
      "type": "billing",
      "message": "CPT 99454 claim generated for 234 patients",
      "severity": "info",
      "timestamp": "2026-02-06T02:00:45Z",
      "user": "system"
    },
    {
      "id": "evt_20260206_003",
      "type": "ecw_sync",
      "message": "Delta sync completed — 12 patients updated, 3 new",
      "severity": "info",
      "timestamp": "2026-02-06T01:00:00Z",
      "user": "system"
    }
  ]
}

Performance Charts

The dashboard includes three interactive charts that visualize operational trends. Charts are rendered using Chart.js and update automatically at the configured refresh interval.

Transmission Rate Chart

Displays the daily device transmission success rate over the past 30 days. The chart overlays the actual rate against the target threshold (typically 85%) and highlights days where the rate dropped below target in red.

Why Transmission Rates Matter

CPT code 99454 requires at least 16 days of device data transmission per 30-day billing period. The transmission rate chart helps you identify patients or devices that are falling behind before it impacts billing eligibility.

Processing Time Chart

Shows the average observation processing latency over the past 24 hours, broken into 15-minute intervals. This chart helps identify performance bottlenecks — a sustained increase in processing time may indicate database load, Celery worker starvation, or network issues with the eCW integration.

Tracks the total number of observations processed per day over the past 90 days. The chart includes a trend line and highlights weekday vs. weekend patterns. A sudden drop may indicate device connectivity issues or patient non-compliance.

Auto-Refresh Configuration

The dashboard uses a tiered auto-refresh strategy to balance data freshness with server load. Each section refreshes independently at its own interval:

Section Refresh Interval Method
System Health Cards Every 10 seconds Polling via GET /health/
KPI Statistics Every 30 seconds Polling via GET /api/v1/dashboard/stats/
Activity Feed Every 30 seconds Polling with cursor-based pagination
Performance Charts Every 60 seconds Polling with incremental data fetch
Browser Tab Behavior

Auto-refresh is paused when the dashboard tab is not visible (using the Page Visibility API). This prevents unnecessary API calls and server load when the user switches to another tab. Refreshing resumes immediately when the tab regains focus.

You can configure the refresh intervals in the frontend environment file:

frontend/.env.local
# Dashboard refresh intervals (in milliseconds)
VITE_DASHBOARD_HEALTH_INTERVAL=10000
VITE_DASHBOARD_STATS_INTERVAL=30000
VITE_DASHBOARD_CHARTS_INTERVAL=60000
VITE_DASHBOARD_ACTIVITY_INTERVAL=30000

Alert System Integration

The dashboard integrates directly with the Triage System and Notification System to surface alerts in real time. When a patient's vital reading breaches a configured threshold, the following happens simultaneously:

1

Alert Created

The observation pipeline detects the threshold breach and creates an alert record linked to the patient and the triggering observation.

2

KPI Updated

The dashboard's "Vital Alerts" KPI counter increments immediately on the next 30-second refresh cycle. The activity feed also shows the new alert event.

3

Notification Dispatched

A push notification is sent to the assigned clinician via Firebase Cloud Messaging. The notification contains a sanitized message (no PHI) with a deep link to the patient's triage detail view.

4

Triage Queue Updated

The patient's risk score is recalculated, and they are repositioned in the triage priority queue. If the alert reaches STAT severity, an escalation event is also created.

Role-Based Views

The dashboard layout adapts based on the authenticated user's role. Each role sees a tailored view that surfaces the most relevant information for their responsibilities:

Admin View

Full access to all dashboard sections including system health cards, all KPIs, activity feed, performance charts, quick actions (including system settings), and user management shortcuts. Admins also see aggregate statistics across all providers.

Clinician View

Focused on clinical operations. Displays KPIs for patients under the clinician's care, the triage queue filtered to their assigned patients, vital alerts, and clinical activity feed. System health cards are shown in a compact form. The billing section is hidden.

Staff View

Operational view centered on patient management and data quality. Shows patient import status, transmission compliance rates, device connectivity metrics, and the patient onboarding pipeline. Staff users can access quick actions for patient creation and eCW import.

Billing View

Revenue-focused layout. Displays monthly revenue KPIs, billing pipeline status (pending → submitted → paid/denied), claim generation activity, unbilled patient alerts, and quick access to all 13 billing report endpoints. Clinical alert details are excluded.

Custom Dashboard Layouts

Users can customize their dashboard layout by dragging and rearranging cards. Preferences are saved per-user in localStorage and persist across sessions. To reset to the default role-based layout, use the "Reset Layout" option in the dashboard settings menu.

Dashboard API Endpoints

The dashboard is powered by the following backend API endpoints. All endpoints require JWT authentication and return JSON responses.

Method Endpoint Description
GET /health/ System health status (no auth required)
GET /api/v1/dashboard/stats/ Aggregated KPI statistics
GET /api/v1/dashboard/stats/ Activity feed with cursor pagination
GET /api/v1/dashboard/stats/transmissions/ Transmission rate time-series data
GET /api/v1/dashboard/stats/processing/ Processing time time-series data
GET /api/v1/dashboard/stats/volume/ Observation volume time-series data