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,
estado TEXT DEFAULT 'Activa',
medicoCrea TEXT,
fechaCrea TEXT
fechaCrea TEXT,
indicacionNoFco TEXT
)
`);
console.log('Tabla indicaciones creada');
@@ -443,9 +444,9 @@ app.put('/api/state', (req, res) => {
run('DELETE FROM indicaciones');
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) {
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'));
});
const PORT = process.env.PORT || 4000;
const PORT = process.env.PORT || 3000;
const HOST = process.env.HOST || '0.0.0.0';
app.listen(Number(PORT), HOST, () => {
console.log(`Server running on http://${HOST}:${PORT}`);
+10 -11
View File
@@ -25,9 +25,9 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
const [edit, setEdit] = useState<Indicacion | null>(null);
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 === '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 Alterno') return `${i.tipoPlan || ''} ${i.cantidadMl || ''}ml + ${i.tipoPlan2 || ''} ${i.cantidadMl2 || ''}ml en ${i.tiempoHoras || ''}hs`;
return '';
@@ -58,7 +58,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
const [dosis, setDosis] = useState('');
const [frecuenciaHoras, setFrecuenciaHoras] = useState<number | ''>('');
const [via, setVia] = useState<ViaAdministracion>('EV');
const [descripcion, setDescripcion] = useState('');
const [indicacionNoFco, setIndicacionNoFco] = useState('');
const [tipoPlan, setTipoPlan] = useState<TipoPlanHidratacion>('SF 0.9%');
const [tipoPlan2, setTipoPlan2] = useState<TipoPlanHidratacion>('Ringer Lactato');
const [cantidadMl, setCantidadMl] = useState<number | ''>('');
@@ -83,7 +83,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
setDosis('');
setFrecuenciaHoras('');
setVia('EV');
setDescripcion('');
setIndicacionNoFco('');
setTipoPlan('SF 0.9%');
setTipoPlan2('Ringer Lactato');
setCantidadMl('');
@@ -103,7 +103,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
setDosis(i.dosis || '');
setFrecuenciaHoras(i.frecuenciaHoras || '');
setVia(i.via || 'EV');
setDescripcion(i.descripcion || '');
setIndicacionNoFco(i.indicacionNoFco || '');
setTipoPlan(i.tipoPlan || 'SF 0.9%');
setTipoPlan2(i.tipoPlan2 || 'Ringer Lactato');
setCantidadMl(i.cantidadMl || '');
@@ -121,7 +121,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
if (!medico.trim()) return;
if ((tipo === 'Farmacologica' || tipo === 'Farmacologica Profilactica') && (!droga.trim() || !dosis.trim())) 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 Alterno' && (!cantidadMl || !cantidadMl2)) return;
@@ -143,9 +143,8 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
data.unidadesDesayuno = unidadesDesayuno || undefined;
data.unidadesAlmuerzo = unidadesAlmuerzo || undefined;
data.unidadesNoche = unidadesNoche || undefined;
console.log('Guardando insulina:', tipoInsulina, unidadesDesayuno, unidadesAlmuerzo, unidadesNoche);
} else if (tipo === 'No Farmacologica') {
data.descripcion = descripcion;
data.indicacionNoFco = indicacionNoFco;
} else if (tipo === 'PHP' || tipo === 'PHP Paralelo') {
data.tipoPlan = tipoPlan;
data.cantidadMl = cantidadMl;
@@ -252,7 +251,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
<Input value={medico} onChange={e => setMedico(e.target.value)} placeholder="Nombre del médico" />
</div>
{tipo === 'Farmacologica' && (
{tipo === 'Farmacologica' && (
<>
<div><Label>Droga *</Label><Input value={droga} onChange={e => setDroga(e.target.value)} placeholder="Nombre del medicamento" /></div>
<div><Label>Dosis *</Label><Input value={dosis} onChange={e => setDosis(e.target.value)} placeholder="Ej: 500mg, 1g, 10ml" /></div>
@@ -284,7 +283,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
)}
{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') && (
@@ -344,7 +343,7 @@ export function SeccionIndicaciones({ recomendaciones, internacionId, add, updat
</div>
)}
{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') && (
<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;
frecuenciaHoras?: number;
via?: ViaAdministracion;
descripcion?: string;
indicacionNoFco?: string;
tipoPlan?: TipoPlanHidratacion;
tipoPlan2?: TipoPlanHidratacion;
cantidadMl?: number;