From 1f101246197e682f24e3265fbdea644e91cfb468 Mon Sep 17 00:00:00 2001
From: AgustinRodriguez-Andes <63318331+agustin1996ra@users.noreply.github.com>
Date: Tue, 2 Dec 2025 11:55:01 -0300
Subject: [PATCH] REC-133: PDF: mostrar estado de receta
---
.../elementos-rup/receta-medica.component.ts | 45 +++++++++++++++++++
modules/descargas/informe-rup/informe-body.ts | 1 -
2 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/modules/descargas/informe-rup/elementos-rup/receta-medica.component.ts b/modules/descargas/informe-rup/elementos-rup/receta-medica.component.ts
index 2ff6e6335f..8d2fba55ab 100644
--- a/modules/descargas/informe-rup/elementos-rup/receta-medica.component.ts
+++ b/modules/descargas/informe-rup/elementos-rup/receta-medica.component.ts
@@ -2,6 +2,7 @@ import { HTMLComponent } from '../../model/html-component.class';
import { generateBarcodeBase64 } from '../../model/barcode';
import { Receta } from '../../../recetas/receta-schema';
+
export class RecetaMedicaComponent extends HTMLComponent {
template = `
@@ -22,6 +23,20 @@ export class RecetaMedicaComponent extends HTMLComponent {
+ {{#if estadoReceta}}
+
+ |
+
+
+ Estado Receta
+
+
+ {{ estadoReceta }}
+
+
+ |
+
+ {{/if}}
@@ -78,6 +93,35 @@ del Ministerio de Salud de la Nación - RL-2025-24026558-APN-SSVEIYES#MS
async process() {
// Buscar receta asociada al registro para obtener idReceta
let idReceta = this.registro.idReceta;
+ let estadoReceta = null;
+
+ const tieneReceta = this.prestacion.ejecucion.registros.some(registro =>
+ registro.concepto?.conceptId === '182836005' || // Prescripción de medicamento
+ registro.valor?.medicamentos?.length > 0
+ );
+
+ if (tieneReceta) {
+ try {
+ const recetas: any[] = await Receta.find({
+ idPrestacion: this.prestacion._id.toString(),
+ idRegistro: this.registro.id,
+ }).sort({ fechaRegistro: -1 });
+
+ const recetaPorPrestacion = recetas.find(r =>
+ !['pendiente', 'eliminada'].includes(r.estadoActual?.tipo)
+ ) || recetas[0];
+
+ if (recetaPorPrestacion?.estadoActual?.tipo) {
+ estadoReceta = recetaPorPrestacion.estadoActual.tipo
+ .split('-')
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
+ .join(' ');
+ }
+ } catch (error) {
+ estadoReceta = null;
+ }
+ }
+
if (!idReceta && this.registro.id) {
try {
const receta: any = await Receta.findOne({ idRegistro: this.registro.id });
@@ -95,6 +139,7 @@ del Ministerio de Salud de la Nación - RL-2025-24026558-APN-SSVEIYES#MS
registro: this.registro,
esReceta: this.depth ? 1 : 0, // Si es 0 no muestra el código de barras
idReceta: finalIdReceta,
+ estadoReceta,
barcodeBase64: await generateBarcodeBase64(finalIdReceta, 'code128')
};
}
diff --git a/modules/descargas/informe-rup/informe-body.ts b/modules/descargas/informe-rup/informe-body.ts
index 59d10b9090..e3ea186e5f 100644
--- a/modules/descargas/informe-rup/informe-body.ts
+++ b/modules/descargas/informe-rup/informe-body.ts
@@ -130,5 +130,4 @@ export class InformeRupBody extends HTMLComponent {
validada() {
return (this.prestacion.estadoActual.tipo === 'validada');
}
-
}