@openhealth/oht-custom-parser-lib 0.2.14 → 0.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { DataImportFileUpload } from "../types/oht.types";
1
+ import { DataImportFileUpload } from '../types/oht.types';
2
2
  declare function makeApiCallWithRetry(method: string, url: string, data: any, ohtCoreApiKey: string | undefined, retries?: number): Promise<import("axios").AxiosResponse<any, any>>;
3
3
  declare function parseErrorObj(resp: any): {
4
4
  message: any;
@@ -35,7 +35,7 @@ const limiter = new bottleneck_1.default({
35
35
  const makeApiCall = limiter.wrap(async function (method, url, data, ohtCoreApiKey) {
36
36
  const authHeader = `Basic ${ohtCoreApiKey}`;
37
37
  const headers = {
38
- 'Authorization': authHeader
38
+ Authorization: authHeader,
39
39
  };
40
40
  return (0, axios_1.default)({
41
41
  method,
@@ -63,7 +63,7 @@ function parseErrorObj(resp) {
63
63
  let error = {
64
64
  message: resp.message, // Basic error message
65
65
  // stack: resp.stack, // Stack trace for debugging
66
- config: resp.config // Axios request config that led to the error
66
+ config: resp.config, // Axios request config that led to the error
67
67
  };
68
68
  if (resp.response) {
69
69
  error = {
@@ -77,15 +77,15 @@ function parseErrorObj(resp) {
77
77
  error = {
78
78
  ...error,
79
79
  // @ts-expect-error: adding request to error message
80
- error: resp.request
80
+ error: resp.request,
81
81
  };
82
82
  }
83
83
  return error;
84
84
  }
85
85
  async function postDataImportFileUploadToCore(dataImportFileUpload, rejectedStatus, rejectReason, isReportParsedCorrectly, filename, ohtCoreApiKey) {
86
- let status = isReportParsedCorrectly ?
87
- oht_types_1.DataImportFileUploadStatus.PROCESSED :
88
- oht_types_1.DataImportFileUploadStatus.FOR_REVIEW;
86
+ let status = isReportParsedCorrectly
87
+ ? oht_types_1.DataImportFileUploadStatus.PROCESSED
88
+ : oht_types_1.DataImportFileUploadStatus.FOR_REVIEW;
89
89
  const patchStatus = rejectedStatus ?? status;
90
90
  const ohtCoreUpdateFileUploadUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}/update`;
91
91
  const ohtCoreFileUploadUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}`;
@@ -97,10 +97,10 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, rejectedStat
97
97
  rejectReason,
98
98
  digitalization: {
99
99
  ...dataImportFileUpload.digitalization,
100
- pipelineStep: oht_types_1.PipelineStep.SENDING_RESULTS
100
+ pipelineStep: oht_types_1.PipelineStep.SENDING_RESULTS,
101
101
  },
102
102
  }, ohtCoreApiKey);
103
- logger.info({ response: initialResponse }, `Resp: PATCH status: ${patchStatus} ${ohtCoreFileUploadUrl}, filename: ${filename}`);
103
+ logger.info({ response: initialResponse.data }, `Resp: PATCH status: ${patchStatus} ${ohtCoreFileUploadUrl}, filename: ${filename}`);
104
104
  if (isReportParsedCorrectly && rejectedStatus === undefined) {
105
105
  if (dataImportFileUpload?.labOrderId?.length > 0) {
106
106
  // deprecate any previous fileUpload with same labOrderId and update current to READY
@@ -108,13 +108,16 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, rejectedStat
108
108
  return null;
109
109
  }
110
110
  else {
111
- return await (0, auxiliaryFunctions_service_1.postFileUploadSetStatus)({ status: oht_types_1.DataImportFileUploadStatus.READY, digitalization: { status: 'DONE', lastUpdated: dayjs_1.default.utc() } }, dataImportFileUpload.id, filename, ohtCoreApiKey);
111
+ return await (0, auxiliaryFunctions_service_1.postFileUploadSetStatus)({
112
+ status: oht_types_1.DataImportFileUploadStatus.READY,
113
+ digitalization: { status: 'DONE', lastUpdated: dayjs_1.default.utc() },
114
+ }, dataImportFileUpload.id, filename, ohtCoreApiKey);
112
115
  }
113
116
  }
114
117
  logger.warn({
115
118
  isReportParsedCorrectly,
116
119
  rejectedStatus,
117
- initialResponse
120
+ initialResponse: initialResponse,
118
121
  }, `Report not parsed correctly fileUploadID ${dataImportFileUpload.id}, filename: ${filename}`);
119
122
  return initialResponse?.data;
120
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reportCreator.service.js","sourceRoot":"","sources":["../../service/reportCreator.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reportCreator.service.js","sourceRoot":"","sources":["../../service/reportCreator.service.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,10 @@ exports.unitSynonyms = {
24
24
  'mcg/dl': 'µg/dL',
25
25
  'µui/ml': 'µIU/mL',
26
26
  'tera/l': '10^6/µL',
27
- '10^3/µl': 'x10^3/µL',
28
- '10^3 µl': 'x10^3/µL',
27
+ '10^3/µl': '1000/µL',
28
+ '10^3 µl': '1000/µL',
29
29
  'mg/gcreatinina': 'mg/g(Crea)',
30
- 'mg/g creatinina': 'mg/g(Crea)'
30
+ 'mg/g creatinina': 'mg/g(Crea)',
31
+ '10^3 /µL': '1000/µL',
31
32
  };
32
33
  //# sourceMappingURL=custom-parser.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-parser.types.js","sourceRoot":"","sources":["../../types/custom-parser.types.ts"],"names":[],"mappings":";;;AAIa,QAAA,YAAY,GAA2B;IAClD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,eAAe;IAChC,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,UAAU;IACrB,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,YAAY;CAChC,CAAC"}
1
+ {"version":3,"file":"custom-parser.types.js","sourceRoot":"","sources":["../../types/custom-parser.types.ts"],"names":[],"mappings":";;;AAIa,QAAA,YAAY,GAA2B;IAClD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,eAAe;IAChC,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,YAAY;IAC/B,UAAU,EAAE,SAAS;CACtB,CAAC"}
@@ -4,16 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const pino_1 = __importDefault(require("pino"));
7
+ const sensitivePaths_1 = require("./sensitivePaths");
7
8
  // Define the severity lookup object
8
9
  const SeverityLookup = {
9
- 'default': 'DEFAULT',
10
- 'silly': 'DEFAULT',
11
- 'verbose': 'DEBUG',
12
- 'debug': 'DEBUG',
13
- 'http': 'notice',
14
- 'info': 'INFO',
15
- 'warn': 'WARNING',
16
- 'error': 'ERROR',
10
+ default: 'DEFAULT',
11
+ silly: 'DEFAULT',
12
+ verbose: 'DEBUG',
13
+ debug: 'DEBUG',
14
+ http: 'notice',
15
+ info: 'INFO',
16
+ warn: 'WARNING',
17
+ error: 'ERROR',
17
18
  };
18
19
  // Define the default Pino configuration
19
20
  const defaultPinoConfig = {
@@ -26,6 +27,24 @@ const defaultPinoConfig = {
26
27
  serializers: {
27
28
  error: pino_1.default.stdSerializers.err, // Serialize errors correctly
28
29
  },
30
+ redact: {
31
+ paths: (0, sensitivePaths_1.getSensitivePaths)(),
32
+ censor: '[REDACTED]',
33
+ },
34
+ hooks: {
35
+ logMethod(args, method) {
36
+ try {
37
+ if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {
38
+ const sanitized = (0, sensitivePaths_1.removeObjSensitiveFields)(args[0]);
39
+ args[0] = sanitized;
40
+ }
41
+ method.apply(this, args);
42
+ }
43
+ catch {
44
+ method.apply(this, args); // fallback: just log the original args
45
+ }
46
+ }
47
+ },
29
48
  };
30
49
  // Export a function that creates a Pino logger instance with the provided configuration overrides
31
50
  exports.default = (pinoConfigOverrides = {}) => {
@@ -1 +1 @@
1
- {"version":3,"file":"pinoLogger.js","sourceRoot":"","sources":["../../util-ts/pinoLogger.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AAOxB,oCAAoC;AACpC,MAAM,cAAc,GAAuB;IACzC,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,OAAO;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,wCAAwC;AACxC,MAAM,iBAAiB,GAAG;IACxB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACV,KAAK,CAAC,KAAsB,EAAE,MAAW;YACvC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACzE,CAAC;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,cAAI,CAAC,cAAc,CAAC,GAAG,EAAE,6BAA6B;KAC9D;CACF,CAAC;AAEF,kGAAkG;AAClG,kBAAe,CAAC,sBAA2B,EAAE,EAAe,EAAE;IAC5D,OAAO,IAAA,cAAI,EAAC,EAAE,GAAG,iBAAiB,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC"}
1
+ {"version":3,"file":"pinoLogger.js","sourceRoot":"","sources":["../../util-ts/pinoLogger.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,qDAA+E;AAO/E,oCAAoC;AACpC,MAAM,cAAc,GAAuB;IACzC,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,wCAAwC;AACxC,MAAM,iBAAiB,GAAG;IACxB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACV,KAAK,CAAC,KAAsB,EAAE,MAAW;YACvC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACzE,CAAC;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,cAAI,CAAC,cAAc,CAAC,GAAG,EAAE,6BAA6B;KAC9D;IACD,MAAM,EAAE;QACN,KAAK,EAAE,IAAA,kCAAiB,GAAE;QAC1B,MAAM,EAAE,YAAY;KACrB;IACD,KAAK,EAAE;QACL,SAAS,CAAC,IAA4B,EAAE,MAAgB;YACtD,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACvE,MAAM,SAAS,GAAG,IAAA,yCAAwB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,uCAAuC;YACnE,CAAC;QACH,CAAC;KACF;CACF,CAAC;AAEF,kGAAkG;AAClG,kBAAe,CAAC,sBAA2B,EAAE,EAAe,EAAE;IAC5D,OAAO,IAAA,cAAI,EAAC,EAAE,GAAG,iBAAiB,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns dot-notated paths of sensitive fields for use with Pino's `redact.paths`.
3
+ * Combines prefixes and keys to identify data to be redacted from logs.
4
+ */
5
+ declare function getSensitivePaths(): string[];
6
+ /**
7
+ * Recursively removes sensitive fields from an object based on `sensitiveKeys`, at any depth.
8
+ * If a value is a stringified object, it will be parsed, sanitized recursively, and re-stringified.
9
+ */
10
+ declare const removeObjSensitiveFields: (input: object | string) => object | string;
11
+ export { removeObjSensitiveFields, getSensitivePaths };
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ // Utility to provide an array of sensitive/prohibited paths for logging redaction
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.removeObjSensitiveFields = void 0;
5
+ exports.getSensitivePaths = getSensitivePaths;
6
+ const sensitivePrefixes = [
7
+ '',
8
+ 'jsonPayload',
9
+ 'jsonPayload.data',
10
+ 'jsonPayload.response',
11
+ 'jsonPayload.resp',
12
+ 'jsonPayload.resp.request',
13
+ 'initialResponse.config',
14
+ 'initialResponse.headers',
15
+ 'initialResponse.data',
16
+ 'initialResponse.data.patientInfo',
17
+ 'initialResponse.patientInfo',
18
+ 'initialResponse.config',
19
+ 'initialResponse.config.data',
20
+ 'initialResponse',
21
+ 'response.config',
22
+ 'response.headers',
23
+ 'response.data',
24
+ 'response.data.patientInfo',
25
+ 'response.documentHistory',
26
+ 'response.patientInfo',
27
+ 'response.config.data',
28
+ 'response.config.data.patientInfo',
29
+ 'response',
30
+ 'resp',
31
+ 'resp.config',
32
+ 'resp.config.data',
33
+ 'resp.config.data.patientInfo',
34
+ 'resp.headers',
35
+ 'resp.data',
36
+ 'resp.data.patientInfo',
37
+ 'resp.patientInfo',
38
+ 'config',
39
+ 'config.data',
40
+ 'config.data.patientInfo',
41
+ 'response',
42
+ 'patient.patientInfo',
43
+ 'response.headers',
44
+ 'reportData',
45
+ 'reportData.participant',
46
+ 'participant',
47
+ 'patient',
48
+ 'patientInfo',
49
+ 'error.config',
50
+ 'error.config.data'
51
+ ];
52
+ const sensitiveKeys = [
53
+ // Personal Info
54
+ 'cpf',
55
+ 'extracted_cpf',
56
+ 'birthdate',
57
+ 'birthDate',
58
+ 'firstName',
59
+ 'lastName',
60
+ 'socialName',
61
+ 'fullName',
62
+ 'email',
63
+ 'phone',
64
+ 'address',
65
+ 'sex',
66
+ 'gender',
67
+ // Document Info
68
+ 'filename',
69
+ 'documentFingerprint',
70
+ 'reportExternalId',
71
+ 'externalPatientId',
72
+ 'description',
73
+ // User Info
74
+ 'userId',
75
+ 'uploadedByUserId',
76
+ 'lastProcessedByUserId',
77
+ 'assignedTo',
78
+ 'clickupId',
79
+ 'labOrderId',
80
+ 'labId',
81
+ 'labProfileId',
82
+ // Authentication & Security
83
+ 'apiKey',
84
+ 'authorization',
85
+ 'token',
86
+ 'password',
87
+ 'headers',
88
+ '_header',
89
+ // Healthcare Professional Info
90
+ 'doctor',
91
+ 'medico',
92
+ 'crm',
93
+ // General IDs
94
+ 'id',
95
+ 'externalId',
96
+ // Document Hisotory
97
+ 'action',
98
+ ];
99
+ /**
100
+ * Returns dot-notated paths of sensitive fields for use with Pino's `redact.paths`.
101
+ * Combines prefixes and keys to identify data to be redacted from logs.
102
+ */
103
+ function getSensitivePaths() {
104
+ return sensitivePrefixes.flatMap(prefix => sensitiveKeys.map(key => (prefix ? `${prefix}.${key}` : key)));
105
+ }
106
+ /**
107
+ * Recursively removes sensitive fields from an object based on `sensitiveKeys`, at any depth.
108
+ * If a value is a stringified object, it will be parsed, sanitized recursively, and re-stringified.
109
+ */
110
+ const removeObjSensitiveFields = (input) => {
111
+ if (input == null)
112
+ return input;
113
+ const isPlainObject = (val) => Object.prototype.toString.call(val) === '[object Object]';
114
+ const sanitize = (value) => {
115
+ if (Array.isArray(value)) {
116
+ return value.map(sanitize);
117
+ }
118
+ if (isPlainObject(value)) {
119
+ return Object.fromEntries(Object.entries(value).map(([key, val]) => {
120
+ if (sensitiveKeys.includes(key)) {
121
+ return [key, '[REDACTED]'];
122
+ }
123
+ if (typeof val === 'string') {
124
+ try {
125
+ const parsed = JSON.parse(val);
126
+ if (typeof parsed === 'object' && parsed !== null) {
127
+ return [key, JSON.stringify(sanitize(parsed))];
128
+ }
129
+ }
130
+ catch {
131
+ // not a JSON string
132
+ }
133
+ return [key, val];
134
+ }
135
+ if (isPlainObject(val) || Array.isArray(val)) {
136
+ return [key, sanitize(val)];
137
+ }
138
+ return [key, val];
139
+ }));
140
+ }
141
+ return value;
142
+ };
143
+ if (typeof input === 'string') {
144
+ try {
145
+ const parsed = JSON.parse(input);
146
+ const sanitized = sanitize(parsed);
147
+ return JSON.stringify(sanitized);
148
+ }
149
+ catch {
150
+ return input;
151
+ }
152
+ }
153
+ return sanitize(input);
154
+ };
155
+ exports.removeObjSensitiveFields = removeObjSensitiveFields;
156
+ //# sourceMappingURL=sensitivePaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitivePaths.js","sourceRoot":"","sources":["../../util-ts/sensitivePaths.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openhealth/oht-custom-parser-lib",
3
- "version": "0.2.14",
3
+ "version": "0.2.16",
4
4
  "description": "Shared nodejs lib with with reusable functions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",