Documentación en usted, y panel de LIA con el mismo diseño del dashboard

Toda la documentación pasa de voseo a tratamiento de usted, incluidos los
diagramas y los textos de la interfaz. Los prompts de ambos asistentes lo
piden explícitamente, para que las respuestas generadas también lo respeten.

El panel de LIA en la página de documentación adopta el diseño del dashboard
del turnero: mismo botón circular, mismo panel deslizante con encabezado en
degradado y logo LIA, mismos chips de atajo, burbujas y campo de entrada.
Los atajos se arman con los documentos que ese usuario puede ver.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-04 10:57:28 -05:00
co-authored by Claude Opus 5
parent 71c9dfd424
commit fe96e5b60d
20 changed files with 262 additions and 198 deletions
+7 -7
View File
@@ -22,7 +22,7 @@ SELECT module_slug, permission FROM role_modules WHERE role_id = <role_id>;
Si los datos están bien → **que cierre sesión y vuelva a entrar**. Los permisos se cargan al iniciar sesión, no en cada petición.
Si `role` y `role_id` no coinciden, actuali las dos:
Si `role` y `role_id` no coinciden, actualice las dos:
```sql
UPDATE admin_users
@@ -37,13 +37,13 @@ UPDATE admin_users
## «Un enlace que enviamos por WhatsApp está roto»
Primero, comprobá si el destino responde:
Primero, compruebe si el destino responde:
```bash
curl -s -o /dev/null -w "%{http_code}\n" "<la URL>"
```
**Si devuelve 503 o no resuelve**, el dominio está caído o cambió. Revisá si el archivo existe en el dominio actual del sistema.
**Si devuelve 503 o no resuelve**, el dominio está caído o cambió. Revise si el archivo existe en el dominio actual del sistema.
Las URL que enviamos viven en lugares distintos según el caso:
@@ -71,7 +71,7 @@ UPDATE system_config
## «El mensaje salió por el número equivocado»
Las dos líneas comparten cuenta y token; lo único que cambia es el `phone_number_id`. Revisá que el envío haya especificado el canal:
Las dos líneas comparten cuenta y token; lo único que cambia es el `phone_number_id`. Revise que el envío haya especificado el canal:
```php
$wa = new WhatsAppService('turnero'); // no new WhatsAppService()
@@ -103,8 +103,8 @@ UPDATE lab_config SET valor = '0' WHERE clave = 'lia_tokens_usados';
El formulario F-LAB-28 tiene secciones para todos los exámenes posibles y muestra solo las del examen del paciente. Si aparecen de más:
1. Verifi que el documento se abra con `&embed=1&compact=1` — sin esos parámetros no se aplica el filtrado.
2. Revisá `_tomas_config` dentro de `datos_respuestas`: ahí queda qué ciclos se configuraron.
1. Verifique que el documento se abra con `&embed=1&compact=1` — sin esos parámetros no se aplica el filtrado.
2. Revise `_tomas_config` dentro de `datos_respuestas`: ahí queda qué ciclos se configuraron.
---
@@ -112,7 +112,7 @@ El formulario F-LAB-28 tiene secciones para todos los exámenes posibles y muest
Las firmas de tomas prolongadas registran el profesional **desde el 3 de agosto de 2026**. Los documentos firmados antes no tienen ese dato y **no es recuperable** — no quedó traza en ninguna tabla de auditoría.
Para los nuevos, el nombre y la cédula se resuelven en el servidor desde la sesión de quien firma. Si aparece vacío en un documento reciente, comprobá que el usuario tenga cédula:
Para los nuevos, el nombre y la cédula se resuelven en el servidor desde la sesión de quien firma. Si aparece vacío en un documento reciente, compruebe que el usuario tenga cédula:
```sql
SELECT id, username, full_name, cedula FROM admin_users WHERE id = <id>;
@@ -85,4 +85,4 @@ En **dos** lugares que hay que mantener sincronizados:
Van en `migrations/`, con nombre `AAAAMMDD_descripcion.sql` e idempotentes (`IF NOT EXISTS`, guardas en `UPDATE`/`INSERT`).
Si aplicás un cambio directo en producción, **dejá también la migración**: sin ella, un entorno nuevo no tendrá ese cambio y nadie se va a enterar hasta que falle.
Si aplica un cambio directo en producción, **deje también la migración**: sin ella, un entorno nuevo no tendrá ese cambio y nadie se va a enterar hasta que falle.
@@ -37,9 +37,9 @@ UPDATE admin_users SET cedula = username
MariaDB 11.8 admite `IF NOT EXISTS` en `ALTER TABLE`. Para `UPDATE` e `INSERT`, la guarda va en el `WHERE`.
Antes de dar por buena una migración, corrila dos veces y verifi que la segunda no cambie nada.
Antes de dar por buena una migración, córrala dos veces y verifique que la segunda no cambie nada.
> Aplicar un cambio directo en producción sin dejar la migración hace que un entorno nuevo no lo tenga, y nadie se entera hasta que algo falla. Si tocás el esquema, dejá el archivo.
> Aplicar un cambio directo en producción sin dejar la migración hace que un entorno nuevo no lo tenga, y nadie se entera hasta que algo falla. Si toca el esquema, deje el archivo.
## Archivos subidos
@@ -60,7 +60,7 @@ php -l archivo.php
curl -s -o /dev/null -w "%{http_code}\n" "https://<dominio>/<ruta>"
```
Si el cambio afectó permisos, recordá que **las sesiones abiertas conservan los permisos viejos** hasta que el usuario vuelva a entrar.
Si el cambio afectó permisos, recuerde que **las sesiones abiertas conservan los permisos viejos** hasta que el usuario vuelva a entrar.
## Configuración por entorno
@@ -55,7 +55,7 @@ Es exactamente lo que pasó con el documento de términos cuando cambió el domi
## Antes de un cambio riesgoso
Si vas a tocar datos en producción, respaldá **solo lo que vas a tocar**:
Si va a tocar datos en producción, respalde **solo lo que va a tocar**:
```bash
mysqldump -h <host> -u <usuario> -p <base> role_modules admin_users \
@@ -70,7 +70,7 @@ Un respaldo que nunca se restauró no es un respaldo, es un archivo:
```bash
gunzip -t respaldo_2026-08-03.sql.gz # ¿está íntegro?
zcat respaldo_2026-08-03.sql.gz | head -40 # ¿tiene lo que esperás?
zcat respaldo_2026-08-03.sql.gz | head -40 # ¿tiene lo que espera?
```
Lo ideal es restaurarlo de vez en cuando en una base de prueba y comprobar que el sistema arranca contra ella.