Agregar columna historiaClinica a pacientes con migración segura
This commit is contained in:
+19
-10
@@ -83,23 +83,26 @@ db.exec(`
|
|||||||
CREATE TABLE IF NOT EXISTS laboratorios (
|
CREATE TABLE IF NOT EXISTS laboratorios (
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
pacienteId TEXT NOT NULL,
|
pacienteId TEXT NOT NULL,
|
||||||
|
internacionId TEXT,
|
||||||
fecha TEXT NOT NULL,
|
fecha TEXT NOT NULL,
|
||||||
tipo TEXT,
|
tipo TEXT,
|
||||||
resultados TEXT,
|
resultados TEXT,
|
||||||
observaciones TEXT
|
observaciones TEXT,
|
||||||
|
medicoSolicitante TEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS acidosbase (
|
CREATE TABLE IF NOT EXISTS acidosbase (
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
pacienteId TEXT NOT NULL,
|
pacienteId TEXT NOT NULL,
|
||||||
|
internacionId TEXT,
|
||||||
fecha TEXT NOT NULL,
|
fecha TEXT NOT NULL,
|
||||||
hora TEXT NOT NULL,
|
hora TEXT,
|
||||||
ph REAL,
|
ph REAL,
|
||||||
pco2 REAL,
|
pco2 REAL,
|
||||||
po2 REAL,
|
po2 REAL,
|
||||||
hco3 REAL,
|
hco3 REAL,
|
||||||
be REAL,
|
be REAL,
|
||||||
statO2 REAL,
|
sato2 REAL,
|
||||||
lactato REAL,
|
lactato REAL,
|
||||||
interpretacion TEXT
|
interpretacion TEXT
|
||||||
);
|
);
|
||||||
@@ -108,18 +111,24 @@ db.exec(`
|
|||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
pacienteId TEXT NOT NULL,
|
pacienteId TEXT NOT NULL,
|
||||||
internacionId TEXT,
|
internacionId TEXT,
|
||||||
fechaToma TEXT NOT NULL,
|
fechaToma TEXT,
|
||||||
protocolo TEXT,
|
protocolo TEXT,
|
||||||
tipoMuestra TEXT,
|
|
||||||
observaciones TEXT,
|
|
||||||
estado TEXT DEFAULT 'Pendiente',
|
|
||||||
fechaResultado TEXT,
|
fechaResultado TEXT,
|
||||||
|
tipoMuestra TEXT,
|
||||||
germen TEXT,
|
germen TEXT,
|
||||||
sensible TEXT,
|
sensible TEXT,
|
||||||
resistente TEXT
|
resistente TEXT,
|
||||||
|
estado TEXT DEFAULT 'NAF/Pendiente',
|
||||||
|
observaciones TEXT
|
||||||
);
|
);
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
try {
|
||||||
|
db.exec("ALTER TABLE pacientes ADD COLUMN historiaClinica 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' }));
|
||||||
@@ -187,9 +196,9 @@ app.put('/api/state', (req, res) => {
|
|||||||
run('DELETE FROM pacientes');
|
run('DELETE FROM pacientes');
|
||||||
|
|
||||||
if (state.pacientes?.length) {
|
if (state.pacientes?.length) {
|
||||||
const stmt = db.prepare('INSERT INTO pacientes (id, apellido, nombre, dni, fechaNacimiento, sexo, telefono, email, direccion, obraSocial, nacionalidad, medicacionHabitual, antecedentes, alergias, grupoSanguineo) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
const stmt = db.prepare('INSERT INTO pacientes (id, apellido, nombre, dni, fechaNacimiento, sexo, telefono, email, direccion, obraSocial, nacionalidad, medicacionHabitual, antecedentes, alergias, grupoSanguineo, historiaClinica) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||||
for (const p of state.pacientes) {
|
for (const p of state.pacientes) {
|
||||||
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);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ export function Pacientes({
|
|||||||
const [obraSocial, setObraSocial] = useState('');
|
const [obraSocial, setObraSocial] = useState('');
|
||||||
const [nacionalidad, setNacionalidad] = useState('');
|
const [nacionalidad, setNacionalidad] = useState('');
|
||||||
const [medicacionHabitual, setMedicacionHabitual] = useState('');
|
const [medicacionHabitual, setMedicacionHabitual] = useState('');
|
||||||
|
const [historiaClinica, setHistoriaClinica] = useState('');
|
||||||
|
|
||||||
const resetFormulario = () => {
|
const resetFormulario = () => {
|
||||||
setNombre('');
|
setNombre('');
|
||||||
@@ -60,6 +61,7 @@ export function Pacientes({
|
|||||||
setObraSocial('');
|
setObraSocial('');
|
||||||
setNacionalidad('');
|
setNacionalidad('');
|
||||||
setMedicacionHabitual('');
|
setMedicacionHabitual('');
|
||||||
|
setHistoriaClinica('');
|
||||||
setPacienteEditando(null);
|
setPacienteEditando(null);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -79,6 +81,7 @@ export function Pacientes({
|
|||||||
setObraSocial(paciente.obraSocial || '');
|
setObraSocial(paciente.obraSocial || '');
|
||||||
setNacionalidad(paciente.nacionalidad || '');
|
setNacionalidad(paciente.nacionalidad || '');
|
||||||
setMedicacionHabitual(paciente.medicacionHabitual || '');
|
setMedicacionHabitual(paciente.medicacionHabitual || '');
|
||||||
|
setHistoriaClinica(paciente.historiaClinica || '');
|
||||||
setDialogoAbierto(true);
|
setDialogoAbierto(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -100,6 +103,7 @@ export function Pacientes({
|
|||||||
obraSocial: obraSocial || undefined,
|
obraSocial: obraSocial || undefined,
|
||||||
nacionalidad: nacionalidad || undefined,
|
nacionalidad: nacionalidad || undefined,
|
||||||
medicacionHabitual: medicacionHabitual || undefined,
|
medicacionHabitual: medicacionHabitual || undefined,
|
||||||
|
historiaClinica: historiaClinica || undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (pacienteEditando) {
|
if (pacienteEditando) {
|
||||||
@@ -286,6 +290,15 @@ export function Pacientes({
|
|||||||
placeholder="Medicación habitual del paciente..."
|
placeholder="Medicación habitual del paciente..."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="sm:col-span-2">
|
||||||
|
<Label>Historia Clínica</Label>
|
||||||
|
<textarea
|
||||||
|
className="w-full p-2 border rounded-md text-sm min-h-[80px]"
|
||||||
|
value={historiaClinica}
|
||||||
|
onChange={(e) => setHistoriaClinica(e.target.value)}
|
||||||
|
placeholder="Historia clínica del paciente..."
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex justify-end gap-2 mt-4">
|
<div className="flex justify-end gap-2 mt-4">
|
||||||
<Button variant="outline" onClick={() => {
|
<Button variant="outline" onClick={() => {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ export interface Paciente {
|
|||||||
obraSocial?: string;
|
obraSocial?: string;
|
||||||
nacionalidad?: string;
|
nacionalidad?: string;
|
||||||
medicacionHabitual?: string;
|
medicacionHabitual?: string;
|
||||||
|
historiaClinica?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user