From 223aaf1853421fcc95d92b918d8c5f30692170a4 Mon Sep 17 00:00:00 2001 From: "jiramirez_nqn@hotmail.com" Date: Wed, 24 Apr 2024 11:31:48 -0300 Subject: [PATCH 1/2] (FEAT) Demanda Insatisfecha: pasar funcionalidad a API --- modules/turnos/routes/listaEspera.ts | 56 ++++++++++++++++++++------- modules/turnos/schemas/listaEspera.ts | 7 ++-- 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/modules/turnos/routes/listaEspera.ts b/modules/turnos/routes/listaEspera.ts index 3d0dedf05..014ced8e0 100644 --- a/modules/turnos/routes/listaEspera.ts +++ b/modules/turnos/routes/listaEspera.ts @@ -1,9 +1,8 @@ import * as express from 'express'; import * as moment from 'moment'; -import { Logger } from '../../../utils/logService'; import * as utils from '../../../utils/utils'; import { Agenda } from '../schemas/agenda'; -import * as listaEspera from '../schemas/listaEspera'; +import { listaEspera, demanda } from '../schemas/listaEspera'; import { defaultLimit, maxLimit } from './../../../config'; import { Auth } from '../../../auth/auth.class'; @@ -54,19 +53,48 @@ router.get('/listaEspera/:id*?', (req, res, next) => { }); router.post('/listaEspera', async (req, res, next) => { - const newItem = new listaEspera(req.body); - Auth.audit(newItem, req); - newItem.save((err) => { - if (err) { - return next(err); + + const params = { + 'paciente.id': req.body.paciente.id, + 'tipoPrestacion.conceptId': req.body.tipoPrestacion.conceptId, + estado: 'pendiente' + }; + + const unaDemanda = { + profesional: req.body.demandas[0].Profesional, + organizacion: req.body.demandas[0].organizacion, + motivo: req.body.demandas[0].motivo, + fecha: moment().toDate(), + origen: req.body.demandas[0].origen + }; + + try { + const query: any = await listaEspera.find(params, (data: any) => { return data; }); + if (query[0]?.demandas) { + const newDemanda = new demanda(unaDemanda); + Auth.audit(newDemanda, req); + query[0].demandas.push(newDemanda); + const editItem = new listaEspera(query[0]); + Auth.audit(editItem, req); + await editItem.save((err) => { + if (err) { + return next(err); + } + res.json(editItem); + }); + } else { + const newItem = new listaEspera(req.body); + Auth.audit(newItem, req); + await newItem.save((err) => { + if (err) { + return next(err); + } + res.json(newItem); + }); } - Logger.log(req, req.body.demandas[0].origen, 'lista espera', (errLog) => { - if (errLog) { - return next(err); - } - }); - res.json(newItem); - }); + } catch (error) { + return next(error); + } }); router.put('/listaEspera/:id', (req, res, next) => { diff --git a/modules/turnos/schemas/listaEspera.ts b/modules/turnos/schemas/listaEspera.ts index 3632f71c2..29849a864 100644 --- a/modules/turnos/schemas/listaEspera.ts +++ b/modules/turnos/schemas/listaEspera.ts @@ -27,7 +27,7 @@ demandaSchema.plugin(AuditPlugin); const listaEsperaSchema = new mongoose.Schema({ paciente: PacienteSubSchema, tipoPrestacion: { type: tipoPrestacionSchema }, - fecha: Date, // si es una solicitud es la fecha en que se solicitó, si es demanda rechazada es la fecha en que no se atendió la demanda + fecha: Date, vencimiento: Date, estado: { type: String, enum: ['pendiente', 'resuelto', 'vencido'], @@ -45,6 +45,5 @@ const listaEsperaSchema = new mongoose.Schema({ listaEsperaSchema.plugin(AuditPlugin); listaEsperaSchema.index({ 'paciente.id': 1, 'tipoPrestacion.conceptId': 1, fecha: 1 }); -const listaEspera = mongoose.model('listaEspera', listaEsperaSchema, 'listaEspera'); - -export = listaEspera; +export const listaEspera = mongoose.model('listaEspera', listaEsperaSchema, 'listaEspera'); +export const demanda = mongoose.model('demanda', demandaSchema); From ad2fffe8d28ecd6d4a8038572c8c663e1f4e3c0e Mon Sep 17 00:00:00 2001 From: Lautaro Molina Date: Thu, 13 Jun 2024 12:09:24 -0300 Subject: [PATCH 2/2] correcciones en audit y save --- modules/turnos/routes/listaEspera.ts | 31 ++++++++++------------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/modules/turnos/routes/listaEspera.ts b/modules/turnos/routes/listaEspera.ts index 014ced8e0..1973200e5 100644 --- a/modules/turnos/routes/listaEspera.ts +++ b/modules/turnos/routes/listaEspera.ts @@ -53,7 +53,6 @@ router.get('/listaEspera/:id*?', (req, res, next) => { }); router.post('/listaEspera', async (req, res, next) => { - const params = { 'paciente.id': req.body.paciente.id, 'tipoPrestacion.conceptId': req.body.tipoPrestacion.conceptId, @@ -69,29 +68,21 @@ router.post('/listaEspera', async (req, res, next) => { }; try { - const query: any = await listaEspera.find(params, (data: any) => { return data; }); - if (query[0]?.demandas) { + const listaDocument: any = await listaEspera.findOne(params, (data: any) => { return data; }); + let listaSaved; + if (listaDocument?.demandas) { const newDemanda = new demanda(unaDemanda); Auth.audit(newDemanda, req); - query[0].demandas.push(newDemanda); - const editItem = new listaEspera(query[0]); - Auth.audit(editItem, req); - await editItem.save((err) => { - if (err) { - return next(err); - } - res.json(editItem); - }); + listaDocument.demandas.push(newDemanda); + + Auth.audit(listaDocument, req); + listaSaved = await listaDocument.save(); } else { - const newItem = new listaEspera(req.body); - Auth.audit(newItem, req); - await newItem.save((err) => { - if (err) { - return next(err); - } - res.json(newItem); - }); + const newListaDocument = new listaEspera(req.body); + Auth.audit(newListaDocument, req); + listaSaved = await newListaDocument.save(); } + res.json(listaSaved); } catch (error) { return next(error); }