You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hospital incident management platform built with microservices architecture and DevOps practices. When a medical alert fires (patient fall, cardiac event, equipment failure), the system auto-assigns the right on-call staff, tracks the full incident lifecycle, and monitors operational metrics in real time.
9 containers orchestrated with Docker Compose on a single bridge network.
Quick Start
# Start everything
docker compose up --build -d
# Wait ~30s for all health checks to pass, then open:# Web UI: http://localhost:8080# Grafana: http://localhost:3001 (admin / admin)# Prometheus: http://localhost:9090# RabbitMQ: http://localhost:15672 (guest / guest)
Login Credentials
Role
IDs
Password
Nurses
N01 - N06
password123
Emergency Doctors
D01 - D04
password123
Specialists
S01 - S12
password123
How It Works
Alert fires — Alert Ingestion service generates a patient alert and publishes it to RabbitMQ
Incident created — Incident Management consumes the event, creates an incident, and queries On-Call Service for available staff
Auto-assigned — The system assigns the incident to the least busy on-call staff member matching the required role (e.g., cardiac alert goes to a cardiologist). If no role-specific match is found, it falls back to any available staff
Staff notified — Notification Service pushes a real-time WebSocket alert to the assigned staff's browser
Lifecycle tracked — Staff acknowledges, works, and resolves the incident through the Web UI
Metrics recorded — MTTA, MTTR, and alert counts are exposed via /metrics endpoints and visualized in Grafana
Incident Lifecycle
OPEN → ASSIGNED → ACKNOWLEDGED → IN_PROGRESS → RESOLVED