- Dockerfile now includes MariaDB server
- Add docker-entrypoint.sh to initialize DB, create user, and set permissions
- docker-compose.yml with configurable environment variables
- Nginx config proxies API to backend
- Use camaId generated in frontend instead of generating new one in backend API
- Remove patientId and internacionId from cama table (use internaciones table instead)
- Fix discharge: delete cama if fuera de area, mark available otherwise
- Fix MapaCamas to find patient via internaciones table
- Switch from SQLite to MariaDB for database backend
- Fix bed state updates on admission (iniciarInternacion)
- Fix bed updates on admission edit (actualizarInternacion)
- Fix bed updates on discharge (finalizarInternacion): delete if fuera de area, mark available otherwise
- Fix NuevoIngreso to wait for cama creation before creating internacion
- Fix patient undefined check in Cultivos
- Update CORS to allow all origins
- Remove unused files
- Agregar creación de tablas antes de insertar datos
- Corregir sintaxis de comillas en SQL para tabla kv
- Eliminar tablas existentes antes de recrear para evitar errores
- Migración ejecutada exitosamente: 2 usuarios, 3 pacientes, 5 areas, 69 camas, 6 internaciones, etc.
- Actualizar AgregarAcidoBase, ActualizarAcidoBase, EliminarAcidoBase con API calls
- Actualizar Movimientos Indicaciones con API call
- Actualizar Areas CRUD con API calls
- Actualizar Pacientes CRUD con API calls
- Actualizar Camas CRUD con API calls
- Todas las funciones ahora usan apiCall y manejan errores con try/catch
- Crear useHospitalStore-mariadb.ts basado en el original
- Agregar helper apiCall para llamadas API
- Actualizar iniciarInternacion y finalizarInternacion para usar API inmediata
- Cambiar API_BASE al puerto 4000 (servidor MariaDB)
- Crear server/db-mariadb.js con conexión a MariaDB usando los datos proporcionados
- Crear server/api-mariadb.js con endpoints individuales para todas las entidades
- Crear server/migrate-to-mariadb.js para migrar datos de SQLite a MariaDB
- Todas las operaciones CRUD disponibles via API REST
- Agregar markChanged en funciones que actualizan estado:
* finalizarInternacion, actualizarInternacion, iniciarInternacion
* agregarEvolucion, eliminarEvolucion, actualizarEvolucion
- Modificar saveChanges para guardar todo el estado cuando no hay claves marcadas
- Soluciona el problema de Registrar Egreso que no se guardaba en la BD
- Migrar de sqlite3 a better-sqlite3 con conexión persistente
- Configurar WAL mode, busy_timeout y PRAGMAs optimizados
- Implementar transacciones para operaciones bulk
- Corregir error initialLoadComplete en useHospitalStore.ts
- Agregar tablas usuarios y kv faltantes
- Actualizar .gitignore para archivos WAL de SQLite
- Agregar canEdit prop a Cultivos.tsx para controlar botones
- Reescribir Cultivos.tsx eliminando código duplicado
- Corregir App.tsx para que cultivos case funcione correctamente
- Hacer patient prop opcional en Cultivos.tsx
- Mover funciones utilitarias y de permisos al principio del hook
- Corregir bug camaS -> camas en iniciarInternacion
- Limpiar funciones duplicadas
- Estructura de permisos clara según reglas:
1. Cualquier usuario puede crear ingresos en cualquier cama
2. Cualquier usuario puede ver todos los pacientes
3. Solo usuarios del área pueden crear/modificar registros
4. Solo usuarios del área pueden cambiar la cama
- Solo usuarios del área pueden crear ingresos en su área
- Solo usuarios del área pueden cambiar la cama
- Corrige typo en clave de estado (camaS -> camaS)
1. Cualquier usuario puede crear ingresos en cualquier cama
2. Cualquier usuario puede ver todos los pacientes
3. Solo usuarios del área pueden modificar registros de su área
4. Solo usuarios del área pueden cambiar la cama de una internación
- Usuarios pueden crear ingresos en 'Fuera de área'
- Usuarios pueden editar ingresos en 'Fuera de área'
- canEditInArea permite editar ingresos de 'Fuera de área'
- Agrega endpoint PUT /api/camas/:id en servidor
- Corrige nombre de tabla SQL de cama a camas
- Actualiza estado de camas en memoria al cambiar internacion
- Agrega retry logic para evitar SQLITE_BUSY
- Mejora delay entre actualizaciones de cama
- Add input for writing bed number in NuevoIngreso and EditIngreso
- Auto-complete area when selecting bed from dropdown
- Automatically create new bed with 'Fuera de area' when typing number
- Modify finalizarInternacion to delete bed only for outside area
- Add two-mode selection: select bed or write bed
- Add areaId field to Internacion type and database schema
- Add area selection in NuevoIngreso, EditIngreso, and Internaciones forms
- Filter out 'Fuera de area' from area selection dropdowns
- Add permission controls for users to only edit internaciones in their area
- Add canEdit check to hide 'Editar Ingreso' button in HistoriaClinica
- Fix getInternacionAreaId to use new areaId field first, fallback to cama area
- Add INSERT OR IGNORE to prevent duplicate errors
- Agregar funciones de verificación de área en useHospitalStore
- canEditInArea, canEditCama, canEditInternacion, canEditPaciente
- Leer datos de tablas individuales en lugar de tabla kv
- Usar sessionStorage para persistir sesión de usuario
- Agregar prop canEdit a componentes de secciones en HC
- Ocultar botones de edición para usuarios sin permisos en el área
- MapaCamas: ocultar botones de edición para camas fuera del área