Skip to content

Commit

Permalink
refactor(HUDS): modifica estructura recibida de los detalles de un pr…
Browse files Browse the repository at this point in the history
…otocolo para mejorar la visualizacion
  • Loading branch information
silviroa authored and negro89 committed Dec 13, 2024
1 parent efbf02e commit de5ef8f
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 49 deletions.
40 changes: 1 addition & 39 deletions modules/descargas/laboratorio/laboratorio-body.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,52 +51,14 @@ export class FarmaciaBody extends HTMLComponent {
}

public async process() {
const setAreas = new Set(this.detalle.map(d => d.area));
const areasStr = Array.from(setAreas);

const areas = [];
areasStr.forEach(area => {
const detallesArea = this.detalle.filter(d => d.area === area);
const setGrupos = new Set(detallesArea.map(d => d.grupo));
const grupos = Array.from(setGrupos);

const item = {
area,
grupos: grupos.map(g => {
const detallesAreaGrupo = detallesArea.filter(da => da.grupo === g);
const res: any = {};
const toItem = (e) => ({
nombre: e.item,
esTitulo: e.esTitulo === 'True' ? true : false,
resultado: e.resultado || e.Resultado,
metodo: e.Metodo,
valorReferencia: e.valorReferencia,
unidadMedida: e.unidadMedida || e.UnidadMedida,
userValida: e.userValida
});
res.grupo = g;
if (detallesAreaGrupo.length === 1 && detallesAreaGrupo[0].grupo === g) {
res.items = [toItem(detallesAreaGrupo[0])];
res.visible = false;
} else {
res.visible = true;
res.items = detallesAreaGrupo.map(toItem);
}
return res;
})
};

areas.push(item);
});

this.encabezado.data.fecha = moment(this.encabezado.data.fecha).format('DD-MM-YYYY');
this.encabezado.data.fechanacimiento = moment(this.encabezado.data.fechanacimiento).format('DD-MM-YYYY');
this.encabezado.data.sexo = this.paciente[0].genero;
if (this.paciente[0].alias) {
this.encabezado.data.nombre = this.paciente[0].alias;
}
this.data = {
areas,
areas: this.detalle,
encabezado: this.encabezado
};
}
Expand Down
2 changes: 1 addition & 1 deletion modules/descargas/routes/descargas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ router.post('/laboratorio/:tipo?', Auth.authenticate(), async (req: any, res, ne
if (!response.length || !paciente) {
throw new Error('Error al generar laboratorio.');
}
const docLaboratorio = new Laboratorio(req.body.protocolo, response[0].Data, paciente, req.body.usuario);
const docLaboratorio = new Laboratorio(req.body.protocolo, response, paciente, req.body.usuario);
const opciones = { header: { height: '2cm' } };
const fileName: any = await docLaboratorio.informe(opciones);
res.download(fileName);
Expand Down
65 changes: 56 additions & 9 deletions modules/rup/laboratorios.controller.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,64 @@
import { services } from './../../services';


function agrupar(elementos) {
const setAreas = new Set(elementos.map(d => d.area));
const areasStr = Array.from(setAreas);
const areas = [];
const toItem = (e) => ({
nombre: e.item,
esTitulo: e.esTitulo === 'True' ? true : false,
resultado: e.Resultado || e.resultado,
unidadMedida: e.UnidadMedida || e.unidadMedida,
metodo: e.Metodo,
valorReferencia: e.valorReferencia,
firma: e.esTitulo === 'True' ? '' : e.userValida
});

areasStr.forEach(area => {
const detallesArea = elementos.filter(d => d.area === area);
const setGrupos = new Set(detallesArea.map(d => d.grupo));
const grupos = Array.from(setGrupos);
const item = {
area,
grupos: grupos.map(g => {
const detallesAreaGrupo = detallesArea.filter(da => da.grupo === g);
const res: any = {};
res.grupo = g;
if (detallesAreaGrupo.length === 1 && detallesAreaGrupo[0].grupo === g) {
res.items = [toItem(detallesAreaGrupo[0])];
res.visible = false;
} else {
res.items = detallesAreaGrupo.map(toItem);
res.visible = true;
}

return res;
})
};
areas.push(item);
});
return areas;
}

export async function search(data) {
let params;
const service = 'get-LABAPI';
if (data.idProtocolo) {
params = {
parametros: `nombre=LABAPI_GetResultadoProtocolo&parametros=${data.idProtocolo}`
};
} else {
params = {
parametros: `nombre=LABAPI_GetProtocolos&parametros=${data.estado}|${data.dni}|${data.fechaNac}|${data.apellido}|${data.fechaDesde}|${data.fechaHasta}`
};
try {
if (data.idProtocolo) {
params = {
parametros: `nombre=LABAPI_GetResultadoProtocolo&parametros=${data.idProtocolo}`
};
} else {
params = {
parametros: `nombre=LABAPI_GetProtocolos&parametros=${data.estado}|${data.dni}|${data.fechaNac}|${data.apellido}|${data.fechaDesde}|${data.fechaHasta}`
};
}
} catch (e) {
throw new Error('Error al obtener laboratorio.');
}

const response = await services.get(service).exec(params);
return response;
const salida = data.idProtocolo ? agrupar(response[0].Data) : response;
return salida;
}

0 comments on commit de5ef8f

Please sign in to comment.