From ee6bd0d46b12b44de5978e099b1e9386cb248699 Mon Sep 17 00:00:00 2001 From: Sergio Nicolas Lavaise Date: Tue, 21 Apr 2026 16:07:39 -0300 Subject: [PATCH] Update Indicaciones: new types PHP, Paralelo, Alterno with dual plans --- server/server.js | 17 ++++++- src/sections/SeccionIndicaciones.tsx | 73 ++++++++++++++++++++-------- src/types/index.ts | 8 +-- 3 files changed, 72 insertions(+), 26 deletions(-) diff --git a/server/server.js b/server/server.js index 040fab8..af899d6 100644 --- a/server/server.js +++ b/server/server.js @@ -222,7 +222,9 @@ try { via TEXT, descripcion TEXT, tipoPlan TEXT, + tipoPlan2 TEXT, cantidadMl INTEGER, + cantidadMl2 INTEGER, tiempoHoras INTEGER, estado TEXT DEFAULT 'Activa', medicoCrea TEXT, @@ -232,6 +234,17 @@ try { ) `); console.log('Tabla indicaciones creada'); + } else { + try { + db.exec("ALTER TABLE indicaciones ADD COLUMN tipoPlan2 TEXT"); + } catch (e) { + // column may already exist + } + try { + db.exec("ALTER TABLE indicaciones ADD COLUMN cantidadMl2 INTEGER"); + } catch (e) { + // column may already exist + } } } catch (e) { console.log('Error tabla indicaciones:', e.message); @@ -389,9 +402,9 @@ if (state.laboratorios?.length) { run('DELETE FROM indicaciones'); if (state.indicaciones?.length) { - const stmt = db.prepare('INSERT INTO indicaciones (id, internacionId, tipo, droga, dosis, frecuenciaHoras, via, descripcion, tipoPlan, cantidadMl, tiempoHoras, estado, medicoCrea, fechaCrea, medicoSuspende, fechaSuspension) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); + const stmt = db.prepare('INSERT INTO indicaciones (id, internacionId, tipo, droga, dosis, frecuenciaHoras, via, descripcion, tipoPlan, tipoPlan2, cantidadMl, cantidadMl2, tiempoHoras, estado, medicoCrea, fechaCrea, medicoSuspende, fechaSuspension) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); for (const ind of state.indicaciones) { - stmt.run(ind.id, ind.internacionId, ind.tipo, ind.droga || null, ind.dosis || null, ind.frecuenciaHoras || null, ind.via || null, ind.descripcion || null, ind.tipoPlan || null, ind.cantidadMl || null, ind.tiempoHoras || null, ind.estado, ind.medicoCrea, ind.fechaCrea, ind.medicoSuspende || null, ind.fechaSuspension || null); + stmt.run(ind.id, ind.internacionId, ind.tipo, ind.droga || null, ind.dosis || null, ind.frecuenciaHoras || null, ind.via || null, ind.descripcion || null, ind.tipoPlan || null, ind.tipoPlan2 || null, ind.cantidadMl || null, ind.cantidadMl2 || null, ind.tiempoHoras || null, ind.estado, ind.medicoCrea, ind.fechaCrea, ind.medicoSuspende || null, ind.fechaSuspension || null); } } diff --git a/src/sections/SeccionIndicaciones.tsx b/src/sections/SeccionIndicaciones.tsx index e388d31..146b958 100644 --- a/src/sections/SeccionIndicaciones.tsx +++ b/src/sections/SeccionIndicaciones.tsx @@ -26,15 +26,17 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat const [frecuenciaHoras, setFrecuenciaHoras] = useState(''); const [via, setVia] = useState('EV'); const [descripcion, setDescripcion] = useState(''); - const [tipoPlan, setTipoPlan] = useState('SolucionFisiologica09'); + const [tipoPlan, setTipoPlan] = useState('SF 0.9%'); + const [tipoPlan2, setTipoPlan2] = useState('Ringer Lactato'); const [cantidadMl, setCantidadMl] = useState(''); + const [cantidadMl2, setCantidadMl2] = useState(''); const [tiempoHoras, setTiempoHoras] = useState(24); const [medico, setMedico] = useState(''); const [showHistorial, setShowHistorial] = useState(false); - const vias: ViaAdministracion[] = ['Oral', 'EV', 'IM', 'SC', 'PorGGT', 'PorSNG']; - const planes: TipoPlanHidratacion[] = ['SolucionFisiologica09', 'Dextrosa5', 'Dextrosa10', 'Dextrosa25', 'RingerLactato']; - const tipos: IndicacionTipo[] = ['Farmacologica', 'NoFarmacologica', 'Hidratacion']; + const vias: ViaAdministracion[] = ['Oral', 'EV', 'IM', 'SC', 'Por GGT', 'Por SNG']; + const planes: TipoPlanHidratacion[] = ['SF 0.9%', 'Dextrosa 5%', 'Dextrosa 10%', 'Dextrosa 25%', 'Ringer Lactato']; + const tipos: IndicacionTipo[] = ['Farmacologica', 'No Farmacologica', 'PHP', 'Paralelo', 'Alterno']; const reset = () => { setEdit(null); @@ -44,8 +46,10 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat setFrecuenciaHoras(''); setVia('EV'); setDescripcion(''); - setTipoPlan('SolucionFisiologica09'); + setTipoPlan('SF 0.9%'); + setTipoPlan2('Ringer Lactato'); setCantidadMl(''); + setCantidadMl2(''); setTiempoHoras(24); setMedico(''); }; @@ -58,8 +62,10 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat setFrecuenciaHoras(i.frecuenciaHoras || ''); setVia(i.via || 'EV'); setDescripcion(i.descripcion || ''); - setTipoPlan(i.tipoPlan || 'SolucionFisiologica09'); + setTipoPlan(i.tipoPlan || 'SF 0.9%'); + setTipoPlan2(i.tipoPlan2 || 'Ringer Lactato'); setCantidadMl(i.cantidadMl || ''); + setCantidadMl2(i.cantidadMl2 || ''); setTiempoHoras(i.tiempoHoras || 24); setMedico(i.medicoCrea); setDialog(true); @@ -68,8 +74,9 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat const handleGuardar = () => { if (!medico.trim()) return; if (tipo === 'Farmacologica' && (!droga.trim() || !dosis.trim())) return; - if (tipo === 'NoFarmacologica' && !descripcion.trim()) return; - if (tipo === 'Hidratacion' && !cantidadMl) return; + if (tipo === 'No Farmacologica' && !descripcion.trim()) return; + if ((tipo === 'PHP' || tipo === 'Paralelo') && !cantidadMl) return; + if (tipo === 'Alterno' && (!cantidadMl || !cantidadMl2)) return; const data: any = { internacionId, @@ -84,12 +91,18 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat data.dosis = dosis; data.frecuenciaHoras = frecuenciaHoras || undefined; data.via = via; - } else if (tipo === 'NoFarmacologica') { + } else if (tipo === 'No Farmacologica') { data.descripcion = descripcion; - } else { + } else if (tipo === 'PHP' || tipo === 'Paralelo') { data.tipoPlan = tipoPlan; data.cantidadMl = cantidadMl; data.tiempoHoras = tiempoHoras; + } else if (tipo === 'Alterno') { + data.tipoPlan = tipoPlan; + data.cantidadMl = cantidadMl; + data.tipoPlan2 = tipoPlan2; + data.cantidadMl2 = cantidadMl2; + data.tiempoHoras = tiempoHoras; } if (edit) { @@ -156,11 +169,11 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat )} - {tipo === 'NoFarmacologica' && ( -