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