From d362598a70a0469288afdaa1eeba9d1b89fbea75 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 12 Mar 2026 22:14:04 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20relacionar=20imagen=20de=20WhatsApp=20c?= =?UTF-8?q?on=20orden=20m=C3=A9dica=20al=20agendar=20domicilio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Al abrir el modal desde una imagen en el chat: - guardar() crea primero la OrdenMedica via crear_desde_whatsapp.php y pasa el orden_id resultante a save_domicilio.php - Enfermera::agenda() hace LEFT JOIN a lab_ordenes_medicas para traer local_file de la orden asociada (as orden_local_file) - enfermero_portal._cardHTML() muestra la imagen de la orden médica con link para ampliar --- classes/lab/Enfermera.php | 7 +++++-- conversations.php | 25 +++++++++++++++++++++++++ enfermero_portal.php | 11 +++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/classes/lab/Enfermera.php b/classes/lab/Enfermera.php index 9425005..f6d199d 100644 --- a/classes/lab/Enfermera.php +++ b/classes/lab/Enfermera.php @@ -106,6 +106,7 @@ class Enfermera { d.examenes_solicitados, d.tipo_cliente, d.seguro_nombre, + d.orden_id, p.id AS paciente_id, p.nombre_completo AS paciente_nombre, p.telefono AS paciente_telefono, @@ -114,11 +115,13 @@ class Enfermera { p.tipo_documento AS paciente_tipo_documento, p.numero_documento AS paciente_numero_documento, p.eps AS paciente_eps, + om.local_file AS orden_local_file, a.estado AS asignacion_estado, a.id AS asignacion_id FROM lab_asignaciones a - JOIN lab_domicilios d ON d.id = a.domicilio_id - JOIN lab_pacientes p ON p.id = d.paciente_id + JOIN lab_domicilios d ON d.id = a.domicilio_id + JOIN lab_pacientes p ON p.id = d.paciente_id + LEFT JOIN lab_ordenes_medicas om ON om.id = d.orden_id WHERE a.enfermera_id = ? AND d.fecha_programada = ? ORDER BY d.hora_programada ASC diff --git a/conversations.php b/conversations.php index 91d4d84..27385b9 100644 --- a/conversations.php +++ b/conversations.php @@ -7085,6 +7085,31 @@ const labDomicilio = (() => { notas_admin: fv('labdom-notas') || null, }; + // Si la ventana se abrió desde una imagen (orden médica), crear primero + // la OrdenMedica y luego enlazarla al domicilio via orden_id + if (_localFile) { + try { + const convIdNum = (_convId && !String(_convId).startsWith('__user:')) + ? parseInt(_convId) : null; + const orRes = await fetch('api/lab/crear_desde_whatsapp.php', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + paciente_id: _pacienteId, + local_file: _localFile, + media_message_id: _msgId || null, + conversation_id: convIdNum, + examenes_solicitados: datos.examenes_solicitados, + estado: 'pendiente', + }), + }); + const orData = await orRes.json(); + if (orData.success && orData.orden_id) { + datos.orden_id = orData.orden_id; + } + } catch (_) { /* no bloquea si falla la creación de la orden */ } + } + try { const r = await fetch('api/lab/save_domicilio.php', { method: 'POST', diff --git a/enfermero_portal.php b/enfermero_portal.php index 0e4e2fb..ab294b2 100644 --- a/enfermero_portal.php +++ b/enfermero_portal.php @@ -412,6 +412,17 @@ const portal = { ? `