|
| 1 | +import { Prestacion } from '../../rup/schemas/prestacion'; |
1 | 2 | import { Agenda } from '../../turnos/schemas/agenda'; |
2 | 3 | import * as mongoose from 'mongoose'; |
| 4 | +import { IPrestacionDoc } from '../../rup/prestaciones.interface'; |
3 | 5 |
|
4 | 6 | /** |
5 | 7 | * @export Devuelve los turnos con paciente asignado que cumplen con los filtros |
@@ -40,7 +42,7 @@ export async function procesar(parametros: any) { |
40 | 42 | match['tipoPrestaciones.conceptId'] = parametros.prestacion; |
41 | 43 | matchTurno['$expr'] = { $and: [{ $eq: ['$_bloques.turnos.estado', 'asignado'] }, { $eq: ['$_bloques.turnos.tipoPrestacion.conceptId', parametros.prestacion] }] }; |
42 | 44 | } else { |
43 | | - matchTurno['$expr'] = { $and: [{ $eq: ['$_bloques.turnos.estado', 'asignado'] }] }; |
| 45 | + matchTurno['$expr'] = parametros.noNominalizada ? { $and: [{ $eq: ['$_bloques.turnos.estado', 'disponible'] }] } : { $and: [{ $eq: ['$_bloques.turnos.estado', 'asignado'] }] }; |
44 | 46 | } |
45 | 47 |
|
46 | 48 | if (parametros.profesional) { |
@@ -215,7 +217,22 @@ export async function procesar(parametros: any) { |
215 | 217 | $match: matchOS |
216 | 218 | } |
217 | 219 | ]; |
| 220 | + try { |
| 221 | + const turnosAsignados = await Agenda.aggregate(pipelineBuscador); |
| 222 | + for (const turno of turnosAsignados) { |
| 223 | + const prestacion: IPrestacionDoc = await Prestacion.findById(turno.idPrestacion) as IPrestacionDoc; |
| 224 | + if (prestacion) { |
| 225 | + const registro = prestacion.ejecucion?.registros?.find(x => x.valor?.informe !== null); |
| 226 | + turno.actividad = registro.valor?.informe?.tipoActividad?.term; |
| 227 | + turno.tematica = registro.valor?.informe?.tematica; |
| 228 | + turno.profesionales = turno.profesionales; |
| 229 | + turno.estadoActual = prestacion.estadoActual; |
| 230 | + } |
| 231 | + } |
| 232 | + return turnosAsignados; |
| 233 | + } catch (error) { |
| 234 | + return (error); |
| 235 | + } |
| 236 | + |
218 | 237 |
|
219 | | - const turnosAsignados = await Agenda.aggregate(pipelineBuscador); |
220 | | - return turnosAsignados; |
221 | 238 | } |
0 commit comments