From cbed7b3016d4dae7f3d454ff0a6fdd5485651a54 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:27:55 -0300 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20Optimiza=20b=C3=BAsqueda=20SQL=20ag?= =?UTF-8?q?regando=20fechas=20de=20migraci=C3=B3n=20a=20exportaci=C3=B3n?= =?UTF-8?q?=20de=20laboratorios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cda-laboratorios/controller/operations.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cda-laboratorios/controller/operations.ts b/cda-laboratorios/controller/operations.ts index 9b229e7..7352047 100644 --- a/cda-laboratorios/controller/operations.ts +++ b/cda-laboratorios/controller/operations.ts @@ -5,7 +5,7 @@ const request = require('request'); const cache = {}; import { msCDALaboratoriosLog } from '../logger/msCDALaboratorios'; const log = msCDALaboratoriosLog.startTrace(); -import { userScheduler, idEfectoresSIL2 } from './../config.private'; +import { userScheduler, efectoresFiltradosSIL2 } from './../config.private'; export async function organizacionBySisaCode(sisa) { return new Promise((resolve, reject) => { @@ -13,7 +13,7 @@ export async function organizacionBySisaCode(sisa) { return resolve(cache[sisa]); } else { const url = `${ANDES_HOST}/core/tm/organizaciones?sisa=${sisa}&token=${ANDES_KEY}`; - request(url, (error, response, body) => { + request(url, (error, response, body) => { if (!error && response.statusCode >= 200 && response.statusCode < 300) { const orgs: any[] = JSON.parse(body); if (orgs && orgs.length) { @@ -35,9 +35,21 @@ export async function getEncabezados(pool, paciente) { const documento = paciente.documento; const sexo = paciente.sexo === 'femenino' ? 'F' : paciente.sexo === 'masculino' ? 'M' : 'I'; let filterEfectores = ''; - if (idEfectoresSIL2?.length) { - const idsSil2 = idEfectoresSIL2.toString(); - filterEfectores = `and encabezado.idEfector not in (${idsSil2})`; + + if(efectoresFiltradosSIL2?.length) { + filterEfectores += `and (`; + efectoresFiltradosSIL2.forEach(element => { + if(element.fechaHasta != "") { + //a fechaHasta sacar los guiones para que no falle la consulta + element.fechaHasta = element.fechaHasta.replace(/-/g, ''); + filterEfectores += ` (encabezado.idEfector=${element.idSips} and encabezado.fecha1 < '${element.fechaHasta}') or`; + } + + }); + //Borro el ultimo 'or' agregado + filterEfectores = filterEfectores.slice(0, -2); + filterEfectores += ` )`; + } const query = `select efector.codigoSisa as efectorCodSisa, efector.nombre as efector, encabezado.idEfector as idEfector, encabezado.apellido, encabezado.nombre, encabezado.fechaNacimiento, encabezado.sexo, encabezado.numeroDocumento, From fdcfc76086aab2a4a7d1968806d417fd278eefbc Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Thu, 14 Aug 2025 12:47:24 -0300 Subject: [PATCH 2/2] docs: se agrega un config.private.example para cda-laboratorios --- cda-laboratorios/config.private.example.ts | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 cda-laboratorios/config.private.example.ts diff --git a/cda-laboratorios/config.private.example.ts b/cda-laboratorios/config.private.example.ts new file mode 100644 index 0000000..e78f518 --- /dev/null +++ b/cda-laboratorios/config.private.example.ts @@ -0,0 +1,74 @@ +export const ANDES_HOST = ''; +export const ANDES_KEY = ''; + +//para ver laboratorios de sips +export const conSql = { + auth: { + user: '', + password: '' + }, + serverSql: { + server: '', + database: '' + }, + pool: { + acquireTimeoutMillis: 15000 + } +}; + + +//id de efectores SIL2 (no se generan cdas) +//export const idEfectoresSIL2 = []; //-> cambiado por efectoresFiltradosSIL2 + +//efectoresFiltrados: Por cada efector que fue migrado al SIL2 (idSips) se debe colocar +// la fecha hasta la fecha que se uso por ultima vez el SIL 1 +//y si no migro se coloca la fecha vacia +export const efectoresFiltradosSIL2 = [ + { + "idSips": 0, + "nombre": "", + "fechaHasta": "" + } +] + +export const logDatabase = { + log: { + host: `mongodb://localhost:27017/andesLogs`, + options: { + useNewUrlParser: true, + useUnifiedTopology: true, + useCreateIndex: true, + useFindAndModify: false + } + } +}; + +// User scheduler +export const userScheduler = { + user: { + usuario: { + nombre: 'Andes', + apellido: 'Scheduler' + }, + organizacion: { + nombre: 'Andes' + } + }, + ip: '0.0.0.0', + connection: { + localAddress: '0.0.0.0' + } +}; + + + + + + + + + + + + +