- create_solicitud.php: evitar SQL `IN ()` vacío cuando solo_muestras=1 sin exámenes
- recepcion.php: mover embarazada+médico después del historial del paciente
- recepcion.php: actualizar label kiosko con nombre real al vincular paciente
- recepcion.php: botón "Duplicar" en historial para copiar exámenes y pago de última visita
- recepcion.php: omitir validación de consentimientos pendientes cuando es solo_muestras
- recepcion.php: agregar alias esc() = escHtml() usado en buscarMedico
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Reemplaza window.open a lab_pacientes.php por modal Bootstrap inline
- Modal incluye campos completos: datos personales, contacto (con verificador WA), ubicación y EPS
- Botón Ver/Editar en paciente vinculado carga datos desde API y abre modal en modo edición
- Botón Cambiar desvincula y enfoca el buscador
- Al crear: seleccionarPaciente() auto-vincula al turno y cierra modal
- Al editar: actualiza labels en pantalla sin perder el turno activo
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Las 8 estaciones de muestras ya comparten grupo_id=1, así que se
agrupan en una sola opción 'Toma de Muestras'. Pediatría y Ginecología
tienen grupo_id=NULL y aparecen como destinos independientes.
Cualquier estación del grupo ve los turnos asignados a él.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
El dropdown solo mostraba el primer lugar tipo muestras (LIMIT 1).
Ahora carga todos los lugares activos tipo muestras, incluyendo
Pediatría y Ginecología que ya estaban en la BD.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Agregado selector de escritorio al abrir recepcion.php sin desk_id.
Si hay múltiples escritorios muestra un modal para elegir; si hay uno
solo se asigna automáticamente. Así recepcion_desk_id siempre queda
registrado en el turno y aparece correctamente en el historial.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Campo N.° Orden editable en la ficha, antes de seleccionar paciente
- Se carga automáticamente al abrir un turno (YYYYMMDD-001, 002…)
- Botón para regenerar el siguiente consecutivo
- Columna numero_orden en turnero_solicitudes (VARCHAR 20)
- Nuevo endpoint get_consecutivo.php calcula el siguiente del día
- create_solicitud.php guarda el numero_orden junto con la solicitud
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Si llega con desk_id redirige a la URL canónica erp.php?m=turnero&v=recepcion&desk_id=N
- Si llega sin desk_id muestra lista de turnero_lugares activos para elegir
- Elimina acceso directo sin contexto de desk
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
create_consent_token.php ahora acepta paciente_id y lo vincula al turno
si aún no lo tiene, eliminando la carrera con vincular_paciente.php
(fire-and-forget). Ya no hace falta refrescar para firmar el consentimiento.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 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>
Guarantees that the turno state is correct in memory before pasarALugar()
attempts the transition to en_espera_lugar, preventing 'espera' → 'en_espera_lugar'
errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
The sel-lugar dropdown is only for selecting the patient's next destination.
Desk consents are loaded by cargarConsentimientosDesk() on turno open
and must not be affected by destination lugar changes.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- cargarConsentimientosDesk() called from abrirFicha using DESK_ID
- First checks existing DB records (get_consentimientos), falls back to desk config
- abrirFormularioLugar shows proper errors if no patient or no turno
- Starts polling on open to detect patient signature in real time
- Fix creado_at column error in create_consent_token INSERT
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- API returns json.formularios, not json.data.formularios
- Now consents will properly display when selecting a lugar
- Fixes issue where configured consents were not appearing in recepcion
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>