Sistema Médico Hospital Nacional b. Microservicios
Hospital Nacional · Microservicios
🧩

b. Microservicios

25 microservicios independientes con su flujo de datos: entidades dueñas, eventos publica/consume, integraciones SIGSA · SICOIN · Guatecompras · RENAP · FHIR.

Auditoría de reuso

76 % de avance desde día uno

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.

Reutilizables · 10

40 % · 1–2 semanas (configuración).

A adaptar · 9

36 % · 5–8 semanas.

Nuevos · 6

24 % · 10–14 semanas. Encamamiento, ER, OT, obstetricia, FHIR-SIGSA, MINFIN.

Catálogo + flujo de datos · 25 microservicios

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.

Plataforma Clínico Vigilancia Administración Interop Reutilizable Adaptar Nuevo
#01 autenticacion-svc
Plataforma Reutilizable · 95 %

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

#02 auditoria-svc
Plataforma Reutilizable · 100 %

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

#03 bus-integracion-svc
Plataforma Reutilizable · 100 %

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

#04 notificaciones-svc
Plataforma Reutilizable · 90 %

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

#05 identidad-paciente-svc
Clínico Adaptar · 70 %

Í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

#06 episodios-svc
Clínico Reutilizable · 85 %

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

#07 expediente-clinico-svc
Clínico Reutilizable · 85 %

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

#08 ordenes-medicas-svc
Clínico Reutilizable · 85 %

Ó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

#09 laboratorio-svc
Clínico Reutilizable · 80 %

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

#10 imagenologia-svc
Clínico Adaptar · 60 %

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

#11 farmacia-svc
Clínico Adaptar · 65 %

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)

#12 signos-vitales-svc
Clínico Reutilizable · 95 %

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

#13 emergencia-svc
Clínico Nuevo · 20 %

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

#14 quirofano-svc
Clínico Nuevo · 10 %

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

#15 encamamiento-svc
Clínico Nuevo · 15 %

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

#16 obstetricia-svc
Clínico Nuevo · 20 %

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

#17 vigilancia-epidemiologica-svc
Vigilancia Nuevo · 25 %

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

#18 nutricion-svc
Vigilancia Adaptar · 50 %

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

#19 recursos-humanos-svc
Administración Adaptar · 60 %

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)

#20 presupuesto-svc
Administración Nuevo · 10 %

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

#21 compras-svc
Administración Nuevo · 10 %

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

#22 inventario-svc
Administración Adaptar · 60 %

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

#23 facturacion-svc
Administración Adaptar · 55 %

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

#24 pasarela-fhir-svc
Interop Nuevo · 30 %

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

#25 reportes-sigsa-svc
Interop Adaptar · 55 %

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

Comunicación

Cómo se hablan los servicios

REST + WebSockets

Síncrono REST/JSON entre microservicios; WebSockets reactivos para tableros y notificaciones en vivo.

Eventos

Spring Events publicados por cada servicio; suscriptores reactivos para auditoría, reportes y notificaciones.

HL7 v2 · FHIR R4

HL7 v2.5 con sistemas legados (ADT, ORM, ORU). FHIR R4 hacia MSPAS, IGSS y otros hospitales.

Database-per-service

Cada servicio dueño de su BD. Prohibido leer la BD de otro servicio: solo API o eventos.

Bus integration

Apache Kafka + NATS + Mirth Connect como adaptadores HL7. DLQ y entrega at-least-once.

SLAs

99.95 % autenticación · 99.9 % auditoría/bus · ≤ 200 ms p95 en autenticación · ≤ 800 ms p95 en lecturas clínicas.

← Volver a Hospital Nacional 🏥 Inicio del Sistema Médico 🏠 Inicio Toscana