From 2a2ce12a98ff4510da0919718673f4a9cbe3df6d Mon Sep 17 00:00:00 2001 From: silviroa Date: Thu, 13 Nov 2025 15:55:48 -0300 Subject: [PATCH] fix(REC): Corrige la carga de profesional en la receta --- modules/recetas/recetasController.ts | 23 ++++++++++------------- modules/rup/controllers/rup.events.ts | 6 ++++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/modules/recetas/recetasController.ts b/modules/recetas/recetasController.ts index 3778b6e4a0..2691a93f73 100644 --- a/modules/recetas/recetasController.ts +++ b/modules/recetas/recetasController.ts @@ -443,26 +443,23 @@ export async function rechazar(idReceta, sistema, req) { } } -export async function getProfesionActualizada(idProfesional) { +export async function getProfesionActualizada(profesional) { let profesionGrado = ''; let matriculaGrado = 0; let especialidades = ''; - const infoMatriculas = await searchMatriculas(idProfesional); - - if (infoMatriculas) { + if (profesional.formacionGrado) { // Los codigos de los roles permitidos son los de las profesiones: Médico, Odontólogo y Obstetra respectivamente. - const rolesPermitidos = [1, 2, 23]; - const formacionEncontrada = infoMatriculas.formacionGrado?.find(formacion => - rolesPermitidos.includes(formacion.profesion) - ); - - profesionGrado = formacionEncontrada?.nombre; - matriculaGrado = formacionEncontrada?.numero; + const filterFormaciones = (e) => { return e.matriculacion?.length && [1, 2, 23].includes(e.profesion.codigo); }; - const especialidadesTxt = infoMatriculas.formacionPosgrado - ?.map(({ nombre, numero }) => `${nombre} (Mat. ${numero})`); + const formacionEncontrada = profesional.formacionGrado.find(filterFormaciones); + profesionGrado = formacionEncontrada ? formacionEncontrada.profesion.nombre : ''; + matriculaGrado = formacionEncontrada ? formacionEncontrada.matriculacion[formacionEncontrada.matriculacion.length - 1].matriculaNumero : ''; + } + if (profesional.formacionPosgrado) { + const especialidadesTxt = profesional.formacionPosgrado.length ? profesional.formacionPosgrado.map(postgrado => postgrado.matriculacion ? `${postgrado.especialidad?.nombre} + (Mat. ${postgrado.matriculacion[postgrado.matriculacion.length - 1].matriculaNumero})` : '') : []; especialidades = especialidadesTxt?.join(', ') || especialidades; } diff --git a/modules/rup/controllers/rup.events.ts b/modules/rup/controllers/rup.events.ts index 80f0c463ec..dd1e987638 100644 --- a/modules/rup/controllers/rup.events.ts +++ b/modules/rup/controllers/rup.events.ts @@ -3,12 +3,14 @@ import { getProfesionActualizada, crearReceta } from '../../recetas/recetasContr import * as moment from 'moment'; import { Receta } from '../../recetas/receta-schema'; import { rupEventsLog as logger } from './rup.events.log'; +import { Profesional } from '../../../core/tm/schemas/profesional'; EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => { try { const idRegistro = registro._id; - const profPrestacion = prestacion.solicitud.profesional; - const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profPrestacion.id); + const documentoProfesional = prestacion.estadoActual.createdBy?.documento ? prestacion.estadoActual.createdBy?.documento : prestacion.solicitud.profesional.documento; + const profPrestacion = await Profesional.findOne({ documento: documentoProfesional }); + const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profPrestacion); const profesional = { id: profPrestacion.id,