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 @@ -278,8 +278,13 @@ export class HudsBusquedaComponent implements AfterContentInit, OnInit {
gtag('huds-open', tipo, registro.concepto.term, index);
registro.class = getSemanticClass(registro.concepto, false);
if (registro.esSolicitud) {
tipo = 'solicitud';
registro.tipo = 'solicitud';
registro.class = 'plan';
if (!registro.solicitud) {
registro.solicitud = { tipoPrestacion: registro.concepto };
}
registro.id = registro.idRegistro;
}
break;
case 'rup-group':
Expand Down
72 changes: 48 additions & 24 deletions src/app/modules/rup/components/huds/vistaSolicitudTop.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
<ng-container *ngIf="registro?.solicitud">
<plex-title titulo="{{ registro.solicitud.tipoPrestacion.term }}" size="lg">
<ng-container *ngIf="registro">
<plex-title titulo="{{ registro.solicitud?.tipoPrestacion?.term || registro.concepto?.term }}" size="lg">
<div class="titulo-badges">
<plex-badge type="{{ tipoEstado[estado] }}">
{{ estado }}
</plex-badge>
<plex-badge type="{{ registro.solicitud.tipoPrestacion.semanticTag || 'solicitud' }}">
{{ registro.solicitud.tipoPrestacion.semanticTag || 'solicitud' }}
<plex-badge
type="{{ registro.solicitud?.tipoPrestacion?.semanticTag || registro.concepto?.semanticTag || 'solicitud' }}">
{{ registro.solicitud?.tipoPrestacion?.semanticTag || registro.concepto?.semanticTag || 'solicitud' }}
</plex-badge>
</div>
</plex-title>
Expand All @@ -17,49 +18,72 @@
<plex-badge type="xs" type="info">
Registros
</plex-badge>
<plex-button size="sm" type="info" tooltip="Registros de la solicitud"
*ngIf="registro.estadoActual?.tipo === 'validada'" (click)="abrirSolicitud()">
<plex-button size="sm" type="info" tooltip="Registros de la solicitud" *ngIf="estado === 'validada'"
(click)="abrirSolicitud()">
<plex-icon name="mano-corazon"></plex-icon>
</plex-button>
</div>
<div>
<div *ngIf="registro.solicitud.organizacionOrigen">
<div *ngIf="registro.solicitud?.tipoPrestacionOrigen || registro.evoluciones?.[0]?.tipoPrestacion">
<b>Tipo de Prestación Origen</b>
<p class="texto-detalle">
{{registro.solicitud.tipoPrestacionOrigen.term}}</p>
{{ registro.solicitud?.tipoPrestacionOrigen?.term || registro.evoluciones?.[0]?.tipoPrestacion
}}
</p>
</div>
<div *ngIf="registro.solicitud.organizacionOrigen">
<div *ngIf="registro.solicitud?.organizacionOrigen || registro.evoluciones?.[0]?.organizacion">
<b>Organización de origen</b>
<p class="texto-detalle">
{{registro.solicitud.organizacionOrigen.nombre}}</p>
{{ registro.solicitud?.organizacionOrigen?.nombre || registro.evoluciones?.[0]?.organizacion }}
</p>
</div>
</div>
</plex-grid>
</div>
<div class="mt-4">
<div><b>Diagnóstico / Motivo</b>
<p>{{registro.solicitud.registros[0].valor.solicitudPrestacion.motivo || 'Sin diagnóstico o motivo'}}</p>
<div>
<b>Diagnóstico / Motivo</b>
<p>
{{ (registro.solicitud?.registros?.[0]?.valor?.solicitudPrestacion?.conceptoAsociado?.term ||
registro.evoluciones?.[0]?.valor?.solicitudPrestacion?.conceptoAsociado?.term) ?
((registro.solicitud?.registros?.[0]?.valor?.solicitudPrestacion?.conceptoAsociado?.term ||
registro.evoluciones?.[0]?.valor?.solicitudPrestacion?.conceptoAsociado?.term) + ' - ') : ''
}}
{{ registro.solicitud?.registros?.[0]?.valor?.solicitudPrestacion?.motivo ||
registro.evoluciones?.[0]?.valor?.solicitudPrestacion?.motivo || 'Sin diagnóstico o motivo' }}
</p>
</div>
<div>
<b>Observaciones / Indicaciones</b>
<p [innerHTML]="observaciones || 'Sin observaciones'"></p>
</div>
<div>
<b>Observaciones</b>
<p>{{observaciones || 'Sin observaciones'}}</p>
<b>Organización destino</b>
<p>{{ organizacionDestino }}</p>
</div>
<div *ngIf="registro.solicitud.organizacionOrigen">
<div
*ngIf="(registro.solicitud?.registros?.[0]?.valor?.documentos || registro.evoluciones?.[0]?.valor?.solicitudPrestacion?.documentos)?.length">
<b>Archivos adjuntos</b>
<br />
<rup-adjuntar-documento *ngIf="registro?.solicitud?.registros[0].valor.documentos?.length"
[permiteCarga]="false" [parametroRegistro]="registro.solicitud.registros[0]">
<rup-adjuntar-documento [permiteCarga]="false"
[parametroRegistro]="{ valor: { documentos: (registro.solicitud?.registros?.[0]?.valor?.documentos || registro.evoluciones?.[0]?.valor?.solicitudPrestacion?.documentos) } }">
</rup-adjuntar-documento>
<small *ngIf="!registro?.solicitud?.registros[0].valor.documentos?.length">(Sin documentos
adjuntos)</small>
</div>
</div>
<div class="mt-3 w-100">
<div class="subtitulo" size="sm">Historial de la solicitud</div>
<plex-wrapper>
<div collapse>
<historial-solicitud class="w-100" [prestacion]="registro" [turno]='turno'></historial-solicitud>
<ng-container *ngIf="isEnviadaTop">
<div class="subtitulo" size="sm">Historial de la solicitud</div>
<plex-wrapper>
<historial-solicitud class="w-100" [prestacion]="registro.dataPrestacion || registro" [turno]='turno'>
</historial-solicitud>
</plex-wrapper>
</ng-container>
<ng-container *ngIf="!isEnviadaTop">
<div class="mt-3">
<plex-label icon="magnify" size="lg" type="info" direction="column" [titulo]="'Sin historial'"
subtitulo="Esta solicitud no está disponible para seguimiento en módulo solicitudes">
</plex-label>
</div>
</plex-wrapper>
</ng-container>
</div>
</ng-container>
48 changes: 31 additions & 17 deletions src/app/modules/rup/components/huds/vistaSolicitudTop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,23 @@ import { HUDSService } from '../../services/huds.service';
})

export class VistaSolicitudTopComponent implements OnInit {

@Input() registro;
turno;
estado;
observaciones = '';
public normalizedRegistro: any;
public turno;
public estado;
public observaciones = '';

get isEnviadaTop() {
return this.registro.inicio === 'top';
}

get organizacionDestino() {
if (!this.isEnviadaTop) {
return 'Sin definir';
}
const registros = this.registro.solicitud?.registros || this.registro.evoluciones;
return this.registro.solicitud?.organizacion?.nombre || registros?.[0]?.valor?.solicitudPrestacion?.organizacionDestino?.nombre || 'Sin definir';
}

public tipoEstado = {
validada: 'success',
Expand All @@ -34,27 +46,29 @@ export class VistaSolicitudTopComponent implements OnInit {
) { }

ngOnInit() {
this.estado = this.registro.estados[this.registro.estados.length - 1].tipo;
const lastState = this.registro.estados?.[this.registro.estados.length - 1];

if (this.registro.estados[this.registro.estados.length - 1].observaciones) {
this.observaciones = this.registro.estados[this.registro.estados.length - 1].observaciones;
} else if (this.registro.estados[this.registro.estados.length - 1].motivoRechazo) { // DEPRECADO
this.observaciones = this.registro.estados[this.registro.estados.length - 1].motivoRechazo;
if (lastState) {
this.estado = lastState.tipo;
this.observaciones = lastState.observaciones || lastState.motivoRechazo || '';
} else {
// Caso RUP
this.estado = 'validada';
const solicitudPrestacion = this.registro.evoluciones?.[0]?.valor?.solicitudPrestacion;
this.observaciones = solicitudPrestacion?.indicaciones || '';
}

if (this.registro.solicitud.turno) {
const params = {
id: this.registro.solicitud.turno
};
this.servicioTurnos.getTurnos(params).subscribe(turnos => {
this.turno = turnos[0].bloques[0].turnos[0];
const idTurno = this.registro.solicitud?.turno || this.registro.dataPrestacion?.solicitud?.turno;
if (idTurno) {
this.servicioTurnos.getTurnos({ id: idTurno }).subscribe(turnos => {
this.turno = turnos?.[0]?.bloques?.[0]?.turnos?.[0];
});

}
}

abrirSolicitud() {
const tipo = 'rup';
this.huds.toogle(this.registro, tipo);
const registroToOpen = this.registro.dataPrestacion || (this.registro.solicitud?.id ? this.registro : { id: this.registro.idPrestacion });
this.huds.toogle(registroToOpen, tipo);
}
}
Loading