From 0430ba158ae1b925e66887e696a733c717b95cfc Mon Sep 17 00:00:00 2001 From: AgustinRodriguez-Andes <63318331+agustin1996ra@users.noreply.github.com> Date: Fri, 14 Nov 2025 15:11:21 -0300 Subject: [PATCH] REC-136: Efectores y cuil paciente --- core-v2/mpi/paciente/paciente.schema.ts | 4 ++-- core-v2/mpi/validacion/validacion.controller.ts | 2 +- modules/recetas/receta-schema.ts | 5 +++++ modules/recetas/recetasController.ts | 3 ++- modules/rup/controllers/rup.events.ts | 6 ++++++ 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core-v2/mpi/paciente/paciente.schema.ts b/core-v2/mpi/paciente/paciente.schema.ts index e783b66e1c..81fafe510b 100644 --- a/core-v2/mpi/paciente/paciente.schema.ts +++ b/core-v2/mpi/paciente/paciente.schema.ts @@ -147,6 +147,7 @@ export const PacienteSubSchema: mongoose.Schema = new mongoose.Schema({ nombre: String, apellido: String, documento: String, + cuil: String, fechaNacimiento: Date, sexo: SEXO, genero: String, @@ -165,8 +166,7 @@ export const PacienteSubSchema: mongoose.Schema = new mongoose.Schema({ localidad: NombreSchemaV2, zona: NombreSchemaV2, areaPrograma: NombreSchemaV2, - addAt: Date - + addAt: Date, }, { _id: false }); diff --git a/core-v2/mpi/validacion/validacion.controller.ts b/core-v2/mpi/validacion/validacion.controller.ts index 32e3fb4db6..c83fc5bd4a 100644 --- a/core-v2/mpi/validacion/validacion.controller.ts +++ b/core-v2/mpi/validacion/validacion.controller.ts @@ -23,7 +23,7 @@ function identidadSinAcentos(ciudadano) { * Busca en fuentes auntenticas los datos de un ciudadano. */ -function generarCUIL(dni, sexo) { +export function generarCUIL(dni, sexo) { const sexoNorm = (sexo || '').toString().trim().toLowerCase(); let sexoFinal = 'M'; if (sexoNorm.startsWith('f')) { diff --git a/modules/recetas/receta-schema.ts b/modules/recetas/receta-schema.ts index 0f24cf2cfe..821e38c519 100644 --- a/modules/recetas/receta-schema.ts +++ b/modules/recetas/receta-schema.ts @@ -95,6 +95,11 @@ const profesionalSubschema = new mongoose.Schema({ profesion: String, matricula: Number, especialidad: String, + efector: { + id: String, + nombre: String, + direccion: String + } }); const medicamentoSubschema = new mongoose.Schema({ diff --git a/modules/recetas/recetasController.ts b/modules/recetas/recetasController.ts index 6fb6e5f6d4..350f6a7cef 100644 --- a/modules/recetas/recetasController.ts +++ b/modules/recetas/recetasController.ts @@ -601,7 +601,8 @@ export async function create(req) { documento: profAndes.documento, profesion: profesionGrado, especialidad: especialidades, - matricula: matriculaGrado + matricula: matriculaGrado, + efector: profRecetar.efector || null }; } return await crearReceta(dataReceta, req); diff --git a/modules/rup/controllers/rup.events.ts b/modules/rup/controllers/rup.events.ts index 80f0c463ec..6befb09e91 100644 --- a/modules/rup/controllers/rup.events.ts +++ b/modules/rup/controllers/rup.events.ts @@ -3,6 +3,7 @@ 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 { generarCUIL } from '../../../core-v2/mpi/validacion/validacion.controller'; EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => { try { @@ -25,6 +26,8 @@ EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => { nombre: prestacion.ejecucion.organizacion.nombre }; + const pacienteCUIL = prestacion.paciente.cuil || generarCUIL(prestacion.paciente.documento, prestacion.paciente.sexo); + const dataReceta = { idPrestacion: prestacion.id, idRegistro, @@ -36,6 +39,9 @@ EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => { medicamento: null, diagnostico: null, }; + + dataReceta.paciente.cuil = pacienteCUIL; + for (const medicamento of registro.valor.medicamentos) { const receta: any = await Receta.findOne({ 'medicamento.concepto.conceptId': medicamento.generico.conceptId,