RADIA — Modalidades y Tipos de Imagen
Última actualización: 2026-05-19
RADIA soporta 30+ tipos de estudio organizados en 8 sectores, con detección automática por tags DICOM y keywords en la descripción, además de selección manual desde el uploader. La fuente única de verdad es src/lib/studyTypes.ts (frontend) y functions/lib/prompts.js (backend) — ambos mantienen los mismos study_type keys.
Dental (3)
| Tipo | Label | Modalidad DICOM | 3D/MPR | Icono |
|---|---|---|---|---|
dental_cbct |
CBCT Dental | CT | ✓ | 🦷 |
dental_pano |
Panorámica Dental | PX, OPG | — | 🦷 |
dental_periapical |
Periapical | IO | — | 🦷 |
Categorías de hallazgos: supernumerario, periapical, pérdida ósea, quiste, impactación, seno, reabsorción, fractura, cuerpo extraño, canal, implante, otro.
Radiología General (4)
| Tipo | Label | Modalidad DICOM | 3D/MPR | Icono |
|---|---|---|---|---|
chest_xray |
Rx Tórax | CR, DX, XR | — | 🩻 |
bone_xray |
Rx Ósea | CR, DX, XR | — | 🩻 |
general_ct |
TAC | CT | ✓ | 🩻 |
mammography |
Mamografía | MG | — | 🩻 |
Categorías de hallazgos: masa, nódulo, fractura, derrame, consolidación, neumotórax, calcificación, degenerativo, cuerpo extraño, vascular, infección, otro.
Resonancia Magnética (4)
| Tipo | Label | Modalidad DICOM | 3D/MPR | Icono |
|---|---|---|---|---|
mri_brain |
RM Cerebral | MR | ✓ | 🧠 |
mri_msk |
RM Musculoesquelética | MR | ✓ | 🧠 |
mri_spine |
RM Columna | MR | ✓ | 🧠 |
mri_abdomen |
RM Abdominal | MR | ✓ | 🧠 |
Categorías de hallazgos: masa, lesión, herniación, edema, hemorragia, isquemia, degenerativo, inflamación, rotura, derrame, otro.
Ecografía (7)
| Tipo | Label | Modalidad DICOM | 3D/MPR | Icono |
|---|---|---|---|---|
ultrasound |
Ecografía (genérica) | US | — | 📡 |
us_abdominal |
Eco Abdominal | US | — | 📡 |
us_obstetric |
Eco Obstétrica | US | — | 📡 |
us_breast |
Eco Mamaria | US | — | 📡 |
us_thyroid |
Eco Tiroidea | US | — | 📡 |
us_vascular |
Eco Vascular | US | — | 📡 |
us_msk |
Eco MSK | US | — | 📡 |
Fotografía Clínica (5)
| Tipo | Label | Uso | Icono |
|---|---|---|---|
dermatology |
Dermatología | Lesiones cutáneas, lunares, erupciones | 🔬 |
podology |
Podología | Pie, tobillo | 🦶 |
ophthalmology |
Oftalmología | Retina, fondo de ojo | 👁 |
wound_care |
Heridas / Úlceras | Úlceras, heridas quirúrgicas, quemaduras | 🩹 |
clinical_photo |
Foto Clínica | Fotografía clínica general | 📷 |
Categorías de hallazgos: lesión, infección, úlcera, neoplasia, inflamación, deformidad, distrofia, vascular, pigmentación, cuerpo extraño, cicatriz, otro.
Veterinaria (8)
| Tipo | Label | Uso | Icono |
|---|---|---|---|
veterinary |
Veterinaria (genérica) | Cualquier estudio veterinario | 🐾 |
vet_xray_thorax |
Rx Tórax Vet | Tórax animal | 🐾 |
vet_xray_abdomen |
Rx Abdomen Vet | Abdomen animal | 🐾 |
vet_xray_skeletal |
Rx Esqueleto Vet | Esqueleto / extremidades | 🐾 |
vet_xray_dental |
Rx Dental Vet | Dental veterinario | 🐾 |
vet_xray_spine |
Rx Columna Vet | Columna animal | 🐾 |
vet_ultrasound |
Eco Vet | Ecografía veterinaria | 🐾 |
vet_photo |
Foto Clínica Vet | Fotografía clínica veterinaria | 🐾 |
Categorías de hallazgos: fractura, masa, cuerpo extraño, dental, cardíaco, pulmonar, abdominal, ortopédico, tejido blando, infección, otro.
RadiaVet reutiliza el mismo backend con un storefront blanco (
radiavet.cadences.app) — el sector se detecta pordetectSector(study.study_type)y ajusta prompts, labels paciente, layout del PDF y vocabulario clínico (propietario en vez de paciente, especie en lugar de DOB, etc.).
Botánica (1)
| Tipo | Label | Uso | Icono |
|---|---|---|---|
botany |
Botánica | Plagas, deficiencias, identificación de planta | 🌿 |
Sector experimental para nurseries, agroindustria y aficionados — comparte la pipeline de fotos clínicas + IA multimodal pero con prompts agronómicos.
Superficie 3D / LiDAR (2)
| Tipo | Label | Origen | Visor | Icono |
|---|---|---|---|---|
surface3d_lidar |
Captura 3D LiDAR | iPhone/iPad Pro con sensor LiDAR (/lidar/upload) |
MeshViewer (model-viewer 3.5) |
🧊 |
surface3d_diff |
Diff 3D longitudinal | Diferencia entre dos surface3d_lidar del mismo sujeto (/lidar/diff/view) |
MeshViewer con colorización por Δ vol |
📊 |
Pipeline:
- La app móvil (Cadences Capture o Safari/PWA) sube el mesh (
.usdz,.glb,.obj+.mtl+textura) aPOST /api/lidar/upload. - Opcionalmente se adjuntan fotos clínicas (color y textura reales) y renders 3D del mesh.
POST /api/analysis/surface3denvía al modelo (Gemini 2.5 Flash) la batería de imágenes (renders primero, fotos después) + prompt sectorial. Genera un único hallazgo conviewport_image_key= foto clínica preferida → render del mesh como fallback, y unlocationen texto humano (p.ej. "Superficie 3D · 8 renders del mesh + 2 fotos clínicas").- Para longitudinal (
surface3d_diff): se calcula el mesh de diferencia, se guardan renders coloreados y métricas (Δ%,vol mm³).POST /api/analysis/surface3d-diffgenera el hallazgo conlocation= "Diferencia LiDAR · 6 renders · Δ 3.2% · vol 412 mm³".
Captura asistida desde el visor: MeshAROverlay.tsx superpone la cámara real bajo el render del mesh (composite cámara + mesh con alfa, no usa WebXR — se mantiene en DOM para poder capturar el passthrough). En estudios con body_part ∈ { WOUND, VET, BOTANY } opera en modo guiado según src/lib/shotProtocol.ts:
- Shot-list multi-toma (cenital, lateral, macro, contexto, lado sano, envés…) con preset de
cameraOrbitpor toma para mostrar la silueta del mesh en ese ángulo; el clínico alinea visualmente. Strip de chips arriba con progreso (pendiente / activa / capturada). - Inclinómetro (
DeviceOrientationEvent.beta, conrequestPermission()en iOS 13+) con objetivo y tolerancia por rol. Indicador verde/ámbar. - Auto-shutter: cuando el móvil queda alineado ≥1.2 s, cuenta atrás 3‑2‑1 y dispara solo. Cualquier desalineación cancela.
- Quality gate: estimación de desenfoque por varianza laplaciana sobre un patch central de 256² del composite; umbral empírico σ²≈50. No bloquea — avisa al clínico.
- Auto-tag: la foto se persiste con
role(cenital/lateral/…) yhasScaleya etiquetados, evitando dropdown manual. - Rejilla de alineación legacy (off / thirds / fine) sigue disponible para modo libre (
GENERIC).
Cada captura POSTea a /api/studies/:id/ar-photo (PNG + sidecar JSON con cameraOrbit/cameraTarget/fieldOfView/role/hasScale/capturedAt) bajo {r2_prefix}ar/. Tras completar el protocolo, el overlay se cierra y abre el modal de análisis con todas las tomas pre-etiquetadas listas para Gemini.
Detección Automática
La función detectStudyType(metadata) clasifica el estudio por prioridad:
- Keywords en descripción → dental (
cbct,cone beam,panoram,periapical,intraoral,bitewing). - Código de modalidad DICOM → PX/OPG → pano, IO → periapical, MG → mamografía, US → ecografía (+ subtipo si se detecta abdomen/obstétrica/tiroides…), MR → cerebral / MSK / spine / abdomen, CT → dental o general.
- Rx genéricas (CR/DX/XR) → chest vs bone por keywords (chest, tórax, pulmón).
- Veterinaria → se aplica si el sujeto asociado (tabla
radia_subjects) es de tipoanimal, refinando al subtipo correspondiente. - Fallback →
clinical_photosi tiene modalidad,dental_cbctsi no hay metadata (legacy).
El usuario también puede seleccionar el tipo manualmente en el uploader.
IA por Modalidad
Cada tipo de estudio tiene prompts especializados para:
- Scan 360° — Análisis completo automatizado (Gemini 2.5 Flash; opcionalmente Groq Specialist en Modo Asteroide).
- Deep Analysis — Drill-down por hallazgo individual con ±10 cortes de contexto.
- Viewport 3D — Análisis volumétrico desde captura 3D/MPR.
- Surface3D / LiDAR — Análisis multimodal de renders + fotos clínicas (
/analysis/surface3d,/analysis/surface3d-diff). - Chat — Análisis interactivo en tiempo real por corte.
- Point-Ask — Click en coordenada → análisis localizado.
- Explain-to-patient — Reescritura del informe en lenguaje no técnico (con tono ajustable por
radia_patient_preferences). - Sugerencias de tratamiento — Recomendaciones clínicas integradas.
- RADS — Clasificación automática Lung-RADS / BI-RADS / Bone-RADS / etc. (ver
RadsModule.tsx+ tablasradia_finding_radsyradia_study_rads).
Modelos de IA
| Modelo | Proveedor | Rol |
|---|---|---|
| Gemini 2.5 Flash | Google AI | Primario (visión + texto, incl. mesh + fotos) |
| Llama 4 Scout 17B | Groq | Fallback + segunda opinión (Asteroide) |
| DeepSeek V3 | DeepSeek | Síntesis textual (resúmenes paciente, enriquecimientos) |
| MedGemma 4B-IT | Vertex AI / ML Trainer | Especialista médico (roadmap — JWT/SA listo) |