From b8ac55abb05e8ee55cd9c6ae0d3c510fd109eb4c Mon Sep 17 00:00:00 2001 From: Sergio Nicolas Lavaise Date: Tue, 21 Apr 2026 16:51:32 -0300 Subject: [PATCH] Add Farmacologica Insulina type with NPH/Glargina and schedule options --- server/server.js | 28 +++++++++++++++--- src/sections/SeccionIndicaciones.tsx | 43 ++++++++++++++++++++++++++-- src/types/index.ts | 7 ++++- 3 files changed, 70 insertions(+), 8 deletions(-) diff --git a/server/server.js b/server/server.js index 6165059..7858045 100644 --- a/server/server.js +++ b/server/server.js @@ -250,14 +250,34 @@ try { } catch (e) { // column may already exist } - try { - db.exec("ALTER TABLE indicaciones ADD COLUMN fechaModificacion TEXT"); +try { + db.exec("ALTER TABLE recomendaciones ADD COLUMN fechaModificacion TEXT"); } catch (e) { // column may already exist } - } + try { + db.exec("ALTER TABLE recomendaciones ADD COLUMN tipoInsulina TEXT"); + } catch (e) { + // column may already exist + } + try { + db.exec("ALTER TABLE recomendaciones ADD COLUMN unidadesDesayuno INTEGER"); + } catch (e) { + // column may already exist + } + try { + db.exec("ALTER TABLE recomendaciones ADD COLUMN unidadesAlmuerzo INTEGER"); + } catch (e) { + // column may already exist + } + try { + db.exec("ALTER TABLE recomendaciones ADD COLUMN unidadesNoche INTEGER"); + } catch (e) { + // column may already exist + } +} } catch (e) { - console.log('Error tabla indicaciones:', e.message); + console.log('Error tabla recomendaciones:', e.message); } const app = express(); diff --git a/src/sections/SeccionIndicaciones.tsx b/src/sections/SeccionIndicaciones.tsx index 19e6d7b..f1b693a 100644 --- a/src/sections/SeccionIndicaciones.tsx +++ b/src/sections/SeccionIndicaciones.tsx @@ -8,7 +8,7 @@ import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { Plus, Pencil, Trash2, X } from 'lucide-react'; -import type { Indicacion, IndicacionTipo, ViaAdministracion, TipoPlanHidratacion } from '@/types'; +import type { Indicacion, IndicacionTipo, ViaAdministracion, TipoPlanHidratacion, TipoInsulina } from '@/types'; export function SeccionIndicaciones({ recomendaciones, internacionId, add, update, del }: { recomendaciones: Indicacion[]; @@ -31,12 +31,17 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat const [cantidadMl, setCantidadMl] = useState(''); const [cantidadMl2, setCantidadMl2] = useState(''); const [tiempoHoras, setTiempoHoras] = useState(24); + const [tipoInsulina, setTipoInsulina] = useState('NPH'); + const [unidadesDesayuno, setUnidadesDesayuno] = useState(''); + const [unidadesAlmuerzo, setUnidadesAlmuerzo] = useState(''); + const [unidadesNoche, setUnidadesNoche] = useState(''); const [medico, setMedico] = useState(''); const [showHistorial, setShowHistorial] = useState(false); 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 tiposInsulina: TipoInsulina[] = ['NPH', 'Glargina']; + const tipos: IndicacionTipo[] = ['Farmacologica', 'Farmacologica Insulina', 'No Farmacologica', 'PHP', 'Paralelo', 'Alterno']; const reset = () => { setEdit(null); @@ -51,6 +56,10 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat setCantidadMl(''); setCantidadMl2(''); setTiempoHoras(24); + setTipoInsulina('NPH'); + setUnidadesDesayuno(''); + setUnidadesAlmuerzo(''); + setUnidadesNoche(''); setMedico(''); }; @@ -67,6 +76,10 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat setCantidadMl(i.cantidadMl || ''); setCantidadMl2(i.cantidadMl2 || ''); setTiempoHoras(i.tiempoHoras || 24); + setTipoInsulina(i.tipoInsulina || 'NPH'); + setUnidadesDesayuno(i.unidadesDesayuno || ''); + setUnidadesAlmuerzo(i.unidadesAlmuerzo || ''); + setUnidadesNoche(i.unidadesNoche || ''); setMedico(i.medicoCrea); setDialog(true); }; @@ -74,6 +87,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat const handleGuardar = () => { if (!medico.trim()) return; if (tipo === 'Farmacologica' && (!droga.trim() || !dosis.trim())) return; + if (tipo === 'Farmacologica Insulina' && (!unidadesDesayuno && !unidadesAlmuerzo && !unidadesNoche)) return; if (tipo === 'No Farmacologica' && !descripcion.trim()) return; if ((tipo === 'PHP' || tipo === 'Paralelo') && !cantidadMl) return; if (tipo === 'Alterno' && (!cantidadMl || !cantidadMl2)) return; @@ -91,6 +105,11 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat data.dosis = dosis; data.frecuenciaHoras = frecuenciaHoras || undefined; data.via = via; + } else if (tipo === 'Farmacologica Insulina') { + data.tipoInsulina = tipoInsulina; + data.unidadesDesayuno = unidadesDesayuno || undefined; + data.unidadesAlmuerzo = unidadesAlmuerzo || undefined; + data.unidadesNoche = unidadesNoche || undefined; } else if (tipo === 'No Farmacologica') { data.descripcion = descripcion; } else if (tipo === 'PHP' || tipo === 'Paralelo') { @@ -176,6 +195,17 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat )} + {tipo === 'Farmacologica Insulina' && ( + <> +
+
+
setUnidadesDesayuno(e.target.value ? parseInt(e.target.value) : '')} placeholder="U" />
+
setUnidadesAlmuerzo(e.target.value ? parseInt(e.target.value) : '')} placeholder="U" />
+
setUnidadesNoche(e.target.value ? parseInt(e.target.value) : '')} placeholder="U" />
+
+ + )} + {tipo === 'No Farmacologica' && (