Se corige bug que no permitia que se guarde indicacion no farmacologica

This commit is contained in:
2026-04-21 23:53:31 -03:00
parent 7f87bfe61d
commit cc9df91ac1
3 changed files with 16 additions and 16 deletions
+5 -4
View File
@@ -228,7 +228,8 @@ try {
tiempoHoras INTEGER, tiempoHoras INTEGER,
estado TEXT DEFAULT 'Activa', estado TEXT DEFAULT 'Activa',
medicoCrea TEXT, medicoCrea TEXT,
fechaCrea TEXT fechaCrea TEXT,
indicacionNoFco TEXT
) )
`); `);
console.log('Tabla indicaciones creada'); console.log('Tabla indicaciones creada');
@@ -443,9 +444,9 @@ app.put('/api/state', (req, res) => {
run('DELETE FROM indicaciones'); run('DELETE FROM indicaciones');
if (state.indicaciones?.length) { if (state.indicaciones?.length) {
const stmt = db.prepare('INSERT INTO indicaciones (id, internacionId, tipo, droga, dosis, frecuenciaHoras, via, tipoPlan, tipoPlan2, cantidadMl, cantidadMl2, tiempoHoras, estado, medicoCrea, fechaCrea, tipoInsulina, unidadesDesayuno, unidadesAlmuerzo, unidadesNoche) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); const stmt = db.prepare('INSERT INTO indicaciones (id, internacionId, tipo, droga, dosis, frecuenciaHoras, via, tipoPlan, tipoPlan2, cantidadMl, cantidadMl2, tiempoHoras, estado, medicoCrea, fechaCrea, tipoInsulina, unidadesDesayuno, unidadesAlmuerzo, unidadesNoche, indicacionNoFco) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
for (const ind of state.indicaciones) { 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.tipoPlan || null, ind.tipoPlan2 || null, ind.cantidadMl || null, ind.cantidadMl2 || null, ind.tiempoHoras || null, ind.estado, ind.medicoCrea, ind.fechaCrea, ind.tipoInsulina || null, ind.unidadesDesayuno || null, ind.unidadesAlmuerzo || null, ind.unidadesNoche || null); stmt.run(ind.id, ind.internacionId, ind.tipo, ind.droga || null, ind.dosis || null, ind.frecuenciaHoras || null, ind.via || null, ind.tipoPlan || null, ind.tipoPlan2 || null, ind.cantidadMl || null, ind.cantidadMl2 || null, ind.tiempoHoras || null, ind.estado, ind.medicoCrea, ind.fechaCrea, ind.tipoInsulina || null, ind.unidadesDesayuno || null, ind.unidadesAlmuerzo || null, ind.unidadesNoche || null, ind.indicacionNoFco || null);
} }
} }
@@ -468,7 +469,7 @@ app.get('*', (req, res) => {
res.sendFile(join(DIST_PATH, 'index.html')); res.sendFile(join(DIST_PATH, 'index.html'));
}); });
const PORT = process.env.PORT || 4000; const PORT = process.env.PORT || 3000;
const HOST = process.env.HOST || '0.0.0.0'; const HOST = process.env.HOST || '0.0.0.0';
app.listen(Number(PORT), HOST, () => { app.listen(Number(PORT), HOST, () => {
console.log(`Server running on http://${HOST}:${PORT}`); console.log(`Server running on http://${HOST}:${PORT}`);
+9 -10
View File
@@ -25,9 +25,9 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
const [edit, setEdit] = useState<Indicacion | null>(null); const [edit, setEdit] = useState<Indicacion | null>(null);
const formatIndicacion = (i: Indicacion): string => { const formatIndicacion = (i: Indicacion): string => {
if (i.tipo === 'Farmacologica') return `${i.droga || ''} ${i.dosis || ''} ${i.frecuenciaHoras ? `c/${i.frecuenciaHoras}hs` : ''} ${i.via || ''}`.trim(); if (i.tipo === 'Farmacologica' || i.tipo === 'Farmacologica Profilactica') return `${i.droga || ''} ${i.dosis || ''} ${i.frecuenciaHoras ? `c/${i.frecuenciaHoras}hs` : ''} ${i.via || ''}`.trim();
if (i.tipo === 'Farmacologica Insulina') return `${i.tipoInsulina || ''}${i.unidadesDesayuno ? ` - Desayuno: ${i.unidadesDesayuno}U` : ''}${i.unidadesAlmuerzo ? ` - Almuerzo: ${i.unidadesAlmuerzo}U` : ''}${i.unidadesNoche ? ` - 23hs: ${i.unidadesNoche}U` : ''}`.trim(); if (i.tipo === 'Farmacologica Insulina') return `${i.tipoInsulina || ''}${i.unidadesDesayuno ? ` - Desayuno: ${i.unidadesDesayuno}U` : ''}${i.unidadesAlmuerzo ? ` - Almuerzo: ${i.unidadesAlmuerzo}U` : ''}${i.unidadesNoche ? ` - 23hs: ${i.unidadesNoche}U` : ''}`.trim();
if (i.tipo === 'No Farmacologica') return i.descripcion || ''; if (i.tipo === 'No Farmacologica') return i.indicacionNoFco || '';
if (i.tipo === 'PHP' || i.tipo === 'PHP Paralelo') return `${i.tipoPlan || ''} ${i.cantidadMl || ''}ml en ${i.tiempoHoras || ''}hs`; if (i.tipo === 'PHP' || i.tipo === 'PHP Paralelo') return `${i.tipoPlan || ''} ${i.cantidadMl || ''}ml en ${i.tiempoHoras || ''}hs`;
if (i.tipo === 'PHP Alterno') return `${i.tipoPlan || ''} ${i.cantidadMl || ''}ml + ${i.tipoPlan2 || ''} ${i.cantidadMl2 || ''}ml en ${i.tiempoHoras || ''}hs`; if (i.tipo === 'PHP Alterno') return `${i.tipoPlan || ''} ${i.cantidadMl || ''}ml + ${i.tipoPlan2 || ''} ${i.cantidadMl2 || ''}ml en ${i.tiempoHoras || ''}hs`;
return ''; return '';
@@ -58,7 +58,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
const [dosis, setDosis] = useState(''); const [dosis, setDosis] = useState('');
const [frecuenciaHoras, setFrecuenciaHoras] = useState<number | ''>(''); const [frecuenciaHoras, setFrecuenciaHoras] = useState<number | ''>('');
const [via, setVia] = useState<ViaAdministracion>('EV'); const [via, setVia] = useState<ViaAdministracion>('EV');
const [descripcion, setDescripcion] = useState(''); const [indicacionNoFco, setIndicacionNoFco] = useState('');
const [tipoPlan, setTipoPlan] = useState<TipoPlanHidratacion>('SF 0.9%'); const [tipoPlan, setTipoPlan] = useState<TipoPlanHidratacion>('SF 0.9%');
const [tipoPlan2, setTipoPlan2] = useState<TipoPlanHidratacion>('Ringer Lactato'); const [tipoPlan2, setTipoPlan2] = useState<TipoPlanHidratacion>('Ringer Lactato');
const [cantidadMl, setCantidadMl] = useState<number | ''>(''); const [cantidadMl, setCantidadMl] = useState<number | ''>('');
@@ -83,7 +83,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
setDosis(''); setDosis('');
setFrecuenciaHoras(''); setFrecuenciaHoras('');
setVia('EV'); setVia('EV');
setDescripcion(''); setIndicacionNoFco('');
setTipoPlan('SF 0.9%'); setTipoPlan('SF 0.9%');
setTipoPlan2('Ringer Lactato'); setTipoPlan2('Ringer Lactato');
setCantidadMl(''); setCantidadMl('');
@@ -103,7 +103,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
setDosis(i.dosis || ''); setDosis(i.dosis || '');
setFrecuenciaHoras(i.frecuenciaHoras || ''); setFrecuenciaHoras(i.frecuenciaHoras || '');
setVia(i.via || 'EV'); setVia(i.via || 'EV');
setDescripcion(i.descripcion || ''); setIndicacionNoFco(i.indicacionNoFco || '');
setTipoPlan(i.tipoPlan || 'SF 0.9%'); setTipoPlan(i.tipoPlan || 'SF 0.9%');
setTipoPlan2(i.tipoPlan2 || 'Ringer Lactato'); setTipoPlan2(i.tipoPlan2 || 'Ringer Lactato');
setCantidadMl(i.cantidadMl || ''); setCantidadMl(i.cantidadMl || '');
@@ -121,7 +121,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
if (!medico.trim()) return; if (!medico.trim()) return;
if ((tipo === 'Farmacologica' || tipo === 'Farmacologica Profilactica') && (!droga.trim() || !dosis.trim())) return; if ((tipo === 'Farmacologica' || tipo === 'Farmacologica Profilactica') && (!droga.trim() || !dosis.trim())) return;
if (tipo === 'Farmacologica Insulina' && (!unidadesDesayuno && !unidadesAlmuerzo && !unidadesNoche)) return; if (tipo === 'Farmacologica Insulina' && (!unidadesDesayuno && !unidadesAlmuerzo && !unidadesNoche)) return;
if (tipo === 'No Farmacologica' && !descripcion.trim()) return; if (tipo === 'No Farmacologica' && !indicacionNoFco.trim()) return;
if ((tipo === 'PHP' || tipo === 'PHP Paralelo') && !cantidadMl) return; if ((tipo === 'PHP' || tipo === 'PHP Paralelo') && !cantidadMl) return;
if (tipo === 'PHP Alterno' && (!cantidadMl || !cantidadMl2)) return; if (tipo === 'PHP Alterno' && (!cantidadMl || !cantidadMl2)) return;
@@ -143,9 +143,8 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
data.unidadesDesayuno = unidadesDesayuno || undefined; data.unidadesDesayuno = unidadesDesayuno || undefined;
data.unidadesAlmuerzo = unidadesAlmuerzo || undefined; data.unidadesAlmuerzo = unidadesAlmuerzo || undefined;
data.unidadesNoche = unidadesNoche || undefined; data.unidadesNoche = unidadesNoche || undefined;
console.log('Guardando insulina:', tipoInsulina, unidadesDesayuno, unidadesAlmuerzo, unidadesNoche);
} else if (tipo === 'No Farmacologica') { } else if (tipo === 'No Farmacologica') {
data.descripcion = descripcion; data.indicacionNoFco = indicacionNoFco;
} else if (tipo === 'PHP' || tipo === 'PHP Paralelo') { } else if (tipo === 'PHP' || tipo === 'PHP Paralelo') {
data.tipoPlan = tipoPlan; data.tipoPlan = tipoPlan;
data.cantidadMl = cantidadMl; data.cantidadMl = cantidadMl;
@@ -284,7 +283,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
)} )}
{tipo === 'No Farmacologica' && ( {tipo === 'No Farmacologica' && (
<div><Label>Descripción *</Label><textarea className="w-full p-2 border rounded-md text-sm min-h-[80px] bg-transparent dark:bg-input/30" value={descripcion} onChange={e => setDescripcion(e.target.value)} placeholder="Ej: Control de signos vitales, Dieta, etc." /></div> <div><Label>Indicacionión *</Label><textarea className="w-full p-2 border rounded-md text-sm min-h-[80px] bg-transparent dark:bg-input/30" value={indicacionNoFco} onChange={e => setIndicacionNoFco(e.target.value)} placeholder="Ej: Control de signos vitales, Dieta, etc." /></div>
)} )}
{(tipo === 'PHP' || tipo === 'PHP Paralelo') && ( {(tipo === 'PHP' || tipo === 'PHP Paralelo') && (
@@ -344,7 +343,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
</div> </div>
)} )}
{ind.tipo === 'No Farmacologica' && ( {ind.tipo === 'No Farmacologica' && (
<div className="font-medium">{ind.descripcion}</div> <div className="font-medium">{ind.indicacionNoFco}</div>
)} )}
{(ind.tipo === 'PHP' || ind.tipo === 'PHP Paralelo') && ( {(ind.tipo === 'PHP' || ind.tipo === 'PHP Paralelo') && (
<div className="font-medium">{ind.tipoPlan} {ind.cantidadMl}ml en {ind.tiempoHoras}hs</div> <div className="font-medium">{ind.tipoPlan} {ind.cantidadMl}ml en {ind.tiempoHoras}hs</div>
+1 -1
View File
@@ -185,7 +185,7 @@ export interface Indicacion {
dosis?: string; dosis?: string;
frecuenciaHoras?: number; frecuenciaHoras?: number;
via?: ViaAdministracion; via?: ViaAdministracion;
descripcion?: string; indicacionNoFco?: string;
tipoPlan?: TipoPlanHidratacion; tipoPlan?: TipoPlanHidratacion;
tipoPlan2?: TipoPlanHidratacion; tipoPlan2?: TipoPlanHidratacion;
cantidadMl?: number; cantidadMl?: number;