Agregar iconos y datos de paciente en modales de edición

This commit is contained in:
2026-04-15 13:04:51 -03:00
parent b74030d225
commit 83e4ad1c36
3 changed files with 62 additions and 6 deletions
+34 -5
View File
@@ -44,6 +44,17 @@ export function EditIngreso({
const [apache, setApache] = useState(internacion.apache || ''); const [apache, setApache] = useState(internacion.apache || '');
const [derivacion, setDerivacion] = useState(internacion.derivacion || ''); const [derivacion, setDerivacion] = useState(internacion.derivacion || '');
const calcularEdad = (fechaNacimiento: string) => {
const hoy = new Date();
const nacimiento = new Date(fechaNacimiento);
let edad = hoy.getFullYear() - nacimiento.getFullYear();
const mes = hoy.getMonth() - nacimiento.getMonth();
if (mes < 0 || (mes === 0 && hoy.getDate() < nacimiento.getDate())) {
edad--;
}
return edad;
};
const selectedPaciente = pacientes.find(p => p.id === pacienteSeleccionado); const selectedPaciente = pacientes.find(p => p.id === pacienteSeleccionado);
const handleSubmit = () => { const handleSubmit = () => {
@@ -107,11 +118,29 @@ export function EditIngreso({
</h3> </h3>
{selectedPaciente ? ( {selectedPaciente ? (
<div className="flex items-center gap-2 flex-wrap"> <div className="space-y-2">
<Badge className="bg-blue-100 text-blue-800"> <div className="flex flex-wrap gap-2">
{selectedPaciente?.apellido}, {selectedPaciente?.nombre} <Badge variant="outline" className="bg-primary/10 text-primary border-primary/30">
</Badge> {selectedPaciente?.apellido}, {selectedPaciente?.nombre}
<Badge variant="outline">DNI: {selectedPaciente?.dni}</Badge> </Badge>
<Badge variant="outline" className="bg-primary/10 text-primary border-primary/30">
{selectedPaciente?.fechaNacimiento ? calcularEdad(selectedPaciente.fechaNacimiento) + ' años' : ''}
</Badge>
<Badge variant="outline" className="bg-primary/10 text-primary border-primary/30">
DNI: {selectedPaciente?.dni}
</Badge>
</div>
<div className="flex flex-wrap gap-2">
<Badge variant="secondary">
HC: {selectedPaciente?.historiaClinica || 'N/A'}
</Badge>
<Badge variant="secondary">
{selectedPaciente?.obraSocial || 'Sin obra social'}
</Badge>
<Badge variant="secondary">
{selectedPaciente?.nacionalidad || 'N/A'}
</Badge>
</div>
</div> </div>
) : ( ) : (
<> <>
+26
View File
@@ -242,6 +242,32 @@ export function HistoriaClinica({
<DialogHeader> <DialogHeader>
<DialogTitle>Editar Ingreso</DialogTitle> <DialogTitle>Editar Ingreso</DialogTitle>
</DialogHeader> </DialogHeader>
<Card className="bg-muted/50">
<CardContent className="p-4">
<div className="flex flex-wrap gap-2 mb-2">
<Badge variant="outline" className="bg-primary/10 text-primary border-primary/30">
{paciente.apellido}, {paciente.nombre}
</Badge>
<Badge variant="outline" className="bg-primary/10 text-primary border-primary/30">
{paciente.fechaNacimiento ? calcularEdad(paciente.fechaNacimiento) + ' años' : ''}
</Badge>
<Badge variant="outline" className="bg-primary/10 text-primary border-primary/30">
DNI: {paciente.dni}
</Badge>
</div>
<div className="flex flex-wrap gap-2">
<Badge variant="secondary">
HC: {paciente.historiaClinica || 'N/A'}
</Badge>
<Badge variant="secondary">
{paciente.obraSocial || 'Sin obra social'}
</Badge>
<Badge variant="secondary">
{paciente.nacionalidad || 'N/A'}
</Badge>
</div>
</CardContent>
</Card>
<div className="space-y-4"> <div className="space-y-4">
<div className="grid grid-cols-3 gap-4"> <div className="grid grid-cols-3 gap-4">
<div> <div>
+2 -1
View File
@@ -154,7 +154,8 @@ export function Pacientes({
</DialogTrigger> </DialogTrigger>
<DialogContent className="sm:max-w-2xl max-h-[90vh] overflow-y-auto"> <DialogContent className="sm:max-w-2xl max-h-[90vh] overflow-y-auto">
<DialogHeader> <DialogHeader>
<DialogTitle> <DialogTitle className="flex items-center gap-2">
{pacienteEditando ? <Edit2 className="h-5 w-5" /> : <Plus className="h-5 w-5" />}
{pacienteEditando ? 'Editar Paciente' : 'Nuevo Paciente'} {pacienteEditando ? 'Editar Paciente' : 'Nuevo Paciente'}
</DialogTitle> </DialogTitle>
</DialogHeader> </DialogHeader>