From 8956de8eaa68befdf5771473ee4190da85e361f6 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 12 Mar 2026 22:23:15 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20ruta=20doble=20en=20local=5Ffile=20al=20?= =?UTF-8?q?mostrar=20imagen=20de=20orden=20m=C3=A9dica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La BD guarda local_file con 'uploads/media/...' incluido. El código le añadía otro 'uploads/media/' dando ruta doble. - lab_ordenes.php: helper _resolveImg() detecta si el path ya empieza con 'uploads/' y no añade el prefijo de nuevo - enfermero_portal.php: nueva función resImg() con misma lógica, usada en _cardHTML() al renderizar la imagen de la orden --- enfermero_portal.php | 12 ++++++++++-- lab_ordenes.php | 12 +++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/enfermero_portal.php b/enfermero_portal.php index ab294b2..a2318ef 100644 --- a/enfermero_portal.php +++ b/enfermero_portal.php @@ -415,9 +415,9 @@ const portal = { ${item.orden_local_file ? `
- - Orden médica #${item.orden_id} @@ -563,6 +563,14 @@ function esc(s) { ({ '<':'<','>':'>','&':'&','"':'"',"'":''' }[c])); } +// Resolver ruta de imagen: evita duplicar "uploads/media/" +function resImg(f) { + if (!f) return ''; + if (/^https?:\/\//i.test(f)) return esc(f); + if (String(f).startsWith('uploads/')) return esc(f); + return `uploads/media/${esc(f)}`; +} + document.addEventListener('DOMContentLoaded', () => { portal.init(); agendaNueva.init(); diff --git a/lab_ordenes.php b/lab_ordenes.php index fc3361d..72e9ddb 100644 --- a/lab_ordenes.php +++ b/lab_ordenes.php @@ -268,9 +268,15 @@ async function verOrden(id) { }).join(''); // Imagen de la orden - const imgSrc = o.local_file - ? `uploads/media/${esc(o.local_file)}` - : (o.conv_local_file ? `uploads/media/${esc(o.conv_local_file)}` : null); + // local_file puede venir con la ruta ya incluida (ej. "uploads/media/2026/02/x.jpg") + // o solo con el nombre de archivo — normalizamos para evitar ruta duplicada + function _resolveImg(f) { + if (!f) return null; + if (/^https?:\/\//i.test(f)) return f; + if (f.startsWith('uploads/')) return f; + return `uploads/media/${f}`; + } + const imgSrc = _resolveImg(o.local_file) || _resolveImg(o.conv_local_file) || null; // Botones de acción según estado const botonesAccion = renderBotones(o);