@openhealth/oht-custom-parser-lib 0.5.49 → 0.5.50
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.
- package/dist/index.d.ts +3 -2
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/service/auxiliaryFunctions.service.d.ts +1 -8
- package/dist/service/auxiliaryFunctions.service.js +40 -11
- package/dist/service/auxiliaryFunctions.service.js.map +1 -1
- package/dist/service/ohtReportMeasurementsExtractor.service.d.ts +2 -4
- package/dist/service/ohtReportMeasurementsExtractor.service.js +49 -63
- package/dist/service/ohtReportMeasurementsExtractor.service.js.map +1 -1
- package/dist/service/parsingErrorService.service.d.ts +40 -0
- package/dist/service/parsingErrorService.service.js +251 -0
- package/dist/service/parsingErrorService.service.js.map +1 -0
- package/dist/service/processingLogger.service.d.ts +5 -0
- package/dist/service/processingLogger.service.js +52 -1
- package/dist/service/processingLogger.service.js.map +1 -1
- package/dist/types/error.types.d.ts +104 -0
- package/dist/types/error.types.js +240 -1
- package/dist/types/error.types.js.map +1 -1
- package/dist/util-ts/dataUtils.d.ts +1 -0
- package/dist/util-ts/dataUtils.js +15 -1
- package/dist/util-ts/dataUtils.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -7,10 +7,11 @@ export { aggregateMessages, aggregateBiMessages, publishToTopic, generateBIMessa
|
|
|
7
7
|
export { applyRules as applyTransformationRules, validateJsonataExpression as validateTransformationRuleExpression, } from './service/transformationRules.service';
|
|
8
8
|
export { LabToOhtContract, LabToOhtMapper, UnknownMeasurementExtraction, ReferenceAsAnnotation, UnitExtraction, RangeExtraction, RangeExtractionResponse, ValueExtraction, unitSynonyms, ValueExtractionResponse, SynonymUnit, UnknownUnits, TransformationRulesChains, } from './types/custom-parser.types';
|
|
9
9
|
export { AcfBiomarkerRangeAnnotationCheck, AcfBiomarkerGenericDisclaimerLogic, ManualCheck, BiomarkerCompatibility, ReferenceRangeType, AcfReferenceRange, VisualRange, NameAlias, AlternativeUnit, BiomarkerAcf, Biomarker, PipelineStep, DigitizationStatus, MeasurementValueComparator, BiomarkerValueType, DataImportFileUploadStatus, Sex, Digitization, PatientInfo, UnknownMeasurement, UnmappedLabKey, Measurement, DataImportFileUpload, MessagePayload, SignedUpload, ReportStyleConfig, LanguageCode, BiomarkerCustomisation, PartnerCustomPanel, ReportDisplaySettings, ReportCustomisation, OHTPartner, UploadType, PartnerCustomization, RejectReason, AnnotationLabKey, ExtractionPath, AnnotationConfig, OhtReport, OhtMetadata, OhtPatient, Exam, OhtExam, ExamKind, OhtRange, OriginalExam, } from './types/oht.types';
|
|
10
|
-
export { ErrorMessage, ErrorCode, ERROR_CATALOG, ERROR_MESSAGES, getErrorMessage, getRejectReason, } from './types/error.types';
|
|
10
|
+
export { ErrorMessage, ErrorCode, ERROR_CATALOG, ERROR_MESSAGES, getErrorMessage, getRejectReason, ParsingErrorType, ParsingErrorSeverity, PARSING_ERROR_CATALOG, LocalParsingError, ErrorProfilePayload, RecordParsingErrorDetails, } from './types/error.types';
|
|
11
11
|
export { handleError, ValidationError, JSON_VALIDATION_ERROR_NAME, shouldSendSlackNotification, extractFormattedRejectReason, mapErrorToRejectReason, } from './service/fileUploadErrorHandler.service';
|
|
12
12
|
export type { TransformationRule, TransformationContext, ApplyRulesResult as TransformationApplyRulesResult, ApplyRulesOptions as TransformationApplyRulesOptions, ValidationResult as TransformationValidationResult, } from './types/transformationRules.types';
|
|
13
|
-
export { processingLogger, ProcessingContext, StageDuration, getRequestIdFromContext, getRequestScopedFilename, runWithContext, runWithContextAsync, } from './service/processingLogger.service';
|
|
13
|
+
export { processingLogger, ProcessingContext, StageDuration, getRequestIdFromContext, getCurrentRequestId, getRequestScopedFilename, runWithContext, runWithContextAsync, } from './service/processingLogger.service';
|
|
14
|
+
export { parsingErrorService, initParsingErrorRequestState, clearParsingErrorRequestState, } from './service/parsingErrorService.service';
|
|
14
15
|
export { makeApiCallWithRetry, parseErrorObj } from './util-ts/apiUtils';
|
|
15
16
|
export { extractValue, isBiomarkerValueNumerical, isBiomarkerExternalNoVisualRange, processAppendedMappings, fetchSynonymUnits, resolveUnitFromSynonyms, extractFromPath, applyFormat } from './util-ts/dataUtils';
|
|
16
17
|
export { readFileFromBucket, uploadFileBufferToGCS } from './util-ts/googleStorageUtils';
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.mapToOhtReport = exports.fetchActiveMappingRules = exports.lisXmlToJson = exports.lisCsvToExamRows = exports.parseRange = exports.getMappedBiomarkersLatest = exports.getMappedBiomarkers = exports.getLowerThanPatterns = exports.getGreaterThanPatterns = exports.pinoLogger = exports.uploadFileBufferToGCS = exports.readFileFromBucket = exports.applyFormat = exports.extractFromPath = exports.resolveUnitFromSynonyms = exports.fetchSynonymUnits = exports.processAppendedMappings = exports.isBiomarkerExternalNoVisualRange = exports.isBiomarkerValueNumerical = exports.extractValue = exports.parseErrorObj = exports.makeApiCallWithRetry = exports.runWithContextAsync = exports.runWithContext = exports.getRequestScopedFilename = exports.getRequestIdFromContext = exports.processingLogger = exports.mapErrorToRejectReason = exports.extractFormattedRejectReason = void 0;
|
|
6
|
+
exports.ValidationError = exports.handleError = exports.PARSING_ERROR_CATALOG = exports.ParsingErrorType = exports.getRejectReason = exports.getErrorMessage = exports.ERROR_MESSAGES = exports.ERROR_CATALOG = exports.ErrorCode = exports.RejectReason = exports.UploadType = exports.Sex = exports.DataImportFileUploadStatus = exports.BiomarkerValueType = exports.MeasurementValueComparator = exports.DigitizationStatus = exports.PipelineStep = exports.ReferenceRangeType = exports.BiomarkerCompatibility = exports.ManualCheck = exports.AcfBiomarkerGenericDisclaimerLogic = exports.AcfBiomarkerRangeAnnotationCheck = exports.unitSynonyms = exports.validateTransformationRuleExpression = exports.applyTransformationRules = exports.generateBIMessages = exports.publishToTopic = exports.aggregateBiMessages = exports.aggregateMessages = exports.sendMessageToSlack = exports.getSlackFileIssueNotificationMessage = exports.extractValueFromGreaterLowerThan = exports.extractUnit = exports.getRangeFromPositionAndRegex = exports.parseExamValue = exports.extractReferenceAnnotation = exports.extractReferenceRanges = exports.checkValueForPlausibleValues = exports.ohtMeasurementsExtractor = exports.ohtReportMeasurementsExtractor = exports.getPartnerTransformationRules = exports.postFileUploadSetStatus = exports.queryFileUploadsWithFilters = exports.handleRejection = exports.getPatientAge = exports.isPatientAgeValid = exports.parseGender = exports.parseExternalPatientId = exports.postReportPreviewToCore = exports.postDataImportFileUploadToCore = void 0;
|
|
7
|
+
exports.mapToOhtReport = exports.fetchActiveMappingRules = exports.lisXmlToJson = exports.lisCsvToExamRows = exports.parseRange = exports.getMappedBiomarkersLatest = exports.getMappedBiomarkers = exports.getLowerThanPatterns = exports.getGreaterThanPatterns = exports.pinoLogger = exports.uploadFileBufferToGCS = exports.readFileFromBucket = exports.applyFormat = exports.extractFromPath = exports.resolveUnitFromSynonyms = exports.fetchSynonymUnits = exports.processAppendedMappings = exports.isBiomarkerExternalNoVisualRange = exports.isBiomarkerValueNumerical = exports.extractValue = exports.parseErrorObj = exports.makeApiCallWithRetry = exports.clearParsingErrorRequestState = exports.initParsingErrorRequestState = exports.parsingErrorService = exports.runWithContextAsync = exports.runWithContext = exports.getRequestScopedFilename = exports.getCurrentRequestId = exports.getRequestIdFromContext = exports.processingLogger = exports.mapErrorToRejectReason = exports.extractFormattedRejectReason = exports.shouldSendSlackNotification = exports.JSON_VALIDATION_ERROR_NAME = void 0;
|
|
8
8
|
// ### SERVICES ###
|
|
9
9
|
var reportCreator_service_1 = require("./service/reportCreator.service");
|
|
10
10
|
Object.defineProperty(exports, "postDataImportFileUploadToCore", { enumerable: true, get: function () { return reportCreator_service_1.postDataImportFileUploadToCore; } });
|
|
@@ -63,6 +63,8 @@ Object.defineProperty(exports, "ERROR_CATALOG", { enumerable: true, get: functio
|
|
|
63
63
|
Object.defineProperty(exports, "ERROR_MESSAGES", { enumerable: true, get: function () { return error_types_1.ERROR_MESSAGES; } });
|
|
64
64
|
Object.defineProperty(exports, "getErrorMessage", { enumerable: true, get: function () { return error_types_1.getErrorMessage; } });
|
|
65
65
|
Object.defineProperty(exports, "getRejectReason", { enumerable: true, get: function () { return error_types_1.getRejectReason; } });
|
|
66
|
+
Object.defineProperty(exports, "ParsingErrorType", { enumerable: true, get: function () { return error_types_1.ParsingErrorType; } });
|
|
67
|
+
Object.defineProperty(exports, "PARSING_ERROR_CATALOG", { enumerable: true, get: function () { return error_types_1.PARSING_ERROR_CATALOG; } });
|
|
66
68
|
var fileUploadErrorHandler_service_1 = require("./service/fileUploadErrorHandler.service");
|
|
67
69
|
Object.defineProperty(exports, "handleError", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.handleError; } });
|
|
68
70
|
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.ValidationError; } });
|
|
@@ -74,9 +76,14 @@ Object.defineProperty(exports, "mapErrorToRejectReason", { enumerable: true, get
|
|
|
74
76
|
var processingLogger_service_1 = require("./service/processingLogger.service");
|
|
75
77
|
Object.defineProperty(exports, "processingLogger", { enumerable: true, get: function () { return processingLogger_service_1.processingLogger; } });
|
|
76
78
|
Object.defineProperty(exports, "getRequestIdFromContext", { enumerable: true, get: function () { return processingLogger_service_1.getRequestIdFromContext; } });
|
|
79
|
+
Object.defineProperty(exports, "getCurrentRequestId", { enumerable: true, get: function () { return processingLogger_service_1.getCurrentRequestId; } });
|
|
77
80
|
Object.defineProperty(exports, "getRequestScopedFilename", { enumerable: true, get: function () { return processingLogger_service_1.getRequestScopedFilename; } });
|
|
78
81
|
Object.defineProperty(exports, "runWithContext", { enumerable: true, get: function () { return processingLogger_service_1.runWithContext; } });
|
|
79
82
|
Object.defineProperty(exports, "runWithContextAsync", { enumerable: true, get: function () { return processingLogger_service_1.runWithContextAsync; } });
|
|
83
|
+
var parsingErrorService_service_1 = require("./service/parsingErrorService.service");
|
|
84
|
+
Object.defineProperty(exports, "parsingErrorService", { enumerable: true, get: function () { return parsingErrorService_service_1.parsingErrorService; } });
|
|
85
|
+
Object.defineProperty(exports, "initParsingErrorRequestState", { enumerable: true, get: function () { return parsingErrorService_service_1.initParsingErrorRequestState; } });
|
|
86
|
+
Object.defineProperty(exports, "clearParsingErrorRequestState", { enumerable: true, get: function () { return parsingErrorService_service_1.clearParsingErrorRequestState; } });
|
|
80
87
|
// ### UTIL-TS ###
|
|
81
88
|
var apiUtils_1 = require("./util-ts/apiUtils");
|
|
82
89
|
Object.defineProperty(exports, "makeApiCallWithRetry", { enumerable: true, get: function () { return apiUtils_1.makeApiCallWithRetry; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;AAAA,mBAAmB;AACnB,yEAGyC;AAFvC,uIAAA,8BAA8B,OAAA;AAC9B,gIAAA,uBAAuB,OAAA;AAEzB,mFAU8C;AAT5C,oIAAA,sBAAsB,OAAA;AACtB,yHAAA,WAAW,OAAA;AACX,+HAAA,iBAAiB,OAAA;AACjB,2HAAA,aAAa,OAAA;AACb,6HAAA,eAAe,OAAA;AACf,yIAAA,2BAA2B,OAAA;AAC3B,qIAAA,uBAAuB,OAAA;AAEvB,2IAAA,6BAA6B,OAAA;AAG/B,2GAE0D;AADxD,wJAAA,8BAA8B,OAAA;AAGhC,+FASoD;AARlD,4IAAA,wBAAwB,OAAA;AACxB,gJAAA,4BAA4B,OAAA;AAC5B,0IAAA,sBAAsB,OAAA;AACtB,8IAAA,0BAA0B,OAAA;AAC1B,kIAAA,cAAc,OAAA;AACd,gJAAA,4BAA4B,OAAA;AAC5B,+HAAA,WAAW,OAAA;AACX,oJAAA,gCAAgC,OAAA;AAGlC,yEAEyC;AADvC,6IAAA,oCAAoC,OAAA;AAAE,2HAAA,kBAAkB,OAAA;AAE1D,yEAKyC;AAJvC,0HAAA,iBAAiB,OAAA;AACjB,4HAAA,mBAAmB,OAAA;AACnB,uHAAA,cAAc,OAAA;AACd,2HAAA,kBAAkB,OAAA;AAEpB,qFAG+C;AAF7C,uIAAA,UAAU,OAA4B;AACtC,mJAAA,yBAAyB,OAAwC;AAGnE,gBAAgB;AAChB,mEAcqC;AALnC,mHAAA,YAAY,OAAA;AAMd,+CA+C2B;AA9CzB,6HAAA,gCAAgC,OAAA;AAChC,+HAAA,kCAAkC,OAAA;AAClC,wGAAA,WAAW,OAAA;AACX,mHAAA,sBAAsB,OAAA;AACtB,+GAAA,kBAAkB,OAAA;AAOlB,yGAAA,YAAY,OAAA;AACZ,+GAAA,kBAAkB,OAAA;AAClB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,kBAAkB,OAAA;AAClB,uHAAA,0BAA0B,OAAA;AAC1B,gGAAA,GAAG,OAAA;AAgBH,uGAAA,UAAU,OAAA;AAEV,yGAAA,YAAY,OAAA;AAad,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;AAAA,mBAAmB;AACnB,yEAGyC;AAFvC,uIAAA,8BAA8B,OAAA;AAC9B,gIAAA,uBAAuB,OAAA;AAEzB,mFAU8C;AAT5C,oIAAA,sBAAsB,OAAA;AACtB,yHAAA,WAAW,OAAA;AACX,+HAAA,iBAAiB,OAAA;AACjB,2HAAA,aAAa,OAAA;AACb,6HAAA,eAAe,OAAA;AACf,yIAAA,2BAA2B,OAAA;AAC3B,qIAAA,uBAAuB,OAAA;AAEvB,2IAAA,6BAA6B,OAAA;AAG/B,2GAE0D;AADxD,wJAAA,8BAA8B,OAAA;AAGhC,+FASoD;AARlD,4IAAA,wBAAwB,OAAA;AACxB,gJAAA,4BAA4B,OAAA;AAC5B,0IAAA,sBAAsB,OAAA;AACtB,8IAAA,0BAA0B,OAAA;AAC1B,kIAAA,cAAc,OAAA;AACd,gJAAA,4BAA4B,OAAA;AAC5B,+HAAA,WAAW,OAAA;AACX,oJAAA,gCAAgC,OAAA;AAGlC,yEAEyC;AADvC,6IAAA,oCAAoC,OAAA;AAAE,2HAAA,kBAAkB,OAAA;AAE1D,yEAKyC;AAJvC,0HAAA,iBAAiB,OAAA;AACjB,4HAAA,mBAAmB,OAAA;AACnB,uHAAA,cAAc,OAAA;AACd,2HAAA,kBAAkB,OAAA;AAEpB,qFAG+C;AAF7C,uIAAA,UAAU,OAA4B;AACtC,mJAAA,yBAAyB,OAAwC;AAGnE,gBAAgB;AAChB,mEAcqC;AALnC,mHAAA,YAAY,OAAA;AAMd,+CA+C2B;AA9CzB,6HAAA,gCAAgC,OAAA;AAChC,+HAAA,kCAAkC,OAAA;AAClC,wGAAA,WAAW,OAAA;AACX,mHAAA,sBAAsB,OAAA;AACtB,+GAAA,kBAAkB,OAAA;AAOlB,yGAAA,YAAY,OAAA;AACZ,+GAAA,kBAAkB,OAAA;AAClB,uHAAA,0BAA0B,OAAA;AAC1B,+GAAA,kBAAkB,OAAA;AAClB,uHAAA,0BAA0B,OAAA;AAC1B,gGAAA,GAAG,OAAA;AAgBH,uGAAA,UAAU,OAAA;AAEV,yGAAA,YAAY,OAAA;AAad,mDAa6B;AAX3B,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,6GAAA,cAAc,OAAA;AACd,8GAAA,eAAe,OAAA;AACf,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAEhB,oHAAA,qBAAqB,OAAA;AAKvB,2FAOkD;AANhD,6HAAA,WAAW,OAAA;AACX,iIAAA,eAAe,OAAA;AACf,4IAAA,0BAA0B,OAAA;AAC1B,6IAAA,2BAA2B,OAAA;AAC3B,8IAAA,4BAA4B,OAAA;AAC5B,wIAAA,sBAAsB,OAAA;AAUxB,4BAA4B;AAC5B,+EAS4C;AAR1C,4HAAA,gBAAgB,OAAA;AAGhB,mIAAA,uBAAuB,OAAA;AACvB,+HAAA,mBAAmB,OAAA;AACnB,oIAAA,wBAAwB,OAAA;AACxB,0HAAA,cAAc,OAAA;AACd,+HAAA,mBAAmB,OAAA;AAGrB,qFAI+C;AAH7C,kIAAA,mBAAmB,OAAA;AACnB,2IAAA,4BAA4B,OAAA;AAC5B,4IAAA,6BAA6B,OAAA;AAG/B,kBAAkB;AAClB,+CAAuE;AAA/D,gHAAA,oBAAoB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAC3C,iDAAiN;AAAzM,yGAAA,YAAY,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AAAE,6HAAA,gCAAgC,OAAA;AAAE,oHAAA,uBAAuB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,oHAAA,uBAAuB,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,wGAAA,WAAW,OAAA;AACpL,mEAAuF;AAA/E,wHAAA,kBAAkB,OAAA;AAAE,2HAAA,qBAAqB,OAAA;AACjD,mDAA2D;AAAnD,yHAAA,OAAO,OAAc;AAC7B,mDAAkF;AAA1E,oHAAA,sBAAsB,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AACpD,iDAAmF;AAA3E,gHAAA,mBAAmB,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AACtD,6DAAqD;AAA7C,6GAAA,UAAU,OAAA;AAClB,qDAI+B;AAH7B,+GAAA,gBAAgB,OAAA;AAChB,2GAAA,YAAY,OAAA;AACZ,sHAAA,uBAAuB,OAAA;AAIzB,4BAA4B;AAC5B,6EAAmE;AAA1D,yHAAA,cAAc,OAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ErrorMessage } from '../types/error.types';
|
|
2
1
|
import { DataImportFileUpload, DataImportFileUploadStatus, DigitizationStatus, PipelineStep, RejectReason, Sex } from "../types/oht.types";
|
|
3
2
|
import dayjs from 'dayjs';
|
|
4
3
|
import { TransformationRulesChains } from "../types/custom-parser.types";
|
|
@@ -12,14 +11,8 @@ declare function parseGender(patientGender?: string): {
|
|
|
12
11
|
/**
|
|
13
12
|
* Maps parse type and error context to appropriate rejection reason
|
|
14
13
|
* Uses a priority-based approach to ensure the most specific reason is selected
|
|
15
|
-
*
|
|
16
|
-
* @param parseType - The type of parsing that failed (e.g., "age", "exam date", "units")
|
|
17
|
-
* @param errorMessages - Array to append error messages to
|
|
18
|
-
* @param notifySlack - notifySlack
|
|
19
|
-
* @param notifyNotes - notifyNotes
|
|
20
|
-
* @returns Object containing rejectedStatus and rejectReason
|
|
21
14
|
*/
|
|
22
|
-
declare function handleRejection(parseType: string,
|
|
15
|
+
declare function handleRejection(parseType: string, notifySlack?: boolean, notifyNotes?: boolean, notifyBi?: boolean): {
|
|
23
16
|
rejectedStatus: string;
|
|
24
17
|
rejectReason: RejectReason.INVALID_DATA_NO_BIOMARKER_DATA | RejectReason.LOW_IMAGE_QUALITY | RejectReason.NO_IN_PANEL_BIOMARKER | RejectReason.UNDERAGE_PERSON | RejectReason.LANGUAGE_NOT_SUPPORTED | RejectReason.IMPLAUSIBLE_DATA | RejectReason.MISSING_EXAM_DATE | RejectReason.MISSING_LAB_ORDER_ID | RejectReason.MISSING_EXTERNAL_PATIENT_ID | RejectReason.MISSING_PATIENT_SEX | RejectReason.MISSING_PATIENT_BIRTHDATE | RejectReason.UNSUPPORTED_UPLOAD | RejectReason.INCOMPLETE_DATA | RejectReason.NOT_AN_OFFICIAL_REPORT;
|
|
25
18
|
};
|
|
@@ -14,6 +14,8 @@ exports.getPartnerTransformationRules = getPartnerTransformationRules;
|
|
|
14
14
|
const moment_1 = __importDefault(require("moment/moment"));
|
|
15
15
|
const apiUtils_1 = require("../util-ts/apiUtils");
|
|
16
16
|
const processingLogger_service_1 = require("./processingLogger.service");
|
|
17
|
+
const parsingErrorService_service_1 = require("./parsingErrorService.service");
|
|
18
|
+
const error_types_1 = require("../types/error.types");
|
|
17
19
|
const oht_types_1 = require("../types/oht.types");
|
|
18
20
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
19
21
|
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
@@ -57,14 +59,8 @@ function parseGender(patientGender) {
|
|
|
57
59
|
/**
|
|
58
60
|
* Maps parse type and error context to appropriate rejection reason
|
|
59
61
|
* Uses a priority-based approach to ensure the most specific reason is selected
|
|
60
|
-
*
|
|
61
|
-
* @param parseType - The type of parsing that failed (e.g., "age", "exam date", "units")
|
|
62
|
-
* @param errorMessages - Array to append error messages to
|
|
63
|
-
* @param notifySlack - notifySlack
|
|
64
|
-
* @param notifyNotes - notifyNotes
|
|
65
|
-
* @returns Object containing rejectedStatus and rejectReason
|
|
66
62
|
*/
|
|
67
|
-
function handleRejection(parseType,
|
|
63
|
+
function handleRejection(parseType, notifySlack = true, notifyNotes = false, notifyBi = false) {
|
|
68
64
|
const rejectedStatus = 'REJECTED';
|
|
69
65
|
const lowerParseType = parseType.toLowerCase();
|
|
70
66
|
// Priority-based mapping: check most specific cases first
|
|
@@ -138,12 +134,45 @@ function handleRejection(parseType, errorMessages, notifySlack = true, notifyNot
|
|
|
138
134
|
else {
|
|
139
135
|
rejectReason = oht_types_1.RejectReason.INVALID_DATA_NO_BIOMARKER_DATA;
|
|
140
136
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
137
|
+
const errorType = resolveRejectionParsingErrorType(lowerParseType, rejectReason);
|
|
138
|
+
const messageSuffix = errorType === error_types_1.ParsingErrorType.FATAL_VALIDATION
|
|
139
|
+
? `File rejected: ${parseType} parsing failed. Reason: ${rejectReason}`
|
|
140
|
+
: String(rejectReason);
|
|
141
|
+
parsingErrorService_service_1.parsingErrorService.record(errorType, {
|
|
142
|
+
messageSuffix,
|
|
143
|
+
rejectReason,
|
|
144
|
+
}, { notifySlack, notifyNotes, notifyBi });
|
|
145
145
|
return { rejectedStatus, rejectReason };
|
|
146
146
|
}
|
|
147
|
+
function resolveRejectionParsingErrorType(lowerParseType, rejectReason) {
|
|
148
|
+
if (lowerParseType === 'patientage' || lowerParseType === 'patient age') {
|
|
149
|
+
return error_types_1.ParsingErrorType.REJECTED_UNDERAGE_PATIENT;
|
|
150
|
+
}
|
|
151
|
+
if (lowerParseType === 'patientexternalid' ||
|
|
152
|
+
lowerParseType === 'patient external id' ||
|
|
153
|
+
lowerParseType === 'patient externalid') {
|
|
154
|
+
return error_types_1.ParsingErrorType.REJECTED_MISSING_PATIENT_ID;
|
|
155
|
+
}
|
|
156
|
+
if (lowerParseType === 'patientsex' || lowerParseType === 'patient sex') {
|
|
157
|
+
return error_types_1.ParsingErrorType.REJECTED_MISSING_PATIENT_SEX;
|
|
158
|
+
}
|
|
159
|
+
if (lowerParseType.includes('biomarker')) {
|
|
160
|
+
return error_types_1.ParsingErrorType.REJECTED_NO_BIOMARKERS;
|
|
161
|
+
}
|
|
162
|
+
if (rejectReason === oht_types_1.RejectReason.UNDERAGE_PERSON) {
|
|
163
|
+
return error_types_1.ParsingErrorType.REJECTED_UNDERAGE_PATIENT;
|
|
164
|
+
}
|
|
165
|
+
if (rejectReason === oht_types_1.RejectReason.MISSING_EXTERNAL_PATIENT_ID) {
|
|
166
|
+
return error_types_1.ParsingErrorType.REJECTED_MISSING_PATIENT_ID;
|
|
167
|
+
}
|
|
168
|
+
if (rejectReason === oht_types_1.RejectReason.MISSING_PATIENT_SEX) {
|
|
169
|
+
return error_types_1.ParsingErrorType.REJECTED_MISSING_PATIENT_SEX;
|
|
170
|
+
}
|
|
171
|
+
if (rejectReason === oht_types_1.RejectReason.NO_IN_PANEL_BIOMARKER) {
|
|
172
|
+
return error_types_1.ParsingErrorType.REJECTED_NO_BIOMARKERS;
|
|
173
|
+
}
|
|
174
|
+
return error_types_1.ParsingErrorType.FATAL_VALIDATION;
|
|
175
|
+
}
|
|
147
176
|
async function queryFileUploadsWithFilters(filters, ohtCoreApiKey) {
|
|
148
177
|
const OHT_CORE_URL = process.env.OHT_CORE_URL;
|
|
149
178
|
const ohtCoreUrl = `${OHT_CORE_URL}/v1/file-uploads/query`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auxiliaryFunctions.service.js","sourceRoot":"","sources":["../../service/auxiliaryFunctions.service.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"auxiliaryFunctions.service.js","sourceRoot":"","sources":["../../service/auxiliaryFunctions.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { UnknownUnits } from "../types/custom-parser.types";
|
|
2
2
|
import { Measurement, PatientInfo, UnknownMeasurement, Exam, UnmappedLabKey, PartnerCustomization } from "../types/oht.types";
|
|
3
|
-
import { ErrorMessage } from "../types/error.types";
|
|
4
3
|
/**
|
|
5
4
|
* Extracts measurements from OHT report exams by processing each exam through biomarker mapping,
|
|
6
5
|
* transformation rules, and value extraction.
|
|
@@ -121,7 +120,7 @@ import { ErrorMessage } from "../types/error.types";
|
|
|
121
120
|
* - `isReportCorrectlyParsed`: Boolean indicating if all measurements were parsed correctly
|
|
122
121
|
*
|
|
123
122
|
* ## Error Handling:
|
|
124
|
-
* - All errors are
|
|
123
|
+
* - All errors are recorded via `parsingErrorService.record()`
|
|
125
124
|
* - Errors are categorized by destination (slack, notes, bi)
|
|
126
125
|
* - Processing continues even if individual exams fail
|
|
127
126
|
* - Errors are logged with context (filename, labKey, ohtBmId, etc.)
|
|
@@ -141,12 +140,11 @@ import { ErrorMessage } from "../types/error.types";
|
|
|
141
140
|
* @param allowMultiMeasurementsPerBiomarker - Whether to allow multiple measurements per biomarker ID
|
|
142
141
|
* @param ohtCoreApiKey - API key for OHT Core API calls
|
|
143
142
|
* @param partnerId - Partner ID for fetching biomarker mappings and synonym units
|
|
144
|
-
* @param errorMessages - Array to accumulate error messages (modified in-place)
|
|
145
143
|
* @param isReportPreview - isReportPreview Report Simulator
|
|
146
144
|
* @param partnerCustomization - `panelCustomisation` and `reportCustomisation` coming from `partnerConfig`.
|
|
147
145
|
* @returns Promise resolving to extraction result with measurements, unknownMeasurements, unknownUnits, unmappedLabKeys, and parsing status
|
|
148
146
|
*/
|
|
149
|
-
declare function ohtReportMeasurementsExtractor(isReportPreview: boolean, exams: Exam[], sourceFilename: string, patientInfo: PatientInfo, documentDate: Date | undefined, allowMultiMeasurementsPerBiomarker: boolean, ohtCoreApiKey: string, partnerId: string,
|
|
147
|
+
declare function ohtReportMeasurementsExtractor(isReportPreview: boolean, exams: Exam[], sourceFilename: string, patientInfo: PatientInfo, documentDate: Date | undefined, allowMultiMeasurementsPerBiomarker: boolean, ohtCoreApiKey: string, partnerId: string, partnerCustomization?: PartnerCustomization): Promise<{
|
|
150
148
|
measurements: Measurement[];
|
|
151
149
|
unknownMeasurements: UnknownMeasurement[];
|
|
152
150
|
unknownUnits: UnknownUnits[];
|
|
@@ -43,6 +43,8 @@ const extractionUtils_1 = require("../util-ts/extractionUtils");
|
|
|
43
43
|
const processingLogger_service_1 = require("./processingLogger.service");
|
|
44
44
|
const apiUtils_1 = require("../util-ts/apiUtils");
|
|
45
45
|
const oht_types_1 = require("../types/oht.types");
|
|
46
|
+
const error_types_1 = require("../types/error.types");
|
|
47
|
+
const parsingErrorService_service_1 = require("./parsingErrorService.service");
|
|
46
48
|
const path = __importStar(require("path"));
|
|
47
49
|
const fs = __importStar(require("fs"));
|
|
48
50
|
// Import version from package.json file
|
|
@@ -84,6 +86,10 @@ const OHT_CORE_URL = process.env.OHT_CORE_URL;
|
|
|
84
86
|
* Current filename being processed (global state for error reporting)
|
|
85
87
|
*/
|
|
86
88
|
let filename = '';
|
|
89
|
+
function resolveUnknownMeasurementName(parts, fallback) {
|
|
90
|
+
const name = parts.filter((part) => part?.trim()).join(':');
|
|
91
|
+
return name || fallback;
|
|
92
|
+
}
|
|
87
93
|
/**
|
|
88
94
|
* Extracts measurements from OHT report exams by processing each exam through biomarker mapping,
|
|
89
95
|
* transformation rules, and value extraction.
|
|
@@ -204,7 +210,7 @@ let filename = '';
|
|
|
204
210
|
* - `isReportCorrectlyParsed`: Boolean indicating if all measurements were parsed correctly
|
|
205
211
|
*
|
|
206
212
|
* ## Error Handling:
|
|
207
|
-
* - All errors are
|
|
213
|
+
* - All errors are recorded via `parsingErrorService.record()`
|
|
208
214
|
* - Errors are categorized by destination (slack, notes, bi)
|
|
209
215
|
* - Processing continues even if individual exams fail
|
|
210
216
|
* - Errors are logged with context (filename, labKey, ohtBmId, etc.)
|
|
@@ -224,12 +230,11 @@ let filename = '';
|
|
|
224
230
|
* @param allowMultiMeasurementsPerBiomarker - Whether to allow multiple measurements per biomarker ID
|
|
225
231
|
* @param ohtCoreApiKey - API key for OHT Core API calls
|
|
226
232
|
* @param partnerId - Partner ID for fetching biomarker mappings and synonym units
|
|
227
|
-
* @param errorMessages - Array to accumulate error messages (modified in-place)
|
|
228
233
|
* @param isReportPreview - isReportPreview Report Simulator
|
|
229
234
|
* @param partnerCustomization - `panelCustomisation` and `reportCustomisation` coming from `partnerConfig`.
|
|
230
235
|
* @returns Promise resolving to extraction result with measurements, unknownMeasurements, unknownUnits, unmappedLabKeys, and parsing status
|
|
231
236
|
*/
|
|
232
|
-
async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFilename, patientInfo, documentDate, allowMultiMeasurementsPerBiomarker, ohtCoreApiKey, partnerId,
|
|
237
|
+
async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFilename, patientInfo, documentDate, allowMultiMeasurementsPerBiomarker, ohtCoreApiKey, partnerId, partnerCustomization) {
|
|
233
238
|
filename = sourceFilename;
|
|
234
239
|
const measurements = [];
|
|
235
240
|
const unknownMeasurements = [];
|
|
@@ -241,9 +246,8 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
241
246
|
if (labKeys.length === 0) {
|
|
242
247
|
const errorMsg = `No lab keys found, filename: ${(0, processingLogger_service_1.getRequestScopedFilename)(filename)}`;
|
|
243
248
|
processingLogger_service_1.processingLogger.logError(errorMsg);
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
message: errorMsg,
|
|
249
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.NO_LAB_KEYS, {
|
|
250
|
+
messageSuffix: (0, processingLogger_service_1.getRequestScopedFilename)(filename),
|
|
247
251
|
});
|
|
248
252
|
return {
|
|
249
253
|
measurements,
|
|
@@ -390,16 +394,10 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
390
394
|
let isMeasurementCorrectlyParsed = true;
|
|
391
395
|
// if BM is already in measurements and multiple measurements are not allowed, continue to the next one
|
|
392
396
|
if (!allowMultiMeasurementsPerBiomarker && measurements.some(measurement => measurement.biomarkerId === finalOhtBmId)) {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
data: { ohtBmId: finalOhtBmId, labKey },
|
|
398
|
-
});
|
|
399
|
-
errorMessages.push({
|
|
400
|
-
destination: { slack: false, notes: false, bi: true },
|
|
401
|
-
message: `Biomarkers Duplicated keys:[PLACEHOLDER]`,
|
|
402
|
-
item: `bmId:${finalOhtBmId}, labKey:${transformedExamObj.labKey}`
|
|
397
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.DUPLICATE_BIOMARKER, {
|
|
398
|
+
labKey: transformedExamObj.labKey,
|
|
399
|
+
biomarkerId: finalOhtBmId,
|
|
400
|
+
item: `bmId:${finalOhtBmId}, labKey:${transformedExamObj.labKey}`,
|
|
403
401
|
});
|
|
404
402
|
continue;
|
|
405
403
|
}
|
|
@@ -409,16 +407,11 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
409
407
|
`name:${ohtBiomarker.acf.shortName}, bmId:${finalOhtBmId}, labKey:${transformedExamObj.labKey}` :
|
|
410
408
|
`bmId:${finalOhtBmId}, labKey:${transformedExamObj.labKey}`;
|
|
411
409
|
if (!ohtBiomarker) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
});
|
|
418
|
-
errorMessages.push({
|
|
419
|
-
destination: { slack: true, notes: true, bi: true },
|
|
420
|
-
message: `Biomarker not found for:[PLACEHOLDER]`,
|
|
421
|
-
item: `${bmInfo}`
|
|
410
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.BIOMARKER_NOT_FOUND, {
|
|
411
|
+
labKey: transformedExamObj.labKey,
|
|
412
|
+
biomarkerId: finalOhtBmId,
|
|
413
|
+
item: `${bmInfo}`,
|
|
414
|
+
errorTrace: { ohtBmId: finalOhtBmId, labKey: transformedExamObj.labKey },
|
|
422
415
|
});
|
|
423
416
|
continue;
|
|
424
417
|
}
|
|
@@ -440,24 +433,26 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
440
433
|
});
|
|
441
434
|
}
|
|
442
435
|
if (!isUnitParsedCorrectly) {
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
});
|
|
449
|
-
errorMessages.push({
|
|
450
|
-
destination: { slack: true, notes: true, bi: true },
|
|
451
|
-
message: `Unit not extracted correctly for:[PLACEHOLDER]`,
|
|
452
|
-
item: `${bmInfo}, unit:${unit}`
|
|
436
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.UNIT_NOT_EXTRACTED, {
|
|
437
|
+
labKey: transformedExamObj.labKey,
|
|
438
|
+
biomarkerId: finalOhtBmId,
|
|
439
|
+
item: `${bmInfo}, unit:${unit}`,
|
|
440
|
+
errorTrace: { unit },
|
|
453
441
|
});
|
|
454
442
|
isMeasurementCorrectlyParsed = false;
|
|
455
443
|
}
|
|
456
444
|
let { valueType, alphanumericalValue, numberValue, valueComparator, isValueParsedCorrectly } = (0, extractionUtils_1.ohtReportParseExamValue)(transformedExamObj, ohtBiomarker);
|
|
457
445
|
if ((0, dataUtils_1.isNumericalWithoutValidResult)(valueType, numberValue, alphanumericalValue)) {
|
|
458
446
|
const alphanumericalValueTrimmed = alphanumericalValue?.trim() ?? '';
|
|
447
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.NUMERIC_BIOMARKER_ALPHANUMERIC_VALUE, {
|
|
448
|
+
labKey: transformedExamObj.labKey,
|
|
449
|
+
biomarkerId: finalOhtBmId,
|
|
450
|
+
item: `${bmInfo}, value:${alphanumericalValueTrimmed}`,
|
|
451
|
+
ohtExam: transformedExamObj,
|
|
452
|
+
originalExam: originalExam ?? undefined,
|
|
453
|
+
});
|
|
459
454
|
const unknownMeasurement = {
|
|
460
|
-
biomarkerName: transformedExamObj.description
|
|
455
|
+
biomarkerName: resolveUnknownMeasurementName([transformedExamObj.description], transformedExamObj.labKey || labKey || '(unmapped measurement)'),
|
|
461
456
|
value: alphanumericalValueTrimmed,
|
|
462
457
|
unit: unit ?? '',
|
|
463
458
|
annotation: transformedExamObj.annotation ?? '',
|
|
@@ -478,16 +473,11 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
478
473
|
continue;
|
|
479
474
|
}
|
|
480
475
|
if (!isValueParsedCorrectly) {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
});
|
|
487
|
-
errorMessages.push({
|
|
488
|
-
destination: { slack: true, notes: true, bi: true },
|
|
489
|
-
message: `Value not extracted correctly for:[PLACEHOLDER]`,
|
|
490
|
-
item: `${bmInfo}, value:${numberValue}${unit}`
|
|
476
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.VALUE_NOT_EXTRACTED, {
|
|
477
|
+
labKey: transformedExamObj.labKey,
|
|
478
|
+
biomarkerId: finalOhtBmId,
|
|
479
|
+
item: `${bmInfo}, value:${numberValue}${unit}`,
|
|
480
|
+
errorTrace: { numberValue, unit },
|
|
491
481
|
});
|
|
492
482
|
isMeasurementCorrectlyParsed = false;
|
|
493
483
|
}
|
|
@@ -495,10 +485,12 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
495
485
|
if (isValueParsedCorrectly && valueType === 'NUMERICAL') {
|
|
496
486
|
const isPlausibleValue = numberValue !== null && (0, extractionUtils_1.ohtReportCheckValueForPlausibleValues)(finalOhtBmId, transformedExamObj.labKey, ohtBiomarker, unit, numberValue, isUnitParsedCorrectly, filename);
|
|
497
487
|
if (!isPlausibleValue) {
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
item: `${bmInfo}, value:${numberValue}${unit}
|
|
488
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.VALUE_NOT_PLAUSIBLE, {
|
|
489
|
+
labKey: transformedExamObj.labKey,
|
|
490
|
+
biomarkerId: finalOhtBmId,
|
|
491
|
+
item: `${bmInfo}, value:${numberValue}${unit}`,
|
|
492
|
+
ohtExam: transformedExamObj,
|
|
493
|
+
originalExam: originalExam ?? undefined,
|
|
502
494
|
});
|
|
503
495
|
// Resolve name with fallbacks
|
|
504
496
|
const implausibleName = transformedExamObj.examName ||
|
|
@@ -547,16 +539,10 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
547
539
|
to = extractedRange.to ?? null;
|
|
548
540
|
isRangeParsedCorrectly = extractedRange.isRangeParsedCorrectly;
|
|
549
541
|
if (!isRangeParsedCorrectly) {
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
data: { ohtBmId: finalOhtBmId, labKey },
|
|
555
|
-
});
|
|
556
|
-
errorMessages.push({
|
|
557
|
-
destination: { slack: true, notes: true, bi: true },
|
|
558
|
-
message: `Range not extracted correctly for:[PLACEHOLDER]`,
|
|
559
|
-
item: `${bmInfo}`
|
|
542
|
+
parsingErrorService_service_1.parsingErrorService.record(error_types_1.ParsingErrorType.RANGE_NOT_EXTRACTED, {
|
|
543
|
+
labKey: transformedExamObj.labKey,
|
|
544
|
+
biomarkerId: finalOhtBmId,
|
|
545
|
+
item: `${bmInfo}`,
|
|
560
546
|
});
|
|
561
547
|
isMeasurementCorrectlyParsed = false;
|
|
562
548
|
}
|
|
@@ -620,7 +606,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
620
606
|
continue;
|
|
621
607
|
}
|
|
622
608
|
// No mapping or ohtBmId === -1: create unknownMeasurement
|
|
623
|
-
const unknownMeasurementName =
|
|
609
|
+
const unknownMeasurementName = resolveUnknownMeasurementName([transformedExamObj.mnemonic, transformedExamObj.examName], labKey || '(unmapped measurement)');
|
|
624
610
|
const originalName = labKey.split(':')[1] || transformedExamObj.examName;
|
|
625
611
|
const annotation = `${transformedExamObj.annotation || ''}`;
|
|
626
612
|
const dataOrigin = {
|
|
@@ -656,7 +642,7 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
656
642
|
backend_mapped_biomarkers: backendMappedCount,
|
|
657
643
|
unmapped_biomarkers: unmappedCount,
|
|
658
644
|
total_processed: exams.length,
|
|
659
|
-
errors:
|
|
645
|
+
errors: parsingErrorService_service_1.parsingErrorService.getLocalErrors().length,
|
|
660
646
|
});
|
|
661
647
|
return {
|
|
662
648
|
measurements,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohtReportMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtReportMeasurementsExtractor.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ohtReportMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtReportMeasurementsExtractor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request-scoped parsing error collector for agnostic-parser.
|
|
3
|
+
*
|
|
4
|
+
* Layer 1 (local): in-memory errors → ingestion notes, Slack, processingLogger.
|
|
5
|
+
* Layer 2 (Core): grouped profiles flushed at end of run via runWithContextAsync finally.
|
|
6
|
+
*
|
|
7
|
+
* Call sites use record() only — do not duplicate processingLogger.addWarning/addError.
|
|
8
|
+
*/
|
|
9
|
+
import { LocalParsingError, ErrorProfilePayload, ParsingErrorType, RecordParsingErrorDetails, RecordParsingErrorOptions } from '../types/error.types';
|
|
10
|
+
import { ProcessingContext } from './processingLogger.service';
|
|
11
|
+
declare class ParsingErrorService {
|
|
12
|
+
/** Called from runWithContextAsync — do not use directly in parsers. */
|
|
13
|
+
initRequestState(requestId: string): void;
|
|
14
|
+
clearRequestState(requestId: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Single entry point for parsing issues.
|
|
17
|
+
* Resolves message/clientMessage from catalog + details, stores Layer 1, syncs logger once.
|
|
18
|
+
*/
|
|
19
|
+
record(errorType: ParsingErrorType, details?: RecordParsingErrorDetails, options?: RecordParsingErrorOptions): LocalParsingError;
|
|
20
|
+
getLocalErrors(): LocalParsingError[];
|
|
21
|
+
getAggregatedNotes(): string;
|
|
22
|
+
getAggregatedSlack(): string;
|
|
23
|
+
sendSlackIfNeeded(ohapiUrl: string, partnerName: string, fileUploadId: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Groups local errors by (errorType, contextKey).
|
|
26
|
+
* Technical message → occurrence snapshot; clientMessage → profile message.
|
|
27
|
+
*/
|
|
28
|
+
buildCorePayloads(ctx: ProcessingContext): ErrorProfilePayload[];
|
|
29
|
+
/**
|
|
30
|
+
* POST grouped profiles to Core. Called from runWithContextAsync finally.
|
|
31
|
+
* No-op when empty, preview, or missing partner/api key. Never throws.
|
|
32
|
+
*/
|
|
33
|
+
flushToCoreSafe(): Promise<void>;
|
|
34
|
+
clear(): void;
|
|
35
|
+
}
|
|
36
|
+
export declare const parsingErrorService: ParsingErrorService;
|
|
37
|
+
/** Lifecycle hooks used by processingLogger.runWithContextAsync. */
|
|
38
|
+
export declare function initParsingErrorRequestState(context: ProcessingContext): string;
|
|
39
|
+
export declare function clearParsingErrorRequestState(requestId: string): void;
|
|
40
|
+
export {};
|