Skip to content

Commit 44ea4ac

Browse files
authored
fix(REC): Corrige la carga de profesional en la receta para andes y recetar (#2147)
1 parent b5a0944 commit 44ea4ac

2 files changed

Lines changed: 15 additions & 16 deletions

File tree

modules/recetas/recetasController.ts

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -443,26 +443,23 @@ export async function rechazar(idReceta, sistema, req) {
443443
}
444444
}
445445

446-
export async function getProfesionActualizada(idProfesional) {
446+
export async function getProfesionActualizada(profesional) {
447447
let profesionGrado = '';
448448
let matriculaGrado = 0;
449449
let especialidades = '';
450450

451-
const infoMatriculas = await searchMatriculas(idProfesional);
452-
453-
if (infoMatriculas) {
451+
if (profesional.formacionGrado) {
454452
// Los codigos de los roles permitidos son los de las profesiones: Médico, Odontólogo y Obstetra respectivamente.
455-
const rolesPermitidos = [1, 2, 23];
456-
const formacionEncontrada = infoMatriculas.formacionGrado?.find(formacion =>
457-
rolesPermitidos.includes(formacion.profesion)
458-
);
459-
460-
profesionGrado = formacionEncontrada?.nombre;
461-
matriculaGrado = formacionEncontrada?.numero;
453+
const filterFormaciones = (e) => { return e.matriculacion?.length && [1, 2, 23].includes(e.profesion.codigo); };
462454

463-
const especialidadesTxt = infoMatriculas.formacionPosgrado
464-
?.map(({ nombre, numero }) => `${nombre} (Mat. ${numero})`);
455+
const formacionEncontrada = profesional.formacionGrado.find(filterFormaciones);
465456

457+
profesionGrado = formacionEncontrada ? formacionEncontrada.profesion.nombre : '';
458+
matriculaGrado = formacionEncontrada ? formacionEncontrada.matriculacion[formacionEncontrada.matriculacion.length - 1].matriculaNumero : '';
459+
}
460+
if (profesional.formacionPosgrado) {
461+
const especialidadesTxt = profesional.formacionPosgrado.length ? profesional.formacionPosgrado.map(postgrado => postgrado.matriculacion ? `${postgrado.especialidad?.nombre}
462+
(Mat. ${postgrado.matriculacion[postgrado.matriculacion.length - 1].matriculaNumero})` : '') : [];
466463
especialidades = especialidadesTxt?.join(', ') || especialidades;
467464
}
468465

@@ -592,7 +589,7 @@ export async function create(req) {
592589
if (!profAndes) {
593590
throw new ParamsIncorrect('Profesional no encontrado');
594591
}
595-
const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profRecetar.id);
592+
const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profAndes);
596593
dataReceta.profesional = {
597594
_id: profAndes._id,
598595
id: profAndes._id,

modules/rup/controllers/rup.events.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import { getProfesionActualizada, crearReceta } from '../../recetas/recetasContr
33
import * as moment from 'moment';
44
import { Receta } from '../../recetas/receta-schema';
55
import { rupEventsLog as logger } from './rup.events.log';
6+
import { Profesional } from '../../../core/tm/schemas/profesional';
67

78
EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => {
89
try {
910
const idRegistro = registro._id;
10-
const profPrestacion = prestacion.solicitud.profesional;
11-
const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profPrestacion.id);
11+
const documentoProfesional = prestacion.estadoActual.createdBy?.documento ? prestacion.estadoActual.createdBy?.documento : prestacion.solicitud.profesional.documento;
12+
const profPrestacion = await Profesional.findOne({ documento: documentoProfesional });
13+
const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profPrestacion);
1214

1315
const profesional = {
1416
id: profPrestacion.id,

0 commit comments

Comments
 (0)