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
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 18 · un esquema por microservicio (database-per-service). MongoDB/GridFS para documentos y binarios queda planificado (aún no desplegado).

Mensajería

Spring Events + WebSockets reactivos (publicador/suscriptor).

Orquestación

30 microservicios como unidades systemd (JAR Spring Boot) en VM Ubuntu, con NGINX al frente — topología racionalizada de 36 a 30 (12–13 jun: duplicados retirados + Servicios Generales consolidados). Kubernetes queda como evolución futura, no como despliegue actual.

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.

2. Modelo de datos

Database per service

Cada microservicio dueño de su BD. Hoy todo persiste en PostgreSQL 18; las entidades marcadas como «Mongo» indican el almacén documental planificado (MongoDB/GridFS), aún no desplegado.

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.

Mapa de camas

Grilla por servicio, color por estado, click para asignar/alta.

Receta electrónica

Buscador con stock, dosis, duración, firma TOTP, QR.

Bandeja de farmacia

Recetas pendientes, inventario, alertas de caducidad.

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 en PostgreSQL (y MongoDB cuando se incorpore el almacén documental).

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 (planificado)

mongodump diario · 30 días · GridFS sincronizado cada 6 h, cuando se incorpore el almacén documental.

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 3786-3061 · 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