Skip to content

Commit

Permalink
feat(MISC-266): refactor de los filtros (#1780)
Browse files Browse the repository at this point in the history
  • Loading branch information
MarianoCampetella committed Apr 11, 2023
1 parent df0541f commit 41e1637
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 7 deletions.
20 changes: 17 additions & 3 deletions modules/estadistica/controller/procesarAgendas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export async function procesar(parametros: any) {
};
const matchTurno = {};
const matchEstado = {};
const matchPaciente = {};
if (parametros.estadoFacturacion) {
match['bloques.turnos.estadoFacturacion.estado'] = parametros.estadoFacturacion;
matchTurno['_bloques.turnos.estadoFacturacion.estado'] = parametros.estadoFacturacion;
Expand Down Expand Up @@ -50,9 +51,10 @@ export async function procesar(parametros: any) {
matchEstado['$expr'] = { $and: [{ $eq: ['$estado', parametros.estado] }] };
}

if (parametros.documento) {
matchTurno['_bloques.turnos.paciente.documento'] = parametros.documento;
if (parametros.paciente) {
matchPaciente['$and'] = [{ datosPaciente: { $regex: parametros.paciente.toUpperCase() } }];
}

const matchOS = {};
if (parametros.financiador) {
if (parametros.financiador === 'No posee') {
Expand Down Expand Up @@ -180,9 +182,21 @@ export async function procesar(parametros: any) {
turno: '$turno',
idPrestacion: '$prestacion0._id',
estadoFacturacion: '$turno.estadoFacturacion',
ambito: { $ifNull: ['$prestacion0.solicitud.ambitoOrigen', 'ambulatorio'] }
ambito: { $ifNull: ['$prestacion0.solicitud.ambitoOrigen', 'ambulatorio'] },
datosPaciente: {
$concat: [
'$turno.paciente.nombre',
' ',
'$turno.paciente.apellido',
' ',
'$turno.paciente.documento'
]
}
}
},
{
$match: matchPaciente
},
{
$match: matchEstado
},
Expand Down
22 changes: 19 additions & 3 deletions modules/estadistica/controller/procesarFueraDeAgenda.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ export async function procesar(parametros: any) {
'solicitud.turno': null,
'solicitud.organizacion.id': mongoose.Types.ObjectId(parametros.organizacion)
};
const matchPaciente = {};

if (parametros.documento) {
match['paciente.documento'] = parametros.documento;
if (parametros.paciente) {
matchPaciente['$and'] = [{ datosPaciente: { $regex: parametros.paciente.toUpperCase() } }];
}

if (parametros.estadoFacturacion) {
Expand All @@ -43,7 +44,22 @@ export async function procesar(parametros: any) {


try {
const prestaciones = Prestacion.aggregate([{ $match: match }]).cursor({ batchSize: 100 }).exec();
const prestaciones = Prestacion.aggregate([
{ $match: match },
{
$addFields: {
datosPaciente: {
$concat: [
'$paciente.nombre',
' ',
'$paciente.apellido',
' ',
'$paciente.documento'
]
}
}
},
{ $match: matchPaciente }]).cursor({ batchSize: 100 }).exec();
const resultado = [];
const os = parametros.financiador ? parametros.financiador : 'todos';
const filtroEstado = parametros.estado ? parametros.estado : 'todos';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export async function armarListado(datos) {
profesional: datos.idProfesional,
financiador: datos.financiador,
estadoFacturacion: datos.estadoFacturacion,
documento: datos.documento,
paciente: datos.paciente,
ambito: datos.ambito
};
// Procesa los turnos aplicando los filtros
Expand Down

0 comments on commit 41e1637

Please sign in to comment.