Agregar tipo de cultivo Partes Blandas y visualizacion en badges del resultado definitivo

This commit is contained in:
2026-08-11 23:59:11 +00:00
parent da7a82502f
commit 12f0a7f1e7
3 changed files with 58 additions and 36 deletions
+28 -26
View File
@@ -198,32 +198,34 @@ export function Cultivos({
)}
{cultivo.estado === 'Positivo' && cultivo.germen && (
<div className="bg-red-50 p-3 rounded-lg border border-red-200">
<p className="text-sm font-medium text-red-800 flex items-center gap-2">
<AlertCircle className="h-4 w-4" />
Germen: {cultivo.germen}
</p>
{cultivo.fechaResultado && (
<p className="text-xs text-red-600 mt-1">
Resultado: {cultivo.fechaResultado}
</p>
)}
{(cultivo.sensible || cultivo.resistente) && (
<div className="mt-2 space-y-2">
{cultivo.sensible && (
<div>
<p className="text-xs font-medium text-green-700 mb-1">Sensible a:</p>
<p className="text-sm text-green-800">{cultivo.sensible}</p>
</div>
)}
{cultivo.resistente && (
<div>
<p className="text-xs font-medium text-red-700 mb-1">Resistente a:</p>
<p className="text-sm text-red-800">{cultivo.resistente}</p>
</div>
)}
</div>
)}
<div className="flex flex-col gap-2.5 mt-2">
<div className="flex flex-wrap gap-2">
<Badge
variant="outline"
className="border-red-600 border bg-red-50 text-red-800 dark:bg-red-950/60 dark:text-red-300 dark:border-red-500 rounded px-2.5 py-1 font-medium text-sm inline-flex items-center gap-1.5"
>
<AlertCircle className="h-4 w-4 text-red-600 shrink-0" />
<span>Germen: {cultivo.germen} {cultivo.fechaResultado ? `(Definitivo: ${cultivo.fechaResultado})` : ''}</span>
</Badge>
{cultivo.sensible && (
<Badge
variant="outline"
className="border-green-600 border bg-green-50 text-green-800 dark:bg-green-950/60 dark:text-green-300 dark:border-green-500 rounded px-2.5 py-1 font-medium text-sm inline-flex items-center gap-1.5"
>
<span>Sensibilidad: {cultivo.sensible}</span>
</Badge>
)}
{cultivo.resistente && (
<Badge
variant="outline"
className="border-red-600 border bg-red-50 text-red-800 dark:bg-red-950/60 dark:text-red-300 dark:border-red-500 rounded px-2.5 py-1 font-medium text-sm inline-flex items-center gap-1.5"
>
<span>Resistencia: {cultivo.resistente}</span>
</Badge>
)}
</div>
</div>
)}
+29 -9
View File
@@ -2416,6 +2416,7 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
<SelectItem value="LAsc">LAsc</SelectItem>
<SelectItem value="LAbd">LAbd</SelectItem>
<SelectItem value="Coleccion">Coleccion</SelectItem>
<SelectItem value="Partes Blandas">Partes Blandas</SelectItem>
</SelectContent>
</Select>
</div>
@@ -2521,15 +2522,34 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
</div>
)}
{c.estado === 'Positivo' && c.germen && (
<div className="bg-red-50 dark:bg-red-950/60 p-3 rounded-lg border border-red-200 dark:border-red-800/50">
<p className="text-sm font-medium text-red-800 dark:text-red-300 flex items-center gap-2"><AlertCircle className="h-4 w-4" />Germen: {c.germen}</p>
{c.fechaResultado && <p className="text-xs text-red-600 dark:text-red-400 mt-1">Resultado: {c.fechaResultado}</p>}
{(c.sensible || c.resistente) && (
<div className="mt-2 space-y-2">
{c.sensible && <div><p className="text-xs font-medium text-green-700 dark:text-green-300 mb-1">Sensible a:</p><p className="text-sm text-green-800 dark:text-green-200">{c.sensible}</p></div>}
{c.resistente && <div><p className="text-xs font-medium text-red-700 dark:text-red-300 mb-1">Resistente a:</p><p className="text-sm text-red-800 dark:text-red-200">{c.resistente}</p></div>}
</div>
)}
<div className="flex flex-col gap-2.5 mt-2">
<div className="flex flex-wrap gap-2">
<Badge
variant="outline"
className="border-red-600 border bg-red-50 text-red-800 dark:bg-red-950/60 dark:text-red-300 dark:border-red-500 rounded px-2.5 py-1 font-medium text-sm inline-flex items-center gap-1.5"
>
<AlertCircle className="h-4 w-4 text-red-600 shrink-0" />
<span>Germen: {c.germen} {c.fechaResultado ? `(Definitivo: ${c.fechaResultado})` : ''}</span>
</Badge>
{c.sensible && (
<Badge
variant="outline"
className="border-green-600 border bg-green-50 text-green-800 dark:bg-green-950/60 dark:text-green-300 dark:border-green-500 rounded px-2.5 py-1 font-medium text-sm inline-flex items-center gap-1.5"
>
<span>Sensibilidad: {c.sensible}</span>
</Badge>
)}
{c.resistente && (
<Badge
variant="outline"
className="border-red-600 border bg-red-50 text-red-800 dark:bg-red-950/60 dark:text-red-300 dark:border-red-500 rounded px-2.5 py-1 font-medium text-sm inline-flex items-center gap-1.5"
>
<span>Resistencia: {c.resistente}</span>
</Badge>
)}
</div>
</div>
)}
{c.estado === 'Negativo' && (
+1 -1
View File
@@ -155,7 +155,7 @@ export interface Cultivo {
fechaToma: string;
protocolo?: string;
fechaResultado?: string;
tipoMuestra: 'HMCx2' | 'RC' | 'PC' | 'UC' | 'LCR' | 'LP' | 'LAsc' | 'LAbd' | 'Coleccion';
tipoMuestra: 'HMCx2' | 'RC' | 'PC' | 'UC' | 'LCR' | 'LP' | 'LAsc' | 'LAbd' | 'Coleccion' | 'Partes Blandas';
germen?: string;
sensible?: string;
resistente?: string;