Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import { PrestacionesService } from './../../services/prestaciones.service';
import { RecetaService } from 'src/app/services/receta.service';
import { TurnoService } from '../../../../services/turnos/turno.service';
import { ITurno } from '../../../../interfaces/turnos/ITurno';
import { ECLQueriesService } from 'src/app/services/eclqueries.service';
import { SnomedService } from 'src/app/apps/mitos';

@Component({
selector: 'rup-prestacionEjecucion',
Expand Down Expand Up @@ -106,7 +108,7 @@ export class PrestacionEjecucionComponent implements OnInit, OnDestroy {

public alerta = 'Este registro no puede modificarse, si necesita cambiar una medicación prescripta puede suspender desde la HUDS y registrar una nueva.';

private soloValores = ['33633005']; // prescripción de medicamento
private soloValores = []; // prescripción de medicamento

constructor(
public servicioPrestacion: PrestacionesService,
Expand All @@ -124,6 +126,8 @@ export class PrestacionEjecucionComponent implements OnInit, OnDestroy {
public constantesService: ConstantesService,
public recetaService: RecetaService,
private turnoService: TurnoService,
public eclqueriesServicies: ECLQueriesService,
public snomedService: SnomedService
) { }

/**
Expand All @@ -145,6 +149,21 @@ export class PrestacionEjecucionComponent implements OnInit, OnDestroy {
}
});

this.eclqueriesServicies.search({ key: 'prestacion:registroNoModificable' }).pipe(
switchMap(query => {
if (query && query.length > 0) {
const snomedQuery: any = {
expression: query[0].valor,
search: ''
};
return this.snomedService.get(snomedQuery);
}
return of([]);
})
).subscribe((resultado: any[]) => {
this.soloValores = resultado.map(item => item.conceptId);
});

this.huds.registrosHUDS.subscribe((datos) => {
if (this.registrosHUDS.length < datos.length) {
this.activeIndex = datos.length + 2;
Expand Down Expand Up @@ -1007,6 +1026,22 @@ export class PrestacionEjecucionComponent implements OnInit, OnDestroy {
return false;
}

// Comparar fechas de validación con fecha de registro
const validaciones = this.prestacion?.estados?.filter(e => e.tipo === 'validada') || [];
if (validaciones.length > 0) {
const ultimaValidacion = validaciones[validaciones.length - 1];
if (!registro.createdAt) {
// Es un registro nuevo sin guardar, se puede editar
return false;
} else if (new Date(registro.createdAt) > new Date(ultimaValidacion.createdAt)) {
// El registro fue creado después de la última validación, por lo tanto se puede editar
return false;
} else {
// Es un registro anterior a la validación rota, por lo que NO puede editarse
return true;
}
}

const valido = this.ejecucionService.validarConcepto(registro.concepto);

return !valido;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ export interface IPrestacionEstado {
id: string;
tipo: string;
idOrigenModifica: string;
createdAt?: Date;
createdBy: {
id: string;
nombre: string;
Expand Down
Loading