From 51ae114a1e361e5afd2b481308b20dcb1f84a959 Mon Sep 17 00:00:00 2001 From: snlavaise Date: Tue, 11 Aug 2026 21:17:07 +0000 Subject: [PATCH] Configurar estado inicial de pendientes por defecto en no resueltos y refrescar estado al cargar Pendientes de Sala --- src/hooks/useHospitalStore.ts | 23 +++++++++++++++++++++++ src/sections/PendientesSala.tsx | 10 +++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/hooks/useHospitalStore.ts b/src/hooks/useHospitalStore.ts index 6bf23d2..126e5a3 100644 --- a/src/hooks/useHospitalStore.ts +++ b/src/hooks/useHospitalStore.ts @@ -1437,9 +1437,32 @@ const actualizarInternacion = useCallback(async (internacionId: string, datos: P return true; }, []); + const refreshState = useCallback(async () => { + try { + const res = await fetch(`${API_BASE}/state`); + if (!res.ok) throw new Error('no state'); + const body = await res.json(); + if (body) { + setState(prev => ({ + ...prev, + ...body, + estudiosComplementarios: body.estudiosComplementarios || prev.estudiosComplementarios, + interconsultas: body.interconsultas || prev.interconsultas, + atb: body.atb || prev.atb, + glucemias: body.glucemias || prev.glucemias, + movimientosIndicaciones: body.movimientosIndicaciones || prev.movimientosIndicaciones, + pendientes: body.pendientes || prev.pendientes, + })); + } + } catch (err) { + console.error('Error refreshing state:', err); + } + }, []); + return { ...state, isLoaded, + refreshState, setVista, agregarPaciente, actualizarPaciente, diff --git a/src/sections/PendientesSala.tsx b/src/sections/PendientesSala.tsx index a89a4ba..f2d53e9 100644 --- a/src/sections/PendientesSala.tsx +++ b/src/sections/PendientesSala.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import { ListTodo, Search, @@ -45,12 +45,16 @@ export function PendientesSala({ getPacienteById, getCamaById, }: PendientesSalaProps) { - const { currentUser } = useHospitalStore(); + const { currentUser, refreshState } = useHospitalStore(); const [busqueda, setBusqueda] = useState(''); const [filtroCategoria, setFiltroCategoria] = useState('todos'); - const [filtroEstado, setFiltroEstado] = useState('todos'); + const [filtroEstado, setFiltroEstado] = useState('pendiente'); const [filtroFechaProgramada, setFiltroFechaProgramada] = useState(''); + useEffect(() => { + refreshState(); + }, [refreshState]); + // Active internaciones map for quick lookup const internacionesActivas = internaciones.filter(i => i.activa); const activeInternacionMap = new Map();