SISTEMA DE INCIDENCIAS HOSPITALARIAS
Hospital Regional de Pucallpa

REQUISITOS
- PHP 8.0 o superior.
- MySQL 8 o MariaDB compatible.
- Extensiones PHP: PDO y PDO MySQL.
- Apache o Nginx. Se recomienda HTTPS.

INSTALACIÓN NUEVA
1. Realice una copia de seguridad si ya tiene información.
2. En phpMyAdmin, cree/importa la base usando database.sql.
3. Abra config.php y configure host, db, user y pass con las credenciales reales.
4. Suba la carpeta completa al servidor.
5. Abra https://SU-DOMINIO/CARPETA/setup.php y cree el primer administrador.
6. Inicie sesión desde login.php.
7. Elimine setup.php del servidor inmediatamente después de crear el administrador.
8. Configure HTTPS y copias de seguridad automáticas.

ACTUALIZACIÓN DE UN SISTEMA EXISTENTE
1. Haga una copia de seguridad de la base de datos y de todos los archivos.
2. Conserve su config.php actual o copie sus credenciales al nuevo config.php.
3. Reemplace los archivos PHP y assets por los de esta versión.
4. En phpMyAdmin, seleccione hospital_incidencias e importe, si aún no se han aplicado:
   - parte_diario_migration.sql
   - incidentes_eventos_adversos_migration.sql
5. No vuelva a importar database.sql sobre una base que ya contiene información.
6. Pruebe inicio de sesión, registro de incidencias, consulta, reportes y parte diario.

MEJORAS INCLUIDAS EN ESTA VERSIÓN
- Interfaz renovada, adaptable a computadoras, tabletas y celulares.
- Menú común con acceso a partes diarios y módulos administrativos.
- Panel con indicadores y últimos registros.
- Sesiones con cookies HttpOnly/SameSite, expiración por inactividad y regeneración del ID al iniciar sesión.
- Cabeceras HTTP defensivas y cierre de sesión mediante POST con token CSRF.
- Verificación de que el usuario siga activo.
- Validación adicional de datos del registro de incidencias.
- Guardado transaccional de incidencia, clasificación de seguridad, seguimiento y auditoría: si una operación falla, se revierte todo el registro.
- Validación de factores HFACS contra una lista permitida.
- Reportes institucionales en formato PDF con filtros por fecha, resumen estadístico y detalle de incidencias.
- Se retiró la contraseña de administrador predeterminada del script SQL; utilice setup.php.

SEGURIDAD Y DATOS
- No registre nombres, DNI, diagnósticos ni historias clínicas de pacientes en este sistema.
- Utilice únicamente códigos internos mínimos y datos estrictamente necesarios.
- No publique config.php ni comparta sus credenciales.
- Cambie las contraseñas iniciales y use contraseñas únicas.
- Limite el acceso al personal autorizado y mantenga respaldos.
- Esta aplicación es una herramienta administrativa inicial; no es un sistema clínico certificado. Antes de usarla con información real, el hospital debe realizar pruebas funcionales, auditoría de seguridad, revisión de permisos y revisión legal.

NOTA
El sistema conserva sus módulos existentes: incidencias, seguridad del paciente/HFACS,
usuarios, reportes en PDF (mediante impresión del navegador), partes diarios e impresión en PDF desde el navegador.

REPORTES PDF
- En Reportes, seleccione el rango de fechas y pulse Exportar PDF.
- Se abrirá una vista de impresión optimizada para A4; el navegador mostrará Guardar como PDF.
- Seleccione 'Guardar como PDF' como destino. La exportación CSV fue retirada de la pantalla de reportes.
- El encabezado utiliza identificación tipográfica HRP, la denominación institucional del MINSA y el identificador del Departamento de Emergencia. Para reproducir fielmente los archivos gráficos oficiales en alta resolución, incorpore los originales autorizados del hospital.


NUEVO: REGISTRO ANÓNIMO DE INCIDENCIAS
1. Importe la actualización migracion_registro_anonimo.sql en la base hospital_incidencias (solo una vez).
2. Reemplace los archivos PHP y assets por los de esta versión.
3. En el inicio de sesión aparecerá el botón 'Registrar incidencias o eventos adversos'.
4. Los envíos públicos se guardan con reportado_por = NULL, anonimo = 1 y sin IP ni usuario en la tabla de auditoría.
5. La ficha imprimible se abre con un enlace de acceso aleatorio generado al guardar el formulario. Guarde o imprima ese enlace en el momento del registro.
IMPORTANTE SOBRE PRIVACIDAD: la aplicación no almacena el nombre, cuenta ni dirección IP del reportante en sus tablas para estos envíos. El servidor web o el proveedor de alojamiento podrían conservar direcciones IP en sus propios registros técnicos; para anonimato integral, revise también la política de logs del servidor. No escriba nombres, DNI ni otros datos identificables en la descripción del evento.


NUEVO: REGISTRO ANÓNIMO DE INCIDENCIAS
1. Importe la actualización migracion_registro_anonimo.sql en la base hospital_incidencias (solo una vez).
2. Reemplace los archivos PHP y assets por los de esta versión.
3. En el inicio de sesión aparecerá el botón 'Registrar incidencias o eventos adversos'.
4. Los envíos públicos se guardan con reportado_por = NULL, anonimo = 1 y sin IP ni usuario en la tabla de auditoría.
5. La ficha imprimible se abre con un enlace de acceso aleatorio generado al guardar el formulario. Guarde o imprima ese enlace en el momento del registro.
IMPORTANTE SOBRE PRIVACIDAD: la aplicación no almacena el nombre, cuenta ni dirección IP del reportante en sus tablas para estos envíos. El servidor web o el proveedor de alojamiento podrían conservar direcciones IP en sus propios registros técnicos; para anonimato integral, revise también la política de logs del servidor. No escriba nombres, DNI ni otros datos identificables en la descripción del evento.
