Historia Clínica ISTJBA — Sistema de gestión de historiales clínicos
InicioProyectosHistoria Clínica — ISTJBA

Historia Clínica — ISTJBA

Sistema de gestión de historiales clínicos migrado de PHP/MySQL a NestJS + React + PostgreSQL + Prisma, con dashboard, reportes PDF y 526 pacientes.

Detalles
Tipo
Web App
Rol
Full-stack Developer
Creación
Q1 2025
Actualización
Q3 2026
Visitar
Demo
Código
Github
Stack tecnológico
NestJS 11React 19Vite 8TypeScriptPostgreSQLPrisma 7Tailwind CSS
01

Descripción

Contexto general

Sistema de gestión de historiales clínicos para el Instituto Superior Tecnológico Juan Bautista Aguirre (ISTJBA). La primera versión fue desarrollada en 2025 en PHP procedural + MySQL + Bootstrap como parte de las prácticas profesionales. En 2026 se refactorizó el proyecto completo a un monorepo moderno con NestJS 11 (REST API + JWT), React 19 + Vite 8 (SPA), PostgreSQL 18 y Prisma 7 como ORM. Incluye dashboard con métricas y gráficos (Recharts), gestión completa de pacientes con historia clínica estructurada (antecedentes patológicos, obstétricos, familiares, evolución clínica), generación de PDFs con PDFKit (listado general e informe individual), autenticación con JWT + bcrypt, rate limiting con ThrottlerGuard, perfiles de usuario editables y paleta clínica 60-30-10 con TailwindCSS 4.

Historia Clínica ISTJBA — Sistema de gestión de historiales clínicos
02

Motivación

Por qué lo construí

Digitalizar y centralizar los historiales clínicos que antes se gestionaban con papel y hojas de cálculo en el instituto.

Migrar el sistema legacy (PHP procedural + MySQL) a un stack moderno (NestJS + React + PostgreSQL + Prisma) mejorando seguridad, escalabilidad y mantenibilidad.

Generar reportes y estadísticas en PDF automáticamente: listado general de pacientes, informes individuales con datos clínicos completos y gráficos de distribución.

Manejar historia clínica estructurada con antecedentes patológicos, obstétricos, familiares, evolución clínica (signos vitales, examen físico, diagnóstico, tratamiento) y transacciones atómicas.

03

Características

Lo que destaca

Monorepo con pnpm workspaces: API NestJS 11 + frontend React 19 + Vite 8 + paquete shared con tipos y schemas.

Backend NestJS con ValidationPipe (whitelist + forbidNonWhitelisted), ThrottlerGuard (rate limiting: 3 req/s, 20 req/10s, 100 req/min) y JWT + bcrypt para autenticación.

Prisma 7 con driver adapter @prisma/adapter-pg, schema tipado desde schema.prisma, migraciones SQL y seed de 526 pacientes con datos realistas.

Dashboard con métricas, sparklines, doughnut de distribución por sexo (Recharts), tabla de pacientes recientes y gráficos por provincia y rango etario.

Generación de PDFs con PDFKit: listado general con numeración correlativa e informe individual con datos personales, antecedentes, diagnóstico y tabla de tratamiento.

Frontend React 19 con TanStack Query 5 (cache + refetch), React Hook Form con paths anidados (pathologicalBackground.alergico), sidebar con hover-expand y perfil editable off-canvas.