Skip to content

Commit

Permalink
fix(TyP): Agrega índices para búsqueda fuera de agenda (#1942)
Browse files Browse the repository at this point in the history
  • Loading branch information
MCele authored Aug 19, 2024
1 parent d657c99 commit d290212
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 10 deletions.
13 changes: 8 additions & 5 deletions modules/estadistica/controller/procesarFueraDeAgenda.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,22 @@ import * as mongoose from 'mongoose';
* @returns {object} {fecha, paciente, financiador, prestacion, profesionales, estado, idAgenda:null, idBloque:null, turno:null, idPrestacion}
*/
export async function procesar(parametros: any) {
const indice = 'FUERA-AGENDA';
const match: any = {
'ejecucion.fecha': {
$gte: new Date(parametros.fechaDesde),
$lte: new Date(parametros.fechaHasta)
},
'estadoActual.tipo': 'validada',
'solicitud.organizacion.id': mongoose.Types.ObjectId(parametros.organizacion),
'solicitud.tipoPrestacion.noNominalizada': { $ne: true },
'solicitud.turno': null,
'solicitud.organizacion.id': mongoose.Types.ObjectId(parametros.organizacion)
};

if (parametros.prestacion) {
match['solicitud.tipoPrestacion.conceptId'] = parametros.prestacion;
}

const matchPaciente = {};

if (parametros.noNominalizada) {
Expand All @@ -34,9 +40,6 @@ export async function procesar(parametros: any) {
}
}

if (parametros.prestacion) {
match['solicitud.tipoPrestacion.conceptId'] = parametros.prestacion;
}

if (parametros.profesional) {
match['solicitud.profesional.id'] = new mongoose.Types.ObjectId(parametros.profesional);
Expand All @@ -61,7 +64,7 @@ export async function procesar(parametros: any) {
}
}
},
{ $match: matchPaciente }]).cursor({ batchSize: 100 }).exec();
{ $match: matchPaciente }]).option({ hint: indice }).allowDiskUse(true).cursor({ batchSize: 100 }).exec();
const resultado = [];
const os = parametros.financiador ? parametros.financiador : 'todos';
const filtroEstado = parametros.estado ? parametros.estado : 'todos';
Expand Down
20 changes: 15 additions & 5 deletions modules/rup/schemas/prestacion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -328,14 +328,14 @@ PrestacionSchema.index({

PrestacionSchema.index({
updatedAt: 1,
'solicitud.organizacion.id' : 1,
'solicitud.organizacionOrigen.id' : 1
'solicitud.organizacion.id': 1,
'solicitud.organizacionOrigen.id': 1
}, { name: 'TOP-ENTRADA-UPDATED', partialFilterExpression: { inicio: 'top' } });

PrestacionSchema.index({
updatedAt : 1,
'solicitud.organizacionOrigen.id' : 1,
'solicitud.organizacion.id' : 1
updatedAt: 1,
'solicitud.organizacionOrigen.id': 1,
'solicitud.organizacion.id': 1
}, { name: 'TOP-SALIDA-UPDATED', partialFilterExpression: { inicio: 'top' } });

PrestacionSchema.index({
Expand Down Expand Up @@ -373,6 +373,16 @@ PrestacionSchema.index(
partialFilterExpression: { inicio: 'servicio-intermedio' }
}
);
// índice utilizado desde el buscador de turnos y prestaciones
PrestacionSchema.index(
{
'ejecucion.fecha': 1,
'estadoActual.tipo': 1,
'solicitud.organizacion.id': 1,
'solicitud.tipoPrestacion.conceptId': 1
},
{ name: 'FUERA-AGENDA' }
);

export const Prestacion = model('prestacion', PrestacionSchema, 'prestaciones');
export const PrestacionHistorial = model('prestacion-historial', PrestacionHistorialSchema, 'prestacion-historial');
Expand Down

0 comments on commit d290212

Please sign in to comment.