Adrián López Rendón · proyectos

Plataforma Integral de Gestión del Servicio de Osteosíntesis

578 words 3 min read #Full-Stack#FastAPI#Angular#MongoDB#Docker

Una plataforma full-stack para gestionar contratos de Servicio Integral de Osteosíntesis entre una empresa de insumos médicos y múltiples agencias de salud de gobiernos estatales mexicanos (IMSS y otras). El sistema digitaliza y controla todo el ciclo de vida del evento quirúrgico —desde la solicitud de material hasta la facturación gubernamental— eliminando el seguimiento manual, reduciendo errores de documentación y habilitando la facturación mensual de contratos mediante exportaciones estructuradas a Excel. En producción de septiembre de 2025 a mayo de 2026, en 15 hospitales, 10 usuarios, 2 estados.

Arquitectura y Stack

Arquitectura multi-servicio contenedorizada orquestada vía Docker Compose con configuraciones específicas por entorno (dev, QA, prod).

Angular 19 (Tailwind + PrimeNG) — Firebase Hosting
↓ (Socket.IO / REST)
API REST FastAPI + Nginx + Gunicorn
Servicios → Repositorios → Beanie ODM
MongoDB
Workers de Celery (broker RabbitMQ)
GCP Compute Engine — Docker Compose
GCP Cloud Storage (carga de PDFs)
Terraform (infraestructura como código)
  • Backend — FastAPI (Python 3.11) en un patrón estrictamente en capas (Endpoints → Servicios → Repositorios → ODM)
  • Base de datos — MongoDB vía Beanie ODM (driver async Motor) con caché a nivel documento
  • Tareas asíncronas — Celery con RabbitMQ (QA/prod) o Redis (dev), colas por prioridad (alta/normal/baja)
  • Tiempo real — Estado de tareas enviado a clientes vía Socket.IO (gestor pub/sub de Redis)
  • Almacenamiento — Google Cloud Storage para carga de PDFs (recetas, CURP, INE, hojas de remisión)
  • Frontend — SPA en Angular 19 con Tailwind CSS y PrimeNG, alojada en Firebase, autenticada vía Firebase Auth con SSO Empresarial de Microsoft 365
  • Infraestructura — GCP + Firebase provisionados con Terraform; CI/CD con GitHub Actions (verificaciones de calidad → build de Docker → despliegue automatizado a GCP Compute Engine)
  • Observabilidad — Prometheus + Grafana + Alertmanager + cAdvisor + Node Exporter + Pushgateway detrás de Caddy, más Papertrail para logs y Sentry para monitoreo de errores

Logros Técnicos Clave

Modelado de dominio — Un dominio multi-contrato y multi-agencia que cubre esquemas de comisión escalonados (retroactivos/progresivos, con niveles configurables y valor monetario por cirugía), materiales quirúrgicos etiquetados con claves fiscales SAT y códigos CCNIS para facturación gubernamental, identificación de paciente multi-tipo (CURP, NSS del IMSS) y requisitos documentales por contrato — todo con borrado suave y slugs para prevenir duplicados en las entidades del catálogo.

Flujo de eventos quirúrgicos — Un ciclo de vida de 8 pasos: solicitud de material → aprobación de compras (con sustitución de material externo) → despacho de almacén con seguimiento de referencia ERP → confirmación de recepción de instrumental → captura de datos post-cirugía → carga de documentos PDF → remisión de material → validación del supervisor. Los eventos validados por el supervisor alimentan una exportación mensual a Excel con el detalle completo de consumo de material por contrato para la facturación gubernamental.

Arquitectura limpia en capas — Endpoints → Servicios → Repositorios → ODM con inyección de dependencias vía Depends(get_services) de FastAPI; una jerarquía de excepciones personalizada (BaseAppExceptionDatabaseException, BusinessLogicException, AuthException) manejada por un ExceptionMiddleware global; control de acceso basado en roles con dashboards y reportes específicos por rol.

Resiliencia de producción — Suite de pytest con pruebas unitarias (repositorios simulados vía AsyncMock) y pruebas de integración contra una base de datos de prueba aislada en vivo; contenedores Docker sin privilegios de root detrás de Nginx y Gunicorn; cada modelo de datos incluye campos created_at/updated_at/borrado suave para compatibilidad completa del pipeline de datos.