Sistema Médico Hospital Nacional c. Diseño y Desarrollo
Hospital Nacional · Diseño y Desarrollo
🛠️

c. Diseño y Desarrollo

Sala de máquinas del proyecto: arquitectura, diseño, calidad, operación.

Stack Datos UX/UI Desarrollo Calidad Seguridad Operación Capacitación
Control documental: revisión cruzada ejecutada el 08-may-26 entre hn-diseno-desarrollo.php, hn-ingenieros.php, hn-ing-construccion.php y memory.md; además se registra el dominio operativo adicional www.sistema-medico.com.
1. Stack técnico

Arquitectura por capas

Bus de integración

NGINX reverse proxy + hilos virtuales (Project Loom) de Java 25. Cada microservicio en su puerto desde 8080.

Sistema operativo

Ubuntu Server 26.04 LTS · OpenJDK 25 · Spring Boot 4.x.

Backend

Java 25 + Spring Boot 4.x. Hilos virtuales para concurrencia masiva sin sobrecarga.

Frontend

Vite + React + TypeScript + WebSockets · TailwindCSS · shadcn/ui · Lucide.

Estado / Datos

Spring Boot como capa de estado y datos (REST + WebSockets reactivos hacia el frontend).

Contratos API

JWT firmados · OpenAPI 3.1 · FHIR R4 · versionado de contratos.

Bases de datos

PostgreSQL (transaccional) · MongoDB / GridFS (documentos y binarios).

Mensajería

Spring Events + WebSockets reactivos (publicador/suscriptor).

Orquestación

Kubernetes (single-node MVP) · imágenes versionadas · rolling updates.

Observabilidad

Prometheus · Grafana · Sentry · OpenSearch para logs.

DevOps · Secretos

Google Authenticator (TOTP) para acceso a secretos y operaciones críticas.

DevOps · Backups

Snapshot diario de VM completa + retención a NAS y nube cifrada.

Transparencia técnica

Diseño de 25 microservicios y despliegue piloto

El sistema se diseña como 25 microservicios. En este corte, la máquina virtual de Toscana corre 21 servicios activos verificados por acceso SSH directo. La tabla separa arquitectura objetivo, despliegue piloto y componentes que entran por fase. Última verificación: 8 de mayo 2026 · 16:18 hora de Guatemala en la máquina 177.7.57.79.

Componente Diseño objetivo Estado del despliegue piloto Decisión
(ADR)
Microservicios 25 microservicios diseñados: 24 carpetas locales presentes y pasarela FHIR pendiente de crear. 21 servicios activos en la VM Toscana · puertos 8080 al 8100 · verificados por proceso, puerto y prueba de salud. ADR-01, ADR-02
Despliegue Arquitectura preparada para automatizar despliegues y evolucionar hacia contenedores cuando el volumen lo justifique. Binario JAR nativo administrado por systemd · Nginx en el puerto 80 · túnel Cloudflare · sin Docker · sin Kubernetes. ADR-11
Base de datos
relacional
Una base por microservicio diseñado, con separación de responsabilidades clínicas y operativas. PostgreSQL 18 · 21 bases creadas · usuario dedicado por servicio · migraciones Flyway pendientes. ADR-04
Documentos
no relacionales
MongoDB con GridFS para notas longitudinales y archivos binarios clínicos. No desplegado en la VM piloto. Las notas clínicas viven hoy en PostgreSQL. ADR-05
Series temporales TimescaleDB para signos vitales de alta frecuencia (UCI y monitoreo). No desplegado en la VM piloto. Los signos vitales se guardan hoy en la base del eMAR de enfermería. ADR-06
Mensajería
y eventos
Apache Kafka como bus de eventos entre servicios, con esquemas Avro y registro de esquemas. Eventos internos de Spring dentro de cada servicio. WebSockets para tiempo real hacia el frontend. Kafka no está activo en la VM piloto. ADR-07
Interoperabilidad
HL7 versión 2
Mirth Connect para integrar laboratorios, PACS y monitores del HNSM. No desplegado en la VM piloto. ADR-08
Interoperabilidad
FHIR R4
Servicio de pasarela FHIR con los mapeos estándar de FHIR R4. Es el microservicio 25 del diseño. No desplegado en la VM piloto. Carpeta pendiente de crear. ADR-09
Identidad
y firma de tokens
OAuth2 como proveedor de recursos · tokens JWT con algoritmo RS256 · juego de claves públicas accesible en /.well-known/jwks.json. Activo en VM piloto. Hallazgo abierto: firma RSA efímera por reinicio mientras no se definan archivos de llave persistente. ADR-03
Observabilidad Trazas y métricas centralizadas por fases. Monitoreo operativo base con pruebas de salud y bitácoras por servicio. Stack completo entra en fases posteriores. ADR-10
2. Modelo de datos

Database per service

Cada microservicio dueño de su BD. PostgreSQL para transaccional, MongoDB/GridFS para documentos y binarios.

Entidades principales

EntidadServicioMotorAtributos clave
pacienteIdentidadPostgreSQLcui, nombres, apellidos, fecha_nac, sexo, dirección, foto
episodioExpedientePostgreSQLid, paciente_id, tipo, inicio, fin
nota_clinicaExpedienteMongoepisodio_id, autor, fecha, texto, firmas
diagnosticoExpedientePostgreSQLepisodio_id, cie10, descripción, principal
recetaRecetasPostgreSQLid, episodio_id, prescriptor_id, fecha, items, firma
receta_itemRecetasPostgreSQLreceta_id, medicamento_id, dosis, frecuencia, duración
medicamentoFarmaciaPostgreSQLsku, nombre, presentación, laboratorio, controlado
inventarioFarmaciaPostgreSQLmedicamento_id, lote, vencimiento, cantidad
citaCitasPostgreSQLid, paciente_id, prestador_id, fecha, estado
triageEmergenciaPostgreSQLepisodio_id, nivel, motivo, tomado_por
camaHospitalizaciónPostgreSQLid, área, número, estado
orden_labLaboratorioPostgreSQLid, episodio_id, prueba, urgente, estado
resultado_labLaboratorioMongo (GridFS)orden_id, valores, archivo, validador, firma
evento_auditAuditoríaMongo (WORM)actor, acción, recurso, hash_prev, sello_tiempo

Reglas de integridad y privacidad

3. Diseño UX/UI

Sistema de diseño

Paleta

Brand #0b3d91 · Acento #1f8a3a · Alerta #c0392b · Aviso #d97706.

Tipografía

Inter (UI) · Poppins (títulos) · escala 1.25.

Componentes

shadcn/ui + TailwindCSS · iconografía Lucide.

Accesibilidad

WCAG 2.1 AA · contraste mínimo 4.5:1 · navegación por teclado.

Pantallas principales

Login con MFA

Logo + usuario + contraseña + TOTP + disclaimer institucional.

Dashboard del rol

Identidad arriba, menú lateral por permisos, KPIs, bandeja de tareas.

Buscar paciente

CUI/QR/nombre, foto, edad, última visita, abrir o crear expediente.

Expediente clínico

Cabecera con alergias, pestañas: Notas, Diagnósticos, Recetas, Lab, Imágenes.

Triage de emergencia

Lista en tiempo real con semáforo y tiempo de espera.

Seguimiento de egreso

Altas activas, condición de egreso, plan post-hospitalario.

CPOE — Órdenes médicas

Prescripción electrónica con stock, dosis, duración, firma TOTP, QR.

Citas

Agendas del día / próximas, búsqueda por paciente o médico, estados en tiempo real.

Farmacia

Dispensación de recetas pendientes, alertas de stock bajo, verificación clínica.

Laboratorio

Solicitudes por prioridad, resultados con banderas H/L/C, historial analítico.

Banco de sangre

Solicitudes de hemocomponentes, tipificación, liberación para transfusión.

Quirófano

Estado en vivo de 4 quirófanos, programación de cirugías, duración estimada.

Camas

Mapa visual de ocupación por servicio (UCI/Medicina/Cirugía/Maternidad), KPIs %.

Anatomopatología

Gestión de biopsias y citologías, informes histológicos, clasificación CIE-10.

Trabajo Social

Casos activos por categoría (alta social, apoyo económico, violencia), acciones y seguimiento.

Dietas

Planes nutricionales activos, kcal/proteína, restricciones, próxima revisión del dietista.

Tablero ejecutivo

Pacientes, tiempos, ocupación, recetas, exportar SIGSA.

Auditoría

Tabla con hash WORM, filtros por usuario/acción/fecha, exportación firmada.

4. Desarrollo

Cómo construimos

Repos

GitHub privado de Toscana · un repo por microservicio + repo de infra (IaC) + repo de docs.

Convenciones Git

main protegido · feature/* · PRs con revisión obligatoria · Conventional Commits.

Estándares

Java: Spring Boot, Lombok, Mapstruct · React: hooks, TypeScript estricto, ESLint + Prettier.

CI/CD

GitHub Actions · pruebas en cada PR · build de imágenes · deploy a DEV/QA/PROD.

Ambientes

DEV · QA/STAGING · PRE-PROD · PROD. Datos anonimizados en STAGING.

Releases

Versionado semántico · changelog automatizado · ventana de despliegue viernes 19:00.

5. Calidad

Plan de pruebas

Niveles de prueba

Unitarias

JUnit 5 + Mockito · ≥ 80% en lógica crítica · por commit

Integración

Testcontainers + REST Assured · por PR

Contrato API

Pact + Schemathesis · diaria

E2E (UI)

Playwright · por release

Carga

k6 + Grafana · 5 000 usuarios concurrentes 30 min

Seguridad

OWASP ZAP + Trivy + Snyk · mensual

UAT

Validación con jefes de área HNSM · antes de cada hito

Regresión

Suite completa antes de cada release

Criterios de aceptación

6. Seguridad y respaldo

Defensa en profundidad

Cifrado en tránsito

TLS 1.3 obligatorio · Let's Encrypt o sello MSPAS · HSTS.

Cifrado en reposo

Cifrado a nivel de campo en datos sensibles (PostgreSQL y MongoDB).

MFA

Google Authenticator (TOTP) obligatoria para roles administrativos y clínicos.

RBAC

Roles: Director, Jefe, Médico, Enfermería, Farmacia, Lab, Estadística, Auditor, TI.

Auditoría WORM

Bitácora append-only con hash encadenado · exportación firmada.

OWASP Top 10

Hardening continuo · escaneo de dependencias · pentests periódicos.

Plan de respaldo y recuperación (DRP)

Estrategia 3-2-1: 3 copias · 2 medios · 1 fuera de sitio (nube cifrada). Pruebas mensuales de restauración.

VM completa

Snapshot diario 02:00 · retención 30 días · NAS + nube.

PostgreSQL

WAL streaming continuo + dump diario · 30 días.

MongoDB

mongodump diario · 30 días · GridFS sincronizado cada 6 h.

Configuración (IaC)

Versionada en Git · reproducible.

7. Operación y soporte

Manuales y runbooks

Manual de Usuario

Guía paso a paso por área: consulta externa, emergencia, hospitalización, farmacia, laboratorio, estadística.

Manual de Administrador TI

Inventario de servicios, operaciones diarias, procedimientos críticos, mantenimientos programados, escalamiento.

Mesa de ayuda

L–V 7:00–19:00 · WhatsApp 5632-5240 · soporte@toscanasystems.com.

Escalamiento

N1 mesa HNSM · N2 Informática HNSM · N3 DevOps Toscana · N4 Gerencia Toscana.

SLA por severidad

S1 ≤ 4 h · S2 ≤ 1 día · S3 ≤ 1 sprint · S4 backlog.

Reportes mensuales

Avance %, KPIs, riesgos. Firmados por gerente Toscana + director HNSM.

8. Capacitación

Plan de adopción

Septiembre

Capacitación a Informática HNSM (formadores internos · 16 h).

Octubre

Talleres por área: médicos generales, especialistas, enfermería, farmacia, laboratorio, estadística.

Noviembre

Sesiones ejecutivas (dirección + jefes) y simulacros por turno.

Diciembre

Acompañamiento en piso durante el go-live (2 semanas).

Indicadores de adopción

Toda la documentación detallada (PDFs, diagramas, manuales, planes y reportes) se entrega en el paquete del proyecto.

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