AUNA HEALTHCARE
2024 - PresenteFull-Stack Engineer
BFF Reactivo Multi-DB — AMI v2
Arquitecté y lideré la reestructuración completa del módulo core (detalle de expediente) del sistema de auditoría clínica y financiera de AUNA Healthcare. Soy dueño del diseño de la capa de datos, del BFF v2 y del frontend modular — incluyendo las decisiones arquitectónicas detrás del modelo de concurrencia y de la composición multi-fuente.
~60%Reducción tiempo de revisión por expediente
3BDs heterogéneas unificadas
60+Endpoints REST
4Thread pool executors dedicados
85+Funciones & SPs creadas
8,800Líneas reestructuradas
Detalle Técnico
Arquitectura & Trade-offs
- Elegí CompletableFuture + thread pools dedicados en vez de WebFlux end-to-end: la concurrencia acotada encajaba con el baseline Spring MVC del equipo y el presupuesto de latencia sin forzar todo el stack a un paradigma non-blocking.
- Diseñé 4 executors especializados con políticas explícitas — tareas generales (5-10 threads), batch (8-16 threads, queue 500), exports con backpressure y evaluación de reglas con CallerRunsPolicy — aislando modos de falla por tipo de carga.
- Compuse datos de 3 fuentes heterogéneas (asignaciones RDS, encuentros excluidos, expedientes HIS) unificados por episPk en capa de servicio, en vez de forzar una sola DB o un pipeline CDC.
- Apliqué patrón Facade sobre el estado del expediente en el frontend para centralizar editabilidad, permisos por rol, estado de pausa y bloqueo por liquidación — en vez de dejar que cada componente de tab maneje su propio estado.
Planificación & Ownership
- Planifiqué y lideré la reestructuración completa del módulo core del sistema (detalle de expediente), abarcando frontend, backend y base de datos desde cero para la v2.
- Definí la arquitectura de datos incluyendo modelado de tablas en PostgreSQL (esquema AMI) y la interfaz con Oracle para datos clínicos del HIS.
Arquitectura de Datos
- Diseñé y creé las tablas del esquema AMI en PostgreSQL (AWS RDS) para expedientes, asignaciones, liquidaciones, reglas y alertas.
- Desarrollé 25+ funciones PL/pgSQL cubriendo el ciclo de vida del expediente: asignaciones, validaciones clínicas (CIE-10, oncología), liquidación y reportería.
- Creé stored procedures en Oracle para extracción de datos clínicos del HIS (historia clínica, epicrisis, hojas de anestesia, informes quirúrgicos).
Backend Design — Java / Spring Boot
- Construí el BFF 2.0 en Spring Boot 3.3.5 / Java 17 con 17 controllers REST y 60+ endpoints para datos clínicos, quirúrgicos, oncológicos y de liquidación.
- Creé un scheduler de auditoría masiva diaria por sede con ejecución secuencial configurable y control de concurrencia con AtomicBoolean.
- Integré servicios externos: Magnus (análisis oncológico con JWT), SMCIFS (file server), AWS S3 y Secrets Manager.
Arquitectura Frontend — Angular
- Reestructuré componente monolítico de ~8,800 líneas en 8 componentes de tab independientes con carga lazy, mejorando mantenibilidad y rendimiento.
- Diseñé carga de datos con forkJoin (10+ requests paralelos por tab), switchMap para dependencias, catchError centralizado y finalize para cleanup.
- Desarrollé 18+ grillas de datos con Angular Material (MatTable + MatSort + MatPaginator) con configuración de columnas y acciones de auditoría.
- Implementé sistema de tracking de tiempo en tiempo real con RxJS interval para 3 tipos de timer con congelamiento por pausa.
Multiusuario & Diseño de Concurrencia
- Evalué e implementé soporte multiusuario con sistema de asignaciones que previene conflictos de edición y workflow de estados por rol.
- Implementé patrón de snapshot original para detección de conflictos a nivel de item, permitiendo comparar cambios y ofrecer "Deshacer".
- Diseñé sistema de pausas con mutex implícito: solo el auditor asignado puede pausar/reanudar, con tracking de tiempo y límite configurable.
Generación de Reportes
- Implementé reportes server-side en Excel (Apache POI), PDF (iText 8) y CSV (OpenCSV) con export worker asíncrono, sistema de jobs con heartbeat y estados.
- Desarrollé exports client-side en PDF (jspdf + html2pdf.js) y Excel (exceljs + file-saver) para pre-liquidación y facturación.
Stack Tecnológico
Java 17Spring Boot 3Angular 15PostgreSQLOracleDynamoDBPL/pgSQLAWS RDSAWS S3CompletableFutureRxJSModule Federation
SiguienteModernización POS — JSP → SPA MicroserviciosJPH SOLUTIONS
