Skip to content
Closed
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
48 changes: 32 additions & 16 deletions src/app/modules/rup/components/huds/vistaReceta.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
<div class="info-registro">
<div class="vista-badges">
<plex-badge *ngIf="recetaPrincipal.estadoActual" size="sm"
[type]="estadoReceta[recetaPrincipal.estadoActual.tipo]">
[type]="estadoReceta[recetaPrincipal.estadoActual.tipo]">
{{ recetaPrincipal.estadoActual.tipo.replace('-', ' ') }}
</plex-badge>
<plex-badge *ngIf="recetaPrincipal.estadoDispensaActual" size="sm"
[type]="estadoDispensa[recetaPrincipal.estadoDispensaActual.tipo]">
[type]="estadoDispensa[recetaPrincipal.estadoDispensaActual.tipo]">
{{ recetaPrincipal.estadoDispensaActual.tipo.replace('-', ' ') }}
</plex-badge>
<plex-badge *ngIf="checkDispensaAnticipada(recetaPrincipal)" size="sm" type="warning">
Expand All @@ -18,6 +18,12 @@
<plex-badge *ngIf="recetaPrincipal.medicamento?.tipoReceta && recetaPrincipal.insumo?.tipo !== 'dispositivo' && recetaPrincipal.insumo?.tipo !== 'nutricion'" size="sm" type="default">
{{ recetaPrincipal.medicamento.tipoReceta }}
</plex-badge>
<div class="descargar-pdf">
<plex-button *ngIf="verDecargarReceta()" type="info" size="sm" icon="download"
title="Descargar PDF" (click)="descargarPdf()" [disabled]="requestInProgress"
titlePosition="left">
</plex-button>
</div>
</div>
<div case="capitalize"><b>{{ recetaPrincipal.medicamento.concepto.term }}</b></div>
<p *ngIf="recetaPrincipal.medicamento.cantidad && recetaPrincipal.medicamento.cantEnvases "><small>
Expand All @@ -26,12 +32,12 @@

</small></p>
<p *ngIf="recetaPrincipal.medicamento.dosisDiaria?.dosis"><small>{{
'|' +recetaPrincipal.medicamento.dosisDiaria?.dias ? recetaPrincipal.medicamento.dosisDiaria?.dias
'|' +recetaPrincipal.medicamento.dosisDiaria?.dias ?
recetaPrincipal.medicamento.dosisDiaria?.dias
+ ' día(s)' : '' }} {{
recetaPrincipal.medicamento.dosisDiaria?.dosis }} {{
recetaPrincipal.medicamento.presentacion }} cada {{
recetaPrincipal.medicamento.dosisDiaria?.intervalo?.nombre }}</small>

</p>
</div>
</div>
Expand Down Expand Up @@ -62,7 +68,8 @@
</ng-container>

</div>
<div class="data" *ngIf="recetaPrincipal.medicamento.tratamientoProlongado || recetaPrincipal.medicamento.esMagistral === true">
<div class="data"
*ngIf="recetaPrincipal.medicamento.tratamientoProlongado || recetaPrincipal.medicamento.esMagistral === true">
<div *ngIf="recetaPrincipal.medicamento.tratamientoProlongado">
<b>Tratamiento Prolongado</b>
<p class="texto-detalle">{{recetaPrincipal.medicamento?.tiempoTratamiento?.nombre}} - orden: {{
Expand All @@ -80,16 +87,18 @@
<plex-panel class="lista-panel" [active]="true" #panelHistorial>
<div plex-accordion-title>
<div class="titulo">Historial de medicamento</div>
<plex-button disabled type="info" size="sm" [icon]="panelHistorial.active ? 'chevron-up' : 'chevron-down'" class="float-right">
<plex-button disabled type="info" size="sm"
[icon]="panelHistorial.active ? 'chevron-up' : 'chevron-down'" class="float-right">
</plex-button>
</div>
<plex-label class="mt-3" *ngIf="!historialRecetas.length" size="sm" justify="center"
icon="adi adi-listado-receta" titulo="No hay elementos registrados">
icon="adi adi-listado-receta" titulo="No hay elementos registrados">
</plex-label>
<plex-table *ngIf="historialRecetas.length" [columns]="columns" #table="plTable" style="width:100%">
<plex-table-columns>
</plex-table-columns>
<tr *ngFor="let receta of historialRecetas; let i = index" [ngClass]="{'suspendida': receta.estadoActual.tipo === 'suspendida'}">
<tr *ngFor="let receta of historialRecetas; let i = index"
[ngClass]="{'suspendida': receta.estadoActual.tipo === 'suspendida'}">
<td *plTableCol="'fecha'">
{{ receta.fechaRegistro | date:'dd/MM/yyyy HH:mm' }}
</td>
Expand All @@ -113,7 +122,8 @@
</div>
</td>
<td *plTableCol="'acciones'">
<plex-button class="w-10" label="" size="sm" type="danger" icon="delete" (click)="deleteAccion(i)">
<plex-button class="w-10" label="" size="sm" type="danger" icon="delete"
(click)="deleteAccion(i)">
</plex-button>
</td>
</tr>
Expand All @@ -123,11 +133,13 @@
<plex-panel class="lista-panel" *ngIf="listadoDispensas.length > 0" #panelDispensa>
<div plex-accordion-title>
<div class="titulo">Detalle dispensa</div>
<plex-button disabled type="info" size="sm" [icon]="panelDispensa.active ? 'chevron-up' : 'chevron-down'" class="float-right">
<plex-button disabled type="info" size="sm"
[icon]="panelDispensa.active ? 'chevron-up' : 'chevron-down'" class="float-right">
</plex-button>
</div>
<div class="mt-2" *ngIf="recetaPrincipal.estadosDispensa.length > 0">
<plex-table *ngIf="listadoDispensas.length" [columns]="columnsDetalleDispensa" #table="plTable" style="width:100%">
<plex-table *ngIf="listadoDispensas.length" [columns]="columnsDetalleDispensa" #table="plTable"
style="width:100%">
<plex-table-columns>
</plex-table-columns>
<tr *ngFor="let estadoDispensa of listadoDispensas; let i = index">
Expand Down Expand Up @@ -159,32 +171,36 @@
<plex-panel class="lista-panel" *ngIf="recetaPrincipal.estadoActual.tipo === 'suspendida'" #panelSuspension>
<div plex-accordion-title>
<div class="titulo">Motivo de suspensión</div>
<plex-button disabled type="info" size="sm" [icon]="panelSuspension.active ? 'chevron-up' : 'chevron-down'" class="float-right">
<plex-button disabled type="info" size="sm"
[icon]="panelSuspension.active ? 'chevron-up' : 'chevron-down'" class="float-right">
</plex-button>
</div>
<div class="info-solicitud suspendida mt-4">
<div class="data">
<div>
<b>Fecha</b>
<p class="texto-detalle">{{recetaPrincipal.estadoActual.createdAt | date:'dd/MM/yyyy HH:mm'}}</p>
<p class="texto-detalle">{{recetaPrincipal.estadoActual.createdAt | date:'dd/MM/yyyy HH:mm'}}
</p>
</div>
<div>
<b>Profesional</b>
<p class="texto-detalle" *ngIf="recetaPrincipal.estadoActual.profesional">
{{recetaPrincipal.estadoActual.profesional?.apellido}},
{{recetaPrincipal.estadoActual.profesional?.nombre}}</p>
<p class="texto-detalle" *ngIf="!recetaPrincipal.estadoActual.profesional">- Sin profesional -</p>
<p class="texto-detalle" *ngIf="!recetaPrincipal.estadoActual.profesional">- Sin profesional -
</p>
</div>
<div>
<b>Motivo</b>
<p class="texto-detalle">{{recetaPrincipal.estadoActual.motivo || '- Sin especificar -'}}</p>
</div>
<div>
<b>Observación</b>
<p class="texto-detalle">{{recetaPrincipal.estadoActual.observacion || "- Sin especificar -"}}</p>
<p class="texto-detalle">{{recetaPrincipal.estadoActual.observacion || "- Sin especificar -"}}
</p>
</div>
</div>
</div>
</plex-panel>
</plex-accordion>
</div>
</div>
7 changes: 7 additions & 0 deletions src/app/modules/rup/components/huds/vistaReceta.scss
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@
display: flex;
column-gap: 5px;
align-items: center;
width: 100%;
}

.descargar-pdf {
margin-left: auto;
margin-bottom: 10px;
}

.registros {
Expand All @@ -47,6 +53,7 @@
.info-registro {
display: flex;
flex-direction: column;
flex-grow: 1;

plex-badge {
margin-bottom: 10px;
Expand Down
25 changes: 24 additions & 1 deletion src/app/modules/rup/components/huds/vistaReceta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { IPaciente } from '../../../../core/mpi/interfaces/IPaciente';
import { HUDSService } from '../../services/huds.service';
import { RecetaService } from 'src/app/services/receta.service';
import { OrganizacionService } from 'src/app/services/organizacion.service';
import { DocumentosService } from 'src/app/services/documentos.service';
import * as moment from 'moment';

@Component({
Expand Down Expand Up @@ -99,11 +100,13 @@ export class VistaRecetaComponent implements OnInit {
public recetas;
public recetaPrincipal: any;
public historialRecetas: any[];
public requestInProgress = false;

constructor(
public huds: HUDSService,
public recetaService: RecetaService,
public organizacionesService: OrganizacionService
public organizacionesService: OrganizacionService,
private documentosService: DocumentosService
) { }

ngOnInit() {
Expand Down Expand Up @@ -159,4 +162,24 @@ export class VistaRecetaComponent implements OnInit {
return null;
}

descargarPdf() {
if (this.recetaPrincipal) {
this.requestInProgress = true;
const term = this.recetaPrincipal.medicamento?.concepto?.term || 'Receta';
const params = {
idPrestacion: this.recetaPrincipal.idPrestacion,
idRegistro: this.recetaPrincipal.idRegistro
};
this.documentosService.descargarReceta(params, term).subscribe(
() => this.requestInProgress = false,
() => this.requestInProgress = false
);
}
}

verDecargarReceta() {
return this.recetaPrincipal?.estadoActual?.tipo === 'vigente' && this.recetaPrincipal?.estadoDispensaActual?.tipo === 'sin-dispensa';
}


}
6 changes: 6 additions & 0 deletions src/app/services/documentos.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ export class DocumentosService {
);
}

descargarReceta(params, nombreArchivo: string): Observable<any> {
return this.download('pdf', params).pipe(
saveAs(nombreArchivo, 'pdf')
);
}

descargarLaboratorio(params, nombreArchivo: string): Observable<any> {
return this.download('laboratorio/pdf', params).pipe(
saveAs(nombreArchivo, 'pdf')
Expand Down
Loading