25 microservicios independientes con su flujo de datos: entidades dueñas, eventos publica/consume, integraciones SIGSA · SICOIN · Guatecompras · RENAP · FHIR.
Toscana Systems aporta una base de microservicios clínicos ya probada en otros proyectos. Reutilizamos lo que existe, adaptamos lo que requiere reglas MSPAS/SIGSA y construimos desde cero solo lo específico del hospital público.
40 % · 1–2 semanas (configuración).
36 % · 5–8 semanas.
24 % · 10–14 semanas. Encamamiento, ER, OT, obstetricia, FHIR-SIGSA, MINFIN.
Cada tarjeta muestra propósito, stack y el flujo de datos del servicio: entidades dueñas, eventos que publica, eventos que consume, integraciones externas y catálogos consumidos.
Autenticación SSO, gestión de identidades, RBAC, 2FA.
Stack: Keycloak · OIDC · SAML · JWT · LDAP MSPAS
Datos Usuario · Sesión · Rol · Permiso
Publica usuario.creado · sesion.iniciada · sesion.cerrada
Consume rrhh.plaza.alta · rrhh.plaza.baja
Integra LDAP MSPAS · Keycloak
Catálogos Roles MSPAS · Permisos RBAC
Bitácora inmutable de toda acción del sistema (estilo HIPAA).
Stack: Kafka · Elasticsearch · almacenamiento WORM
Datos Bitácora WORM (hash encadenado)
Consume TODOS los eventos del sistema
Bus interno HL7 v2 / FHIR / REST entre microservicios y sistemas legados.
Stack: Apache Kafka · NATS · Mirth · HL7 v2.5 · FHIR R4
Datos Mensaje HL7 · Evento Kafka · Adaptador
Publica integracion.recibido · integracion.enviado
Consume Suscribe a topics de todos los servicios
Integra HL7 v2.5 · FHIR R4 · Mirth Connect
Envío de SMS, correo y push (turnos, resultados, alertas).
Stack: Twilio · SendGrid · Firebase · Liquid
Datos Plantilla · Notificación · Canal
Publica notificacion.enviada · notificacion.fallida
Consume orden.resultado · cita.confirmada · alerta.epi
Integra SMS · correo · push · WhatsApp Business
Catálogos Plantillas Liquid
Índice maestro de pacientes (MPI): identidad única validada con RENAP-CUI.
Stack: PostgreSQL · OpenSearch · regex CUI 13 dígitos
Datos Paciente · Identificador · Dirección
Publica paciente.creado · paciente.actualizado · paciente.fusionado
Consume parto.rn.creado
Integra RENAP-CUI (algoritmo + WS)
Catálogos Etnias · Idiomas · Municipios INE
Episodios asistenciales: consulta externa, emergencia, hospitalización, telemedicina.
Stack: PostgreSQL · Spring Boot 4
Datos Episodio · Servicio · Diagnóstico CIE-10
Publica episodio.abierto · episodio.cerrado
Consume paciente.creado · triaje.asignado
Catálogos CIE-10 · Servicios MSPAS
Expediente clínico electrónico: notas, anamnesis, exploración, evolución.
Stack: PostgreSQL + MongoDB (notas) · OpenSearch
Datos Nota clínica · Anamnesis · Evolución · Alta
Publica nota.firmada · alta.emitida
Consume episodio.abierto
Catálogos CIE-10 · SNOMED CT subset
Órdenes médicas: laboratorio, imagen, procedimientos, dieta.
Stack: PostgreSQL · FHIR ServiceRequest
Datos Orden (lab/imagen/proc/dieta)
Publica orden.creada · orden.cancelada
Consume episodio.abierto
Integra FHIR ServiceRequest
Catálogos Catálogo de exámenes MSPAS · LOINC
Integrador con LIS: recibe órdenes (ORM) y libera resultados (ORU).
Stack: HL7 v2.5 · FHIR DiagnosticReport
Datos Resultado de laboratorio
Publica lab.resultado.liberado · lab.critico
Consume orden.creada (tipo lab)
Integra HL7 v2.5 ORM/ORU contra LIS HNSM
Catálogos LOINC · valores de referencia
Integrador PACS/RIS: Modality Worklist e informes radiológicos.
Stack: DICOM · HL7 ORM · MongoDB GridFS
Datos Estudio · Modalidad · Informe DICOM
Publica imagen.estudio.completado · informe.firmado
Consume orden.creada (tipo imagen)
Integra DICOM Modality Worklist · PACS HNSM
Catálogos Modalidades DICOM
Prescripción electrónica, dispensación y conciliación con LBM.
Stack: PostgreSQL · ATC · LBM
Datos Prescripción · Dispensación · Lote
Publica rx.prescrita · rx.dispensada · rx.alergia
Consume orden.creada · alta.emitida
Integra LBM-MSPAS · ATC
Catálogos ATC · LBM (Listado Básico Medicamentos)
Captura y series de tiempo de signos vitales (PA, FC, FR, T°, SatO2, EVA, Glasgow).
Stack: TimescaleDB · Spring Boot 4
Datos Signo vital (serie temporal)
Publica vital.fuera_rango
Consume episodio.abierto
Integra Monitores cabecera (HL7)
Catálogos Glasgow · EVA pediátrica
Emergencia: triaje Manchester, sala de choque, observación 24 h.
Stack: PostgreSQL · Triaje Manchester · WS
Datos Triaje Manchester · Sala de choque · Observación
Publica triaje.asignado · er.alta
Consume paciente.creado
Catálogos Manchester · CIE-10 ER
Quirófano: programación, hoja operatoria, lista de seguridad OMS, recursos.
Stack: PostgreSQL · checklist OMS
Datos Cirugía · Hoja operatoria · Checklist OMS
Publica cirugia.programada · cirugia.cerrada
Consume orden.creada (tipo proc)
Catálogos CIE-9-CM · Checklist OMS
Encamamiento: censo de camas, asignación, traslados, altas.
Stack: PostgreSQL · WebSockets
Datos Cama · Asignación · Traslado
Publica cama.ocupada · cama.libre · traslado
Consume episodio.abierto · alta.emitida
Integra WebSockets en vivo
Catálogos Salas y servicios HNSM
Eventos obstétricos: parto, cesárea, recién nacido. SIGSA-4 / 5.
Stack: PostgreSQL · partograma
Datos Parto · Recién nacido · Partograma
Publica parto.cerrado · rn.creado
Consume episodio.abierto (obstétrico)
Integra SIGSA-4/5 vía reportes-sigsa
Catálogos CIE-10 obstétrico · APGAR
Vigilancia epidemiológica: notificación obligatoria, IRAS / ETAS / vectores.
Stack: PostgreSQL · FHIR · MSPAS
Datos Notificación EPI · Caso obligatorio
Publica epi.notificado
Consume lab.resultado.liberado · alta.emitida
Integra MSPAS Vigilancia (FHIR + CSV)
Catálogos Listado obligatorio MSPAS · IRAS · ETAS · vectores
Suplementación de menores de 5 años, salud reproductiva, planificación familiar.
Stack: PostgreSQL · catálogos MSPAS
Datos Suplementación · Plan familiar · Salud reproductiva
Publica sup.entregada
Consume episodio.abierto (CE pediátrica/SR)
Integra SIGSA-11/13/18 vía reportes-sigsa
Catálogos Catálogos suplementación menor 5 años
Recursos humanos: plantilla, turnos, asistencia, biométrico, evaluación.
Stack: PostgreSQL · biométrico · SIRH MSPAS
Datos Plaza · Asistencia · Turno · Evaluación
Publica rrhh.plaza.alta · rrhh.asistencia
Consume auth.usuario.creado
Integra Biométrico · SIRH MSPAS
Catálogos Renglones MINFIN (011/021/022/029/182/211)
Presupuesto: ejecución por programa y renglón, sincroniza con SICOIN.
Stack: PostgreSQL · SICOIN SOAP
Datos Ejecución presupuestaria · Programa · Renglón
Publica pres.devengado · pres.alerta_subejec
Consume compra.adjudicada · rrhh.nomina
Integra SICOIN SOAP (UE 248)
Catálogos UE 248 · Programas 11/13/14/15/16
Compras y contratos: NPG/NOG, integración Guatecompras, evaluación de proveedores.
Stack: PostgreSQL · scraping autorizado GC
Datos Compra · NPG · NOG · Proveedor · Contrato
Publica compra.publicada · compra.adjudicada
Consume inv.minimo
Integra Guatecompras (scraping autorizado)
Catálogos NPG/NOG · Modalidades de compra
Inventario médico y farmacéutico: existencias, lotes, vencimientos, picking FEFO.
Stack: PostgreSQL · códigos de barras
Datos Existencia · Lote · Vencimiento · Movimiento
Publica inv.minimo · inv.vencimiento
Consume rx.dispensada · compra.adjudicada
Integra Códigos de barras · MSPAS
Catálogos Códigos MSPAS · ATC
Facturación: gratuidad MSPAS, IGSS, cooperación, privados.
Stack: PostgreSQL · SAT · IGSS
Datos Factura · Fuente (Gratuidad/IGSS/Cooperación/Privado)
Publica factura.emitida
Consume alta.emitida · rx.dispensada · cirugia.cerrada
Integra SAT (FEL) · IGSS
Catálogos Tipos de fuente MSPAS
Endpoint FHIR R4 público (mTLS) hacia MSPAS, IGSS y otros hospitales.
Stack: Spring Cloud Gateway · FHIR R4 · mTLS
Datos Recurso FHIR (Patient · Encounter · Observation · DiagnosticReport · MedicationRequest)
Publica fhir.export.solicitado
Consume paciente.actualizado · alta.emitida · lab.resultado.liberado
Integra FHIR R4 mTLS hacia MSPAS · IGSS · otros hospitales
Catálogos FHIR R4 · ValueSets MSPAS
Generador de reportes oficiales SIGSA en formato CSV/XML del MSPAS.
Stack: Spring Boot · CSV/XML SIGSA
Datos Reporte SIGSA generado (CSV/XML)
Publica sigsa.enviado · sigsa.fallido
Consume episodio.cerrado · alta.emitida · parto.cerrado · rn.creado · cirugia.cerrada · sup.entregada · epi.notificado
Integra MSPAS SIGSA (14 formularios)
Catálogos SIGSA 3 H/A · 3 C.E. · 4 · 5 · 5 A · 6 · 7 · 7 A · 8 · 8 A · 11 · 13 · 18 · 33
Síncrono REST/JSON entre microservicios; WebSockets reactivos para tableros y notificaciones en vivo.
Spring Events publicados por cada servicio; suscriptores reactivos para auditoría, reportes y notificaciones.
HL7 v2.5 con sistemas legados (ADT, ORM, ORU). FHIR R4 hacia MSPAS, IGSS y otros hospitales.
Cada servicio dueño de su BD. Prohibido leer la BD de otro servicio: solo API o eventos.
Apache Kafka + NATS + Mirth Connect como adaptadores HL7. DLQ y entrega at-least-once.
99.95 % autenticación · 99.9 % auditoría/bus · ≤ 200 ms p95 en autenticación · ≤ 800 ms p95 en lecturas clínicas.