@openhealth/oht-custom-parser-lib 0.3.3 → 0.3.4

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.
Files changed (40) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.js +17 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/service/auxiliaryFunctions.service.d.ts +2 -0
  5. package/dist/service/auxiliaryFunctions.service.js +4 -3
  6. package/dist/service/auxiliaryFunctions.service.js.map +1 -1
  7. package/dist/service/fileUploadErrorHandler.service.d.ts +26 -0
  8. package/dist/service/fileUploadErrorHandler.service.js +264 -0
  9. package/dist/service/fileUploadErrorHandler.service.js.map +1 -0
  10. package/dist/service/ohtMeasurementsExtractor.service.js +23 -25
  11. package/dist/service/ohtMeasurementsExtractor.service.js.map +1 -1
  12. package/dist/service/ohtReportMeasurementsExtractor.service.d.ts +1 -0
  13. package/dist/service/ohtReportMeasurementsExtractor.service.js +33 -47
  14. package/dist/service/ohtReportMeasurementsExtractor.service.js.map +1 -1
  15. package/dist/service/processingLogger.service.d.ts +122 -0
  16. package/dist/service/processingLogger.service.js +331 -0
  17. package/dist/service/processingLogger.service.js.map +1 -0
  18. package/dist/service/reportCreator.service.js +48 -56
  19. package/dist/service/reportCreator.service.js.map +1 -1
  20. package/dist/service/slackMessages.service.js +4 -5
  21. package/dist/service/slackMessages.service.js.map +1 -1
  22. package/dist/service/transformationRules.service.js +3 -10
  23. package/dist/service/transformationRules.service.js.map +1 -1
  24. package/dist/types/error.types.d.ts +82 -0
  25. package/dist/types/error.types.js +195 -0
  26. package/dist/types/error.types.js.map +1 -1
  27. package/dist/types/oht.types.d.ts +5 -1
  28. package/dist/types/oht.types.js +4 -0
  29. package/dist/types/oht.types.js.map +1 -1
  30. package/dist/util-ts/apiUtils.js +2 -3
  31. package/dist/util-ts/apiUtils.js.map +1 -1
  32. package/dist/util-ts/dataUtils.js +24 -16
  33. package/dist/util-ts/dataUtils.js.map +1 -1
  34. package/dist/util-ts/extractionUtils.js +4 -8
  35. package/dist/util-ts/extractionUtils.js.map +1 -1
  36. package/package.json +34 -34
  37. package/readme.md +99 -99
  38. package/dist/service/ohtAgnosticMeasurementsExtractor.service.d.ts +0 -59
  39. package/dist/service/ohtAgnosticMeasurementsExtractor.service.js +0 -603
  40. package/dist/service/ohtAgnosticMeasurementsExtractor.service.js.map +0 -1
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.processingLogger = void 0;
7
+ const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
8
+ /**
9
+ * ProcessingLoggerService - Singleton service for tracking processing state and logging
10
+ *
11
+ * Provides simplified API for logging processing progress with automatic stage timing,
12
+ * measurement tracking, and comprehensive summary logging. Use logInfo, logWarn, logError,
13
+ * logDebug for all application logs so they include the same context (file_name, file_upload_id, etc.)
14
+ * and are searchable by fileUploadId/filename.
15
+ *
16
+ * Usage:
17
+ * ```typescript
18
+ * processingLogger.clear();
19
+ * processingLogger.setContext({ fileName: 'test.json', partnerId: 'partner_123' });
20
+ * processingLogger.logStart();
21
+ * processingLogger.logProgress(20, 'get_transformation_rules');
22
+ * processingLogger.logInfo('Step completed', { count: 5 });
23
+ * processingLogger.addMeasurement(15, 'measurements');
24
+ * processingLogger.logEnd(true);
25
+ * ```
26
+ */
27
+ class ProcessingLoggerService {
28
+ constructor() {
29
+ this.logger = (0, pinoLogger_1.default)();
30
+ this.state = this.initializeState();
31
+ }
32
+ static getInstance() {
33
+ if (!ProcessingLoggerService.instance) {
34
+ ProcessingLoggerService.instance = new ProcessingLoggerService();
35
+ }
36
+ return ProcessingLoggerService.instance;
37
+ }
38
+ initializeState() {
39
+ return {
40
+ stages: [],
41
+ errors: [],
42
+ warnings: [],
43
+ };
44
+ }
45
+ clear() {
46
+ this.state = this.initializeState();
47
+ }
48
+ setContext(context) {
49
+ this.state.fileName = context.fileName;
50
+ this.state.fileUploadId = context.fileUploadId;
51
+ this.state.partnerId = context.partnerId;
52
+ this.state.partnerName = context.partnerName;
53
+ this.state.signedUploadId = context.signedUploadId;
54
+ this.state.cloudEventId = context.cloudEventId;
55
+ this.state.messageId = context.messageId;
56
+ this.state.publishTime = context.publishTime;
57
+ this.state.fileMimeType = context.fileMimeType;
58
+ this.state.normalizerName = context.normalizerName;
59
+ this.state.isPreview = context.isPreview ?? false;
60
+ this.state.reportPreviewId = context.reportPreviewId;
61
+ }
62
+ getState() {
63
+ return { ...this.state };
64
+ }
65
+ /**
66
+ * Replace the underlying logger (for testing only).
67
+ * Allows tests to inject a mock logger without mocking the module.
68
+ */
69
+ setLogger(logger) {
70
+ this.logger = logger;
71
+ }
72
+ getLogContext() {
73
+ return {
74
+ file_name: this.state.fileName,
75
+ file_upload_id: this.state.fileUploadId,
76
+ partner_id: this.state.partnerId,
77
+ partner_name: this.state.partnerName,
78
+ signed_upload_id: this.state.signedUploadId,
79
+ cloud_event_id: this.state.cloudEventId,
80
+ message_id: this.state.messageId,
81
+ publish_time: this.state.publishTime,
82
+ file_mime_type: this.state.fileMimeType,
83
+ normalizer_name: this.state.normalizerName,
84
+ is_preview: this.state.isPreview,
85
+ report_preview_id: this.state.reportPreviewId,
86
+ };
87
+ }
88
+ logInfo(message, data) {
89
+ const payload = { ...this.getLogContext(), ...data };
90
+ this.logger.info(payload, message);
91
+ }
92
+ logWarn(message, data) {
93
+ const payload = { ...this.getLogContext(), ...data };
94
+ this.logger.warn(payload, message);
95
+ }
96
+ logError(message, error, data) {
97
+ const base = { ...this.getLogContext(), ...data };
98
+ if (error) {
99
+ this.logger.error({ ...base, err: error, error_message: error.message, stack: error.stack }, message);
100
+ }
101
+ else {
102
+ this.logger.error(base, message);
103
+ }
104
+ }
105
+ logDebug(message, data) {
106
+ const payload = { ...this.getLogContext(), ...data };
107
+ this.logger.debug(payload, message);
108
+ }
109
+ startStage(step, percentage) {
110
+ const now = new Date();
111
+ this.state.currentStageStartTime = now;
112
+ this.state.currentStep = step;
113
+ this.state.progressPercentage = percentage;
114
+ this.state.stages.push({
115
+ step,
116
+ percentage,
117
+ startTime: now,
118
+ });
119
+ }
120
+ endStage() {
121
+ if (!this.state.currentStageStartTime || !this.state.currentStep)
122
+ return;
123
+ const now = new Date();
124
+ const stageDurationMs = now.getTime() - this.state.currentStageStartTime.getTime();
125
+ const currentStage = this.state.stages[this.state.stages.length - 1];
126
+ if (currentStage && currentStage.step === this.state.currentStep) {
127
+ currentStage.endTime = now;
128
+ currentStage.durationMs = stageDurationMs;
129
+ currentStage.cumulativeDurationMs = this.state.stages
130
+ .filter((s) => s.durationMs !== undefined)
131
+ .reduce((sum, s) => sum + (s.durationMs || 0), 0);
132
+ }
133
+ this.state.currentStageStartTime = undefined;
134
+ this.state.currentStep = undefined;
135
+ }
136
+ logStart() {
137
+ this.state.startTime = new Date();
138
+ const message = this.state.isPreview
139
+ ? 'Report preview processing started'
140
+ : 'File upload processing started';
141
+ this.logger.info({
142
+ processing_start: {
143
+ file_name: this.state.fileName,
144
+ partner_id: this.state.partnerId,
145
+ partner_name: this.state.partnerName,
146
+ file_upload_id: this.state.fileUploadId,
147
+ signed_upload_id: this.state.signedUploadId,
148
+ cloud_event_id: this.state.cloudEventId,
149
+ message_id: this.state.messageId,
150
+ publish_time: this.state.publishTime,
151
+ file_mime_type: this.state.fileMimeType,
152
+ normalizer_name: this.state.normalizerName,
153
+ is_preview: this.state.isPreview,
154
+ report_preview_id: this.state.reportPreviewId,
155
+ start_time: this.state.startTime.toISOString(),
156
+ },
157
+ context: {
158
+ file_name: this.state.fileName,
159
+ partner_id: this.state.partnerId,
160
+ file_upload_id: this.state.fileUploadId,
161
+ signed_upload_id: this.state.signedUploadId,
162
+ message_id: this.state.messageId,
163
+ publish_time: this.state.publishTime,
164
+ file_mime_type: this.state.fileMimeType,
165
+ normalizer_name: this.state.normalizerName,
166
+ is_preview: this.state.isPreview,
167
+ report_preview_id: this.state.reportPreviewId,
168
+ },
169
+ labels: {
170
+ function_name: this.state.isPreview ? 'AgnosticParserReport' : 'AgnosticParser',
171
+ partner_id: this.state.partnerId,
172
+ is_preview: String(this.state.isPreview),
173
+ status: 'started',
174
+ },
175
+ }, message);
176
+ }
177
+ logProgress(percentage, step) {
178
+ if (this.state.currentStep && this.state.currentStep !== step) {
179
+ this.endStage();
180
+ }
181
+ this.startStage(step, percentage);
182
+ const now = new Date();
183
+ const cumulativeMs = this.state.stages
184
+ .filter((s) => s.durationMs !== undefined)
185
+ .reduce((sum, s) => sum + (s.durationMs || 0), 0);
186
+ const currentStage = this.state.stages[this.state.stages.length - 1];
187
+ const stageDurationMs = currentStage.durationMs || 0;
188
+ this.logger.info({
189
+ processing_progress: {
190
+ percentage,
191
+ step,
192
+ stage_duration_ms: stageDurationMs,
193
+ cumulative_duration_ms: cumulativeMs,
194
+ start_time: this.state.startTime?.toISOString(),
195
+ current_time: now.toISOString(),
196
+ },
197
+ context: {
198
+ file_name: this.state.fileName,
199
+ partner_id: this.state.partnerId,
200
+ file_upload_id: this.state.fileUploadId,
201
+ signed_upload_id: this.state.signedUploadId,
202
+ file_mime_type: this.state.fileMimeType,
203
+ normalizer_name: this.state.normalizerName,
204
+ is_preview: this.state.isPreview,
205
+ report_preview_id: this.state.reportPreviewId,
206
+ },
207
+ }, `Processing progress: ${percentage}% - ${step}`);
208
+ }
209
+ addMeasurement(count, type) {
210
+ switch (type) {
211
+ case 'measurements':
212
+ this.state.measurementsCount = count;
213
+ break;
214
+ case 'unknownMeasurements':
215
+ this.state.unknownMeasurementsCount = count;
216
+ break;
217
+ case 'unknownUnits':
218
+ this.state.unknownUnitsCount = count;
219
+ break;
220
+ case 'unmappedLabKeys':
221
+ this.state.unmappedLabKeysCount = count;
222
+ break;
223
+ default:
224
+ break;
225
+ }
226
+ }
227
+ addError(error, step) {
228
+ this.state.errors.push({ message: error.message, step, timestamp: new Date(), error });
229
+ }
230
+ addWarning(message, step) {
231
+ this.state.warnings.push({ message, step, timestamp: new Date() });
232
+ }
233
+ calculateStageDurations() {
234
+ if (!this.state.totalDurationMs || this.state.totalDurationMs === 0)
235
+ return;
236
+ this.state.stages.forEach((stage) => {
237
+ if (stage.durationMs !== undefined) {
238
+ stage.cumulativeDurationMs = this.state.stages
239
+ .slice(0, this.state.stages.indexOf(stage) + 1)
240
+ .filter((s) => s.durationMs !== undefined)
241
+ .reduce((sum, s) => sum + (s.durationMs || 0), 0);
242
+ }
243
+ });
244
+ }
245
+ formatStageDurations() {
246
+ const stageDurations = {};
247
+ this.state.stages.forEach((stage) => {
248
+ if (stage.durationMs !== undefined && this.state.totalDurationMs) {
249
+ const percentageOfTotal = (stage.durationMs / this.state.totalDurationMs) * 100;
250
+ stageDurations[stage.step] = {
251
+ duration_ms: stage.durationMs,
252
+ percentage_of_total: Number(percentageOfTotal.toFixed(2)),
253
+ start_time: stage.startTime.toISOString(),
254
+ end_time: stage.endTime?.toISOString(),
255
+ };
256
+ }
257
+ });
258
+ return stageDurations;
259
+ }
260
+ logEnd(success) {
261
+ if (this.state.currentStep)
262
+ this.endStage();
263
+ this.state.endTime = new Date();
264
+ if (this.state.startTime) {
265
+ this.state.totalDurationMs = this.state.endTime.getTime() - this.state.startTime.getTime();
266
+ }
267
+ this.calculateStageDurations();
268
+ const stageDurations = this.formatStageDurations();
269
+ this.state.success = success;
270
+ const message = this.state.isPreview
271
+ ? success ? 'Report preview processing completed' : 'Report preview processing failed'
272
+ : success ? 'Processing completed' : 'Processing failed';
273
+ this.logger.info({
274
+ processing_summary: {
275
+ success,
276
+ total_duration_ms: this.state.totalDurationMs,
277
+ measurements_count: this.state.measurementsCount || 0,
278
+ unknown_measurements_count: this.state.unknownMeasurementsCount || 0,
279
+ unknown_units_count: this.state.unknownUnitsCount || 0,
280
+ unmapped_lab_keys_count: this.state.unmappedLabKeysCount || 0,
281
+ progress_percentage: 100,
282
+ file_mime_type: this.state.fileMimeType,
283
+ normalizer_name: this.state.normalizerName,
284
+ is_preview: this.state.isPreview,
285
+ report_preview_id: this.state.reportPreviewId,
286
+ stage_durations: stageDurations,
287
+ errors_count: this.state.errors.length,
288
+ warnings_count: this.state.warnings.length,
289
+ },
290
+ context: {
291
+ file_name: this.state.fileName,
292
+ partner_id: this.state.partnerId,
293
+ partner_name: this.state.partnerName,
294
+ file_upload_id: this.state.fileUploadId,
295
+ signed_upload_id: this.state.signedUploadId,
296
+ cloud_event_id: this.state.cloudEventId,
297
+ file_mime_type: this.state.fileMimeType,
298
+ normalizer_name: this.state.normalizerName,
299
+ is_preview: this.state.isPreview,
300
+ report_preview_id: this.state.reportPreviewId,
301
+ },
302
+ labels: {
303
+ function_name: this.state.isPreview ? 'AgnosticParserReport' : 'AgnosticParser',
304
+ partner_id: this.state.partnerId,
305
+ file_upload_id: this.state.fileUploadId,
306
+ signed_upload_id: this.state.signedUploadId,
307
+ file_mime_type: this.state.fileMimeType,
308
+ normalizer_name: this.state.normalizerName,
309
+ is_preview: String(this.state.isPreview),
310
+ report_preview_id: this.state.reportPreviewId,
311
+ status: success ? 'success' : 'failed',
312
+ },
313
+ errors: this.state.errors.length > 0
314
+ ? this.state.errors.map((e) => ({
315
+ message: e.message,
316
+ step: e.step,
317
+ timestamp: e.timestamp.toISOString(),
318
+ }))
319
+ : undefined,
320
+ warnings: this.state.warnings.length > 0
321
+ ? this.state.warnings.map((w) => ({
322
+ message: w.message,
323
+ step: w.step,
324
+ timestamp: w.timestamp.toISOString(),
325
+ }))
326
+ : undefined,
327
+ }, message);
328
+ }
329
+ }
330
+ exports.processingLogger = ProcessingLoggerService.getInstance();
331
+ //# sourceMappingURL=processingLogger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processingLogger.service.js","sourceRoot":"","sources":["../../service/processingLogger.service.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.postDataImportFileUploadToCore = postDataImportFileUploadToCore;
7
7
  exports.postReportPreviewToCore = postReportPreviewToCore;
8
8
  const oht_types_1 = require("../types/oht.types");
9
- const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
10
- const logger = (0, pinoLogger_1.default)();
9
+ const processingLogger_service_1 = require("./processingLogger.service");
11
10
  const dotenv_1 = __importDefault(require("dotenv"));
12
11
  const dataUtils_1 = require("../util-ts/dataUtils");
13
12
  const apiUtils_1 = require("../util-ts/apiUtils");
@@ -28,41 +27,35 @@ async function postReportPreviewToCore(reportPreviewId, measurements, unknownMea
28
27
  measurements: measurements || [],
29
28
  unknownMeasurements: unknownMeasurements || [],
30
29
  };
31
- logger.info({
30
+ processingLogger_service_1.processingLogger.logInfo(`postReportPreviewToCore: Sending report preview to OHT Core API (${(measurements || []).length} measurements, ${(unknownMeasurements || []).length} unknownMeasurements), filename: ${filename}`, {
32
31
  filename,
33
- reportPreviewId,
34
- measurementsCount: (measurements || []).length,
35
- unknownMeasurementsCount: (unknownMeasurements || []).length,
36
- request: {
37
- method: 'POST',
38
- url: apiUrl,
39
- body: requestBody,
40
- },
41
- }, `postReportPreviewToCore: Sending report preview to OHT Core API (${(measurements || []).length} measurements, ${(unknownMeasurements || []).length} unknownMeasurements), filename: ${filename}`);
32
+ report_preview_id: reportPreviewId,
33
+ measurements_count: (measurements || []).length,
34
+ unknown_measurements_count: (unknownMeasurements || []).length,
35
+ request: { method: 'POST', url: apiUrl },
36
+ });
42
37
  try {
43
38
  const response = await (0, apiUtils_1.makeApiCallWithRetry)('post', apiUrl, requestBody, ohtCoreApiKey);
44
- logger.info({
39
+ const responseData = response?.data;
40
+ processingLogger_service_1.processingLogger.logInfo(`postReportPreviewToCore: Successfully sent report preview to OHT Core API (${(measurements || []).length} measurements, ${(unknownMeasurements || []).length} unknownMeasurements), filename: ${filename}`, {
45
41
  filename,
46
- reportPreviewId,
47
- measurementsCount: (measurements || []).length,
48
- unknownMeasurementsCount: (unknownMeasurements || []).length,
49
- response: response?.data,
50
- }, `postReportPreviewToCore: Successfully sent report preview to OHT Core API (${(measurements || []).length} measurements, ${(unknownMeasurements || []).length} unknownMeasurements), filename: ${filename}`);
42
+ report_preview_id: reportPreviewId,
43
+ measurements_count: (measurements || []).length,
44
+ unknown_measurements_count: (unknownMeasurements || []).length,
45
+ http_status: response?.status,
46
+ response_message: typeof responseData?.message === 'string' ? responseData.message : undefined,
47
+ response_status: responseData?.status,
48
+ });
51
49
  }
52
50
  catch (apiError) {
53
- const errorDetails = (0, apiUtils_1.parseErrorObj)(apiError);
54
- const httpResponse = errorDetails.responseData;
55
- logger.error({
51
+ processingLogger_service_1.processingLogger.logError(`postReportPreviewToCore: Failed to send report preview to OHT Core API, filename: ${filename}`, apiError instanceof Error ? apiError : undefined, {
56
52
  filename,
57
- reportPreviewId,
58
- measurementsCount: (measurements || []).length,
59
- unknownMeasurementsCount: (unknownMeasurements || []).length,
60
- errorType: apiError instanceof Error ? apiError.constructor.name : typeof apiError,
61
- errorMessage: apiError instanceof Error ? apiError.message : String(apiError),
62
- errorDetails,
63
- httpResponse,
64
- errorStack: apiError instanceof Error ? apiError.stack : undefined,
65
- }, `postReportPreviewToCore: Failed to send report preview to OHT Core API, filename: ${filename}`);
53
+ report_preview_id: reportPreviewId,
54
+ measurements_count: (measurements || []).length,
55
+ unknown_measurements_count: (unknownMeasurements || []).length,
56
+ error_details: (0, apiUtils_1.parseErrorObj)(apiError),
57
+ http_response: (0, apiUtils_1.parseErrorObj)(apiError).responseData,
58
+ });
66
59
  // Re-throw so the caller can handle it
67
60
  throw apiError;
68
61
  }
@@ -77,9 +70,9 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
77
70
  // Get the owner user binding to update the user with patient information
78
71
  const userBindingUrl = `${OHT_CORE_URL}/v1/useruploadbinding/useruploadbindings/${dataImportFileUpload.id}`;
79
72
  const userBindingResponse = await (0, apiUtils_1.makeApiCallWithRetry)('get', userBindingUrl, null, ohtCoreApiKey);
80
- logger.info({ response: userBindingResponse.data }, `Resp: GET BINDING /v1/useruploadbinding/useruploadbindings/${dataImportFileUpload.id}, filename: ${filename}`);
73
+ processingLogger_service_1.processingLogger.logInfo(`Resp: GET BINDING /v1/useruploadbinding/useruploadbindings/${dataImportFileUpload.id}, filename: ${filename}`, { response: userBindingResponse.data });
81
74
  if (!userBindingResponse?.data?.ownerUserId) {
82
- logger.error({ response: userBindingResponse?.data }, `ERROR: No ownerUserId found in binding response for fileUploadId: ${dataImportFileUpload.id}, filename: ${filename}`);
75
+ processingLogger_service_1.processingLogger.logError(`ERROR: No ownerUserId found in binding response for fileUploadId: ${dataImportFileUpload.id}, filename: ${filename}`, undefined, { response: userBindingResponse?.data });
83
76
  throw new Error(`No ownerUserId found for fileUploadId: ${dataImportFileUpload.id}`);
84
77
  }
85
78
  const ownerUserId = userBindingResponse.data.ownerUserId;
@@ -97,23 +90,23 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
97
90
  };
98
91
  const userUrl = `${OHT_CORE_URL}/v1/user/users/${ownerUserId}`;
99
92
  const userResponse = await (0, apiUtils_1.makeApiCallWithRetry)('patch', userUrl, userPayload, ohtCoreApiKey);
100
- logger.info({ response: userResponse.data }, `Resp: PATCH USER /v1/users/${ownerUserId}, filename: ${filename}`);
93
+ processingLogger_service_1.processingLogger.logInfo(`Resp: PATCH USER /v1/users/${ownerUserId}, filename: ${filename}`, { response: userResponse.data });
101
94
  try {
102
95
  // Send unknown measurements if they exist (before ingestion)
103
96
  if (unknownMeasurements.unmappedlabkeys.length > 0) {
104
97
  try {
105
98
  await (0, dataUtils_1.updatePartnerCustomParserUnmappedLabKeys)(dataImportFileUpload.partnerId, unknownMeasurements, ohtCoreApiKey);
106
- logger.info({
107
- partnerId: dataImportFileUpload.partnerId,
108
- unknownMeasurements: unknownMeasurements.unmappedlabkeys
109
- }, `Successfully sent unknown measurements to server, filename: ${filename}`);
99
+ processingLogger_service_1.processingLogger.logInfo(`Successfully sent unknown measurements to server, filename: ${filename}`, {
100
+ partner_id: dataImportFileUpload.partnerId,
101
+ unknown_measurements_count: unknownMeasurements.unmappedlabkeys.length,
102
+ });
110
103
  }
111
104
  catch (error) {
112
- logger.error({
113
- error: (0, apiUtils_1.parseErrorObj)(error),
114
- partnerId: dataImportFileUpload.partnerId,
115
- unknownMeasurements: unknownMeasurements.unmappedlabkeys
116
- }, `Failed to send unknown measurements to server, filename: ${filename}`);
105
+ processingLogger_service_1.processingLogger.logError(`Failed to send unknown measurements to server, filename: ${filename}`, error instanceof Error ? error : undefined, {
106
+ partner_id: dataImportFileUpload.partnerId,
107
+ unknown_measurements_count: unknownMeasurements.unmappedlabkeys.length,
108
+ error_details: (0, apiUtils_1.parseErrorObj)(error),
109
+ });
117
110
  }
118
111
  }
119
112
  if (unknownUnits.length > 0) {
@@ -121,11 +114,11 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
121
114
  await (0, dataUtils_1.bulkCreateCustomParserUnknownUnits)(dataImportFileUpload.partnerId, unknownUnits, ohtCoreApiKey);
122
115
  }
123
116
  catch (error) {
124
- logger.error({
125
- error: (0, apiUtils_1.parseErrorObj)(error),
126
- partnerId: dataImportFileUpload.partnerId,
127
- unknownUnits: unknownUnits
128
- }, `Failed to send unknown units to server, filename: ${filename}`);
117
+ processingLogger_service_1.processingLogger.logError(`Failed to send unknown units to server, filename: ${filename}`, error instanceof Error ? error : undefined, {
118
+ partner_id: dataImportFileUpload.partnerId,
119
+ unknown_units_count: unknownUnits.length,
120
+ error_details: (0, apiUtils_1.parseErrorObj)(error),
121
+ });
129
122
  }
130
123
  }
131
124
  // Use ingestion endpoint - handles report creation and READY status automatically
@@ -138,7 +131,7 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
138
131
  pipelineStep: oht_types_1.PipelineStep.SENDING_RESULTS,
139
132
  },
140
133
  }, ohtCoreApiKey);
141
- logger.info({ response: ingestionResponse.data }, `Resp: PATCH ingestion status: ${patchStatus} ${ohtCoreIngestionUrl}, filename: ${filename}`);
134
+ processingLogger_service_1.processingLogger.logInfo(`Resp: PATCH ingestion status: ${patchStatus} ${ohtCoreIngestionUrl}, filename: ${filename}`, { response: ingestionResponse.data });
142
135
  // Ingestion endpoint returns acknowledgment: { message: "Ingestion started", fileUploadId: "..." }
143
136
  // Processing (user updates, report creation, READY status) happens asynchronously in background
144
137
  // For PROCESSED status, it will automatically:
@@ -147,19 +140,18 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
147
140
  // - Set status to READY
148
141
  // - Trigger all notifications and webhooks
149
142
  if (!isReportParsedCorrectly || rejectedStatus !== undefined) {
150
- logger.warn({
151
- isReportParsedCorrectly,
152
- rejectedStatus,
153
- ingestionResponse: ingestionResponse.data,
154
- }, `Report not parsed correctly fileUploadID ${dataImportFileUpload.id}, filename: ${filename}`);
143
+ processingLogger_service_1.processingLogger.logWarn(`Report not parsed correctly fileUploadID ${dataImportFileUpload.id}, filename: ${filename}`, {
144
+ is_report_parsed_correctly: isReportParsedCorrectly,
145
+ rejected_status: rejectedStatus,
146
+ ingestion_response: ingestionResponse.data,
147
+ });
155
148
  }
156
149
  // Return null since ingestion is asynchronous and we don't have the updated file upload object
157
150
  // The caller should not rely on the returned value for status checking
158
151
  return null;
159
152
  }
160
153
  catch (error) {
161
- const errorDetail = (0, apiUtils_1.parseErrorObj)(error);
162
- logger.error({ patchStatus, resp: errorDetail }, `ERROR: on report generation url:${ohtCoreIngestionUrl} filename: ${filename}`);
154
+ processingLogger_service_1.processingLogger.logError(`ERROR: on report generation url:${ohtCoreIngestionUrl} filename: ${filename}`, error instanceof Error ? error : undefined, { patch_status: patchStatus, resp: (0, apiUtils_1.parseErrorObj)(error) });
163
155
  // Set digitalization error for tracking
164
156
  try {
165
157
  await (0, apiUtils_1.makeApiCallWithRetry)('patch', ohtCoreDigitalizationUrl, {
@@ -169,7 +161,7 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
169
161
  }, ohtCoreApiKey);
170
162
  }
171
163
  catch (digitalizationError) {
172
- logger.error({ digitalizationError: (0, apiUtils_1.parseErrorObj)(digitalizationError) }, `Failed to update digitalization status, filename: ${filename}`);
164
+ processingLogger_service_1.processingLogger.logError(`Failed to update digitalization status, filename: ${filename}`, digitalizationError instanceof Error ? digitalizationError : undefined, { digitalization_error: (0, apiUtils_1.parseErrorObj)(digitalizationError) });
173
165
  }
174
166
  // Re-throw error so it can be handled by the error handler in agnostic-parser
175
167
  // The error handler will detect 409 conflicts and update file upload status appropriately
@@ -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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"}
@@ -8,8 +8,7 @@ exports.sendMessageToSlack = sendMessageToSlack;
8
8
  exports.aggregateMessages = aggregateMessages;
9
9
  const axios_1 = __importDefault(require("axios"));
10
10
  const dotenv_1 = __importDefault(require("dotenv"));
11
- const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
12
- const logger = (0, pinoLogger_1.default)();
11
+ const processingLogger_service_1 = require("./processingLogger.service");
13
12
  dotenv_1.default.config({ path: `.env.local` });
14
13
  // Get the Slack webhook URL from the environment variable
15
14
  const slackWebhookUrl = process.env.SLACK_WEBHOOK_URL;
@@ -79,14 +78,14 @@ async function sendMessageToSlack(payload) {
79
78
  try {
80
79
  const response = await axios_1.default.post(slackWebhookUrl, payload);
81
80
  if (response.status === 200) {
82
- logger.info('Message successfully sent to Slack.');
81
+ processingLogger_service_1.processingLogger.logInfo('Message successfully sent to Slack.');
83
82
  }
84
83
  else {
85
- logger.info('Error sending message to Slack:', response.status, response.statusText);
84
+ processingLogger_service_1.processingLogger.logInfo('Error sending message to Slack:', { status: response.status, statusText: response.statusText });
86
85
  }
87
86
  }
88
87
  catch (error) {
89
- logger.warn('Error sending message to Slack:', error);
88
+ processingLogger_service_1.processingLogger.logWarn('Error sending message to Slack:', { error: error instanceof Error ? error.message : String(error) });
90
89
  }
91
90
  }
92
91
  //# sourceMappingURL=slackMessages.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slackMessages.service.js","sourceRoot":"","sources":["../../service/slackMessages.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slackMessages.service.js","sourceRoot":"","sources":["../../service/slackMessages.service.ts"],"names":[],"mappings":"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"}