Skip to content

Commit 7f140e4

Browse files
committed
TYP - Descarga de odontograma PDF
1 parent d914dfd commit 7f140e4

3 files changed

Lines changed: 89 additions & 72 deletions

File tree

modules/descargas/informe-rup/elementos-rup/odontograma.component.ts

Lines changed: 76 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -4,87 +4,93 @@ export class OdontogramaRefsetComponent extends HTMLComponent {
44
template = `
55
<div class="nivel-1">
66
<p>
7-
{{ registro.concepto.term }}
7+
<strong>{{ registro.concepto.term }}</strong>
88
{{#if registro.esDiagnosticoPrincipal}}<small>(PROCEDIMIENTO / DIAGNÓSTICO PRINCIPAL)</small>{{/if}}
9-
10-
11-
{{#each valor.infDer}}
12-
<p>&emsp;Cuadrante Inferior Derecho:
13-
<small class="subregistro">
14-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
15-
</small>
16-
{{/each}}
17-
18-
{{#each valor.infDerT}}
19-
<p>&emsp;Cuadrante Inferior Derecho Temporal:
20-
<small class="subregistro">
21-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
22-
</small>
23-
{{/each}}
24-
25-
{{#each valor.infIzq}}
26-
<p>&emsp;Cuadrante Inferior Izquierdo:
27-
<small class="subregistro">
28-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
29-
</small>
30-
{{/each}}
31-
32-
{{#each valor.infIzqT}}
33-
<p>&emsp;Cuadrante Inferior Izquierdo Temporal:
34-
<small class="subregistro">
35-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
36-
</small>
37-
{{/each}}
38-
39-
{{#each valor.supDer}}
40-
<p>&emsp;Cuadrante Superior Derecho:
41-
<small class="subregistro">
42-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
43-
</small>
44-
{{/each}}
45-
46-
{{#each valor.supDerT}}
47-
<p>&emsp;Cuadrante Superior Derecho Temporal:
48-
<small class="subregistro">
49-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
50-
</small>
51-
{{/each}}
52-
53-
{{#each valor.supIzq}}
54-
<p>&emsp;Cuadrante Superior Izquierdo:
55-
<small class="subregistro">
56-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
57-
</small>
58-
{{/each}}
59-
60-
{{#each valor.supIzqT}}
61-
<p>&emsp;Cuadrante Superior Izquierdo Temporal:
62-
<small class="subregistro">
63-
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
64-
</small>
65-
{{/each}}
66-
67-
68-
69-
9+
</p>
10+
11+
{{#if snapshot}}
12+
<div style="text-align: center; margin: 20px 0; border: 1px solid #eee; padding: 10px; border-radius: 8px;">
13+
<img src="{{ snapshot }}" style="max-width: 100%; height: auto;">
14+
</div>
15+
{{/if}}
16+
17+
<div class="detalle-odontograma" style="margin-top: 10px;">
18+
{{#each valor.infDer}}
19+
<p>&emsp;Cuadrante Inferior Derecho:
20+
<small class="subregistro">
21+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
22+
</small>
23+
{{/each}}
24+
25+
{{#each valor.infDerT}}
26+
<p>&emsp;Cuadrante Inferior Derecho Temporal:
27+
<small class="subregistro">
28+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
29+
</small>
30+
{{/each}}
31+
32+
{{#each valor.infIzq}}
33+
<p>&emsp;Cuadrante Inferior Izquierdo:
34+
<small class="subregistro">
35+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
36+
</small>
37+
{{/each}}
38+
39+
{{#each valor.infIzqT}}
40+
<p>&emsp;Cuadrante Inferior Izquierdo Temporal:
41+
<small class="subregistro">
42+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
43+
</small>
44+
{{/each}}
45+
46+
{{#each valor.supDer}}
47+
<p>&emsp;Cuadrante Superior Derecho:
48+
<small class="subregistro">
49+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
50+
</small>
51+
{{/each}}
52+
53+
{{#each valor.supDerT}}
54+
<p>&emsp;Cuadrante Superior Derecho Temporal:
55+
<small class="subregistro">
56+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
57+
</small>
58+
{{/each}}
59+
60+
{{#each valor.supIzq}}
61+
<p>&emsp;Cuadrante Superior Izquierdo:
62+
<small class="subregistro">
63+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
64+
</small>
65+
{{/each}}
66+
67+
{{#each valor.supIzqT}}
68+
<p>&emsp;Cuadrante Superior Izquierdo Temporal:
69+
<small class="subregistro">
70+
pieza N°{{ concepto.term }} | cara: {{ cara }} | cuadrante: {{ cuadrante }}
71+
</small>
72+
{{/each}}
73+
</div>
74+
</div>
7075
`;
7176
constructor(private prestacion, private registro, private params, private depth) {
7277
super();
7378
}
7479

7580
async process() {
76-
const infDer = this.registro.valor.odontograma.cuadranteInferiorDerecho.filter(diente => diente.cara);
77-
const infIzq = this.registro.valor.odontograma.cuadranteInferiorIzquierdo.filter(diente => diente.cara);
78-
const supDer = this.registro.valor.odontograma.cuadranteSuperiorDerecho.filter(diente => diente.cara);
79-
const supIzq = this.registro.valor.odontograma.cuadranteSuperiorIzquierdo.filter(diente => diente.cara);
81+
const infDer = this.registro.valor.odontograma?.cuadranteInferiorDerecho.filter(diente => diente.cara) || [];
82+
const infIzq = this.registro.valor.odontograma?.cuadranteInferiorIzquierdo.filter(diente => diente.cara) || [];
83+
const supDer = this.registro.valor.odontograma?.cuadranteSuperiorDerecho.filter(diente => diente.cara) || [];
84+
const supIzq = this.registro.valor.odontograma?.cuadranteSuperiorIzquierdo.filter(diente => diente.cara) || [];
8085

81-
const infDerT = this.registro.valor.odontograma.cuadranteInferiorDerechoTemporal.filter(diente => diente.cara);
82-
const infIzqT = this.registro.valor.odontograma.cuadranteInferiorIzquierdoTemporal.filter(diente => diente.cara);
83-
const supDerT = this.registro.valor.odontograma.cuadranteSuperiorDerechoTemporal.filter(diente => diente.cara);
84-
const supIzqT = this.registro.valor.odontograma.cuadranteSuperiorIzquierdoTemporal.filter(diente => diente.cara);
86+
const infDerT = this.registro.valor.odontograma?.cuadranteInferiorDerechoTemporal.filter(diente => diente.cara) || [];
87+
const infIzqT = this.registro.valor.odontograma?.cuadranteInferiorIzquierdoTemporal.filter(diente => diente.cara) || [];
88+
const supDerT = this.registro.valor.odontograma?.cuadranteSuperiorDerechoTemporal.filter(diente => diente.cara) || [];
89+
const supIzqT = this.registro.valor.odontograma?.cuadranteSuperiorIzquierdoTemporal.filter(diente => diente.cara) || [];
8590

8691
this.data = {
8792
registro: this.registro,
93+
snapshot: this.registro.valor.snapshot,
8894
valor: {
8995
infDer,
9096
infDerT,

modules/descargas/informe-rup/informe-rup.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { findById } from '../../../core-v2/mpi/paciente/paciente.controller';
1111

1212
export class InformeRUP extends InformePDF {
1313

14-
constructor(private prestacionId: string | Types.ObjectId, private registroId: string | Types.ObjectId = null, private usuario: any) {
14+
constructor(private prestacionId: string | Types.ObjectId, private registroId: string | Types.ObjectId = null, private usuario: any, private snapshots: any = null) {
1515
super();
1616
}
1717

@@ -21,6 +21,16 @@ export class InformeRUP extends InformePDF {
2121

2222
public async process() {
2323
const prestacion: any = await Prestacion.findById(this.prestacionId);
24+
25+
if (this.snapshots) {
26+
prestacion.ejecucion.registros.forEach(r => {
27+
if (this.snapshots[r.id]) {
28+
r.valor = r.valor || {};
29+
r.valor.snapshot = this.snapshots[r.id];
30+
}
31+
});
32+
}
33+
2434
const paciente = await findById(prestacion.paciente.id);
2535
const organizacion = await Organizacion.findById(prestacion.ejecucion.organizacion.id);
2636
const elementosRUPSet = await elementosRUPAsSet();

modules/descargas/routes/descargas.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,9 @@ router.post('/:tipo?', Auth.authenticate(), async (req: any, res, next) => {
273273
try {
274274
const idPrestacion = req.body.idPrestacion;
275275
const idRegistro = req.body.idRegistro;
276+
const snapshots = req.body.snapshots;
276277

277-
const informe = new InformeRUP(idPrestacion, idRegistro, req.user);
278+
const informe = new InformeRUP(idPrestacion, idRegistro, req.user, snapshots);
278279
const fileName = await informe.informe();
279280

280281
return res.download(fileName);

0 commit comments

Comments
 (0)