Agregar hora a laboratorios: campo, sort, display
This commit is contained in:
+9
-2
@@ -85,6 +85,7 @@ db.exec(`
|
|||||||
pacienteId TEXT NOT NULL,
|
pacienteId TEXT NOT NULL,
|
||||||
internacionId TEXT,
|
internacionId TEXT,
|
||||||
fecha TEXT NOT NULL,
|
fecha TEXT NOT NULL,
|
||||||
|
hora TEXT,
|
||||||
tipo TEXT,
|
tipo TEXT,
|
||||||
resultados TEXT,
|
resultados TEXT,
|
||||||
observaciones TEXT,
|
observaciones TEXT,
|
||||||
@@ -150,6 +151,12 @@ try {
|
|||||||
// La columna ya existe
|
// La columna ya existe
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
db.exec("ALTER TABLE laboratorios ADD COLUMN hora TEXT");
|
||||||
|
} catch (e) {
|
||||||
|
// La columna ya existe
|
||||||
|
}
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
app.use(cors());
|
app.use(cors());
|
||||||
app.use(express.json({ limit: '50mb' }));
|
app.use(express.json({ limit: '50mb' }));
|
||||||
@@ -254,9 +261,9 @@ app.put('/api/state', (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (state.laboratorios?.length) {
|
if (state.laboratorios?.length) {
|
||||||
const stmt = db.prepare('INSERT INTO laboratorios (id, pacienteId, fecha, tipo, resultados, observaciones) VALUES (?, ?, ?, ?, ?, ?)');
|
const stmt = db.prepare('INSERT INTO laboratorios (id, pacienteId, fecha, hora, tipo, resultados, observaciones) VALUES (?, ?, ?, ?, ?, ?, ?)');
|
||||||
for (const l of state.laboratorios) {
|
for (const l of state.laboratorios) {
|
||||||
stmt.run(l.id, l.pacienteId, l.fecha, l.tipo, JSON.stringify(l.resultados), l.observaciones);
|
stmt.run(l.id, l.pacienteId, l.fecha, l.hora || null, l.tipo, JSON.stringify(l.resultados), l.observaciones || null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -572,6 +572,7 @@ function SeccionLaboratorios({ lab, patientId, add, update, del, addAcidoBase }:
|
|||||||
const [edit, setEdit] = useState<Laboratorio | null>(null);
|
const [edit, setEdit] = useState<Laboratorio | null>(null);
|
||||||
const [obsLab, setObsLab] = useState<Laboratorio | null>(null);
|
const [obsLab, setObsLab] = useState<Laboratorio | null>(null);
|
||||||
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
const [fecha, setFecha] = useState(new Date().toISOString().split('T')[0]);
|
||||||
|
const [hora, setHora] = useState(new Date().toTimeString().slice(0, 5));
|
||||||
const [observaciones, setObservaciones] = useState('');
|
const [observaciones, setObservaciones] = useState('');
|
||||||
const [resultados, setResultados] = useState<ResultadoLaboratorio[]>([]);
|
const [resultados, setResultados] = useState<ResultadoLaboratorio[]>([]);
|
||||||
const [hto, setHto] = useState('');
|
const [hto, setHto] = useState('');
|
||||||
@@ -668,6 +669,7 @@ return res;
|
|||||||
|
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
setFecha(new Date().toISOString().split('T')[0]);
|
setFecha(new Date().toISOString().split('T')[0]);
|
||||||
|
setHora(new Date().toTimeString().slice(0, 5));
|
||||||
setObservaciones('');
|
setObservaciones('');
|
||||||
setHto(''); setHb(''); setGb(''); setPlaq('');
|
setHto(''); setHb(''); setGb(''); setPlaq('');
|
||||||
setGluc(''); setUrea(''); setCreat('');
|
setGluc(''); setUrea(''); setCreat('');
|
||||||
@@ -851,9 +853,11 @@ for (const linea of lineas) {
|
|||||||
addAcidoBase(importAcidoBase);
|
addAcidoBase(importAcidoBase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const horaActual = new Date().toTimeString().slice(0, 5);
|
||||||
add({
|
add({
|
||||||
pacienteId: patientId,
|
pacienteId: patientId,
|
||||||
fecha: importFecha,
|
fecha: importFecha,
|
||||||
|
hora: horaActual,
|
||||||
resultados: importResultados,
|
resultados: importResultados,
|
||||||
observaciones: importObservaciones
|
observaciones: importObservaciones
|
||||||
});
|
});
|
||||||
@@ -869,6 +873,7 @@ for (const linea of lineas) {
|
|||||||
const loadEdit = (l: Laboratorio) => {
|
const loadEdit = (l: Laboratorio) => {
|
||||||
setEdit(l);
|
setEdit(l);
|
||||||
setFecha(l.fecha);
|
setFecha(l.fecha);
|
||||||
|
setHora(l.hora || '');
|
||||||
setObservaciones(l.observaciones || '');
|
setObservaciones(l.observaciones || '');
|
||||||
setHto(getValorRaw(l, 'Hematocrito'));
|
setHto(getValorRaw(l, 'Hematocrito'));
|
||||||
setHb(getValorRaw(l, 'Hemoglobina'));
|
setHb(getValorRaw(l, 'Hemoglobina'));
|
||||||
@@ -893,16 +898,18 @@ for (const linea of lineas) {
|
|||||||
const handleGuardar = () => {
|
const handleGuardar = () => {
|
||||||
const resultadosLaboratorio = buildResultados();
|
const resultadosLaboratorio = buildResultados();
|
||||||
if (edit) {
|
if (edit) {
|
||||||
update(edit.id, { fecha, resultados: resultadosLaboratorio, observaciones });
|
update(edit.id, { fecha, hora, resultados: resultadosLaboratorio, observaciones });
|
||||||
} else {
|
} else {
|
||||||
add({ pacienteId: patientId || '', fecha, resultados: resultadosLaboratorio, observaciones });
|
add({ pacienteId: patientId || '', fecha, hora, resultados: resultadosLaboratorio, observaciones });
|
||||||
}
|
}
|
||||||
setDialog(false);
|
setDialog(false);
|
||||||
reset();
|
reset();
|
||||||
};
|
};
|
||||||
|
|
||||||
const labs = lab.filter(l => l.pacienteId === patientId).sort((a, b) => {
|
const labs = lab.filter(l => l.pacienteId === patientId).sort((a, b) => {
|
||||||
const diff = new Date(b.fecha).getTime() - new Date(a.fecha).getTime();
|
const dateA = new Date(a.fecha + 'T' + (a.hora || '00:00')).getTime();
|
||||||
|
const dateB = new Date(b.fecha + 'T' + (b.hora || '00:00')).getTime();
|
||||||
|
const diff = dateB - dateA;
|
||||||
return labSortAsc ? -diff : diff;
|
return labSortAsc ? -diff : diff;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1172,7 +1179,7 @@ for (const linea of lineas) {
|
|||||||
<TableBody>
|
<TableBody>
|
||||||
{labs.map(l => (
|
{labs.map(l => (
|
||||||
<TableRow key={l.id}>
|
<TableRow key={l.id}>
|
||||||
<TableCell>{l.fecha}</TableCell>
|
<TableCell>{l.fecha} {l.hora || ''}</TableCell>
|
||||||
<TableCell className={getValorStyle(l, 'Hematocrito')}>{getValor(l, 'Hematocrito')}</TableCell>
|
<TableCell className={getValorStyle(l, 'Hematocrito')}>{getValor(l, 'Hematocrito')}</TableCell>
|
||||||
<TableCell className={getValorStyle(l, 'Hemoglobina')}>{getValor(l, 'Hemoglobina')}</TableCell>
|
<TableCell className={getValorStyle(l, 'Hemoglobina')}>{getValor(l, 'Hemoglobina')}</TableCell>
|
||||||
<TableCell className={getValorStyle(l, 'Leucocitos')}>{getValor(l, 'Leucocitos')}</TableCell>
|
<TableCell className={getValorStyle(l, 'Leucocitos')}>{getValor(l, 'Leucocitos')}</TableCell>
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ export interface Laboratorio {
|
|||||||
pacienteId: string;
|
pacienteId: string;
|
||||||
internacionId?: string;
|
internacionId?: string;
|
||||||
fecha: string;
|
fecha: string;
|
||||||
|
hora: string;
|
||||||
tipo?: 'Hemograma' | 'Química sanguínea' | 'Urianálisis' | 'Coagulación' | 'Microbiología' | 'Inmunología' | 'Otros';
|
tipo?: 'Hemograma' | 'Química sanguínea' | 'Urianálisis' | 'Coagulación' | 'Microbiología' | 'Inmunología' | 'Otros';
|
||||||
resultados: ResultadoLaboratorio[];
|
resultados: ResultadoLaboratorio[];
|
||||||
observaciones?: string;
|
observaciones?: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user