import { useState } from 'react'; import { ArrowLeft, Save, X, Bed, Calendar, Stethoscope, User, ClipboardList } from 'lucide-react'; import { Card, CardContent } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Badge } from '@/components/ui/badge'; import type { Paciente, Cama, Area, Internacion } from '@/types'; interface EditIngresoProps { internacion: Internacion; paciente: Paciente; cama: Cama | undefined; pacientes: Paciente[]; camas: Cama[]; areas: Area[]; onActualizarInternacion: (id: string, datos: Partial) => void; onVolver: () => void; getAreaName: (areaId: string | undefined) => string; } export function EditIngreso({ internacion, paciente: pacienteOriginal, cama: camaOriginal, pacientes, camas, areas, onActualizarInternacion, onVolver, getAreaName }: EditIngresoProps) { const [pacienteSeleccionado, setPacienteSeleccionado] = useState(internacion.pacienteId); const [busqueda, setBusqueda] = useState(''); const [camaSeleccionada, setCamaSeleccionada] = useState(internacion.camaId); const [medico, setMedico] = useState(internacion.medicoIngresante); const [fechaIngresoHospital, setFechaIngresoHospital] = useState(internacion.fechaIngresoHospital || ''); const [fechaIngresoClinica, setFechaIngresoClinica] = useState(internacion.fechaIngresoClinica || ''); const [motivoConsulta, setMotivoConsulta] = useState(internacion.motivoConsulta || ''); const [diagnosticoIngreso, setDiagnosticoIngreso] = useState(internacion.diagnosticoIngreso); const [enfermedadActual, setEnfermedadActual] = useState(internacion.enfermedadActual); const [antecedentesEnfermedadActual, setAntecedentesEnfermedadActual] = useState(internacion.antecedentesEnfermedadActual || ''); const [apache, setApache] = useState(internacion.apache || ''); const [derivacion, setDerivacion] = useState(internacion.derivacion || ''); const selectedPaciente = pacientes.find(p => p.id === pacienteSeleccionado); const handleSubmit = () => { if (!pacienteSeleccionado || !camaSeleccionada || !medico || !diagnosticoIngreso || !enfermedadActual) { alert('Por favor complete los campos obligatorios'); return; } onActualizarInternacion(internacion.id, { pacienteId: pacienteSeleccionado, camaId: camaSeleccionada, medicoIngresante: medico, diagnosticoIngreso, motivoConsulta: motivoConsulta || undefined, enfermedadActual, antecedentesEnfermedadActual: antecedentesEnfermedadActual || undefined, fechaIngresoHospital: fechaIngresoHospital || undefined, fechaIngresoClinica: fechaIngresoClinica || undefined, apache: apache || undefined, derivacion: derivacion || undefined, }); onVolver(); }; return (

Editar Ingreso

Modificar datos de internación

{/* Columna 1: Datos del Paciente, Cama y Datos Adicionales */}

Datos del Paciente

{selectedPaciente ? (
{selectedPaciente?.apellido}, {selectedPaciente?.nombre} DNI: {selectedPaciente?.dni}
) : ( <> setBusqueda(e.target.value)} />
{(() => { const q = busqueda.trim().toLowerCase(); if (!q) { return
Escriba para buscar
; } const matches = pacientes.filter(p => p.apellido.toLowerCase().includes(q) || p.nombre.toLowerCase().includes(q) || p.dni.includes(q) ); if (matches.length === 0) { return
Sin resultados
; } return matches.map(p => ( )); })()}
)}

Asignación de Cama

Datos Adicionales

setApache(e.target.value)} />
setDerivacion(e.target.value)} />
{/* Columna 2: Datos de Ingreso */}

Datos de Ingreso

setFechaIngresoHospital(e.target.value)} />
setFechaIngresoClinica(e.target.value)} />
setApache(e.target.value)} />
setDerivacion(e.target.value)} />

Médico Ingresante

setMedico(e.target.value)} />
{/* Columna 3: Datos Clínicos */}

Datos Clínicos