diff --git a/src/tools/checklists/intoxicaciones/IntoxicacionesChecklist.tsx b/src/tools/checklists/intoxicaciones/IntoxicacionesChecklist.tsx index 38926bc3..47ba844e 100644 --- a/src/tools/checklists/intoxicaciones/IntoxicacionesChecklist.tsx +++ b/src/tools/checklists/intoxicaciones/IntoxicacionesChecklist.tsx @@ -1,7 +1,10 @@ import { useEffect, useState } from 'react'; +import { usePatient } from '@/clinical/patient'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Checkbox } from '@/components/ui/checkbox'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; import { formatDuration, getElapsedSeconds } from '../sepsis/timers'; import { intoxicacionesChecklistSteps } from './intoxicacionesChecklist.model'; @@ -10,11 +13,13 @@ const STORAGE_KEY = 'checklist_intoxicaciones_v1'; interface IntoxicacionesChecklistState { startedAt: number | null; completed: Record; + manualWeightKg?: number; } const initialState: IntoxicacionesChecklistState = { startedAt: null, completed: {}, + manualWeightKg: undefined, }; const loadState = (): IntoxicacionesChecklistState => { @@ -39,6 +44,7 @@ const saveState = (state: IntoxicacionesChecklistState) => { }; const IntoxicacionesChecklist = () => { + const { state: patientState } = usePatient(); const [checklistState, setChecklistState] = useState(initialState); const [nowTick, setNowTick] = useState(Date.now()); @@ -56,6 +62,8 @@ const IntoxicacionesChecklist = () => { }, []); const elapsedSeconds = getElapsedSeconds(checklistState.startedAt); + const weightKg = patientState.patient.weight ?? checklistState.manualWeightKg; + const naloxoneDoseMg = weightKg ? Math.min(0.1 * weightKg, 2) : null; const toggleStep = (id: string, value: boolean) => { setChecklistState((prev) => ({ @@ -73,6 +81,14 @@ const IntoxicacionesChecklist = () => { setChecklistState(initialState); }; + const handleManualWeight = (value: string) => { + const parsed = Number(value); + setChecklistState((prev) => ({ + ...prev, + manualWeightKg: Number.isFinite(parsed) ? parsed : undefined, + })); + }; + return (
@@ -104,6 +120,30 @@ const IntoxicacionesChecklist = () => { + + + Naloxona (orientativo) + + +
+ + handleManualWeight(event.target.value)} + placeholder="Ej: 15" + /> +
+

Adulto: dosis inicial 0.4 mg IV/IM/IN, titular según respuesta.

+ {naloxoneDoseMg + ?

Pediatría: {naloxoneDoseMg.toFixed(2)} mg (0.1 mg/kg, máx 2 mg).

+ :

Pediatría: introduce peso para calcular 0.1 mg/kg (máx 2 mg).

} +
+
+
+
+ {intoxicacionesChecklistSteps.map((step) => ( diff --git a/src/tools/checklists/parto/PartoChecklist.tsx b/src/tools/checklists/parto/PartoChecklist.tsx index 48607450..cd0754d3 100644 --- a/src/tools/checklists/parto/PartoChecklist.tsx +++ b/src/tools/checklists/parto/PartoChecklist.tsx @@ -104,6 +104,19 @@ const PartoChecklist = () => { + + + Peso RN orientativo + + +

Referencia rápida si no se conoce el peso:

+

• <34 semanas: ~1.5–2.0 kg

+

• 34–36 semanas: ~2.0–2.5 kg

+

• ≥37 semanas (a término): ~3.0–3.5 kg

+

Si no hay datos, asumir 3.2 kg para cálculos iniciales y ajustar según clínica.

+
+
+ {partoChecklistSteps.map((step) => (