From dee94e6c9e4ba210ab0822a72005d533742d9be2 Mon Sep 17 00:00:00 2001 From: nicolasarana <90768149+nicolasarana@users.noreply.github.com> Date: Wed, 2 Sep 2026 10:12:58 -0300 Subject: [PATCH] HUDS - Reordenar datos del encabezado del PDF de laboratorio SIL2 --- .../descargas/laboratorio/laboratorio-body.ts | 72 +++++++------- .../laboratorio/laboratorio-header.ts | 47 +++++++-- templates/laboratorio/laboratorio.scss | 96 ++++++++++++++++++- 3 files changed, 168 insertions(+), 47 deletions(-) diff --git a/modules/descargas/laboratorio/laboratorio-body.ts b/modules/descargas/laboratorio/laboratorio-body.ts index 44e7744c9e..b2c2e667f6 100644 --- a/modules/descargas/laboratorio/laboratorio-body.ts +++ b/modules/descargas/laboratorio/laboratorio-body.ts @@ -7,47 +7,47 @@ export class FarmaciaBody extends HTMLComponent {
-  Paciente: {{ encabezado.data.apellido }} {{ encabezado.data.nombre }} -
 DNI: {{ encabezado.data.documento }} -
-
- Fecha Nac.: {{ encabezado.data.fechanacimiento }} -
-
- Género: {{ encabezado.data.sexo }} -
-
-
-
-  Laboratorio: {{ encabezado.data.laboratorio }} -
 Efector solicitante: {{ encabezado.data.efectorSolicitante }} -
-
- Orden Nro: {{ encabezado.data.numero }} -
Origen: {{ encabezado.data.origen }} -
-
- Fecha: {{ encabezado.data.fecha }} -
Prioridad: {{ encabezado.data.prioridad }} + DATOS DEL PACIENTE + {{ encabezado.data.apellido }} {{ encabezado.data.nombre }} + {{ encabezado.data.sexo }} | {{#if encabezado.data.edad }}{{ encabezado.data.edad }} años | {{/if}}DNI: {{ encabezado.data.documento }}
-
-  Solicitante: {{ encabezado.data.solicitante }} -
-
- Tipo de Servicio: {{ encabezado.data.tipoServicio }} -
-
- Muestra: {{ encabezado.data.tipoMuestra }} +
+ DATOS DEL PROTOCOLO / LABORATORIO + + + + + + + +
+ PROTOCOLO N°: {{ encabezado.data.numero }} + + FECHA: {{ encabezado.data.fecha }} + + Prioridad: {{ encabezado.data.prioridad }} +
+ + + + + +
+ Laboratorio: {{ encabezado.data.laboratorio }}
+ Efector Solicitante: {{ encabezado.data.efectorSolicitante }}
+ Solicitante: {{ encabezado.data.solicitante }} +
+ Origen: {{ encabezado.data.origen }}
+ Servicio: {{ encabezado.data.tipoServicio }} +
-  Prácticas: {{ encabezado.data.practicas }} + PRÁCTICAS
-
-

@@ -161,7 +161,11 @@ export class FarmaciaBody extends HTMLComponent { public async process() { this.encabezado.data.fecha = moment(this.encabezado.data.fecha).format('DD-MM-YYYY'); this.encabezado.data.fechanacimiento = moment(this.encabezado.data.fechanacimiento || this.encabezado.data.fechaNacimiento).format('DD-MM-YYYY'); - this.encabezado.data.sexo = this.paciente[0].genero; + const fechaNac = this.paciente[0]?.fechaNacimiento || this.encabezado.data.fechanacimiento || this.encabezado.data.fechaNacimiento; + if (fechaNac) { + this.encabezado.data.edad = moment().diff(moment(fechaNac), 'years'); + } + this.encabezado.data.sexo = this.paciente[0]?.genero || this.encabezado.data.sexo; if (this.encabezado.data.estado !== 'EnProceso') { this.encabezado.data.estado = null; } else { diff --git a/modules/descargas/laboratorio/laboratorio-header.ts b/modules/descargas/laboratorio/laboratorio-header.ts index bc6dfb2901..e26875436b 100644 --- a/modules/descargas/laboratorio/laboratorio-header.ts +++ b/modules/descargas/laboratorio/laboratorio-header.ts @@ -1,15 +1,25 @@ import { HTMLComponent } from '../model/html-component.class'; +import { loadImage } from '../model/informe.class'; +import * as configPrivate from '../../../config.private'; export class FarmaciaHeader extends HTMLComponent { template = ` -
-
-
Resultados de Laboratorio
-

{{ organizacion }}

-
-
-
+
+ + {{#if logos.organizacion}} + + {{else}} + + {{ organizacion.nombre }} + + {{/if}} + + + + + +
`; constructor(public encabezado) { @@ -17,8 +27,29 @@ export class FarmaciaHeader extends HTMLComponent { } public async process() { + const organizacion = this.encabezado.data.Efector || this.encabezado.data.Laboratorio; + const provincia = configPrivate.provincia || 'neuquen'; + this.data = { - organizacion: this.encabezado.data.Efector || this.encabezado.data.Laboratorio, + organizacion: { + nombre: organizacion?.nombre || organizacion || '' + }, + logos: { + organizacion: organizacion ? this.getLogoOrganizacion(organizacion) : '', + adicional: loadImage(`templates/rup/informes/img/logo-adicional-${provincia}.png`), + andes: loadImage('templates/rup/informes/img/logo-andes-h.png'), + }, }; } + + getLogoOrganizacion(organizacion) { + try { + const nombre = organizacion.nombre || organizacion; + const nombreLogo = nombre.toLocaleLowerCase().replace(/-|\./g, '').replace(/ {2,}| /g, '-'); + const realPath = `templates/rup/informes/img/efectores/${nombreLogo}.png`; + return loadImage(realPath); + } catch { + return null; + } + } } diff --git a/templates/laboratorio/laboratorio.scss b/templates/laboratorio/laboratorio.scss index 0af52f2bf5..0d4e2df0d0 100644 --- a/templates/laboratorio/laboratorio.scss +++ b/templates/laboratorio/laboratorio.scss @@ -1,9 +1,12 @@ - * { box-sizing: border-box; } -header, main, section, article, footer { +header, +main, +section, +article, +footer { display: block; } @@ -92,23 +95,106 @@ hr { /* HEADER */ /* ========================= */ +.contenedor-logos { + display: inline-block; + height: 1cm; + width: 100%; + + .contenedor-logo-efector { + margin-top: .05cm; + display: inline-block; + height: 60px; + width: 40%; + + .logo-efector { + height: .75cm; + width: auto; + max-width: 7cm; + } + + .no-logo-efector { + font-size: .20cm; + } + } + + .contenedor-logos-secundarios { + margin-top: .15cm; + float: right; + width: 40%; + + .logo-adicional { + filter: grayscale(100%); + -webkit-filter: grayscale(1); + height: .55cm; + width: auto; + } + + .logo-andes { + float: right; + height: .55cm; + width: auto; + } + } +} + .header-table { - border: 1px solid #000; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-left: none; + border-right: none; margin-top: 4px; margin-bottom: 10px; } .header-table .rTableRow:not(:last-child) { - border-bottom: 1px solid #000; + border-bottom: 1px solid #ccc; } .header-table .rTableCell1, .header-table .rTableCell2 { - padding: 5px 6px; + padding: 6px 4px; font-size: .20cm; text-align: left !important; } +.header-section-title { + display: block; + margin-bottom: 3px; + color: #888888; + font-size: .22cm; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.header-patient-name { + display: block; + margin-bottom: 2px; + font-size: .36cm; + font-weight: 900; + color: #000; + text-transform: uppercase; +} + +.header-patient-info { + display: block; + font-size: .24cm; + color: #222; +} + +.protocolo-table { + border-collapse: separate; + border-spacing: 5px 0; + margin-left: -5px; + margin-bottom: 4px; +} + +.protocolo-details-table { + width: 100%; + border-collapse: collapse; + margin-top: 4px; +} + .header-table { page-break-inside: avoid; }