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
+23 -21
View File
@@ -198,32 +198,34 @@ export function Cultivos({
)} )}
{cultivo.estado === 'Positivo' && cultivo.germen && ( {cultivo.estado === 'Positivo' && cultivo.germen && (
<div className="bg-red-50 p-3 rounded-lg border border-red-200"> <div className="flex flex-col gap-2.5 mt-2">
<p className="text-sm font-medium text-red-800 flex items-center gap-2"> <div className="flex flex-wrap gap-2">
<AlertCircle className="h-4 w-4" /> <Badge
Germen: {cultivo.germen} variant="outline"
</p> 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"
{cultivo.fechaResultado && ( >
<p className="text-xs text-red-600 mt-1"> <AlertCircle className="h-4 w-4 text-red-600 shrink-0" />
Resultado: {cultivo.fechaResultado} <span>Germen: {cultivo.germen} {cultivo.fechaResultado ? `(Definitivo: ${cultivo.fechaResultado})` : ''}</span>
</p> </Badge>
)}
{(cultivo.sensible || cultivo.resistente) && (
<div className="mt-2 space-y-2">
{cultivo.sensible && ( {cultivo.sensible && (
<div> <Badge
<p className="text-xs font-medium text-green-700 mb-1">Sensible a:</p> variant="outline"
<p className="text-sm text-green-800">{cultivo.sensible}</p> 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"
</div> >
<span>Sensibilidad: {cultivo.sensible}</span>
</Badge>
)} )}
{cultivo.resistente && ( {cultivo.resistente && (
<div> <Badge
<p className="text-xs font-medium text-red-700 mb-1">Resistente a:</p> variant="outline"
<p className="text-sm text-red-800">{cultivo.resistente}</p> 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"
</div> >
<span>Resistencia: {cultivo.resistente}</span>
</Badge>
)} )}
</div> </div>
)}
</div> </div>
)} )}
+28 -8
View File
@@ -2416,6 +2416,7 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
<SelectItem value="LAsc">LAsc</SelectItem> <SelectItem value="LAsc">LAsc</SelectItem>
<SelectItem value="LAbd">LAbd</SelectItem> <SelectItem value="LAbd">LAbd</SelectItem>
<SelectItem value="Coleccion">Coleccion</SelectItem> <SelectItem value="Coleccion">Coleccion</SelectItem>
<SelectItem value="Partes Blandas">Partes Blandas</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
</div> </div>
@@ -2521,15 +2522,34 @@ function SeccionCultivos({ cults, patient, internacionId, add, update, del, canE
</div> </div>
)} )}
{c.estado === 'Positivo' && c.germen && ( {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"> <div className="flex flex-col gap-2.5 mt-2">
<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> <div className="flex flex-wrap gap-2">
{c.fechaResultado && <p className="text-xs text-red-600 dark:text-red-400 mt-1">Resultado: {c.fechaResultado}</p>} <Badge
{(c.sensible || c.resistente) && ( variant="outline"
<div className="mt-2 space-y-2"> 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"
{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>} <AlertCircle className="h-4 w-4 text-red-600 shrink-0" />
</div> <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> </div>
)} )}
{c.estado === 'Negativo' && ( {c.estado === 'Negativo' && (
+1 -1
View File
@@ -155,7 +155,7 @@ export interface Cultivo {
fechaToma: string; fechaToma: string;
protocolo?: string; protocolo?: string;
fechaResultado?: 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; germen?: string;
sensible?: string; sensible?: string;
resistente?: string; resistente?: string;