Sistema integral de gestión hospitalaria desarrollado con React 19, Tauri 2.9, SQLite, y Tailwind CSS. Ofrece una solución completa para la administración de hospitales con módulos para administradores, médicos, enfermeros y pacientes.
✅ Cumple con NOM-004-SSA3-2012 para integridad del expediente clínico electrónico.
Este sistema cumple con los requisitos de la Norma Oficial Mexicana NOM-004-SSA3-2012:
✅ Integridad del Expediente: Las notas médicas NO pueden ser eliminadas
✅ Trazabilidad: Registro de auditoría completo de todas las acciones
✅ Conservación: Base de datos persistente con SQLite
✅ Confidencialidad: Control de acceso por roles
Documentación:
- 📖 NOM004_COMPLIANCE.md - Guía completa de cumplimiento
- 📖 AUDIT_VIEWER_GUIDE.md - Uso del visor de auditoría
- 🧪 verify_nom004.sh - Script de verificación automática
- Login con hash SHA-256
- Registro de usuarios con validación
- Contraseñas seguras (>6 chars, mayúsculas, minúsculas, números)
- Control de acceso basado en roles (Admin, Doctor, Enfermero, Paciente)
- Cambio de contraseña
- Recuperación por cédula profesional
- Seguimiento de último inicio de sesión
- Activación/Desactivación de usuarios
- Dashboard con estadísticas en tiempo real
- Gestión completa de usuarios (CRUD)
- Directorio de personal (médicos, enfermeros)
- Métricas del sistema (ocupación de camas, citas, rendimiento)
- Configuración del sistema
- Visualización de actividad reciente
- Gestión de departamentos
- Vista de todos los pacientes asignados
- Creación de prescripciones con dosis y frecuencia
- Registro de diagnósticos y tratamientos
- Historial médico completo de pacientes
- Gráficas de tendencias de signos vitales (Recharts)
- Análisis de distribución de pacientes por condición
- Dashboard de análisis y estadísticas
- Acceso a resultados de laboratorio
- Gestión de pacientes (30 pacientes precargados)
- Registro de signos vitales con validación automática
- ✅ Validación en tiempo real de rangos fisiológicos
⚠️ Alertas para valores críticos/anormales- 🚨 Confirmación requerida para valores críticos
- 🛡️ Prevención de valores imposibles
- 📊 Rangos normales: Temp (36-37.5°C), PA (90-120/60-80), FC (60-100 lpm), FR (12-20 rpm)
- Historial por turno (Mañana/Tarde/Noche)
- Administración de tratamientos farmacológicos
- Tratamientos no farmacológicos (curaciones, nebulizaciones, etc.)
- Notas de enfermería (evolutivas, incidentes) - NO ELIMINABLES (NOM-004)
- Sistema de traslados (piso, área, habitación, cama)
- Hoja de enfermería digital (formato completo de turno)
- Programación de citas
- Búsqueda rápida de pacientes
- Registro de auditoría para trazabilidad legal
- Ver información personal
- Historial médico
- Citas programadas
- Resultados de laboratorio
- Tratamientos activos
- Prescripciones
- Notificaciones en tiempo real
- Contador de notificaciones no leídas
- Marcador de leído/no leído
- Eliminación de notificaciones
- Actualización automática cada 30 segundos
- Tipos: info, success, warning, error
- Búsqueda en tiempo real con debounce
- Busca en todas las entidades:
- Pacientes (nombre, habitación, condición, tipo de sangre)
- Citas (paciente, tipo, doctor)
- Tratamientos (medicación, personal)
- Pruebas de laboratorio (tipo, estado)
- Historial médico (diagnóstico, doctor)
- Resultados instantáneos con iconos y categorías
- Navegación directa desde resultados
Integración con Recharts para gráficas interactivas:
- Gráficas de líneas: Tendencias de signos vitales
- Gráficas de pastel: Distribución de pacientes por condición
- Gráficas de barras: Ingresos mensuales, tipos de sangre
- Dashboard de análisis para doctores
- Estadísticas en tiempo real
- Toggle de modo claro/oscuro
- Persistencia en localStorage
- Transiciones suaves
- Iconos Sol/Luna
- Compatibilidad con todos los componentes
- Menú hamburguesa para móviles
- Diseño adaptativo con Tailwind CSS
- Optimizado para tablets y smartphones
- Navegación intuitiva en todos los dispositivos
- Glass morphism effects
- Gradientes animados (purple/blue/emerald/cyan)
- Animaciones suaves (fadeIn, slideIn, scaleIn)
- Badges de estado con gradientes
- Cards con efectos hover
- Loading skeletons
- Iconos de Lucide React
- users - Usuarios del sistema con roles y permisos
- patients - Información completa de pacientes
- appointments - Citas médicas
- treatments - Tratamientos y medicaciones
- vital_signs - Signos vitales (temperatura, presión, frecuencia cardíaca)
- lab_tests - Pruebas de laboratorio
- medical_history - Historial médico
- nurse_notes - Notas de enfermería
- notifications - Sistema de notificaciones
- rooms - Gestión de habitaciones y camas
- prescriptions - Prescripciones médicas
- invoices - Facturas
- invoice_items - Líneas de factura
- pharmacy_inventory - Inventario de farmacia
- emergency_cases - Casos de emergencia con triage
- surgeries - Programación de cirugías
- imaging_tests - Radiología (X-ray, CT, MRI, Ultrasound)
- shifts - Turnos del personal
- audit_logs - Registro de auditoría
- password_reset_tokens - Tokens de recuperación
- vaccinations - Registro de vacunas
- referrals - Referencias a especialistas
- consent_forms - Formularios de consentimiento
- incident_reports - Reportes de incidentes
- blood_inventory - Banco de sangre
- medical_equipment - Equipos médicos
- meal_orders - Órdenes de comida
- React 19.1.1 - Framework de UI
- Lucide React 0.548.0 - Biblioteca de iconos
- Recharts 2.x - Gráficas y visualizaciones
- Tailwind CSS 4.1.16 - Framework CSS utility-first
- Tauri 2.9.3 - Framework de aplicaciones de escritorio
- tauri-plugin-sql-api 2.0.0 - Plugin de SQLite
- SQLite - Base de datos local
- Vite 7.1.7 - Build tool y dev server
- PostCSS 8.5.6 - Procesador CSS
- ESLint 9.36.0 - Linter
- Node.js 18+
- Rust (para Tauri)
- npm o yarn
- Clonar el repositorio
git clone https://github.com/hectobyte1024/sistema-hospitalario.git
cd sistema-hospitalario- Instalar dependencias
npm install- Ejecutar en modo desarrollo
npm run tauri dev- Compilar para producción
npm run tauri buildEl sistema crea automáticamente usuarios por defecto:
| Usuario | Contraseña | Rol |
|---|---|---|
admin |
admin123 |
Administrador |
enfermero |
enfermero123 |
Enfermero |
paciente |
paciente123 |
Paciente |
sistema-hospitalario/
├── src/
│ ├── components/
│ │ ├── AdminDashboard.jsx # Panel de administración
│ │ ├── DoctorDashboard.jsx # Panel médico
│ │ ├── LoginForm.jsx # Formulario de login
│ │ ├── RegisterForm.jsx # Formulario de registro
│ │ ├── NotificationCenter.jsx # Centro de notificaciones
│ │ └── SearchBar.jsx # Barra de búsqueda global
│ ├── services/
│ │ ├── database.js # 100+ funciones de BD
│ │ └── auth.js # Autenticación y seguridad
│ ├── hooks/
│ │ ├── useDatabase.js # Hooks básicos
│ │ └── useAdvancedDatabase.js # 15+ hooks avanzados
│ ├── App.jsx # Componente principal
│ ├── main.jsx # Punto de entrada
│ └── index.css # Estilos globales
├── src-tauri/ # Configuración de Tauri
├── package.json
├── tailwind.config.js
└── vite.config.js
- ✅ Login con validación
- ✅ Registro de usuarios
- ✅ Hash de contraseñas (SHA-256)
- ✅ Recuperación de contraseña
- ✅ Cambio de contraseña
- ✅ Control de acceso por roles
- ✅ Tokens de reset seguros
- ✅ Auditoría de accesos
- ✅ CRUD completo de usuarios
- ✅ Roles: Admin, Doctor, Enfermero, Paciente
- ✅ Activación/Desactivación
- ✅ Último inicio de sesión
- ✅ Perfiles con foto y bio
- ✅ Departamentos y especializaciones
- ✅ Información completa (edad, sangre, alergias)
- ✅ Contactos de emergencia
- ✅ Seguro médico
- ✅ Historial médico completo
- ✅ Signos vitales con gráficas
- ✅ Tratamientos activos
- ✅ Prescripciones
- ✅ Prescripciones médicas
- ✅ Diagnósticos y tratamientos
- ✅ Pruebas de laboratorio
- ✅ Signos vitales
- ✅ Notas de enfermería
- ✅ Citas médicas
- ✅ Cirugías programadas
- ✅ Radiología e imágenes
- ✅ Gestión de habitaciones y camas
- ✅ Facturación e invoices
- ✅ Inventario de farmacia
- ✅ Banco de sangre
- ✅ Equipos médicos
- ✅ Turnos del personal
- ✅ Órdenes de comida
- ✅ Referencias a especialistas
- ✅ Logs de auditoría
- ✅ Reportes de incidentes
- ✅ Formularios de consentimiento
- ✅ Vacunaciones
- ✅ Modo oscuro
- ✅ Búsqueda global
- ✅ Notificaciones en tiempo real
- ✅ Gráficas interactivas
- ✅ Diseño responsivo
- ✅ Glass morphism
- ✅ Animaciones suaves
- ✅ Loading states
- 📄 Exportación a PDF
- 📧 Integración de email (Nodemailer)
- 📱 SMS con Twilio
- 📅 Calendario interactivo
- 🔔 Notificaciones push
- 🌐 Multi-idioma (i18n)
- ♿ Mejoras de accesibilidad
- 📊 Más análisis y reportes
- 🔄 Sincronización en tiempo real (WebSockets)
- ☁️ Backup automático
- 📱 Aplicación móvil (React Native)
- 🎥 Telemedicina con video
- 🤖 IA para diagnóstico asistido
- Líneas de Código: 10,000+ líneas
- Componentes React: 20+ componentes
- Funciones de BD: 100+ operaciones CRUD
- Hooks Personalizados: 17 hooks
- Tablas de BD: 28 tablas
- Características: 90+ funcionalidades
- Dependencias: 15 packages principales
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add: AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Hectobyte1024
- GitHub: @hectobyte1024
- React Team por React 19
- Tauri Team por el framework de escritorio
- Lucide por los iconos increíbles
- Recharts por las visualizaciones
- Tailwind CSS por el framework CSS
- La comunidad Open Source
Si encuentras algún bug o tienes sugerencias:
- 🐛 Abre un issue en GitHub
- 📧 Contacta al desarrollador
- 💬 Participa en las discusiones
⭐ Si te gusta el proyecto, dale una estrella en GitHub! ⭐
Desarrollado con ❤️ usando React, Tauri y SQLite