29 Commits
Author SHA1 Message Date
Lizandro GuarnizoandClaude Sonnet 4.6 339ca8a40d debug: habilitar display_errors temporalmente para diagnosticar 500
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-06 08:47:07 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 3dbf40e4fa feat(formulario): firma profesional directa en modal embebido (formularios solo-pro)
- ver_formulario_enviado.php: pre-scan $_soloFirmaPro; muestra canvas pro cuando modoTurnero+embebido+sesión activa+sin firma paciente
- fpw-save JS: recopila campos del form y envía solo_profesional=true; al guardar muestra éxito y postMessage turneroFirmado
- firmar_profesional_consentimiento.php: si solo_profesional=true guarda datos_respuestas y marca estado=firmado

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 12:49:39 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 b399c3710e fix(formulario): no mostrar firma paciente si schema tiene firma_profesional
Usar _esquemaTieneFirmaAlguna (cualquier tipo firma) en lugar de
_esquemaTieneFirmaPaciente para suprimir el widget fallback.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 12:32:01 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 27135e4d2f fix(formulario): múltiples correcciones modo embebido/turnero
- ver_formulario_enviado.php: usar opciones??options??items como fallback de claves del schema
- ver_formulario_enviado.php: marcar _esquemaTieneFirmaPaciente en cualquier campo firma (no solo sin SVG), evita mostrar firma paciente cuando schema solo tiene firma_profesional
- ver_formulario_enviado.php: modo embebido (?embed=1) con layout compacto para iframe
- lugar.php: pasar &embed=1 al iframe src

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 12:15:34 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 05c7230eda fix(formularios): pre-fill fecha_hoy and edad in ver_formulario_enviado
- Modo editar: fecha_hoy → type=date prefilled with today; edad → type=number prefilled from paciente.fecha_nacimiento
- Modo vista: if no saved value, fecha_hoy shows today's date; edad calculates from DOB instead of skipping

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 11:47:33 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 0c68dff307 fix: mostrar canvas para todos los campos firma en modo turnero
Antes solo el primer campo (consentimiento) tenía canvas; el segundo
(desistimiento) se omitía. Ahora cada campo firma tiene su propio widget
usando clases CSS en vez de IDs hardcodeados.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 11:22:18 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 59addca960 fix: error de conexión falso al firmar consentimiento turnero
Al mover el canvas al esquema se eliminó la variable widget del JS,
pero el success handler seguía haciendo widget.outerHTML → ReferenceError
→ caía al catch y mostraba error de conexión aunque la firma se guardó.

Fix: envolver el canvas en div#turneroFirmaWidget y restaurar widget
en el JS para que el reemplazo al éxito funcione correctamente.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 01:32:12 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 9b4cdcc817 fix: firma del paciente aparecía duplicada en consentimiento y desistimiento
La firma global (firma_svg) se aplicaba a todos los campos tipo=firma.
Ahora la firma global solo se asigna al primer campo firma del esquema.
Los campos firma adicionales (ej. desistimiento) solo muestran su propia
firma por campo; si no tienen, se omiten sin mostrar el canvas extra.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 01:21:26 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 c91900ef14 fix: canvas de firma no respondía al mover el canvas al esquema
El JS buscaba #turneroFirmaWidget para arrancar; como ese div ya no
se renderiza cuando el esquema tiene campo firma propio, el script
salía sin enlazar eventos al canvas. Ahora busca el canvas directamente.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 01:18:38 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 aac468b056 fix: bloquear canvas firma profesional en vista turnero del paciente
La firma del profesional se maneja desde el modal de recepción.
El canvas no debe aparecer cuando el paciente abre el consentimiento.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 01:16:20 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 092dfd3074 fix: firma del paciente aparece en su posición del esquema en turnero
El campo tipo=firma se saltaba cuando no había firma existente, dejando
el canvas al fondo de la página fuera de lugar. Ahora en modoTurnero
pendiente el canvas aparece donde el esquema lo define. El widget del
fondo es solo fallback cuando el esquema no tiene campo firma propio.
Los campos siguen siendo editables como corresponde.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 01:14:23 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 75ead05b14 fix: formulario de consentimiento turnero mostraba campos editables
En modo turnero el documento debe ser de solo lectura; solo la firma
del paciente es interactiva. Los campos editables (inputs, selects,
checkboxes) solo aplican para envíos normales sin modo turnero.

También inicializa $_renderedFirmaPaciente que se usaba sin definir,
evitando que la firma aparezca duplicada al pie del documento.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 01:11:27 -05:00
Lizandro Guarnizo e75ae6e3c5 fix: firma profesional solo aparece en el campo donde se firmo, no en todos 2026-06-23 19:49:57 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 da076f86eb Fix: firma profesional no se mostraba al recargar el formulario
La firma se guardaba en datos_cliente[campo_svg] pero el display
solo leía firma_profesional_svg (columna inexistente en lab_form_envios).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 08:44:44 -05:00
Lizandro GuarnizoandClaude Sonnet 4.6 f363631b32 Turnero: mejoras UI, historial detallado, kiosko scanner, firma por turno
- Kiosko: detector scanner (gap < 80ms), iconos 90px, fa-person-pregnant, ticket Arial
- Recepción: vincular_paciente.php para persistir paciente_id antes de firmar consentimiento
- Historial y dashboard: recepción desk, empleado recepción/muestras, exámenes y comentarios
- display_global: turno más pequeño, lugar-nombre más grande
- lab_pacientes: modal compacta con form-sm
- Configuración: icono embarazada fa-person-pregnant en prioridades
- ver_formulario_enviado: firma por campo (fix doble firma)
- docker-compose.local.yml: override BD producción para dev local

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:07:09 -05:00
Lizandro Guarnizo 3a604bdf1d Update ver_formulario_enviado.php 2026-06-18 12:12:20 -05:00
Lizandro Guarnizo a4a062095e up 2026-06-16 16:35:12 -05:00
Lizandro Guarnizo 5af94e50e5 up 2026-06-16 13:04:59 -05:00
Lizandro Guarnizo 415ea3ef56 up 2026-06-16 12:06:26 -05:00
Lizandro GuarnizoandClaude Haiku 4.5 275170f9d5 fix: show all signature fields in print, canvas only once
- All firma/firma_profesional positions render with shared signature image
- Canvas widget for nurse appears only once (no duplicate inputs)
- Signed image replicates to every position of the same type

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-16 11:44:02 -05:00
Lizandro GuarnizoandClaude Haiku 4.5 d7b1aea5a4 fix: signature fields deduplicate and share across same-type fields
- PHP pre-computes one shared SVG per type (firma/firma_profesional)
- Schema loop skips duplicate firma fields of same type already rendered
- Patient signature from turnero widget propagates to all 'firma' schema fields
- firmar_profesional.php saves nurse signature to ALL firma_profesional fields

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-16 11:41:20 -05:00
Lizandro Guarnizo 67d45b8910 up 2026-06-16 09:32:41 -05:00
Lizandro Guarnizo 318a1742cc up 2026-04-18 23:41:01 -05:00
Lizandro Guarnizo 8b72c3032e fix: canvas firma profesional solo visible con sesión activa (cliente público ve 'pendiente') 2026-03-25 16:36:02 -05:00
Lizandro Guarnizo 3b92f47b54 feat: enlaces de formulario sin vencimiento + PDF descargable sin sesión vía token público 2026-03-25 16:14:26 -05:00
Lizandro Guarnizo 8e62c29ca9 firma_profesional: canvas en ver_formulario_enviado + endpoint firmar_profesional 2026-03-17 15:55:56 -05:00
Lizandro Guarnizo c0ed80d7d1 ver_formulario: firmas inline en su posición original del esquema (no al final) 2026-03-17 15:35:26 -05:00
Lizandro Guarnizo 775c654790 cambios 2026-03-17 12:58:42 -05:00
Lizandro Guarnizo db469b2134 up 2026-03-10 18:42:51 -05:00