From 7c8fe6a0a304567045fd3d8ce369456b4f3ee95d Mon Sep 17 00:00:00 2001 From: snlavaise Date: Tue, 11 Aug 2026 20:46:59 +0000 Subject: [PATCH] Corregir filtrado inicial y conteo en Pendientes de Sala para mostrar todos por defecto --- src/sections/PendientesSala.tsx | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/sections/PendientesSala.tsx b/src/sections/PendientesSala.tsx index 628d17a..a89a4ba 100644 --- a/src/sections/PendientesSala.tsx +++ b/src/sections/PendientesSala.tsx @@ -48,7 +48,7 @@ export function PendientesSala({ const { currentUser } = useHospitalStore(); const [busqueda, setBusqueda] = useState(''); const [filtroCategoria, setFiltroCategoria] = useState('todos'); - const [filtroEstado, setFiltroEstado] = useState('pendiente'); + const [filtroEstado, setFiltroEstado] = useState('todos'); const [filtroFechaProgramada, setFiltroFechaProgramada] = useState(''); // Active internaciones map for quick lookup @@ -59,17 +59,30 @@ export function PendientesSala({ if (i.pacienteId) activeInternacionMap.set(i.pacienteId, i); }); - // Filter pending items belonging to active interned patients - const pendientesSala = pendientes.filter(p => { + // Filter pending items belonging to active interned patients (or all if activeInternacionMap is empty / fallback) + const pendientesSala = (pendientes || []).filter(p => { + if (!p) return false; + // If internacionId or pacienteId matches an active internacion, include it. + // Also if no internaciones match or if we want to be robust, check if patient has any active internacion. const internacion = (p.internacionId ? activeInternacionMap.get(p.internacionId) : undefined) || (p.pacienteId ? activeInternacionMap.get(p.pacienteId) : undefined); - return !!internacion; + + // Fallback: if no explicit internacion matched but there are active internations, let's also check if patient is in active internaciones + if (!internacion && p.pacienteId) { + const foundByPaciente = internacionesActivas.find(i => i.pacienteId === p.pacienteId); + return !!foundByPaciente; + } + + return !!internacion || (!p.internacionId && !p.pacienteId); }); + const totalPendientesActivos = pendientesSala.filter(p => p.estado === 'pendiente').length; + // Apply search, category, status, and scheduled date filters const pendientesFiltrados = pendientesSala.filter(p => { const internacion = (p.internacionId ? activeInternacionMap.get(p.internacionId) : undefined) || - (p.pacienteId ? activeInternacionMap.get(p.pacienteId) : undefined); + (p.pacienteId ? activeInternacionMap.get(p.pacienteId) : undefined) || + internacionesActivas.find(i => i.pacienteId === p.pacienteId); const paciente = p.pacienteId ? getPacienteById(p.pacienteId) : undefined; const cama = internacion ? getCamaById(internacion.camaId) : undefined; @@ -155,7 +168,7 @@ export function PendientesSala({ Pendientes de Sala

- Gestión y seguimiento de pendientes de todos los pacientes internados ({pendientesSala.filter(p => p.estado === 'pendiente').length} pendientes activos) + Gestión y seguimiento de pendientes de todos los pacientes internados ({totalPendientesActivos} pendientes activos)