Skip to content

Repository files navigation

MediLink

Descripción del proyecto

MediLink es una plataforma de salud digital construida bajo una arquitectura de microservicios con Spring Boot y Spring Cloud. El sistema permite gestionar el ciclo completo de atención médica remota y presencial: registro de usuarios y profesionales de la salud, agendamiento y gestión de citas, atención por videollamada, emisión de recetas médicas, historial clínico, notificaciones, pagos y evaluación de la atención recibida.

Cada dominio del negocio (citas, usuarios, profesionales, pacientes, etc.) se implementa como un microservicio independiente, con su propia base de datos MySQL, que se registra en un servidor (Eureka) y se expone al exterior a través de un API Gateway único.

Integrantes

  • Chiguin Chiang
  • Victoria Ortega

Microservicios implementados

Microservicio Carpeta Dominio / responsabilidad Puerto local Puerto Docker (host) Base de datos
Eureka Server eureka_server Registro y descubrimiento de servicios 8761 8761
Gateway gateway Punto de entrada único de la API 8080 3001
Usuario usuario Registro y autenticación de usuarios (pacientes, profesionales) 3001 3012 usuario
Profesional profesional Gestión de profesionales de la salud, disponibilidad y horarios 3013 3013 profesional
Gestión de Pacientes gestion_pacientes Perfiles, contactos y datos de pacientes 4002 4002 gestion_pacientes
Agenda Médica agenda_medica Agendas de atención de los profesionales 3004 3004 agenda_medica
Cita cita Solicitud, confirmación y gestión de citas médicas 3006 3006 cita
Videollamada videollamada Atención médica remota por videollamada 3011 3011 videollamada
Historial Clínico historial_clinico Registro del historial médico de los pacientes 3007 3007 historial_clinico
Receta Médica receta_medica Emisión y consulta de recetas médicas 3008 3008 receta_medica
Pago pago Procesamiento de pagos asociados a citas 3010 3010 pago
Notificación notificacion Envío de notificaciones a usuarios 3005 3005 notificacion
Evaluación de Atención evaluacion_atencion Encuestas/valoración de la atención recibida 3009 3009 evaluacion_atencion

Rutas principales del Gateway

Todas las peticiones pasan por el Gateway en http://localhost:8080 (local) o http://localhost:3001 (Docker Compose):

Servicio Rutas expuestas
Cita /api/v1/citas/**, /api/v2/citas/**
Agenda Médica /api/v1/agendas/**, /api/v2/agendas/**
Evaluación de Atención /api/v1/evaluaciones/**, /api/v2/evaluaciones/**
Historial Clínico /api/v1/historiales/**, /api/v2/historiales/**
Notificación /api/v1/notificaciones/**, /api/v2/notificaciones/**
Pago /api/v1/pagos/**, /api/v2/pagos/**
Receta Médica /api/v1/recetas/**, /api/v2/recetas/**
Videollamada /api/v1/videollamadas/**, /api/v2/videollamadas/**
Usuario /api/v1/usuarios/**
Gestión de Pacientes /api/pacientes/**, /api/contactos/**, /api/perfiles/**
Profesional /api/v1/profesionales/**, /api/v1/disponibilidades/**, /api/v1/horarios/**

Documentación Swagger

Cada microservicio expone su propia documentación OpenAPI/Swagger en /doc/swagger-ui.html, tanto en ejecución local como en Docker (usando el puerto correspondiente de la tabla de microservicios). Ejemplos:

  • Usuario: http://localhost:3001/doc/swagger-ui.html
  • Profesional: http://localhost:3013/doc/swagger-ui.html
  • Gestión de Pacientes: http://localhost:4002/doc/swagger-ui.html
  • Agenda Médica: http://localhost:3004/doc/swagger-ui.html
  • Cita: http://localhost:3006/doc/swagger-ui.html
  • Videollamada: http://localhost:3011/doc/swagger-ui.html
  • Historial Clínico: http://localhost:3007/doc/swagger-ui.html
  • Receta Médica: http://localhost:3008/doc/swagger-ui.html
  • Pago: http://localhost:3010/doc/swagger-ui.html
  • Notificación: http://localhost:3005/doc/swagger-ui.html
  • Evaluación de Atención: http://localhost:3009/doc/swagger-ui.html

Ejecución con Docker Compose

Requisitos previos

  • Java 17
  • Maven (o usar el wrapper ./mvnw incluido en cada módulo)
  • MySQL 8 corriendo en localhost:3306 (o ajustar application.properties de cada microservicio)
  • Docker y Docker Compose (opcional, para levantar todo de una vez)

Desde la raíz del proyecto:

docker compose up --build

Tecnologías

  • Java 17
  • Spring Boot
  • Spring Cloud (Gateway, OpenFeign, Eureka)
  • MySQL
  • Flyway
  • Docker / Docker Compose
  • Swagger / OpenAPI (springdoc)
  • MapStruct
  • Lombok

About

Semestral con Vicky

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages