Clínica — Sistema de Gestión Hospitalaria

Sistema de microservicios para gestionar una clínica de salud — pacientes, citas, admisiones y facturación con autenticación JWT, migraciones automáticas y asistente médico con IA.

  • Java 21
  • Spring
  • Microservices
  • PostgreSQL
  • Redis
  • Docker
  • JWT

Problema

Las clínicas pequeñas y medianas suelen depender de hojas de cálculo o sistemas legacy para manejar citas, expedientes y facturación. El objetivo era construir una plataforma moderna que centralizara todas las operaciones clínicas con seguridad enterprise y escalabilidad real.

Solución

Sistema modular de microservicios donde cada dominio (pacientes, citas, admisiones, facturación, proveedores) corre como servicio independiente. Todos se registran en Eureka para descubrimiento dinámico. Autenticación centralizada con JWT firmado con RSA-256. Asistente médico integrado vía Gemini AI para consultas de soporte.

Arquitectura

  • Eureka Service Discovery — los servicios se registran automáticamente; sin configuración manual de IPs
  • JWT con RSA-256 — token firmado asimétricamente; el servicio de auth emite, cada microservicio valida sin base de datos
  • Multi-database — PostgreSQL para datos transaccionales críticos, MySQL donde el esquema lo justifica; Flyway para migraciones versionadas en ambos
  • Docker Compose — levanta el stack completo (servicios + bases de datos + Eureka dashboard) con un solo comando
  • Spring AI + Gemini — asistente integrado directamente en el flujo de consultas médicas
Cl
Clínica · Sistema de Gestión Hospitalaria
Java 21 · Spring Boot 3.5 · Spring Cloud 2025 · 8 microservicios
▶ Pruébalo — arrastra nodos · click para inspeccionar
externogatewayserviciosIAinfra
HTTPS / JWTverificamédicocoberturafacturaintent →registerClientes ExternosBrowser · Apps · IntegracionesAPI GatewaySpring Cloud Gateway 4.3 · :8080LoggingFilterRateLimitFilter (Redis)AuthFilter JWT RSA-256CircuitBreakerRetryAuth ServiceJWT RSA-256 · :8084 · MySQLPatient ServicePacientes · :8082 · MySQLAdmissions ServiceAtenciones · :8083 · PostgreSQLSuppliers ServiceMédicos · :8085 · MySQLClients ServiceAseguradoras · :8086 · MySQLAI AssistantGemini · Spring AI · :8087 · PGGeminiClientIntent DetectionBilling ServiceFacturación · :8088 · MySQLEureka ServerService Discovery · :8761
cada barra representa un ciclo completo: cliente → gateway → servicio → respuesta
Diagrama de Clínica — Sistema de Gestión Hospitalaria

Decisiones técnicas

Se usó RSA-256 en lugar de HMAC-SHA para JWT porque en arquitectura de microservicios cada servicio solo necesita la clave pública para verificar — sin compartir secretos. Flyway sobre scripts manuales porque en un sistema de salud la trazabilidad de cambios de esquema es un requisito de auditoría.

Diagrama de Clínica — Sistema de Gestión Hospitalaria