From d81667f3c399ea32ba8dcea5bcae3d499eae5040 Mon Sep 17 00:00:00 2001 From: mcele <19591224+MCele@users.noreply.github.com> Date: Tue, 21 Apr 2026 13:46:38 -0300 Subject: [PATCH 1/2] =?UTF-8?q?feat(insumos):=20se=20modifica=20y=20comple?= =?UTF-8?q?ta=20esquema=20de=20prescripci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recetasInsumos/receta-insumo.events.ts | 2 +- .../recetasInsumos/receta-insumo.routes.ts | 2 +- .../recetasInsumos/receta-insumo.schema.ts | 15 +++++++++++++-- .../recetasInsumos/recetaInsumosController.ts | 8 +++++++- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/modules/recetas/recetasInsumos/receta-insumo.events.ts b/modules/recetas/recetasInsumos/receta-insumo.events.ts index 9ed7dfda4e..15b66b5a97 100644 --- a/modules/recetas/recetasInsumos/receta-insumo.events.ts +++ b/modules/recetas/recetasInsumos/receta-insumo.events.ts @@ -38,7 +38,7 @@ EventCore.on('prestacion:recetaInsumo:create', async ({ prestacion, registro }) try { for (const insumo of registro.valor.insumos) { const receta: any = await RecetaInsumo.findOne({ - 'insumo.nombre': insumo.generico.nombre, + 'insumo.id': insumo.generico.id, idRegistro }); if (!receta) { diff --git a/modules/recetas/recetasInsumos/receta-insumo.routes.ts b/modules/recetas/recetasInsumos/receta-insumo.routes.ts index 97282621da..a46377d0db 100644 --- a/modules/recetas/recetasInsumos/receta-insumo.routes.ts +++ b/modules/recetas/recetasInsumos/receta-insumo.routes.ts @@ -6,7 +6,7 @@ import { create } from './recetaInsumosController'; class RecetaInsumoResource extends ResourceBase { Model = RecetaInsumo; - resourceName = 'recetaInsumo'; + resourceName = 'recetaInsumos'; routesEnable = ['get, post']; middlewares = [Auth.authenticate()]; searchFileds = { diff --git a/modules/recetas/recetasInsumos/receta-insumo.schema.ts b/modules/recetas/recetasInsumos/receta-insumo.schema.ts index 81585fda8b..cddb1e33f0 100644 --- a/modules/recetas/recetasInsumos/receta-insumo.schema.ts +++ b/modules/recetas/recetasInsumos/receta-insumo.schema.ts @@ -3,13 +3,24 @@ import * as mongoose from 'mongoose'; import { ProfesionalSubSchema } from '../../../core/tm/schemas/profesional'; import { PacienteSubSchema } from '../../../core-v2/mpi/paciente/paciente.schema'; const insumoSubSchema = new mongoose.Schema({ - insumo: String, + id: String, + nombre: String, + codigo: [ + { + fuente: String, + valor: String + } + ], + tipo: { type: String, enum: ['dispositivo', 'nutricion', 'magistral'] }, - requiereEspecificacion: Boolean, cantidad: Number, + unidades: String, + tratamientoProlongado: Boolean, + tiempoTratamiento: Number, + ordenTratamiento: Number, especificacion: String }, { _id: false }); diff --git a/modules/recetas/recetasInsumos/recetaInsumosController.ts b/modules/recetas/recetasInsumos/recetaInsumosController.ts index c38273fb2b..4874758c39 100644 --- a/modules/recetas/recetasInsumos/recetaInsumosController.ts +++ b/modules/recetas/recetasInsumos/recetaInsumosController.ts @@ -150,7 +150,13 @@ export async function crearRecetaInsumo(dataRecetaInsumo, req) { recetaInsumo.diagnostico = (typeof diag === 'string') ? { descripcion: diag } : diag; if (dataRecetaInsumo.insumo.generico) { recetaInsumo.insumo = { - ...dataRecetaInsumo.insumo.generico, + id: dataRecetaInsumo.insumo.generico.id, + nombre: dataRecetaInsumo.insumo.generico.nombre, + codigo: dataRecetaInsumo.insumo.generico.codigo, + tipo: dataRecetaInsumo.insumo.generico.tipo, + tratamientoProlongado: dataRecetaInsumo.insumo.tratamientoProlongado || false, + tiempoTratamiento: dataRecetaInsumo.insumo.tiempoTratamiento || null, + ordenTratamiento: dataRecetaInsumo.insumo.ordenTratamiento || 0, cantidad: dataRecetaInsumo.insumo.cantidad, especificacion: dataRecetaInsumo.insumo.especificacion }; From e8ba663b709c1196c4d40508bef0b5836aa8bc0e Mon Sep 17 00:00:00 2001 From: ma7payne Date: Thu, 19 Mar 2026 16:25:27 -0300 Subject: [PATCH 2/2] feat(REC): corrige ruta de coleccion de insumos --- modules/insumos/insumos-schema.ts | 1 - modules/insumos/insumos.routes.ts | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/insumos/insumos-schema.ts b/modules/insumos/insumos-schema.ts index f8fd5c0532..7e550b7740 100644 --- a/modules/insumos/insumos-schema.ts +++ b/modules/insumos/insumos-schema.ts @@ -1,7 +1,6 @@ import * as mongoose from 'mongoose'; import { AuditPlugin } from '@andes/mongoose-plugin-audit'; - export const insumoSchema = new mongoose.Schema({ nombre: String, codigo: [{ diff --git a/modules/insumos/insumos.routes.ts b/modules/insumos/insumos.routes.ts index 72a6ccb354..c8e88a9bc4 100644 --- a/modules/insumos/insumos.routes.ts +++ b/modules/insumos/insumos.routes.ts @@ -7,9 +7,15 @@ class InsumosResource extends ResourceBase { resourceName = 'insumos'; middlewares = [Auth.authenticate()]; searchFileds = { - nombre: MongoQuery.partialString, - 'codigo.valor': MongoQuery.partialString, - tipo: MongoQuery.equalMatch, + nombre: (value: any) => { + if (value && value.charAt(0) === '^') { + const searchPattern = value.substring(1); + const escaped = searchPattern.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\$&'); + return { $regex: escaped, $options: 'i' }; + } + return value; + }, + tipo: MongoQuery.inArray, estado: MongoQuery.equalMatch, requiereEspecificacion: MongoQuery.equalMatch, };