Real-Time Notifications¶
Overview¶
VitalBridge uses WebSockets to provide real-time consultation updates.
This allows providers and patients to receive immediate updates without refreshing the application.
Architecture¶
flowchart LR
VIDEO["Video Session Service"]
WS["WebSocket Gateway"]
PATIENT["Patient Portal"]
PROVIDER["Provider Portal"]
VIDEO --> WS
WS --> PATIENT
WS --> PROVIDER
Hold "Alt" / "Option" to enable pan & zoom
Participant Presence¶
The Video Session Service emits events when participants join or leave.
sequenceDiagram
participant Provider
participant VideoService
participant WebSocket
participant Patient
Provider->>VideoService: Join Session
VideoService->>WebSocket: provider.joined
WebSocket-->>Patient: Provider Joined
Hold "Alt" / "Option" to enable pan & zoom
Consultation Readiness¶
A consultation becomes ready when participants begin joining.
flowchart LR
CREATED["Created"]
PROVIDER_JOINED["Provider Joined"]
PATIENT_JOINED["Patient Joined"]
READY["Ready"]
CREATED --> PROVIDER_JOINED
CREATED --> PATIENT_JOINED
PROVIDER_JOINED --> READY
PATIENT_JOINED --> READY
Hold "Alt" / "Option" to enable pan & zoom
Join Button Enablement¶
VitalBridge supports real-time appointment updates.
sequenceDiagram
participant VideoService
participant WebSocket
participant Client
VideoService->>WebSocket: consultation.window.open
WebSocket-->>Client: Notification
Client->>Client: Refresh Upcoming Appointments
Client->>Client: Enable Join Button
Hold "Alt" / "Option" to enable pan & zoom
This ensures patients and providers immediately see consultation availability changes.
Supported Events¶
| Event | Description |
|---|---|
| provider.joined | Provider entered consultation |
| patient.joined | Patient entered consultation |
| participant.left | Participant left consultation |
| consultation.started | Consultation became active |
| consultation.completed | Consultation ended |
| consultation.window.open | Join window available |
Benefits¶
- Real-time dashboards
- Immediate participant visibility
- Consultation readiness indicators
- Reduced polling
- Improved user experience