Corregir desajuste de zona horaria usando fecha local getLocalToday en lugar de UTC ISO
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { useState, useEffect, useCallback } from 'react';
|
import { useState, useEffect, useCallback } from 'react';
|
||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import { getNombreProfesional, isCamaFueraDeGrupo, computeSector, sortCamas } from '@/lib/utils';
|
import { getNombreProfesional, isCamaFueraDeGrupo, computeSector, sortCamas, getLocalToday } from '@/lib/utils';
|
||||||
import type {
|
import type {
|
||||||
Paciente,
|
Paciente,
|
||||||
Cama,
|
Cama,
|
||||||
@@ -255,7 +255,7 @@ export function useHospitalStore() {
|
|||||||
const nuevoPaciente: Paciente = {
|
const nuevoPaciente: Paciente = {
|
||||||
...paciente,
|
...paciente,
|
||||||
id: generateUUID(),
|
id: generateUUID(),
|
||||||
fechaRegistro: new Date().toISOString().split('T')[0],
|
fechaRegistro: getLocalToday(),
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
await apiCall('POST', '/pacientes', nuevoPaciente);
|
await apiCall('POST', '/pacientes', nuevoPaciente);
|
||||||
@@ -1343,7 +1343,7 @@ const actualizarInternacion = useCallback(async (internacionId: string, datos: P
|
|||||||
const nuevoPendiente: Pendiente = {
|
const nuevoPendiente: Pendiente = {
|
||||||
...datos,
|
...datos,
|
||||||
id: generateUUID(),
|
id: generateUUID(),
|
||||||
fechaCreacion: datos.fechaCreacion || new Date().toISOString().split('T')[0],
|
fechaCreacion: datos.fechaCreacion || getLocalToday(),
|
||||||
horaCreacion: datos.horaCreacion || new Date().toTimeString().slice(0, 5),
|
horaCreacion: datos.horaCreacion || new Date().toTimeString().slice(0, 5),
|
||||||
estado: datos.estado || 'pendiente',
|
estado: datos.estado || 'pendiente',
|
||||||
prioridad: datos.prioridad || 'media',
|
prioridad: datos.prioridad || 'media',
|
||||||
|
|||||||
@@ -14,6 +14,14 @@ export function formatDateDDMMYYYY(dateString: string): string {
|
|||||||
return `${day}-${month}-${year}`;
|
return `${day}-${month}-${year}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getLocalToday(): string {
|
||||||
|
const d = new Date();
|
||||||
|
const year = d.getFullYear();
|
||||||
|
const month = String(d.getMonth() + 1).padStart(2, '0');
|
||||||
|
const day = String(d.getDate()).padStart(2, '0');
|
||||||
|
return `${year}-${month}-${day}`;
|
||||||
|
}
|
||||||
|
|
||||||
export function getNombreProfesional(user?: Usuario | null): string {
|
export function getNombreProfesional(user?: Usuario | null): string {
|
||||||
if (!user) return 'Admin';
|
if (!user) return 'Admin';
|
||||||
const apellido = user.apellido?.trim() || '';
|
const apellido = user.apellido?.trim() || '';
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { Input } from '@/components/ui/input';
|
|||||||
import { Label } from '@/components/ui/label';
|
import { Label } from '@/components/ui/label';
|
||||||
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
|
||||||
import type { AcidoBase, Paciente } from '@/types';
|
import type { AcidoBase, Paciente } from '@/types';
|
||||||
|
import { getLocalToday } from '@/lib/utils';
|
||||||
|
|
||||||
interface AcidoBaseProps {
|
interface AcidoBaseProps {
|
||||||
acidosBase: AcidoBase[];
|
acidosBase: AcidoBase[];
|
||||||
@@ -39,7 +40,7 @@ export function AcidoBaseSection({
|
|||||||
// Formulario
|
// Formulario
|
||||||
const [pacienteSeleccionado, setPacienteSeleccionado] = useState('');
|
const [pacienteSeleccionado, setPacienteSeleccionado] = useState('');
|
||||||
const [busquedaPaciente, setBusquedaPaciente] = useState('');
|
const [busquedaPaciente, setBusquedaPaciente] = useState('');
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const [ph, setPh] = useState('');
|
const [ph, setPh] = useState('');
|
||||||
const [pco2, setPco2] = useState('');
|
const [pco2, setPco2] = useState('');
|
||||||
@@ -53,7 +54,7 @@ export function AcidoBaseSection({
|
|||||||
const resetFormulario = () => {
|
const resetFormulario = () => {
|
||||||
setPacienteSeleccionado('');
|
setPacienteSeleccionado('');
|
||||||
setBusquedaPaciente('');
|
setBusquedaPaciente('');
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setHora(new Date().toTimeString().slice(0, 5));
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setPh('');
|
setPh('');
|
||||||
setPco2('');
|
setPco2('');
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigge
|
|||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import type { Evolucion, Internacion, Paciente, Cama, SignosVitales, ExamenFisico } from '@/types';
|
import type { Evolucion, Internacion, Paciente, Cama, SignosVitales, ExamenFisico } from '@/types';
|
||||||
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
||||||
import { getNombreProfesional } from '@/lib/utils';
|
import { getNombreProfesional, getLocalToday } from '@/lib/utils';
|
||||||
|
|
||||||
|
|
||||||
interface EvolucionesProps {
|
interface EvolucionesProps {
|
||||||
@@ -46,7 +46,7 @@ export function Evoluciones({
|
|||||||
const [evolucionDetalle, setEvolucionDetalle] = useState<Evolucion | null>(null);
|
const [evolucionDetalle, setEvolucionDetalle] = useState<Evolucion | null>(null);
|
||||||
const [evolucionEditando, setEvolucionEditando] = useState<Evolucion | null>(null);
|
const [evolucionEditando, setEvolucionEditando] = useState<Evolucion | null>(null);
|
||||||
|
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const effectiveMedico = getNombreProfesional(currentUser);
|
const effectiveMedico = getNombreProfesional(currentUser);
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ export function Evoluciones({
|
|||||||
const [pendientes, setPendientes] = useState('');
|
const [pendientes, setPendientes] = useState('');
|
||||||
|
|
||||||
const resetFormulario = () => {
|
const resetFormulario = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setHora(new Date().toTimeString().slice(0, 5));
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setTemperatura('');
|
setTemperatura('');
|
||||||
setPresionSistolica('');
|
setPresionSistolica('');
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"
|
|||||||
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
|
||||||
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
|
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
|
||||||
import type { Laboratorio, Glucemia, AcidoBase, Cultivo, Paciente, ResultadoLaboratorio, Internacion, Evolucion, Cama, EstudioComplementario, Interconsulta, ATB, Indicacion, MovimientoIndicacion, Pendiente } from '@/types';
|
import type { Laboratorio, Glucemia, AcidoBase, Cultivo, Paciente, ResultadoLaboratorio, Internacion, Evolucion, Cama, EstudioComplementario, Interconsulta, ATB, Indicacion, MovimientoIndicacion, Pendiente } from '@/types';
|
||||||
import { formatDateDDMMYYYY } from '@/lib/utils';
|
import { formatDateDDMMYYYY, getLocalToday } from '@/lib/utils';
|
||||||
import { SeccionIndicaciones } from './SeccionIndicaciones';
|
import { SeccionIndicaciones } from './SeccionIndicaciones';
|
||||||
|
|
||||||
interface HistoriaClinicaProps {
|
interface HistoriaClinicaProps {
|
||||||
@@ -692,14 +692,14 @@ function SeccionGlucemias({ glucemias, patientId, internacionId, add, update, de
|
|||||||
const [dialog, setDialog] = useState(false);
|
const [dialog, setDialog] = useState(false);
|
||||||
const [evolDialog, setEvolDialog] = useState(false);
|
const [evolDialog, setEvolDialog] = useState(false);
|
||||||
const [edit, setEdit] = useState<Glucemia | null>(null);
|
const [edit, setEdit] = useState<Glucemia | null>(null);
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const [valor, setValor] = useState('');
|
const [valor, setValor] = useState('');
|
||||||
const [correccion, setCorreccion] = useState('');
|
const [correccion, setCorreccion] = useState('');
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setEdit(null);
|
setEdit(null);
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setHora(new Date().toTimeString().slice(0, 5));
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setValor('');
|
setValor('');
|
||||||
setCorreccion('');
|
setCorreccion('');
|
||||||
@@ -956,7 +956,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
const [evolDialog, setEvolDialog] = useState(false);
|
const [evolDialog, setEvolDialog] = useState(false);
|
||||||
const [edit, setEdit] = useState<Laboratorio | null>(null);
|
const [edit, setEdit] = useState<Laboratorio | null>(null);
|
||||||
const [obsLab, setObsLab] = useState<Laboratorio | null>(null);
|
const [obsLab, setObsLab] = useState<Laboratorio | null>(null);
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const [observaciones, setObservaciones] = useState('');
|
const [observaciones, setObservaciones] = useState('');
|
||||||
const [hto, setHto] = useState('');
|
const [hto, setHto] = useState('');
|
||||||
@@ -978,7 +978,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
const [rin, setRin] = useState('');
|
const [rin, setRin] = useState('');
|
||||||
const [parametroEvolucion, setParametroEvolucion] = useState('');
|
const [parametroEvolucion, setParametroEvolucion] = useState('');
|
||||||
const [importDialog, setImportDialog] = useState(false);
|
const [importDialog, setImportDialog] = useState(false);
|
||||||
const [importFecha, setImportFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [importFecha, setImportFecha] = useState(getLocalToday());
|
||||||
const [importHora, setImportHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [importHora, setImportHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const [importTexto, setImportTexto] = useState('');
|
const [importTexto, setImportTexto] = useState('');
|
||||||
const [importResultados, setImportResultados] = useState<ResultadoLaboratorio[]>([]);
|
const [importResultados, setImportResultados] = useState<ResultadoLaboratorio[]>([]);
|
||||||
@@ -1049,7 +1049,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
};
|
};
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setHora(new Date().toTimeString().slice(0, 5));
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setObservaciones('');
|
setObservaciones('');
|
||||||
setHto(''); setHb(''); setGb(''); setPlaq('');
|
setHto(''); setHb(''); setGb(''); setPlaq('');
|
||||||
@@ -1439,7 +1439,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
setImportResultados([]);
|
setImportResultados([]);
|
||||||
setImportObservaciones('');
|
setImportObservaciones('');
|
||||||
setImportAcidoBase(null);
|
setImportAcidoBase(null);
|
||||||
setImportFecha(new Date().toISOString().split('T')[0]);
|
setImportFecha(getLocalToday());
|
||||||
setImportHora(new Date().toTimeString().slice(0, 5));
|
setImportHora(new Date().toTimeString().slice(0, 5));
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1523,7 +1523,7 @@ function SeccionLaboratorios({ lab, patientId, internacionId, add, update, del,
|
|||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
<Button variant="outline" onClick={() => { setImportFecha(new Date().toISOString().split('T')[0]); setImportHora(new Date().toTimeString().slice(0, 5)); setImportTexto(''); setImportResultados([]); setImportObservaciones(''); setImportDialog(true); }}><FileText className="h-4 w-4 mr-2" />Importar</Button>
|
<Button variant="outline" onClick={() => { setImportFecha(getLocalToday()); setImportHora(new Date().toTimeString().slice(0, 5)); setImportTexto(''); setImportResultados([]); setImportObservaciones(''); setImportDialog(true); }}><FileText className="h-4 w-4 mr-2" />Importar</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Dialog open={dialog} onOpenChange={setDialog}>
|
<Dialog open={dialog} onOpenChange={setDialog}>
|
||||||
@@ -1901,7 +1901,7 @@ function SeccionEvoluciones({ evos, internacionId, add, update, del, canEdit }:
|
|||||||
const [dialog, setDialog] = useState(false);
|
const [dialog, setDialog] = useState(false);
|
||||||
const [edit, setEdit] = useState<Evolucion | null>(null);
|
const [edit, setEdit] = useState<Evolucion | null>(null);
|
||||||
const [evoDetalle, setEvoDetalle] = useState<Evolucion | null>(null);
|
const [evoDetalle, setEvoDetalle] = useState<Evolucion | null>(null);
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const effectiveMedico = getNombreProfesional(currentUser);
|
const effectiveMedico = getNombreProfesional(currentUser);
|
||||||
const [temperatura, setTemperatura] = useState('');
|
const [temperatura, setTemperatura] = useState('');
|
||||||
@@ -1922,7 +1922,7 @@ function SeccionEvoluciones({ evos, internacionId, add, update, del, canEdit }:
|
|||||||
const [pendientes, setPendientes] = useState('');
|
const [pendientes, setPendientes] = useState('');
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setHora(new Date().toTimeString().slice(0, 5));
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setTemperatura('');
|
setTemperatura('');
|
||||||
setPresionSistolica('');
|
setPresionSistolica('');
|
||||||
@@ -2218,7 +2218,7 @@ function SeccionAcidosBase({ ab, patientId, internacionId, add, update, del, can
|
|||||||
const [dialog, setDialog] = useState(false);
|
const [dialog, setDialog] = useState(false);
|
||||||
const [editDialog, setEditDialog] = useState(false);
|
const [editDialog, setEditDialog] = useState(false);
|
||||||
const [selected, setSelected] = useState<AcidoBase | null>(null);
|
const [selected, setSelected] = useState<AcidoBase | null>(null);
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const [ph, setPh] = useState('');
|
const [ph, setPh] = useState('');
|
||||||
const [pco2, setPco2] = useState('');
|
const [pco2, setPco2] = useState('');
|
||||||
@@ -2232,7 +2232,7 @@ function SeccionAcidosBase({ ab, patientId, internacionId, add, update, del, can
|
|||||||
const [eabSortAsc, setEabSortAsc] = useState(false);
|
const [eabSortAsc, setEabSortAsc] = useState(false);
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setHora(new Date().toTimeString().slice(0, 5));
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setPh(''); setPco2(''); setPo2(''); setHco3(''); setBe(''); setSato2(''); setLactato(''); setFio2(''); setInterpretacion('');
|
setPh(''); setPco2(''); setPo2(''); setHco3(''); setBe(''); setSato2(''); setLactato(''); setFio2(''); setInterpretacion('');
|
||||||
setSelected(null);
|
setSelected(null);
|
||||||
@@ -2438,18 +2438,18 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
|
|||||||
const [resDialog, setResDialog] = useState(false);
|
const [resDialog, setResDialog] = useState(false);
|
||||||
const [editDialog, setEditDialog] = useState(false);
|
const [editDialog, setEditDialog] = useState(false);
|
||||||
const [selected, setSelected] = useState<Cultivo | null>(null);
|
const [selected, setSelected] = useState<Cultivo | null>(null);
|
||||||
const [fechaToma, setFechaToma] = useState(new Date().toISOString().split('T')[0]);
|
const [fechaToma, setFechaToma] = useState(getLocalToday());
|
||||||
const [protocolo, setProtocolo] = useState('');
|
const [protocolo, setProtocolo] = useState('');
|
||||||
const [tipoMuestra, setTipoMuestra] = useState<Cultivo['tipoMuestra']>('HMCx2');
|
const [tipoMuestra, setTipoMuestra] = useState<Cultivo['tipoMuestra']>('HMCx2');
|
||||||
const [observaciones, setObservaciones] = useState('');
|
const [observaciones, setObservaciones] = useState('');
|
||||||
const [fechaResultado, setFechaResultado] = useState(new Date().toISOString().split('T')[0]);
|
const [fechaResultado, setFechaResultado] = useState(getLocalToday());
|
||||||
const [estadoResultado, setEstadoResultado] = useState<Cultivo['estado']>('Parcial');
|
const [estadoResultado, setEstadoResultado] = useState<Cultivo['estado']>('Parcial');
|
||||||
const [germen, setGermen] = useState('');
|
const [germen, setGermen] = useState('');
|
||||||
const [sensible, setSensible] = useState('');
|
const [sensible, setSensible] = useState('');
|
||||||
const [resistente, setResistente] = useState('');
|
const [resistente, setResistente] = useState('');
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFechaToma(new Date().toISOString().split('T')[0]);
|
setFechaToma(getLocalToday());
|
||||||
setProtocolo('');
|
setProtocolo('');
|
||||||
setTipoMuestra('HMCx2');
|
setTipoMuestra('HMCx2');
|
||||||
setObservaciones('');
|
setObservaciones('');
|
||||||
@@ -2457,7 +2457,7 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
|
|||||||
};
|
};
|
||||||
|
|
||||||
const resetRes = () => {
|
const resetRes = () => {
|
||||||
setFechaResultado(new Date().toISOString().split('T')[0]);
|
setFechaResultado(getLocalToday());
|
||||||
setEstadoResultado('Positivo');
|
setEstadoResultado('Positivo');
|
||||||
setGermen('');
|
setGermen('');
|
||||||
setSensible('');
|
setSensible('');
|
||||||
@@ -2477,7 +2477,7 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
|
|||||||
const openDefinitivo = (c: Cultivo) => {
|
const openDefinitivo = (c: Cultivo) => {
|
||||||
setSelected(c);
|
setSelected(c);
|
||||||
setProtocolo(c.protocolo || '');
|
setProtocolo(c.protocolo || '');
|
||||||
setFechaResultado(c.fechaResultado || new Date().toISOString().split('T')[0]);
|
setFechaResultado(c.fechaResultado || getLocalToday());
|
||||||
setEstadoResultado(c.estado === 'Parcial' ? 'Positivo' : c.estado);
|
setEstadoResultado(c.estado === 'Parcial' ? 'Positivo' : c.estado);
|
||||||
setGermen(c.germen || '');
|
setGermen(c.germen || '');
|
||||||
setSensible(c.sensible || '');
|
setSensible(c.sensible || '');
|
||||||
@@ -2515,7 +2515,7 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
|
|||||||
germen,
|
germen,
|
||||||
sensible,
|
sensible,
|
||||||
resistente,
|
resistente,
|
||||||
fechaResultado: selected.fechaResultado || new Date().toISOString().split('T')[0]
|
fechaResultado: selected.fechaResultado || getLocalToday()
|
||||||
});
|
});
|
||||||
setResDialog(false);
|
setResDialog(false);
|
||||||
resetRes();
|
resetRes();
|
||||||
@@ -2725,7 +2725,7 @@ function SeccionEstudiosComplementarios({ estudios, internacionId, pacienteId, a
|
|||||||
}) {
|
}) {
|
||||||
const [dialog, setDialog] = useState(false);
|
const [dialog, setDialog] = useState(false);
|
||||||
const [filtro, setFiltro] = useState<'todos' | 'internacion'>('internacion');
|
const [filtro, setFiltro] = useState<'todos' | 'internacion'>('internacion');
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [tipo, setTipo] = useState('');
|
const [tipo, setTipo] = useState('');
|
||||||
const [resultado, setResultado] = useState('');
|
const [resultado, setResultado] = useState('');
|
||||||
const [edit, setEdit] = useState<EstudioComplementario | null>(null);
|
const [edit, setEdit] = useState<EstudioComplementario | null>(null);
|
||||||
@@ -2735,7 +2735,7 @@ function SeccionEstudiosComplementarios({ estudios, internacionId, pacienteId, a
|
|||||||
: estudios;
|
: estudios;
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setTipo('');
|
setTipo('');
|
||||||
setResultado('');
|
setResultado('');
|
||||||
setEdit(null);
|
setEdit(null);
|
||||||
@@ -2743,7 +2743,7 @@ function SeccionEstudiosComplementarios({ estudios, internacionId, pacienteId, a
|
|||||||
|
|
||||||
const loadEdit = (e: EstudioComplementario) => {
|
const loadEdit = (e: EstudioComplementario) => {
|
||||||
setEdit(e);
|
setEdit(e);
|
||||||
setFecha(e.fecha || new Date().toISOString().split('T')[0]);
|
setFecha(e.fecha || getLocalToday());
|
||||||
setTipo(e.tipo || '');
|
setTipo(e.tipo || '');
|
||||||
setResultado(e.resultado || '');
|
setResultado(e.resultado || '');
|
||||||
setDialog(true);
|
setDialog(true);
|
||||||
@@ -2873,7 +2873,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add,
|
|||||||
canEdit?: boolean;
|
canEdit?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const [dialog, setDialog] = useState(false);
|
const [dialog, setDialog] = useState(false);
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(getLocalToday());
|
||||||
const [servicioInterconsultado, setServicioInterconsultado] = useState('');
|
const [servicioInterconsultado, setServicioInterconsultado] = useState('');
|
||||||
const [motivo, setMotivo] = useState('');
|
const [motivo, setMotivo] = useState('');
|
||||||
const [respuestaInterconsulta, setRespuestaInterconsulta] = useState('');
|
const [respuestaInterconsulta, setRespuestaInterconsulta] = useState('');
|
||||||
@@ -2881,7 +2881,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add,
|
|||||||
const [edit, setEdit] = useState<Interconsulta | null>(null);
|
const [edit, setEdit] = useState<Interconsulta | null>(null);
|
||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(getLocalToday());
|
||||||
setServicioInterconsultado('');
|
setServicioInterconsultado('');
|
||||||
setMotivo('');
|
setMotivo('');
|
||||||
setRespuestaInterconsulta('');
|
setRespuestaInterconsulta('');
|
||||||
@@ -2893,7 +2893,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add,
|
|||||||
if (!servicioInterconsultado) return;
|
if (!servicioInterconsultado) return;
|
||||||
const datos: Partial<Interconsulta> = { fecha, servicioInterconsultado, motivo, respuestaInterconsulta };
|
const datos: Partial<Interconsulta> = { fecha, servicioInterconsultado, motivo, respuestaInterconsulta };
|
||||||
if (respuestaInterconsulta) {
|
if (respuestaInterconsulta) {
|
||||||
datos.respuestaFecha = respuestaFecha || new Date().toISOString().split('T')[0];
|
datos.respuestaFecha = respuestaFecha || getLocalToday();
|
||||||
}
|
}
|
||||||
if (edit) {
|
if (edit) {
|
||||||
update(edit.id, datos);
|
update(edit.id, datos);
|
||||||
@@ -2906,7 +2906,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add,
|
|||||||
|
|
||||||
const loadEdit = (ic: Interconsulta) => {
|
const loadEdit = (ic: Interconsulta) => {
|
||||||
setEdit(ic);
|
setEdit(ic);
|
||||||
setFecha(ic.fecha || new Date().toISOString().split('T')[0]);
|
setFecha(ic.fecha || getLocalToday());
|
||||||
setServicioInterconsultado(ic.servicioInterconsultado || '');
|
setServicioInterconsultado(ic.servicioInterconsultado || '');
|
||||||
setMotivo(ic.motivo || '');
|
setMotivo(ic.motivo || '');
|
||||||
setRespuestaInterconsulta(ic.respuestaInterconsulta || '');
|
setRespuestaInterconsulta(ic.respuestaInterconsulta || '');
|
||||||
@@ -3048,7 +3048,7 @@ function SeccionATB({ atb, internacionId, pacienteId, add, update, del, canEdit
|
|||||||
const [dialog, setDialog] = useState(false);
|
const [dialog, setDialog] = useState(false);
|
||||||
const [edit, setEdit] = useState<ATB | null>(null);
|
const [edit, setEdit] = useState<ATB | null>(null);
|
||||||
const [antibiotico, setAntibiotico] = useState('');
|
const [antibiotico, setAntibiotico] = useState('');
|
||||||
const [fechaInicio, setFechaInicio] = useState(new Date().toISOString().split('T')[0]);
|
const [fechaInicio, setFechaInicio] = useState(getLocalToday());
|
||||||
const [fechaFinalizacion, setFechaFinalizacion] = useState('');
|
const [fechaFinalizacion, setFechaFinalizacion] = useState('');
|
||||||
|
|
||||||
const calcularDias = (inicio: string, fin?: string): number => {
|
const calcularDias = (inicio: string, fin?: string): number => {
|
||||||
@@ -3061,20 +3061,20 @@ function SeccionATB({ atb, internacionId, pacienteId, add, update, del, canEdit
|
|||||||
const reset = () => {
|
const reset = () => {
|
||||||
setEdit(null);
|
setEdit(null);
|
||||||
setAntibiotico('');
|
setAntibiotico('');
|
||||||
setFechaInicio(new Date().toISOString().split('T')[0]);
|
setFechaInicio(getLocalToday());
|
||||||
setFechaFinalizacion('');
|
setFechaFinalizacion('');
|
||||||
};
|
};
|
||||||
|
|
||||||
const loadEdit = (a: ATB) => {
|
const loadEdit = (a: ATB) => {
|
||||||
setEdit(a);
|
setEdit(a);
|
||||||
setAntibiotico(a.antibiotico || '');
|
setAntibiotico(a.antibiotico || '');
|
||||||
setFechaInicio(a.fechaInicio || new Date().toISOString().split('T')[0]);
|
setFechaInicio(a.fechaInicio || getLocalToday());
|
||||||
setFechaFinalizacion(a.fechaFinalizacion || '');
|
setFechaFinalizacion(a.fechaFinalizacion || '');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleGuardar = () => {
|
const handleGuardar = () => {
|
||||||
if (!antibiotico.trim() || !fechaInicio) return;
|
if (!antibiotico.trim() || !fechaInicio) return;
|
||||||
const todayStr = new Date().toISOString().split('T')[0];
|
const todayStr = getLocalToday();
|
||||||
if (edit) {
|
if (edit) {
|
||||||
// 1. Modificar el antibiótico actual agregando como fecha de finalización la fecha actual en qué se modifica (manteniendo el nombre y fecha de inicio original)
|
// 1. Modificar el antibiótico actual agregando como fecha de finalización la fecha actual en qué se modifica (manteniendo el nombre y fecha de inicio original)
|
||||||
update(edit.id, {
|
update(edit.id, {
|
||||||
@@ -3271,7 +3271,7 @@ function SeccionPendientes({ pacienteId, internacionId, canEdit }: { pacienteId:
|
|||||||
internacionId,
|
internacionId,
|
||||||
...payload,
|
...payload,
|
||||||
estado: 'pendiente',
|
estado: 'pendiente',
|
||||||
fechaCreacion: new Date().toISOString().split('T')[0],
|
fechaCreacion: getLocalToday(),
|
||||||
horaCreacion: new Date().toTimeString().slice(0, 5),
|
horaCreacion: new Date().toTimeString().slice(0, 5),
|
||||||
profesional,
|
profesional,
|
||||||
});
|
});
|
||||||
@@ -3289,7 +3289,7 @@ function SeccionPendientes({ pacienteId, internacionId, canEdit }: { pacienteId:
|
|||||||
try {
|
try {
|
||||||
await actualizarPendiente(p.id, {
|
await actualizarPendiente(p.id, {
|
||||||
estado: nuevoEstado,
|
estado: nuevoEstado,
|
||||||
fechaRealizado: nuevoEstado === 'realizado' ? new Date().toISOString().split('T')[0] : undefined,
|
fechaRealizado: nuevoEstado === 'realizado' ? getLocalToday() : undefined,
|
||||||
usuarioRealizado: nuevoEstado === 'realizado' && currentUser ? getNombreProfesional(currentUser) : undefined,
|
usuarioRealizado: nuevoEstado === 'realizado' && currentUser ? getNombreProfesional(currentUser) : undefined,
|
||||||
});
|
});
|
||||||
toast.success(nuevoEstado === 'realizado' ? 'Marcado como realizado' : 'Marcado como pendiente');
|
toast.success(nuevoEstado === 'realizado' ? 'Marcado como realizado' : 'Marcado como pendiente');
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@
|
|||||||
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';
|
||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import type { Internacion, Paciente, Cama, Grupo, Evolucion, Laboratorio, Cultivo } from '@/types';
|
import type { Internacion, Paciente, Cama, Grupo, Evolucion, Laboratorio, Cultivo } from '@/types';
|
||||||
import { formatDateDDMMYYYY, getNombreProfesional, sortCamas } from '@/lib/utils';
|
import { formatDateDDMMYYYY, getNombreProfesional, sortCamas, getLocalToday } from '@/lib/utils';
|
||||||
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
||||||
|
|
||||||
interface InternacionesProps {
|
interface InternacionesProps {
|
||||||
@@ -202,7 +202,7 @@ export function Internaciones({
|
|||||||
|
|
||||||
const abrirDialogoEgreso = (internacion: Internacion) => {
|
const abrirDialogoEgreso = (internacion: Internacion) => {
|
||||||
setInternacionSeleccionada(internacion);
|
setInternacionSeleccionada(internacion);
|
||||||
setFechaEgreso(new Date().toISOString().split('T')[0]);
|
setFechaEgreso(getLocalToday());
|
||||||
setDialogoEgresoAbierto(true);
|
setDialogoEgresoAbierto(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@
|
|||||||
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
|
||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import type { Pendiente, Internacion, Paciente, Cama } from '@/types';
|
import type { Pendiente, Internacion, Paciente, Cama } from '@/types';
|
||||||
import { formatDateDDMMYYYY, getNombreProfesional } from '@/lib/utils';
|
import { formatDateDDMMYYYY, getNombreProfesional, getLocalToday } from '@/lib/utils';
|
||||||
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
||||||
|
|
||||||
interface PendientesSalaProps {
|
interface PendientesSalaProps {
|
||||||
@@ -115,7 +115,7 @@ export function PendientesSala({
|
|||||||
try {
|
try {
|
||||||
await onActualizarPendiente(p.id, {
|
await onActualizarPendiente(p.id, {
|
||||||
estado: nuevoEstado,
|
estado: nuevoEstado,
|
||||||
fechaRealizado: nuevoEstado === 'realizado' ? new Date().toISOString().split('T')[0] : undefined,
|
fechaRealizado: nuevoEstado === 'realizado' ? getLocalToday() : undefined,
|
||||||
usuarioRealizado: nuevoEstado === 'realizado' && currentUser ? getNombreProfesional(currentUser) : undefined,
|
usuarioRealizado: nuevoEstado === 'realizado' && currentUser ? getNombreProfesional(currentUser) : undefined,
|
||||||
});
|
});
|
||||||
toast.success(nuevoEstado === 'realizado' ? 'Marcado como realizado' : 'Marcado como pendiente');
|
toast.success(nuevoEstado === 'realizado' ? 'Marcado como realizado' : 'Marcado como pendiente');
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@
|
|||||||
import { Plus, Pencil, Trash2, X } from 'lucide-react';
|
import { Plus, Pencil, Trash2, X } from 'lucide-react';
|
||||||
import type { Indicacion, IndicacionTipo, ViaAdministracion, TipoPlanHidratacion, TipoInsulina, ATB } from '@/types';
|
import type { Indicacion, IndicacionTipo, ViaAdministracion, TipoPlanHidratacion, TipoInsulina, ATB } from '@/types';
|
||||||
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
import { useHospitalStore } from '@/hooks/useHospitalStore';
|
||||||
import { getNombreProfesional } from '@/lib/utils';
|
import { getNombreProfesional, getLocalToday } from '@/lib/utils';
|
||||||
|
|
||||||
export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId, add, update, del, movimientos, onAgregarMovimiento, canEdit, atbList = [], addATB, updateATB }: {
|
export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId, add, update, del, movimientos, onAgregarMovimiento, canEdit, atbList = [], addATB, updateATB }: {
|
||||||
recomendaciones: Indicacion[];
|
recomendaciones: Indicacion[];
|
||||||
@@ -142,7 +142,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId
|
|||||||
tipo,
|
tipo,
|
||||||
estado: 'Activa',
|
estado: 'Activa',
|
||||||
medicoCrea: effectiveMedico,
|
medicoCrea: effectiveMedico,
|
||||||
fechaCrea: new Date().toISOString().split('T')[0],
|
fechaCrea: getLocalToday(),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (tipo === 'Farmacologica' || tipo === 'Farmacologica Profilactica' || tipo === 'Farmacologica Antibiótico') {
|
if (tipo === 'Farmacologica' || tipo === 'Farmacologica Profilactica' || tipo === 'Farmacologica Antibiótico') {
|
||||||
@@ -170,7 +170,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId
|
|||||||
}
|
}
|
||||||
|
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
const fecha = now.toISOString().split('T')[0] + ' ' + now.toTimeString().split(' ')[0].substring(0, 5);
|
const fecha = getLocalToday() + ' ' + now.toTimeString().split(' ')[0].substring(0, 5);
|
||||||
if (edit) {
|
if (edit) {
|
||||||
if (edit.tipo === 'Farmacologica Antibiótico' && updateATB && addATB && atbList && pacienteId) {
|
if (edit.tipo === 'Farmacologica Antibiótico' && updateATB && addATB && atbList && pacienteId) {
|
||||||
const oldDrug = edit.droga || '';
|
const oldDrug = edit.droga || '';
|
||||||
@@ -182,7 +182,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId
|
|||||||
!a.fechaFinalizacion
|
!a.fechaFinalizacion
|
||||||
);
|
);
|
||||||
if (activeATB) {
|
if (activeATB) {
|
||||||
const todayStr = now.toISOString().split('T')[0];
|
const todayStr = getLocalToday();
|
||||||
try {
|
try {
|
||||||
await updateATB(activeATB.id, { fechaFinalizacion: todayStr });
|
await updateATB(activeATB.id, { fechaFinalizacion: todayStr });
|
||||||
await addATB({
|
await addATB({
|
||||||
@@ -241,7 +241,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId
|
|||||||
|
|
||||||
const handleSuspender = async (i: Indicacion, suspendioMedico: string) => {
|
const handleSuspender = async (i: Indicacion, suspendioMedico: string) => {
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
const fecha = now.toISOString().split('T')[0] + ' ' + now.toTimeString().split(' ')[0].substring(0, 5);
|
const fecha = getLocalToday() + ' ' + now.toTimeString().split(' ')[0].substring(0, 5);
|
||||||
try {
|
try {
|
||||||
if (onAgregarMovimiento) {
|
if (onAgregarMovimiento) {
|
||||||
await onAgregarMovimiento({
|
await onAgregarMovimiento({
|
||||||
@@ -255,7 +255,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, pacienteId
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i.tipo === 'Farmacologica Antibiótico' && updateATB && atbList) {
|
if (i.tipo === 'Farmacologica Antibiótico' && updateATB && atbList) {
|
||||||
const fechaFin = now.toISOString().split('T')[0];
|
const fechaFin = getLocalToday();
|
||||||
const activeATB = atbList.find(a =>
|
const activeATB = atbList.find(a =>
|
||||||
a.internacionId === internacionId &&
|
a.internacionId === internacionId &&
|
||||||
a.antibiotico.toLowerCase() === (i.droga || '').toLowerCase() &&
|
a.antibiotico.toLowerCase() === (i.droga || '').toLowerCase() &&
|
||||||
|
|||||||
Reference in New Issue
Block a user