Matrícula
@@ -329,14 +329,14 @@ export function GestionUsuarios() {
{form.rol !== 'admin' && (
-
-
-
-
+
+
- {areas.filter(a => a.nombre !== 'Fuera de area').map(a => (
+ {grupos.filter(a => a.nombre !== 'Fuera de grupo').map(a => (
{a.nombre}
@@ -309,7 +309,7 @@ export function Internaciones({
{sortedCamas.filter(c => c.estado === 'Disponible').map(c => (
- {c.numero} - {getAreaName(c.areaId) || 'Sin área'} ({c.tipo})
+ {c.numero} - {getGrupoName(c.grupoId) || 'Sin grupo'} ({c.tipo})
))}
diff --git a/src/sections/MapaCamas.tsx b/src/sections/MapaCamas.tsx
index 30a8923..6f4bede 100644
--- a/src/sections/MapaCamas.tsx
+++ b/src/sections/MapaCamas.tsx
@@ -3,76 +3,76 @@ import { Bed, CheckCircle2, Clock, Wrench, User, Plus, Trash, Edit2, Save, X } f
import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
-import { formatDateDDMMYYYY, getNombreProfesional, isCamaFueraDeArea } from '@/lib/utils';
+import { formatDateDDMMYYYY, getNombreProfesional, isCamaFueraDeGrupo } from '@/lib/utils';
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Label } from '@/components/ui/label';
import { Input } from '@/components/ui/input';
-import type { Cama, Paciente, Internacion, Area } from '@/types';
+import type { Cama, Paciente, Internacion, Grupo } from '@/types';
import { useHospitalStore } from '@/hooks/useHospitalStore';
interface MapaCamasProps {
camas: Cama[];
- areas: Area[];
+ grupos: Grupo[];
pacientes: Paciente[];
internaciones: Internacion[];
onActualizarCama: (id: string, datos: Partial) => void;
onAgregarCama: (cama: Omit) => any;
onEliminarCama: (id: string) => void;
onIniciarInternacion: (internacion: Omit) => Promise;
- onAgregarArea: (area: Omit) => any;
- onActualizarArea: (id: string, datos: Partial) => void;
- onEliminarArea: (id: string) => void;
+ onAgregarGrupo: (grupo: Omit) => any;
+ onActualizarGrupo: (id: string, datos: Partial) => void;
+ onEliminarGrupo: (id: string) => void;
getPacienteById: (id: string) => Paciente | undefined;
getInternacionById: (id: string) => Internacion | undefined;
}
export function MapaCamas({
camas,
- areas,
+ grupos,
pacientes,
internaciones,
onActualizarCama,
onAgregarCama,
onEliminarCama,
onIniciarInternacion,
- onAgregarArea,
- onActualizarArea,
- onEliminarArea,
+ onAgregarGrupo,
+ onActualizarGrupo,
+ onEliminarGrupo,
getPacienteById,
getInternacionById
}: MapaCamasProps) {
- const { canEditCama, canAccessArea, currentUser } = useHospitalStore();
+ const { canEditCama, canAccessGrupo, currentUser } = useHospitalStore();
const [filtroSala, setFiltroSala] = useState('todas');
const [filtroTipo, setFiltroTipo] = useState('todos');
const [filtroEstado, setFiltroEstado] = useState('todos');
const [camaSeleccionada, setCamaSeleccionada] = useState(null);
- const [areaSeleccionada, setAreaSeleccionada] = useState('');
+ const [grupoSeleccionada, setGrupoSeleccionada] = useState('');
const [pacienteSeleccionado, setPacienteSeleccionado] = useState('');
const [diagnostico, setDiagnostico] = useState('');
const [enfermedadActual, setEnfermedadActual] = useState('');
const [antecedentesEnfermedadActual, setAntecedentesEnfermedadActual] = useState('');
const effectiveMedico = getNombreProfesional(currentUser);
const [dialogoAbierto, setDialogoAbierto] = useState(false);
- // Area dialog state
- const [areaDialogOpen, setAreaDialogOpen] = useState(false);
- const [areaNombre, setAreaNombre] = useState('');
- const [editingAreaId, setEditingAreaId] = useState(null);
+ // Grupo dialog state
+ const [grupoDialogOpen, setGrupoDialogOpen] = useState(false);
+ const [grupoNombre, setGrupoNombre] = useState('');
+ const [editingGrupoId, setEditingGrupoId] = useState(null);
// Cama dialog state
const [bedDialogOpen, setBedDialogOpen] = useState(false);
const [editingBed, setEditingBed] = useState(null);
const [bedNumero, setBedNumero] = useState('');
const [bedTipo, setBedTipo] = useState('General');
- const [bedAreaId, setBedAreaId] = useState(undefined);
+ const [bedGrupoId, setBedGrupoId] = useState(undefined);
- const salas = Array.from(new Set(camas.map(c => c.areaId).filter(Boolean))) as string[];
- const areaById = Object.fromEntries(areas.map(a => [a.id, a.nombre]));
+ const salas = Array.from(new Set(camas.map(c => c.grupoId).filter(Boolean))) as string[];
+ const grupoById = Object.fromEntries(grupos.map(a => [a.id, a.nombre]));
const tipos = Array.from(new Set(camas.map(c => c.tipo)));
const camasFiltradas = camas.filter(cama => {
- if (filtroSala !== 'todas' && cama.areaId !== filtroSala) return false;
+ if (filtroSala !== 'todas' && cama.grupoId !== filtroSala) return false;
if (filtroTipo !== 'todos' && cama.tipo !== filtroTipo) return false;
if (filtroEstado !== 'todos' && cama.estado !== filtroEstado) return false;
return true;
@@ -149,11 +149,11 @@ export function MapaCamas({
});
const handleOcuparCama = () => {
- if (camaSeleccionada && areaSeleccionada && pacienteSeleccionado && diagnostico && enfermedadActual && effectiveMedico) {
+ if (camaSeleccionada && grupoSeleccionada && pacienteSeleccionado && diagnostico && enfermedadActual && effectiveMedico) {
onIniciarInternacion({
pacienteId: pacienteSeleccionado,
camaId: camaSeleccionada.id,
- areaId: areaSeleccionada,
+ grupoId: grupoSeleccionada,
diagnosticoIngreso: diagnostico,
enfermedadActual,
antecedentesEnfermedadActual: antecedentesEnfermedadActual || undefined,
@@ -161,7 +161,7 @@ export function MapaCamas({
});
setDialogoAbierto(false);
setCamaSeleccionada(null);
- setAreaSeleccionada('');
+ setGrupoSeleccionada('');
setPacienteSeleccionado('');
setDiagnostico('');
setEnfermedadActual('');
@@ -187,24 +187,24 @@ export function MapaCamas({
- {camas.filter(c => c.estado === 'Disponible' && !isCamaFueraDeArea(c, areas)).length} Disponibles
+ {camas.filter(c => c.estado === 'Disponible' && !isCamaFueraDeGrupo(c, grupos)).length} Disponibles
- {camas.filter(c => c.estado === 'Ocupada' && !isCamaFueraDeArea(c, areas)).length} Ocupadas
+ {camas.filter(c => c.estado === 'Ocupada' && !isCamaFueraDeGrupo(c, grupos)).length} Ocupadas