Add area assignment to internaciones and permission controls
- Add areaId field to Internacion type and database schema - Add area selection in NuevoIngreso, EditIngreso, and Internaciones forms - Filter out 'Fuera de area' from area selection dropdowns - Add permission controls for users to only edit internaciones in their area - Add canEdit check to hide 'Editar Ingreso' button in HistoriaClinica - Fix getInternacionAreaId to use new areaId field first, fallback to cama area - Add INSERT OR IGNORE to prevent duplicate errors
This commit is contained in:
@@ -47,6 +47,7 @@ export function MapaCamas({
|
||||
const [filtroTipo, setFiltroTipo] = useState<string>('todos');
|
||||
const [filtroEstado, setFiltroEstado] = useState<string>('todos');
|
||||
const [camaSeleccionada, setCamaSeleccionada] = useState<Cama | null>(null);
|
||||
const [areaSeleccionada, setAreaSeleccionada] = useState<string>('');
|
||||
const [pacienteSeleccionado, setPacienteSeleccionado] = useState<string>('');
|
||||
const [diagnostico, setDiagnostico] = useState('');
|
||||
const [enfermedadActual, setEnfermedadActual] = useState('');
|
||||
@@ -147,10 +148,11 @@ export function MapaCamas({
|
||||
});
|
||||
|
||||
const handleOcuparCama = () => {
|
||||
if (camaSeleccionada && pacienteSeleccionado && diagnostico && enfermedadActual && medico) {
|
||||
if (camaSeleccionada && areaSeleccionada && pacienteSeleccionado && diagnostico && enfermedadActual && medico) {
|
||||
onIniciarInternacion({
|
||||
pacienteId: pacienteSeleccionado,
|
||||
camaId: camaSeleccionada.id,
|
||||
areaId: areaSeleccionada,
|
||||
diagnosticoIngreso: diagnostico,
|
||||
enfermedadActual,
|
||||
antecedentesEnfermedadActual: antecedentesEnfermedadActual || undefined,
|
||||
@@ -158,6 +160,7 @@ export function MapaCamas({
|
||||
});
|
||||
setDialogoAbierto(false);
|
||||
setCamaSeleccionada(null);
|
||||
setAreaSeleccionada('');
|
||||
setPacienteSeleccionado('');
|
||||
setDiagnostico('');
|
||||
setEnfermedadActual('');
|
||||
@@ -360,6 +363,21 @@ export function MapaCamas({
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
<div>
|
||||
<Label>Área de Trabajo *</Label>
|
||||
<Select value={areaSeleccionada} onValueChange={setAreaSeleccionada}>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Seleccionar área" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{areas.filter(a => a.nombre !== 'Fuera de area').map(a => (
|
||||
<SelectItem key={a.id} value={a.id}>
|
||||
{a.nombre}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
<div>
|
||||
<Label>Diagnóstico de Ingreso *</Label>
|
||||
<textarea
|
||||
|
||||
Reference in New Issue
Block a user