Trabajo
UniversidadUniversidad · Machine Learning

MediScanAI

Prototipo de análisis de imágenes médicas con arquitectura de microservicios y modelos de IA. No es una herramienta clínica.

Captura de MediScanAI
SYSTEM.md

El problema

Integrar tareas de inferencia de duración variable sin bloquear el resto del sistema.

Qué construí

Un API Gateway en Spring Cloud Gateway enruta a servicios de IAM, reportes, notificaciones y administración. Un servicio en FastAPI con TensorFlow clasifica y un ML Service con MONAI explica y entrena. Frontends en React y Flutter.

Resultado

Prototipo de ingeniería con muchos servicios; no se presenta como herramienta clínica validada.

Decisiones que importaron

  1. 01

    Un solo punto de entrada

    El API Gateway concentra el acceso y delega la autenticación en el servicio IAM.

  2. 02

    Un servicio por responsabilidad

    IAM, reportes, notificaciones y administración son servicios Spring Boot, cada uno con su base de datos.

  3. 03

    Lo lento, aparte

    La inferencia y el entrenamiento corren en servicios de Python separados, y los correos salen por RabbitMQ.

  4. 04

    Resultados explicables

    El ML Service incorpora explicabilidad con Captum y un modelo de rayos X con MONAI.

Tecnologías

  • Spring Cloud Gateway
  • Spring Boot
  • FastAPI
  • TensorFlow
  • MONAI
  • RabbitMQ
  • React
  • Flutter

Modelo C4. La línea con pulso es el recorrido principal de una solicitud.

Nivel 1 · quién usa el sistema y con qué se conecta

HTTPS1SMTPS3 APIHTTPSProfesional desaludSube estudios de imagenMediScanAIApoyo al análisis deimágenesGmail SMTP[Gmail SMTP]Correos de avisoAmazon S3[Amazon S3]Imágenes y resultadosGoogle Gemini[Google Gemini]Explicación de resultados

Nivel 2 · las aplicaciones y almacenes que lo componen

HTTPS1AppREST2RESTREST · JWT3RESTRESTREST4RESTAMQPAMQPSMTPHTTP5S3 APIHTTPSProfesional desaludSube estudios de imagenAplicación web[React 18 · Docker]Carga y resultadosAPI Gateway[Spring Cloud Gateway]Punto de entrada únicoServicio IAM[Spring Security · MySQL]Usuarios, roles y JWTApp móvil[Flutter]Consulta desde el teléfonoServicio denotificaciones[Spring Boot · MySQL]Avisos del sistemaServicio dereportes[Spring Boot · MySQL]Resultados guardadosRabbitMQ[RabbitMQ]Cola de correosServicio de correo[Spring Boot · AMQP]Envía por SMTPGoogle Gemini[Google Gemini]Explicación de resultadosServicioadministrativo[Java 21 · MySQL]Gestión del sistemaGmail SMTP[Gmail SMTP]Correos de avisoAmazon S3[Amazon S3]Imágenes y resultadosML Service[FastAPI · MONAI · PostgreSQL]Inferencia, entrenamiento yexplicaciónAI Service[FastAPI · TensorFlow]Clasifica con TensorFlow

Nivel 3 · los componentes dentro de la API

calls1rulesport2SQL3portS3 APIportHTTPSAPI v1 y v2[FastAPI v1 · v2]Rutas de FastAPIServicios[Services]Inferencia, preprocesado yexplicabilidadModelos[MONAI · X-ray model]MONAI y modelo de rayos XRepositorio SQL[asyncpg repository]Guarda los resultadosPostgreSQL[PostgreSQL]Resultados del modeloAlmacenamiento[boto3]S3 o disco localAmazon S3[Amazon S3]Imágenes y resultadosCliente Gemini[google-genai]Explica el resultadoGoogle Gemini[Google Gemini]Explicación de resultados
  • Persona
  • Sistema
  • Contenedor
  • Base de datos
  • Externo
  • Recorrido principal
  1. 01Estudio de imagen
  2. 02API Gateway
  3. 03AI Service
  4. 04ML Service
  5. 05Reporte
  6. 06Aviso

CV

Descarga mi CV

Déjame tu correo y te envío el CV ahí. Primero verifico que el correo es tuyo con un código.