rmb
EN

Med Monitor App

Med Monitor App es un sistema nativo en la nube diseñado para monitorizar signos vitales de pacientes, gestionar alertas y generar informes. Utiliza arquitectura de microservicios con mensajería en tiempo real e integración segura en la nube. El sistema ofrece un dashboard responsivo y APIs REST para interactuar con datos de pacientes, alertas, signos vitales e informes.

Med Monitor App
AngularSpring BootKafkaRabbitMQAWSOracle DBDocker

Descripción del Proyecto

  • Cliente Angular: Aplicación web responsiva para dashboards, alertas y visualización de datos de pacientes.
  • Backend-for-Frontend (BFF): Servicio Spring Boot que conecta el frontend con microservicios y realiza agregación.
  • Servicio de Pacientes: Gestiona registros de pacientes y consume actualizaciones de estado.
  • Servicio de Signos Vitales: Maneja la ingesta, almacenamiento y distribución de signos vitales.
  • Servicio de Alertas: Genera y gestiona alertas por umbrales de signos vitales.
  • Servicio de Informes: Crea y almacena informes JSON en AWS S3.

Stack Tecnológico

Frontend:

  • Angular 18, RxJS, Tailwind CSS
  • MSAL (autenticación Azure AD)

Backend y Microservicios:

  • Java 23, Spring Boot 3, Maven
  • Kafka y RabbitMQ para mensajería
  • Oracle Database (con wallet)
  • AWS S3 para almacenamiento de informes

Infraestructura:

  • Docker para contenerización
  • AWS API Gateway para enrutamiento
  • Configuración y gestión de secretos externalizada

Aspectos Destacados de la Arquitectura

  • Microservicios con Spring Boot 3
  • Comunicación orientada a eventos vía Kafka y RabbitMQ
  • Persistencia de datos en Oracle DB (con wallet para conexión segura)
  • Almacenamiento y hosting en la nube con AWS (API Gateway, S3)
  • Autenticación con Azure AD (MSAL)
  • Despliegue contenerizado con Docker

Diagrama de Arquitectura


Funcionalidades

Cliente Frontend

  • Dashboard de signos vitales y alertas en tiempo real
  • Vista de detalle de pacientes y alertas
  • Autenticación de usuario (Azure AD)
  • Navegación y layout responsivo

Backend-for-Frontend (BFF)

  • API REST para datos de pacientes, alertas y signos vitales
  • Manejo de CORS y seguridad
  • Agrega datos de microservicios para el frontend

Servicio de Pacientes

  • Operaciones CRUD para datos de pacientes
  • Consume actualizaciones de estado desde RabbitMQ
  • Inicializa datos de ejemplo al arrancar

Servicio de Signos Vitales

  • Genera y almacena signos vitales de pacientes
  • Produce mensajes Kafka y resúmenes en RabbitMQ
  • APIs REST para gestión de datos

Servicio de Alertas

  • Consume signos vitales y genera alertas
  • Publica alertas en Kafka y RabbitMQ
  • Endpoints REST para gestión de alertas

Servicio de Informes

  • Consume mensajes de RabbitMQ para generar informes
  • Almacena informes JSON en AWS S3
  • APIs REST para listar y descargar informes

Endpoints Principales de la API

BFF

  • GET /api/alerts – Listar alertas
  • GET /api/patients – Listar pacientes
  • GET /api/patients/{id} – Obtener paciente por ID
  • POST /api/vital-signs – Crear nuevo signo vital

Servicio de Pacientes

  • CRUD completo en /api/patients

Servicio de Signos Vitales

  • CRUD completo en /api/vital-signs
  • GET /api/vital-signs/patient/{patientId}

Servicio de Alertas

  • CRUD completo en /api/alerts

Servicio de Informes

  • GET /api/reports – Listar informes
  • GET /api/reports/{id} – Descargar informe

Buenas Prácticas

  • Arquitectura en capas: controladores, servicios, repositorios y configuración claramente separados.
  • Inyección de dependencias: uso de Lombok o anotaciones de Spring para testabilidad.
  • Gestión de configuración: datos sensibles y variables de entorno externalizados. Sin credenciales hardcodeadas.
  • Manejo de excepciones: centralizado para endpoints REST.
  • Logging y monitoreo: integración con SLF4J y monitoreo cloud-native.
  • Pruebas: unitarias e integración para servicios y repositorios.
  • Contenerización: Docker para despliegues consistentes y portables.
  • Calidad de código: Java y Angular siguen estándares y mantienen modularidad.
  • Documentación: endpoints claros y documentación interna para mantenibilidad.
Publicado: 01/04/2025

Proyectos Relacionados

Chatbot App
Una aplicación de chatbot potenciado por IA, diseñado para soporte rápido, amigable e interactivo.
Next Store
Aplicación web de e-commerce escalable construida con Next.js y PostgreSQL, con catálogo de productos, autenticación de usuarios y sistema de carrito de compras.
Aplicación de Películas
Una aplicación Angular 20+ modular y escalable para explorar, buscar y gestionar películas. Construida con las mejores prácticas para mantenibilidad, rendimiento y claridad.