From b7cd5269866ba5bd0c136de1363e9bfd15828d62 Mon Sep 17 00:00:00 2001 From: Sergio Nicolas Lavaise Date: Mon, 20 Apr 2026 03:01:56 -0300 Subject: [PATCH] Add motivo field to interconsultas with dark mode badges --- server/server.js | 10 ++++++++-- src/sections/HistoriaClinica.tsx | 24 ++++++++++++++++++++---- src/types/index.ts | 1 + 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/server/server.js b/server/server.js index a3f280d..e4cab96 100644 --- a/server/server.js +++ b/server/server.js @@ -167,6 +167,7 @@ try { internacionId TEXT NOT NULL, fecha TEXT, servicioInterconsultado TEXT, + motivo TEXT, respuestaInterconsulta TEXT, respuestaFecha TEXT ) @@ -178,6 +179,11 @@ try { } catch (e) { // Column already exists } + try { + db.exec("ALTER TABLE interconsultas ADD COLUMN motivo TEXT"); + } catch (e) { + // Column already exists + } } } catch (e) { console.log('Error tabla interconsultas:', e.message); @@ -337,9 +343,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, respuestaFecha) VALUES (?, ?, ?, ?, ?, ?, ?)'); + const stmt = db.prepare('INSERT INTO interconsultas (id, pacienteId, internacionId, fecha, servicioInterconsultado, motivo, respuestaInterconsulta, respuestaFecha) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'); for (const ic of state.interconsultas) { - stmt.run(ic.id, ic.pacienteId, ic.internacionId, ic.fecha, ic.servicioInterconsultado, ic.respuestaInterconsulta || null, ic.respuestaFecha || null); + stmt.run(ic.id, ic.pacienteId, ic.internacionId, ic.fecha, ic.servicioInterconsultado, ic.motivo || null, ic.respuestaInterconsulta || null, ic.respuestaFecha || null); } } diff --git a/src/sections/HistoriaClinica.tsx b/src/sections/HistoriaClinica.tsx index 891e46c..0841a26 100644 --- a/src/sections/HistoriaClinica.tsx +++ b/src/sections/HistoriaClinica.tsx @@ -2081,6 +2081,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, const [dialog, setDialog] = useState(false); const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]); const [servicioInterconsultado, setServicioInterconsultado] = useState(''); + const [motivo, setMotivo] = useState(''); const [respuestaInterconsulta, setRespuestaInterconsulta] = useState(''); const [respuestaFecha, setRespuestaFecha] = useState(''); const [edit, setEdit] = useState(null); @@ -2088,6 +2089,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, const reset = () => { setFecha(new Date().toISOString().split('T')[0]); setServicioInterconsultado(''); + setMotivo(''); setRespuestaInterconsulta(''); setRespuestaFecha(''); setEdit(null); @@ -2095,7 +2097,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, const handleGuardar = () => { if (!servicioInterconsultado) return; - const datos: any = { fecha, servicioInterconsultado, respuestaInterconsulta }; + const datos: any = { fecha, servicioInterconsultado, motivo, respuestaInterconsulta }; if (respuestaInterconsulta) { datos.respuestaFecha = respuestaFecha || new Date().toISOString().split('T')[0]; } @@ -2112,6 +2114,7 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, setEdit(ic); setFecha(ic.fecha); setServicioInterconsultado(ic.servicioInterconsultado); + setMotivo(ic.motivo || ''); setRespuestaInterconsulta(ic.respuestaInterconsulta || ''); setRespuestaFecha(ic.respuestaFecha || ''); setDialog(true); @@ -2146,6 +2149,14 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, placeholder="Ej: Cardiología, Neurología, Infectología, etc." /> +
+ + setMotivo(e.target.value)} + placeholder="Motivo de la interconsulta" + /> +
@@ -2190,16 +2201,21 @@ function SeccionInterconsultas({ interconsultas, pacienteId, internacionId, add, {!ic.respuestaInterconsulta ? ( Pendiente ) : ( - Respondida + Respondida )}

{ic.servicioInterconsultado}

+ {ic.motivo && ( +

{ic.motivo}

+ )} {ic.respuestaInterconsulta && ( <> {ic.respuestaFecha && ( -

Fecha de respuesta: {ic.respuestaFecha}

+ + Respuesta: {ic.respuestaFecha} + )} -

{ic.respuestaInterconsulta}

+

{ic.respuestaInterconsulta}

)} diff --git a/src/types/index.ts b/src/types/index.ts index 5e16aeb..561af55 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -158,6 +158,7 @@ export interface Interconsulta { internacionId: string; fecha: string; servicioInterconsultado: string; + motivo?: string; respuestaInterconsulta?: string; respuestaFecha?: string; }