From 5f567e29fb7fe82c871f032c70efbf1a46ca41e6 Mon Sep 17 00:00:00 2001 From: Sergio Nicolas Lavaise Date: Sun, 19 Apr 2026 15:13:32 -0300 Subject: [PATCH] Add respuestaFecha field to interconsultas: DB, types, UI --- server/server.js | 13 ++++++++++--- src/sections/HistoriaClinica.tsx | 31 ++++++++++++++++++++++++------- src/types/index.ts | 1 + 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/server/server.js b/server/server.js index f1b5bd2..57da6c1 100644 --- a/server/server.js +++ b/server/server.js @@ -167,10 +167,17 @@ try { internacionId TEXT NOT NULL, fecha TEXT, servicioInterconsultado TEXT, - respuestaInterconsulta TEXT + respuestaInterconsulta TEXT, + respuestaFecha TEXT ) `); console.log('Tabla interconsultas creada'); + } else { + try { + db.exec("ALTER TABLE interconsultas ADD COLUMN respuestaFecha TEXT"); + } catch (e) { + // Column already exists + } } } catch (e) { console.log('Error tabla interconsultas:', e.message); @@ -310,9 +317,9 @@ if (state.laboratorios?.length) { run('DELETE FROM interconsultas'); if (state.interconsultas?.length) { - const stmt = db.prepare('INSERT INTO interconsultas (id, pacienteId, internacionId, fecha, servicioInterconsultado, respuestaInterconsulta) VALUES (?, ?, ?, ?, ?, ?)'); + const stmt = db.prepare('INSERT INTO interconsultas (id, pacienteId, internacionId, fecha, servicioInterconsultado, respuestaInterconsulta, respuestaFecha) VALUES (?, ?, ?, ?, ?, ?, ?)'); for (const ic of state.interconsultas) { - stmt.run(ic.id, ic.pacienteId, ic.internacionId, ic.fecha, ic.servicioInterconsultado, ic.respuestaInterconsulta || null); + stmt.run(ic.id, ic.pacienteId, ic.internacionId, ic.fecha, ic.servicioInterconsultado, ic.respuestaInterconsulta || null, ic.respuestaFecha || null); } } diff --git a/src/sections/HistoriaClinica.tsx b/src/sections/HistoriaClinica.tsx index f1e95d8..119c1fd 100644 --- a/src/sections/HistoriaClinica.tsx +++ b/src/sections/HistoriaClinica.tsx @@ -2025,21 +2025,27 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]); const [servicioInterconsultado, setServicioInterconsultado] = useState(''); const [respuestaInterconsulta, setRespuestaInterconsulta] = useState(''); + const [respuestaFecha, setRespuestaFecha] = useState(''); const [edit, setEdit] = useState(null); const reset = () => { setFecha(new Date().toISOString().split('T')[0]); setServicioInterconsultado(''); setRespuestaInterconsulta(''); + setRespuestaFecha(''); setEdit(null); }; const handleGuardar = () => { if (!servicioInterconsultado) return; + const datos: any = { fecha, servicioInterconsultado, respuestaInterconsulta }; + if (respuestaInterconsulta) { + datos.respuestaFecha = respuestaFecha || new Date().toISOString().split('T')[0]; + } if (edit) { - update(edit.id, { fecha, servicioInterconsultado, respuestaInterconsulta }); + update(edit.id, datos); } else { - add({ pacienteId, internacionId, fecha, servicioInterconsultado, respuestaInterconsulta }); + add({ pacienteId, internacionId, ...datos }); } setDialog(false); reset(); @@ -2050,6 +2056,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, setFecha(ic.fecha); setServicioInterconsultado(ic.servicioInterconsultado); setRespuestaInterconsulta(ic.respuestaInterconsulta || ''); + setRespuestaFecha(ic.respuestaFecha || ''); setDialog(true); }; @@ -2071,7 +2078,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add,
- + setFecha(e.target.value)} />
@@ -2083,6 +2090,11 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, />
+
+ + setRespuestaFecha(e.target.value)} /> +
+