Skip to content

Commit 8b2c9b0

Browse files
agustin1996raMCele
authored andcommitted
REC-136: Efectores y cuil paciente
1 parent 790e5a3 commit 8b2c9b0

5 files changed

Lines changed: 18 additions & 6 deletions

File tree

core-v2/mpi/paciente/paciente.schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ export const PacienteSubSchema: mongoose.Schema = new mongoose.Schema({
147147
nombre: String,
148148
apellido: String,
149149
documento: String,
150+
cuil: String,
150151
fechaNacimiento: Date,
151152
sexo: SEXO,
152153
genero: String,
@@ -165,8 +166,7 @@ export const PacienteSubSchema: mongoose.Schema = new mongoose.Schema({
165166
localidad: NombreSchemaV2,
166167
zona: NombreSchemaV2,
167168
areaPrograma: NombreSchemaV2,
168-
addAt: Date
169-
169+
addAt: Date,
170170

171171
}, { _id: false });
172172

core-v2/mpi/validacion/validacion.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function identidadSinAcentos(ciudadano) {
2323
* Busca en fuentes auntenticas los datos de un ciudadano.
2424
*/
2525

26-
function generarCUIL(dni, sexo) {
26+
export function generarCUIL(dni, sexo) {
2727
const sexoNorm = (sexo || '')
2828
.toString()
2929
.trim()

modules/recetas/receta-schema.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const motivosRecetaSchema = new mongoose.Schema({
1919
const estadosSchema = new mongoose.Schema({
2020
tipo: {
2121
type: String,
22-
enum: ['pendiente', 'vigente', 'finalizada', 'vencida', 'suspendida', 'rechazada','eliminada'],
22+
enum: ['pendiente', 'vigente', 'finalizada', 'vencida', 'suspendida', 'rechazada', 'eliminada'],
2323
required: true,
2424
default: 'vigente'
2525
},
@@ -134,7 +134,8 @@ export const recetaSchema = new mongoose.Schema({
134134
},
135135
organizacion: {
136136
id: mongoose.SchemaTypes.ObjectId,
137-
nombre: String
137+
nombre: String,
138+
direccion: { type: String, required: false },
138139
},
139140
profesional: {
140141
type: profesionalSubschema,

modules/recetas/recetasController.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,8 @@ export async function create(req) {
585585
documento: profAndes.documento,
586586
profesion: profesionGrado,
587587
especialidad: especialidades,
588-
matricula: matriculaGrado
588+
matricula: matriculaGrado,
589+
efector: profRecetar.efector || null
589590
};
590591
}
591592
return await crearReceta(dataReceta, req);

modules/rup/controllers/rup.events.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@ import * as moment from 'moment';
44
import { Receta } from '../../recetas/receta-schema';
55
import { rupEventsLog as logger } from './rup.events.log';
66
import { Profesional } from '../../../core/tm/schemas/profesional';
7+
import { generarCUIL } from '../../../core-v2/mpi/validacion/validacion.controller';
78

89
EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => {
910
try {
1011
const idRegistro = registro._id;
1112
const documentoProfesional = prestacion.estadoActual.createdBy?.documento ? prestacion.estadoActual.createdBy?.documento : prestacion.solicitud.profesional.documento;
1213
const profPrestacion = await Profesional.findOne({ documento: documentoProfesional });
14+
if (!profPrestacion) {
15+
logger.error('prestacion:receta:create', prestacion, `No se encontró el profesional con documento ${documentoProfesional}`);
16+
return;
17+
}
1318
const { profesionGrado, matriculaGrado, especialidades } = await getProfesionActualizada(profPrestacion);
1419

1520
const profesional = {
@@ -27,6 +32,8 @@ EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => {
2732
nombre: prestacion.ejecucion.organizacion.nombre
2833
};
2934

35+
const pacienteCUIL = prestacion.paciente.cuil || generarCUIL(prestacion.paciente.documento, prestacion.paciente.sexo);
36+
3037
const dataReceta = {
3138
idPrestacion: prestacion.id,
3239
idRegistro,
@@ -38,6 +45,9 @@ EventCore.on('prestacion:receta:create', async ({ prestacion, registro }) => {
3845
medicamento: null,
3946
diagnostico: null,
4047
};
48+
49+
dataReceta.paciente.cuil = pacienteCUIL;
50+
4151
for (const medicamento of registro.valor.medicamentos) {
4252
const receta: any = await Receta.findOne({
4353
'medicamento.concepto.conceptId': medicamento.generico.conceptId,

0 commit comments

Comments
 (0)