Skip to content

Commit d151ebc

Browse files
committed
feat(PER): Agrega logs con logger
1 parent 57462cb commit d151ebc

File tree

6 files changed

+100
-61
lines changed

6 files changed

+100
-61
lines changed

sip-plus-perinatal/controller/sip-plus.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import { IPaciente } from '../schemas/paciente';
44
import { getMatching } from '../service/matchPerinatal';
55
import { getOrganizacionAndes } from '../service/organizacion';
66
import { IPerinatal, ISnomedConcept } from 'sip-plus-perinatal/schemas/perinatal';
7+
import { fakeRequest, MONGO_HOST } from '../config.private';
8+
import { msSipPlusPerinatalLog } from '../logger/msSipPlusPerinatal';
9+
const log = msSipPlusPerinatalLog.startTrace();
710

811

912
/**
@@ -136,7 +139,7 @@ export async function completePacienteSP(pacienteSP: IPaciente, paciente: IPacie
136139
}
137140
}
138141
} catch (error) {
139-
142+
log.error('completePacienteSP:error', pacienteSP, error, fakeRequest);
140143
}
141144
return newPaciente;
142145

@@ -225,7 +228,7 @@ async function completePaciente(pacienteSP: any, paciente: IPaciente) {
225228

226229
datosPaciente = await completeData(paciente, datosPaciente, newData);
227230
} catch (error) {
228-
231+
log.error('completePacienteSP:error', paciente, error, fakeRequest);
229232
}
230233
return datosPaciente;
231234
}
@@ -255,6 +258,7 @@ async function completeData(allData, dataInit = {}, newData) {
255258
}
256259
});
257260
} catch (error) {
261+
log.error('completeData:error', allData, error, fakeRequest);
258262
}
259263

260264
return datos;
@@ -382,7 +386,7 @@ async function createMatchControl(registros: any[], embActual, newDatosEmb, fech
382386
}
383387
}
384388
} catch (error) {
385-
389+
log.error('createMatchControl:error', registros, error, fakeRequest);
386390
}
387391
return newDatosEmb;
388392
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { logDatabase } from '../config.private';
2+
import { Logger } from '@andes/log';
3+
import * as mongoose from 'mongoose';
4+
5+
let logs: mongoose.Connection = mongoose.createConnection();
6+
logs = mongoose.createConnection(logDatabase.log.host, logDatabase.log.options);
7+
export const msSipPlusPerinatalLog = new Logger({
8+
connection: logs,
9+
type: 'msSipPlusPerinatal',
10+
module: 'msSipPlusPerinatal',
11+
application: 'andes',
12+
bucketBy: 'h',
13+
bucketSize: 100
14+
});
Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import { IPerinatal } from '../schemas/perinatal';
22
import { QueryMapping } from '../schemas/query_mapping';
3-
43
import { fakeRequest, MONGO_HOST } from '../config.private';
5-
import { log } from '@andes/log';
6-
74
import * as mongoose from 'mongoose';
5+
import { msSipPlusPerinatalLog } from '../logger/msSipPlusPerinatal';
6+
const log = msSipPlusPerinatalLog.startTrace();
87

98
mongoose.connect(MONGO_HOST, { useUnifiedTopology: true, useNewUrlParser: true }).
109
then(() => console.log('Conexion Exitosa BD Mongo'))
1110
.catch(err => {
12-
log(fakeRequest, 'microservices:integration:sip-plus', MONGO_HOST, 'Mongo Conexión:error', `${err.message}`);
11+
log.error('Mongo Conexión:error', MONGO_HOST, `${err.message}`, fakeRequest);
1312
});
1413

1514

@@ -20,29 +19,33 @@ export async function getMatching(tipoMatch = null) {
2019
const dataMapped = await QueryMapping.find({ source, target: "sip+" });
2120

2221
return dataMapped.map(elemMap => {
23-
24-
let sipPlus = {
25-
code: elemMap['targetValue']['code'],
26-
type: elemMap['targetValue']['type']
27-
}
28-
const key = (tipo.includes('snomed')) ? elemMap['sourceValue']['key'] : elemMap['sourceValue'];
29-
30-
let dataMap: IPerinatal = { key, sipPlus, tipoMatch };
31-
// si el tipo de mapeo contiene conceptos Snomed, entonces se obtienen sus datos
32-
if (tipo.includes('snomed')) {
33-
dataMap.concepto = elemMap['sourceValue']['concepto'];
34-
if (elemMap['sourceValue']['valor']) {
35-
dataMap.sipPlus.valor = elemMap['targetValue']['valor'];
22+
try {
23+
let sipPlus = {
24+
code: elemMap['targetValue']['code'],
25+
type: elemMap['targetValue']['type']
3626
}
37-
if (elemMap['targetValue']['extra']) {
38-
dataMap.sipPlus.extra = elemMap['targetValue']['extra'];
27+
const key = (tipo.includes('snomed')) ? elemMap['sourceValue']['key'] : elemMap['sourceValue'];
28+
29+
let dataMap: IPerinatal = { key, sipPlus, tipoMatch };
30+
// si el tipo de mapeo contiene conceptos Snomed, entonces se obtienen sus datos
31+
if (tipo.includes('snomed')) {
32+
dataMap.concepto = elemMap['sourceValue']['concepto'];
33+
if (elemMap['sourceValue']['valor']) {
34+
dataMap.sipPlus.valor = elemMap['targetValue']['valor'];
35+
}
36+
if (elemMap['targetValue']['extra']) {
37+
dataMap.sipPlus.extra = elemMap['targetValue']['extra'];
38+
}
3939
}
40+
return dataMap;
41+
} catch (error) {
42+
log.error('getMatching:error', { dataMapped, source}, error, fakeRequest);
43+
return null;
4044
}
41-
return dataMap;
4245
});
4346

4447
} catch (error) {
45-
log(fakeRequest, 'microservices:integration:sip-plus', source, 'getMatching:error', error);
48+
log.error('getMatching:error',source, error, fakeRequest);
4649
}
4750
return [];
4851
}
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { ANDES_HOST, ANDES_KEY, fakeRequest } from '../config.private';
2+
import { msSipPlusPerinatalLog } from '../logger/msSipPlusPerinatal';
3+
const log = msSipPlusPerinatalLog.startTrace();
24
const fetch = require('node-fetch');
35

4-
import { log } from '@andes/log';
5-
66
export async function getOrganizacionAndes(idOrganizacion) {
77
const url = `${ANDES_HOST}/core/tm/organizaciones?ids=${idOrganizacion}`;
88
const options = {
@@ -14,13 +14,15 @@ export async function getOrganizacionAndes(idOrganizacion) {
1414
};
1515
try {
1616
let response = await fetch(url, options);
17-
18-
const responseJson = await response.json();
19-
20-
return responseJson[0] || null;
17+
try {
18+
const responseJson = await response.json();
19+
return responseJson[0] || null;
20+
} catch (error) {
21+
log.error('getOrganizacionAndes:error', { idOrganizacion, options, response }, error, fakeRequest);
22+
}
2123
}
2224
catch (error) {
23-
log(fakeRequest, 'microservices:integration:sip-plus', idOrganizacion, 'getOrganizacionAndes:error', error);
25+
log.error('getOrganizacionAndes:error', { idOrganizacion, options }, error, fakeRequest);
2426
}
2527

26-
}
28+
}
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { ANDES_HOST, ANDES_KEY, fakeRequest } from '../config.private';
2+
import { msSipPlusPerinatalLog } from '../logger/msSipPlusPerinatal';
3+
const log = msSipPlusPerinatalLog.startTrace();
24
const fetch = require('node-fetch');
35

4-
import { log } from '@andes/log';
5-
66
export async function getPaciente(idPaciente) {
77
const url = `${ANDES_HOST}/core-v2/mpi/pacientes/${idPaciente}`;
88
const options = {
@@ -14,15 +14,19 @@ export async function getPaciente(idPaciente) {
1414
};
1515
try {
1616
let response = await fetch(url, options);
17-
const responseJson = await response.json();
18-
if (responseJson._id) {
19-
return responseJson;
20-
} else {
21-
return null;
17+
try {
18+
const responseJson = await response.json();
19+
if (responseJson._id) {
20+
return responseJson;
21+
} else {
22+
return null;
23+
}
24+
}catch (error) {
25+
log.error('getPaciente:error', { idPaciente, options, response }, error, fakeRequest);
2226
}
2327
}
2428
catch (error) {
25-
log(fakeRequest, 'microservices:integration:sip-plus', idPaciente, 'getPaciente:error', error);
29+
log.error('getPaciente:error', { idPaciente, options }, error, fakeRequest);
2630
}
2731

28-
}
32+
}

sip-plus-perinatal/service/sip-plus.ts

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { SIP_PLUS, fakeRequest } from '../config.private';
2+
import { msSipPlusPerinatalLog } from '../logger/msSipPlusPerinatal';
3+
const log = msSipPlusPerinatalLog.startTrace();
24
const fetch = require('node-fetch');
3-
import { log } from '@andes/log';
5+
46

57
const url = `${SIP_PLUS.host}/record/AR/DNI/`;
68

@@ -32,26 +34,31 @@ export async function getPacienteSP(paciente: any) {
3234
if (documento) {
3335
try {
3436
let response = await fetch(`${url}${documento}`, options('GET'));
37+
try {
38+
if (response.status >= 200 && response.status < 300) {
39+
let responseJson = await response.json();
3540

36-
if (response.status >= 200 && response.status < 300) {
37-
let responseJson = await response.json();
41+
const keyResponse = Object.keys(responseJson).length || null;
42+
if (keyResponse) {
43+
return { paciente: responseJson };
44+
}
45+
else {
46+
return { paciente: null };
3847

39-
const keyResponse = Object.keys(responseJson).length || null;
40-
if (keyResponse) {
41-
return { paciente: responseJson };
48+
}
4249
}
43-
else {
50+
if (response.status === 404) {
51+
// paciente no encontrado
4452
return { paciente: null };
4553

4654
}
47-
}
48-
if (response.status === 404) {
49-
// paciente no encontrado
50-
return { paciente: null };
55+
} catch (error) {
56+
log.error('getPacienteSP:error', { paciente, response }, error, fakeRequest);
57+
return null;
5158
}
5259

5360
} catch (error) {
54-
log(fakeRequest, 'microservices:integration:sip-plus', paciente, 'getPacienteSP:error', error);
61+
log.error('getPacienteSP:error', { paciente }, error, fakeRequest);
5562
}
5663
}
5764
return null;
@@ -63,17 +70,22 @@ export async function postPacienteSP(documento: string = '', pacienteSP) {
6370
const body = JSON.stringify(pacienteSP);
6471
let optionsPost: any = options('POST', body);
6572
let response: any = await fetch(`${url}${documento}`, optionsPost);
66-
if (response.status >= 200 && response.status < 300) {
67-
return { paciente: optionsPost.body };
68-
}
69-
if (response.status === 404) {
70-
// paciente no encontrado
71-
return { paciente: null };
73+
try {
74+
if (response.status >= 200 && response.status < 300) {
75+
return { paciente: optionsPost.body };
76+
}
77+
if (response.status === 404) {
78+
// paciente no encontrado
79+
return { paciente: null };
80+
}
81+
} catch (error) {
82+
log.error('postPacienteSP:error', { pacienteSP, response }, error, fakeRequest);
83+
return null;
7284
}
7385

7486
} catch (error) {
75-
log(fakeRequest, 'microservices:integration:sip-plus', pacienteSP, 'postPacienteSP:error', error);
87+
log.error('postPacienteSP:error', { pacienteSP }, error, fakeRequest);
7688
}
7789
}
7890
return null;
79-
}
91+
}

0 commit comments

Comments
 (0)