Actualizar control de glucemias con eje Y secundario para correcciones e integracion de tienda
This commit is contained in:
+563
@@ -27,6 +27,231 @@ db.pragma('cache_size = 1000');
|
||||
db.pragma('temp_store = MEMORY');
|
||||
db.pragma('mmap_size = 268435456'); // 256MB
|
||||
|
||||
export function initDb() {
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS usuarios (
|
||||
id TEXT PRIMARY KEY,
|
||||
apellido TEXT NOT NULL,
|
||||
nombre TEXT NOT NULL,
|
||||
dni TEXT NOT NULL UNIQUE,
|
||||
fechaNacimiento TEXT,
|
||||
email TEXT,
|
||||
rol TEXT,
|
||||
matriculaProfesional TEXT,
|
||||
passwordHash TEXT,
|
||||
areaId TEXT,
|
||||
fechaCreacion TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pacientes (
|
||||
id TEXT PRIMARY KEY,
|
||||
apellido TEXT NOT NULL,
|
||||
nombre TEXT NOT NULL,
|
||||
dni TEXT NOT NULL UNIQUE,
|
||||
fechaNacimiento TEXT,
|
||||
sexo TEXT,
|
||||
telefono TEXT,
|
||||
email TEXT,
|
||||
direccion TEXT,
|
||||
obraSocial TEXT,
|
||||
nacionalidad TEXT,
|
||||
medicacionHabitual TEXT,
|
||||
antecedentes TEXT,
|
||||
alergias TEXT,
|
||||
grupoSanguineo TEXT,
|
||||
historiaClinica TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS areas (
|
||||
id TEXT PRIMARY KEY,
|
||||
nombre TEXT NOT NULL UNIQUE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS camas (
|
||||
id TEXT PRIMARY KEY,
|
||||
numero TEXT NOT NULL,
|
||||
areaId TEXT,
|
||||
tipo TEXT DEFAULT 'Estándar',
|
||||
estado TEXT DEFAULT 'Disponible',
|
||||
pacienteId TEXT,
|
||||
internacionId TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS internaciones (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
camaId TEXT,
|
||||
areaId TEXT,
|
||||
fechaIngresoHospital TEXT,
|
||||
fechaIngresoClinica TEXT,
|
||||
fechaEgreso TEXT,
|
||||
diagnosticoIngreso TEXT,
|
||||
motivoConsulta TEXT,
|
||||
enfermedadActual TEXT,
|
||||
antecedentesEnfermedadActual TEXT,
|
||||
diagnosticoEgreso TEXT,
|
||||
medicoIngresante TEXT,
|
||||
motivoEgreso TEXT,
|
||||
activa INTEGER DEFAULT 1,
|
||||
apache TEXT,
|
||||
derivacion TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS evoluciones (
|
||||
id TEXT PRIMARY KEY,
|
||||
internacionId TEXT NOT NULL,
|
||||
fecha TEXT NOT NULL,
|
||||
hora TEXT,
|
||||
medico TEXT,
|
||||
signosVitales TEXT,
|
||||
examenFisico TEXT,
|
||||
novedades TEXT,
|
||||
comentarios TEXT,
|
||||
pendientes TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS laboratorios (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT,
|
||||
fecha TEXT NOT NULL,
|
||||
hora TEXT,
|
||||
tipo TEXT,
|
||||
resultados TEXT,
|
||||
observaciones TEXT,
|
||||
medicoSolicitante TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS glucemias (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT,
|
||||
fecha TEXT NOT NULL,
|
||||
hora TEXT,
|
||||
valor REAL NOT NULL,
|
||||
correccion REAL NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS acidosbase (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT,
|
||||
fecha TEXT NOT NULL,
|
||||
hora TEXT,
|
||||
ph REAL,
|
||||
pco2 REAL,
|
||||
po2 REAL,
|
||||
hco3 REAL,
|
||||
be REAL,
|
||||
sato2 REAL,
|
||||
lactato REAL,
|
||||
fio2 REAL,
|
||||
interpretacion TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cultivos (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT,
|
||||
fechaToma TEXT,
|
||||
protocolo TEXT,
|
||||
fechaResultado TEXT,
|
||||
tipoMuestra TEXT,
|
||||
germen TEXT,
|
||||
sensible TEXT,
|
||||
resistente TEXT,
|
||||
estado TEXT DEFAULT 'NAF/Pendiente',
|
||||
observaciones TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS estudiosComplementarios (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT,
|
||||
fecha TEXT,
|
||||
tipo TEXT,
|
||||
resultado TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS interconsultas (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT NOT NULL,
|
||||
fecha TEXT,
|
||||
servicioInterconsultado TEXT,
|
||||
motivo TEXT,
|
||||
respuestaInterconsulta TEXT,
|
||||
respuestaFecha TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS atb (
|
||||
id TEXT PRIMARY KEY,
|
||||
pacienteId TEXT NOT NULL,
|
||||
internacionId TEXT NOT NULL,
|
||||
antibiotico TEXT,
|
||||
fechaInicio TEXT,
|
||||
fechaFinalizacion TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS indicaciones (
|
||||
id TEXT PRIMARY KEY,
|
||||
internacionId TEXT NOT NULL,
|
||||
tipo TEXT NOT NULL,
|
||||
droga TEXT,
|
||||
dosis TEXT,
|
||||
frecuenciaHoras INTEGER,
|
||||
via TEXT,
|
||||
indicacionNoFco TEXT,
|
||||
tipoPlan TEXT,
|
||||
tipoPlan2 TEXT,
|
||||
cantidadMl INTEGER,
|
||||
cantidadMl2 INTEGER,
|
||||
tiempoHoras INTEGER,
|
||||
tipoInsulina TEXT,
|
||||
unidadesDesayuno INTEGER,
|
||||
unidadesAlmuerzo INTEGER,
|
||||
unidadesNoche INTEGER,
|
||||
estado TEXT DEFAULT 'Activa',
|
||||
medicoCrea TEXT,
|
||||
fechaCrea TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS movimientos_indicaciones (
|
||||
id TEXT PRIMARY KEY,
|
||||
indicacionId TEXT NOT NULL,
|
||||
internacionId TEXT NOT NULL,
|
||||
tipo TEXT NOT NULL,
|
||||
fecha TEXT NOT NULL,
|
||||
profesional TEXT NOT NULL,
|
||||
indicacionPrevia TEXT,
|
||||
indicacionNueva TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS kv (
|
||||
key TEXT PRIMARY KEY,
|
||||
value TEXT
|
||||
);
|
||||
`);
|
||||
|
||||
// Create default admin if no users exist
|
||||
try {
|
||||
const userCount = db.prepare('SELECT COUNT(*) as count FROM usuarios').get();
|
||||
if (!userCount || userCount.count === 0) {
|
||||
const adminHash = bcrypt.hashSync('admin123', 10);
|
||||
db.prepare(`
|
||||
INSERT INTO usuarios (id, apellido, nombre, dni, fechaNacimiento, email, rol, passwordHash, fechaCreacion)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
`).run('admin-default', 'Administrador', 'Sistema', '12345678', '1990-01-01', 'admin@hospital.local', 'admin', adminHash, new Date().toISOString().split('T')[0]);
|
||||
console.log('Usuario admin por defecto creado: DNI 12345678 / Clave admin123');
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Error al verificar usuario admin por defecto:', err);
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-initialize tables
|
||||
initDb();
|
||||
|
||||
export function getDb() {
|
||||
return db;
|
||||
}
|
||||
@@ -166,6 +391,7 @@ export function getAllEvoluciones() {
|
||||
const rows = db.prepare('SELECT * FROM evoluciones').all();
|
||||
return rows.map(e => ({
|
||||
...e,
|
||||
comentario: e.comentarios || e.comentario || '',
|
||||
signosVitales: typeof e.signosVitales === 'string' ? JSON.parse(e.signosVitales) : e.signosVitales,
|
||||
examenFisico: typeof e.examenFisico === 'string' ? JSON.parse(e.examenFisico) : e.examenFisico
|
||||
}));
|
||||
@@ -176,6 +402,11 @@ export function getAllLaboratorios() {
|
||||
return rows.map(l => ({ ...l, resultados: typeof l.resultados === 'string' ? JSON.parse(l.resultados) : l.resultados }));
|
||||
}
|
||||
|
||||
export function getAllGlucemias() {
|
||||
const rows = db.prepare('SELECT * FROM glucemias').all();
|
||||
return rows;
|
||||
}
|
||||
|
||||
export function getAllAcidosBase() {
|
||||
const rows = db.prepare('SELECT * FROM acidosbase').all();
|
||||
return rows;
|
||||
@@ -210,3 +441,335 @@ export function getAllMovimientosIndicaciones() {
|
||||
const rows = db.prepare('SELECT * FROM movimientos_indicaciones').all();
|
||||
return rows;
|
||||
}
|
||||
|
||||
// Pacientes
|
||||
export function createPaciente(p) {
|
||||
const stmt = db.prepare('INSERT INTO pacientes (id, apellido, nombre, dni, fechaNacimiento, sexo, telefono, email, direccion, obraSocial, nacionalidad, medicacionHabitual, antecedentes, alergias, grupoSanguineo, historiaClinica) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(p.id, p.apellido, p.nombre, p.dni, p.fechaNacimiento || null, p.sexo || null, p.telefono || null, p.email || null, p.direccion || null, p.obraSocial || null, p.nacionalidad || null, p.medicacionHabitual || null, p.antecedentes || null, p.alergias || null, p.grupoSanguineo || null, p.historiaClinica || null);
|
||||
}
|
||||
|
||||
export function updatePaciente(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE pacientes SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deletePaciente(id) {
|
||||
db.prepare('DELETE FROM pacientes WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Areas
|
||||
export function createArea(area) {
|
||||
db.prepare('INSERT INTO areas (id, nombre) VALUES (?, ?)').run(area.id, area.nombre);
|
||||
}
|
||||
|
||||
export function updateArea(id, datos) {
|
||||
if (datos.nombre) {
|
||||
db.prepare('UPDATE areas SET nombre = ? WHERE id = ?').run(datos.nombre, id);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteArea(id) {
|
||||
db.prepare('DELETE FROM areas WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Camas
|
||||
export function createCama(cama) {
|
||||
db.prepare('INSERT INTO camas (id, numero, areaId, tipo, estado, pacienteId, internacionId) VALUES (?, ?, ?, ?, ?, ?, ?)').run(cama.id, cama.numero, cama.areaId || null, cama.tipo || 'Estándar', cama.estado || 'Disponible', cama.pacienteId || null, cama.internacionId || null);
|
||||
}
|
||||
|
||||
export function deleteCama(id) {
|
||||
db.prepare('DELETE FROM camas WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Internaciones
|
||||
export function createInternacion(i) {
|
||||
const stmt = db.prepare('INSERT INTO internaciones (id, pacienteId, camaId, areaId, fechaIngresoHospital, fechaIngresoClinica, fechaEgreso, diagnosticoIngreso, motivoConsulta, enfermedadActual, antecedentesEnfermedadActual, diagnosticoEgreso, medicoIngresante, motivoEgreso, activa, apache, derivacion) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(i.id, i.pacienteId, i.camaId || null, i.areaId || null, i.fechaIngresoHospital || null, i.fechaIngresoClinica || null, i.fechaEgreso || null, i.diagnosticoIngreso || null, i.motivoConsulta || null, i.enfermedadActual || null, i.antecedentesEnfermedadActual || null, i.diagnosticoEgreso || null, i.medicoIngresante || null, i.motivoEgreso || null, i.activa ? 1 : 0, i.apache || null, i.derivacion || null);
|
||||
}
|
||||
|
||||
export function updateInternacion(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
if (key === 'activa') {
|
||||
fields.push('activa = ?');
|
||||
values.push(val ? 1 : 0);
|
||||
} else {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE internaciones SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteInternacion(id) {
|
||||
db.prepare('DELETE FROM internaciones WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Evoluciones
|
||||
export function createEvolucion(e) {
|
||||
const stmt = db.prepare('INSERT INTO evoluciones (id, internacionId, fecha, hora, medico, signosVitales, examenFisico, novedades, comentarios, pendientes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(e.id, e.internacionId, e.fecha, e.hora || '', e.medico || '', JSON.stringify(e.signosVitales || {}), JSON.stringify(e.examenFisico || {}), e.novedades || '', e.comentarios || e.comentario || '', e.pendientes || '');
|
||||
}
|
||||
|
||||
export function updateEvolucion(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
if (key === 'comentario') {
|
||||
fields.push('comentarios = ?');
|
||||
values.push(val);
|
||||
} else if (key === 'signosVitales' || key === 'examenFisico') {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(JSON.stringify(val));
|
||||
} else {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE evoluciones SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteEvolucion(id) {
|
||||
db.prepare('DELETE FROM evoluciones WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Laboratorios
|
||||
export function createLaboratorio(l) {
|
||||
const stmt = db.prepare('INSERT INTO laboratorios (id, pacienteId, internacionId, fecha, hora, tipo, resultados, observaciones, medicoSolicitante) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(l.id, l.pacienteId, l.internacionId || null, l.fecha, l.hora || null, l.tipo || null, JSON.stringify(l.resultados || {}), l.observaciones || null, l.medicoSolicitante || null);
|
||||
}
|
||||
|
||||
export function updateLaboratorio(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
if (key === 'resultados') {
|
||||
fields.push('resultados = ?');
|
||||
values.push(JSON.stringify(val));
|
||||
} else {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE laboratorios SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteLaboratorio(id) {
|
||||
db.prepare('DELETE FROM laboratorios WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Glucemias
|
||||
export function createGlucemia(g) {
|
||||
const stmt = db.prepare('INSERT INTO glucemias (id, pacienteId, internacionId, fecha, hora, valor, correccion) VALUES (?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(g.id, g.pacienteId, g.internacionId || null, g.fecha, g.hora || null, g.valor, g.correccion);
|
||||
}
|
||||
|
||||
export function updateGlucemia(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE glucemias SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteGlucemia(id) {
|
||||
db.prepare('DELETE FROM glucemias WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// AcidosBase
|
||||
export function createAcidoBase(a) {
|
||||
const stmt = db.prepare('INSERT INTO acidosbase (id, pacienteId, internacionId, fecha, hora, ph, pco2, po2, hco3, be, sato2, lactato, fio2, interpretacion) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(a.id, a.pacienteId, a.internacionId || null, a.fecha, a.hora || null, a.ph, a.pco2, a.po2, a.hco3, a.be, a.sato2, a.lactato || null, a.fio2 || null, a.interpretacion || null);
|
||||
}
|
||||
|
||||
export function updateAcidoBase(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE acidosbase SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteAcidoBase(id) {
|
||||
db.prepare('DELETE FROM acidosbase WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Cultivos
|
||||
export function createCultivo(c) {
|
||||
const stmt = db.prepare('INSERT INTO cultivos (id, pacienteId, internacionId, fechaToma, protocolo, fechaResultado, tipoMuestra, germen, sensible, resistente, estado, observaciones) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(c.id, c.pacienteId, c.internacionId || null, c.fechaToma || null, c.protocolo || null, c.fechaResultado || null, c.tipoMuestra || null, c.germen || null, c.sensible || null, c.resistente || null, c.estado || 'NAF/Pendiente', c.observaciones || null);
|
||||
}
|
||||
|
||||
export function updateCultivo(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE cultivos SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteCultivo(id) {
|
||||
db.prepare('DELETE FROM cultivos WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Estudios Complementarios
|
||||
export function createEstudioComplementario(e) {
|
||||
const stmt = db.prepare('INSERT INTO estudiosComplementarios (id, pacienteId, internacionId, fecha, tipo, resultado) VALUES (?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(e.id, e.pacienteId, e.internacionId || null, e.fecha || null, e.tipo || null, e.resultado || null);
|
||||
}
|
||||
|
||||
export function updateEstudioComplementario(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE estudiosComplementarios SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteEstudioComplementario(id) {
|
||||
db.prepare('DELETE FROM estudiosComplementarios WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Interconsultas
|
||||
export function createInterconsulta(ic) {
|
||||
const stmt = db.prepare('INSERT INTO interconsultas (id, pacienteId, internacionId, fecha, servicioInterconsultado, motivo, respuestaInterconsulta, respuestaFecha) VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(ic.id, ic.pacienteId, ic.internacionId, ic.fecha || null, ic.servicioInterconsultado, ic.motivo || null, ic.respuestaInterconsulta || null, ic.respuestaFecha || null);
|
||||
}
|
||||
|
||||
export function updateInterconsulta(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE interconsultas SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteInterconsulta(id) {
|
||||
db.prepare('DELETE FROM interconsultas WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// ATB
|
||||
export function createAtb(a) {
|
||||
const stmt = db.prepare('INSERT INTO atb (id, pacienteId, internacionId, antibiotico, fechaInicio, fechaFinalizacion) VALUES (?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(a.id, a.pacienteId, a.internacionId, a.antibiotico || null, a.fechaInicio || null, a.fechaFinalizacion || null);
|
||||
}
|
||||
|
||||
export function updateAtb(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE atb SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteAtb(id) {
|
||||
db.prepare('DELETE FROM atb WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Indicaciones
|
||||
export function createIndicacion(ind) {
|
||||
const stmt = db.prepare('INSERT INTO indicaciones (id, internacionId, tipo, droga, dosis, frecuenciaHoras, via, indicacionNoFco, tipoPlan, tipoPlan2, cantidadMl, cantidadMl2, tiempoHoras, tipoInsulina, unidadesDesayuno, unidadesAlmuerzo, unidadesNoche, estado, medicoCrea, fechaCrea) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(ind.id, ind.internacionId, ind.tipo, ind.droga || null, ind.dosis || null, ind.frecuenciaHoras || null, ind.via || null, ind.indicacionNoFco || null, ind.tipoPlan || null, ind.tipoPlan2 || null, ind.cantidadMl || null, ind.cantidadMl2 || null, ind.tiempoHoras || null, ind.tipoInsulina || null, ind.unidadesDesayuno || null, ind.unidadesAlmuerzo || null, ind.unidadesNoche || null, ind.estado || 'Activa', ind.medicoCrea || null, ind.fechaCrea || null);
|
||||
}
|
||||
|
||||
export function updateIndicacion(id, datos) {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, val] of Object.entries(datos)) {
|
||||
if (key !== 'id' && val !== undefined) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(val);
|
||||
}
|
||||
}
|
||||
if (fields.length > 0) {
|
||||
values.push(id);
|
||||
db.prepare(`UPDATE indicaciones SET ${fields.join(', ')} WHERE id = ?`).run(...values);
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteIndicacion(id) {
|
||||
db.prepare('DELETE FROM indicaciones WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
// Movimientos Indicaciones
|
||||
export function createMovimientoIndicacion(m) {
|
||||
const stmt = db.prepare('INSERT INTO movimientos_indicaciones (id, indicacionId, internacionId, tipo, fecha, profesional, indicacionPrevia, indicacionNueva) VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
stmt.run(
|
||||
m.id,
|
||||
m.indicacionId || '',
|
||||
m.internacionId || '',
|
||||
m.tipo || '',
|
||||
m.fecha || new Date().toISOString(),
|
||||
m.profesional || '',
|
||||
m.indicacionPrevia || null,
|
||||
m.indicacionNueva || null
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user