From 5dcfae7baa0715300abe4e5479161092a0dadddb Mon Sep 17 00:00:00 2001 From: Fabio-Ramirez Date: Thu, 25 Apr 2024 13:13:32 -0300 Subject: [PATCH] AM - Visualizar los turnos liberados y fuera de agenda --- .../historialCitasController.ts | 17 ++-- modules/turnos/controller/turnosController.ts | 85 ++++++++++--------- 2 files changed, 52 insertions(+), 50 deletions(-) diff --git a/modules/turnos/controller/historialCitasController/historialCitasController.ts b/modules/turnos/controller/historialCitasController/historialCitasController.ts index 6c8963ea9d..09bf893081 100644 --- a/modules/turnos/controller/historialCitasController/historialCitasController.ts +++ b/modules/turnos/controller/historialCitasController/historialCitasController.ts @@ -4,16 +4,13 @@ import moment = require('moment'); import { PacienteCtr } from '../../../../core-v2/mpi/paciente/paciente.routes'; export async function getHistorial(req) { - let historial; - if (req.query.sinLiberados) { - historial = await getHistorialPaciente(req); - } else { - const turnos = getHistorialPaciente(req); - const liberados = getLiberadosPaciente(req); - const fueraAgendas = getHistorialFueraAgendas(req.query.pacienteId); - const result = await Promise.all([turnos, liberados, fueraAgendas]); - historial = [...result[0], ...result[1], ...result[2]]; - } + + const turnos = getHistorialPaciente(req); + const liberados = getLiberadosPaciente(req); + const fueraAgendas = getHistorialFueraAgendas(req.query.pacienteId); + const result = await Promise.all([turnos, liberados, fueraAgendas]); + const historial = [...result[0], ...result[1], ...result[2]]; + return historial; } diff --git a/modules/turnos/controller/turnosController.ts b/modules/turnos/controller/turnosController.ts index 00d43c9cc6..cbac3c1f9c 100644 --- a/modules/turnos/controller/turnosController.ts +++ b/modules/turnos/controller/turnosController.ts @@ -40,39 +40,40 @@ export function getTurno(req) { const turnos = []; let turno; - pipelineTurno = [{ - $match: { - estado: 'publicada' - } - }, + pipelineTurno = [ + { + $match: { + estado: 'publicada' + } + }, // Unwind cada array - { $unwind: '$bloques' }, - { $unwind: '$bloques.turnos' }, + { $unwind: '$bloques' }, + { $unwind: '$bloques.turnos' }, // Filtra los elementos que matchean - { - $match: { - estado: 'publicada' - } - }, - { - $group: { - _id: { id: '$_id', bloqueId: '$bloques._id' }, - agenda_id: { $first: '$_id' }, - organizacion: { $first: '$organizacion' }, - profesionales: { $first: '$profesionales' }, - turnos: { $push: '$bloques.turnos' } - } - }, - { - $group: { - _id: '$_id.id', - agenda_id: { $first: '$agenda_id' }, - bloque_id: { $first: '$_id.bloqueId' }, - organizacion: { $first: '$organizacion' }, - profesionales: { $first: '$profesionales' }, - bloques: { $push: { _id: '$_id.bloqueId', turnos: '$turnos' } } - } - }]; + { + $match: { + estado: 'publicada' + } + }, + { + $group: { + _id: { id: '$_id', bloqueId: '$bloques._id' }, + agenda_id: { $first: '$_id' }, + organizacion: { $first: '$organizacion' }, + profesionales: { $first: '$profesionales' }, + turnos: { $push: '$bloques.turnos' } + } + }, + { + $group: { + _id: '$_id.id', + agenda_id: { $first: '$agenda_id' }, + bloque_id: { $first: '$_id.bloqueId' }, + organizacion: { $first: '$organizacion' }, + profesionales: { $first: '$profesionales' }, + bloques: { $push: { _id: '$_id.bloqueId', turnos: '$turnos' } } + } + }]; // ver llamado, req.query if (req.query && mongoose.Types.ObjectId.isValid(req.query.id)) { @@ -171,7 +172,7 @@ export function getTurno(req) { */ export async function getHistorialPaciente(req) { // console.warn('Deprecation warning: getHistorialPaciente is deprecated. Use getHistorialPaciente in core/mpi/controller/paciente'); - if (req.query && req.query.pacienteId) { + if (req.query?.pacienteId) { const idPaciente = new mongoose.Types.ObjectId(req.query.pacienteId); const paciente: any = await PacienteCtr.findById(idPaciente); try { @@ -339,17 +340,21 @@ export async function getHistorialPaciente(req) { } export async function getLiberadosPaciente(req) { - if (req.query && req.query.pacienteId) { + if (req.query?.pacienteId) { try { const idPaciente = new mongoose.Types.ObjectId(req.query.pacienteId); const paciente: any = await PacienteCtr.findById(idPaciente); - const resultado: any = await logPaciente.find( - { - paciente: { $in: paciente.vinculos }, - operacion: 'turnos:liberar', - 'dataTurno.turno.updatedBy.organizacion._id': req.user.organizacion._id - }) - .exec(); + const query = { + paciente: { $in: paciente.vinculos }, + operacion: 'turnos:liberar' + }; + + if (req.user.organizacion?.id) { + query['dataTurno.turno.updatedBy.organizacion._id'] = req.user.organizacion.id; + } + + const resultado: any = await logPaciente.find(query).exec(); + let turno; const turnos = []; resultado.forEach(elem => {