Sentinel is an automated medical imaging triage framework that simulates a modern PACS (Picture Archiving and Communication System) workflow. It accepts DICOM studies, anonymizes patient information, prioritizes cases based on metadata and AI-assisted image analysis, and delivers a real-time dashboard for radiological triage.
✧ Spectre 2026 Hackathon — 3rd Position Awarded for SENTINEL, an AI-powered Medical Imaging Triage Framework. |
SENTINEL/
│
├── backend/
│ ├── dicom_to_gemini.py
│ ├── main.py
│ ├── requirements.txt
│ └── triage_engine.py
│
├── frontend/
│ ├── assets/
│ │ └── logo.png
│ ├── app.js
│ ├── index.html
│ ├── login.html
│ ├── style.css
│ ├── viewer-logic.js
│ └── viewer.html
│
├── test_client/
│ ├── sample_data/
│ │ ├── 01_routine.dcm
│ │ ├── 02_urgent_meta.dcm
│ │ ├── 03_urgent_pixel.dcm
│ │ ├── 04_critical.dcm
│ │ ├── angio.dcm
│ │ ├── brain.dcm
│ │ ├── head.dcm
│ │ └── smtg.dcm
│ ├── generate_dummies.py
│ ├── live_feed.py
│ ├── sender.py
│ └── test_dicom_server.py
│
└── README.md
Sentinel is composed of three tightly integrated components that emulate a real-world hospital imaging workflow.
The backend serves as the central processing engine responsible for receiving, analyzing and managing radiological studies.
- FastAPI REST server
- Built-in DICOM SCP using pynetdicom
- Accepts incoming C-STORE requests
- Automatic DICOM anonymization
- Metadata-driven triage engine
- AI-assisted image analysis using Gemini
- Audit logging
- Real-time WebSocket communication
- Authentication
- DICOM ingestion
- Patient data anonymization
- Urgency classification
- AI inference
- Dashboard updates
- Viewer authorization
A lightweight web dashboard designed for radiologists and authorized personnel.
- Live triage queue
- Real-time study arrival updates
- Dashboard metrics
- DICOM image viewer
- Authentication portal
- Responsive interface
- System uptime
- Total studies received
- Delivery status
- Current processing queue
- Critical case count
Sentinel includes utilities that simulate a live hospital imaging environment for testing and demonstrations.
- Synthetic DICOM generation
- Randomized metadata
- Pixel anomaly injection
- Continuous streaming
- PACS traffic simulation
Every incoming study passes through the following workflow:
Incoming DICOM Study
│
▼
DICOM SCP Receiver
│
▼
Patient Data Anonymization
│
▼
Metadata Analysis
│
▼
Pixel Intensity Analysis
│
▼
Gemini AI Image Review
│
▼
Priority Assignment
│
▼
Dashboard Update
│
▼
Authorized Viewer Access
Sentinel classifies studies into three urgency categories.
| Level | Description |
|---|---|
| 🟢 Routine | No abnormal findings detected. |
| 🟠 Urgent | Metadata or image anomalies require prompt review. |
| 🔴 Critical | High-priority cases such as trauma, stroke, tumors or significant anomalies requiring immediate attention. |
Sentinel utilizes Google's Gemini 1.5 Flash model to assist with medical image analysis.
The AI pipeline performs:
- DICOM to image conversion
- Pixel interpretation
- Tumor indication detection
- Foreign object detection
- Visual anomaly analysis
- Additional confidence during triage
AI decisions complement the rule-based engine and are intended for simulation purposes only.
Sentinel incorporates several security mechanisms to mimic real clinical environments.
Every received study automatically removes identifying patient information including:
- Patient Name
- Patient ID
- Birth Date
- Other identifying metadata
Each study receives a unique anonymous identifier before storage.
The backend records important system events including:
- User login
- User logout
- Image rendering
- Viewer access
- Study processing
- AI analysis requests
Only predefined access IDs are permitted to view medical studies.
Example:
R-001 → Dr. Rishi
backend/main.py
FastAPI server, authentication, WebSockets and DICOM SCP.
backend/triage_engine.py
Metadata analysis, anonymization and urgency assignment.
backend/dicom_to_gemini.py
Converts DICOM images into Gemini-compatible inputs and processes AI responses.
frontend/index.html
Main dashboard.
frontend/login.html
Secure login portal.
frontend/viewer.html
Authorized DICOM image viewer.
test_client/live_feed.py
Generates continuous synthetic hospital imaging traffic.
Backend
- Python 3.10+
- FastAPI
- Pydicom
- Pynetdicom
- NumPy
- Pillow
Artificial Intelligence
- Google Gemini 1.5 Flash
Frontend
- HTML5
- CSS3
- JavaScript
- WebSockets
- Three.js
- Vanta.js
Medical Imaging
- DICOM
- PACS Simulation
- Python 3.10+
- Google Gemini API Key
Clone the repository
git clone https://github.com/yourusername/sentinel.git
cd sentinelInstall dependencies
pip install -r backend/requirements.txtConfigure your Gemini API Key inside:
backend/main.py
backend/dicom_to_gemini.py
Run the backend
uvicorn backend.main:app --reloadStart the hospital simulator
python test_client/live_feed.pyOpen the dashboard
frontend/login.html
Login using a valid access ID.
Example:
R-001
| Component | Specification |
|---|---|
| Backend Framework | FastAPI |
| DICOM Server | pynetdicom SCP |
| Image Processing | Pydicom + Pillow |
| AI Model | Gemini 1.5 Flash |
| Communication | REST + WebSockets |
| Viewer | Browser-based PNG Renderer |
| Authentication | Access ID Validation |
| Privacy | Automatic DICOM Anonymization |
| Logging | Audit Trail |
| Simulation | Live DICOM Feed Generator |
- PostgreSQL integration
- HL7 support
- Docker deployment
- Role-based authentication
- AI confidence visualization
- Multi-hospital simulation
- FHIR interoperability
- Study history and reporting
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software.

