RADIA — Modo Asteroide ☄️
Última actualización: 2026-04-14
Qué es
El Modo Asteroide es un análisis intensivo multi-modelo que ejecuta Gemini 2.5 Flash y Groq Llama 4 Scout (con rol de especialista en segunda opinión) en paralelo sobre cada corte, cruza los resultados para encontrar consenso, y ejecuta deep analysis automático en los hallazgos más relevantes.
Diferencias con Scan Normal
| Aspecto | Scan Normal | Modo Asteroide |
|---|---|---|
| Sample rate | Cada 8 cortes | Cada 2 cortes |
| Modelos | 1 (Gemini, con fallbacks) | 2 en paralelo (Gemini + Groq Specialist) |
| Consenso | — | Cross-reference por categoría+ubicación+corte |
| Confianza | Valor directo del modelo | ×1.15 boost si hay consenso multi-modelo |
| Deep analysis | Manual (usuario elige) | Automático en top 5 hallazgos |
| Duración | ~30s para 280 cortes | ~2-3 min (más cortes + doble modelo) |
| Coste API | 1× | ~4× (más cortes + dual model) |
Arquitectura técnica
1. Inicialización
POST /api/analysis/scan360
{
"action": "init",
"studyId": "...",
"asteroidMode": true
}
El backend calcula los índices de corte con sampleRate: 2 en lugar de 8:
// Normal: [0, 8, 16, 24, ...] → ~35 cortes de 280
// Asteroide: [0, 2, 4, 6, ...] → ~140 cortes de 280
2. Procesamiento por lote (multi-modelo)
Para cada corte en el batch:
┌──────────────────┐
PNG slice ────►│ callMultiModel │
└────────┬─────────┘
│
┌─────────────┼─────────────┐
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Gemini │ │ Groq │
│ 2.5 Flash │ │ Specialist │
│ 2.5 Flash │ │ 4B-IT │
└──────┬───────┘ └──────┬───────┘
│ │
└──────────┬───────────────┘
▼
Promise.allSettled()
│
▼
┌──────────────────┐
│ Cross-reference │
│ by category + │
│ location + slice│
└────────┬─────────┘
│
┌────────────┼────────────┐
▼ ▼
┌───────────┐ ┌───────────┐
│ Consenso │ │ Solo 1 │
│ (ambos │ │ modelo │
│ modelos) │ └───────────┘
└─────┬─────┘
│
▼
confidence × 1.15
ai_model = "model1+model2"
3. Deduplicación
Los hallazgos de ambos modelos se agrupan por clave compuesta:
const key = `${finding.category}_${finding.location}_${sliceIndex}`;
Si ambos modelos producen un hallazgo con la misma clave:
- Se usa la mejor descripción (más largo)
- Se usa la mayor confianza, con boost ×1.15
ai_modelse registra como"gemini-2.5-flash+llama-4-scout-specialist"
4. Finalización con auto deep-analysis
Tras procesar todos los lotes, la finalización:
- Genera la impresión global (igual que scan normal)
- Consulta los 5 hallazgos de mayor severidad:
SELECT * FROM radia_findings WHERE study_id = ? AND severity IN ('suspicious', 'malignant', 'indeterminate') ORDER BY CASE severity WHEN 'malignant' THEN 1 WHEN 'suspicious' THEN 2 WHEN 'indeterminate' THEN 3 END, confidence DESC LIMIT 5 - Para cada uno, ejecuta deep analysis (±10 cortes de contexto)
- Guarda el resultado en
finding.deep_analysis(JSON)
Frontend
Activación
Botón "Asteroide" en la toolbar del StudyExplorer:
- Icono: Zap (lucide-react)
- Estilo: gradiente naranja→rojo→rosa con
animate-pulsecuando activo - Estado:
asteroidMode(boolean toggle) - También disponible como toggle dentro del Diálogo de Pre-análisis
Diálogo de Pre-análisis
Al pulsar el botón de scan (o al abrir un estudio no analizado), se presenta un diálogo modal con:
- Modo de análisis (para estudios ya analizados):
complement— Añadir hallazgos nuevos preservando los existentesreview— Revisión crítica que preserva hallazgosdelete— Borrar todos los hallazgos y re-analizar desde cero
- Modo para estudios sin analizar:
fresh(análisis nuevo, única opción) - Toggle Asteroide: Activa/desactiva multi-modelo paralelo
- Razón: Campo de texto libre para indicar al modelo el foco del análisis
El diálogo envía la razón con prefijo [COMPLEMENT] o [REVIEW] según el modo.
Durante el scan
- El botón de scan muestra "☄️ Scan Asteroide" con gradiente
- Mensajes de progreso con emoji ☄️
- Mismo flujo de batches pero más lotes (4× más cortes)
Badge Asteroide
Los estudios analizados con Modo Asteroide muestran un badge ☄️ en el header del estudio, para identificar rápidamente el tipo de análisis aplicado.
Resultados
- Hallazgos con consenso muestran badge:
☄️ consenso- Estilo: gradiente naranja→rosa, borde naranja
- Tooltip: muestra los modelos que coincidieron
- Deep analysis pre-calculado: disponible inmediatamente sin click adicional
Requisitos
Para que el modo Asteroide funcione con consenso cruzado:
- Configurar
GEMINI_API_KEY(Google AI Studio) - Configurar
GROQ_API_KEY(Groq Cloud)
Groq actúa como especialista en segunda opinión con un system prompt que enfatiza: variantes anatómicas sutiles, lesiones incipientes, artefactos que enmascaran patología, y hallazgos en zonas periféricas.
Si GROQ_API_KEY no está disponible, el modo Asteroide sigue funcionando con un solo modelo (Gemini) pero sin consenso cruzado.
Consideraciones
- Coste: ~4× más llamadas API que un scan normal
- Tiempo: ~2-3 minutos vs ~30 segundos
- Precisión: Mayor recall y precision gracias al consenso multi-modelo
- Falsos positivos: El boost de confianza solo se aplica a hallazgos donde ambos modelos coinciden, reduciendo el ruido
user_confirmed: Siempre0— el consenso IA no equivale a validación médica- Complementar: En modo
complement, los hallazgos previos se preservan y los nuevos se añaden sin duplicar
Roadmap — MedGemma
MedGemma 4B-IT es un modelo open-weight de Google especializado en imagen médica. Actualmente no está integrado porque requiere infraestructura GPU dedicada (no existe como API serverless). Dos vías de integración futuras:
Vía 1: Vertex AI (cloud)
- Desplegar MedGemma en Vertex AI Model Garden sobre GPU L4/A100
- Coste: ~$500–$3,000/mes (GPU encendida 24/7, se use o no)
- La autenticación JWT con service account ya fue implementada y testeada (
vertex-auth.js) - Se archivó el código — reactivar cuando sea viable económicamente
- Endpoint:
us-central1-aiplatform.googleapis.com, modelo:google/medgemma-4b-it
Vía 2: ML Trainer local (app Electron de Cadences)
- Ejecutar MedGemma en hardware local del usuario (GPU con ≥8GB VRAM)
- La app Electron de Cadences (ML Trainer) levantaría un servidor local de inferencia
- RADIA se conectaría a
localhost:PORTcomo proveedor adicional encallMultiModel() - Sin coste recurrente de cloud — el usuario pone el hardware
- Ideal para clínicas con volumen alto de estudios
Integración prevista
Cuando cualquiera de las dos vías esté disponible, MedGemma se añadiría como tercer modelo en Asteroid Mode:
Asteroid Mode (futuro):
Gemini (generalista) + Groq Specialist (segunda opinión) + MedGemma (especialista médico)
→ Triple consenso = máxima precisión