@openhealth/oht-custom-parser-lib 0.5.31 → 0.5.32
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 +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/service/fileUploadErrorHandler.service.d.ts +5 -0
- package/dist/service/fileUploadErrorHandler.service.js +19 -2
- package/dist/service/fileUploadErrorHandler.service.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { applyRules as applyTransformationRules, validateJsonataExpression as va
|
|
|
8
8
|
export { LabToOhtContract, LabToOhtMapper, UnknownMeasurementExtraction, ReferenceAsAnnotation, UnitExtraction, RangeExtraction, RangeExtractionResponse, ValueExtraction, unitSynonyms, ValueExtractionResponse, SynonymUnit, UnknownUnits, } 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, OhtRange, OriginalExam, } from './types/oht.types';
|
|
10
10
|
export { ErrorMessage, ErrorCode, ERROR_CATALOG, ERROR_MESSAGES, getErrorMessage, getRejectReason, } from './types/error.types';
|
|
11
|
-
export { handleError, ValidationError, shouldSendSlackNotification, extractFormattedRejectReason, mapErrorToRejectReason, } from './service/fileUploadErrorHandler.service';
|
|
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
13
|
export { processingLogger, ProcessingContext, StageDuration, getRequestIdFromContext, getRequestScopedFilename, runWithContext, runWithContextAsync, } from './service/processingLogger.service';
|
|
14
14
|
export { makeApiCallWithRetry, parseErrorObj } from './util-ts/apiUtils';
|
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 = void 0;
|
|
6
|
+
exports.mapErrorToRejectReason = exports.extractFormattedRejectReason = exports.shouldSendSlackNotification = exports.JSON_VALIDATION_ERROR_NAME = exports.ValidationError = exports.handleError = 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.postFileUploadSetStatus = exports.queryFileUploadsWithFilters = exports.handleRejection = 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.runWithContextAsync = exports.runWithContext = exports.getRequestScopedFilename = exports.getRequestIdFromContext = exports.processingLogger = 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; } });
|
|
@@ -64,6 +64,7 @@ Object.defineProperty(exports, "getRejectReason", { enumerable: true, get: funct
|
|
|
64
64
|
var fileUploadErrorHandler_service_1 = require("./service/fileUploadErrorHandler.service");
|
|
65
65
|
Object.defineProperty(exports, "handleError", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.handleError; } });
|
|
66
66
|
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.ValidationError; } });
|
|
67
|
+
Object.defineProperty(exports, "JSON_VALIDATION_ERROR_NAME", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.JSON_VALIDATION_ERROR_NAME; } });
|
|
67
68
|
Object.defineProperty(exports, "shouldSendSlackNotification", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.shouldSendSlackNotification; } });
|
|
68
69
|
Object.defineProperty(exports, "extractFormattedRejectReason", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.extractFormattedRejectReason; } });
|
|
69
70
|
Object.defineProperty(exports, "mapErrorToRejectReason", { enumerable: true, get: function () { return fileUploadErrorHandler_service_1.mapErrorToRejectReason; } });
|
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,mFAQ8C;AAP5C,oIAAA,sBAAsB,OAAA;AACtB,yHAAA,WAAW,OAAA;AACX,+HAAA,iBAAiB,OAAA;AACjB,6HAAA,eAAe,OAAA;AACf,yIAAA,2BAA2B,OAAA;AAC3B,qIAAA,uBAAuB,OAAA;AAIzB,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,mEAaqC;AAJnC,mHAAA,YAAY,OAAA;AAKd,+CA8C2B;AA7CzB,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;AAYd,mDAO6B;AAL3B,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,6GAAA,cAAc,OAAA;AACd,8GAAA,eAAe,OAAA;AACf,8GAAA,eAAe,OAAA;AAEjB,
|
|
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,mFAQ8C;AAP5C,oIAAA,sBAAsB,OAAA;AACtB,yHAAA,WAAW,OAAA;AACX,+HAAA,iBAAiB,OAAA;AACjB,6HAAA,eAAe,OAAA;AACf,yIAAA,2BAA2B,OAAA;AAC3B,qIAAA,uBAAuB,OAAA;AAIzB,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,mEAaqC;AAJnC,mHAAA,YAAY,OAAA;AAKd,+CA8C2B;AA7CzB,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;AAYd,mDAO6B;AAL3B,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,6GAAA,cAAc,OAAA;AACd,8GAAA,eAAe,OAAA;AACf,8GAAA,eAAe,OAAA;AAEjB,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,+EAQ4C;AAP1C,4HAAA,gBAAgB,OAAA;AAGhB,mIAAA,uBAAuB,OAAA;AACvB,oIAAA,wBAAwB,OAAA;AACxB,0HAAA,cAAc,OAAA;AACd,+HAAA,mBAAmB,OAAA;AAGrB,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,9 @@
|
|
|
1
1
|
import { RejectReason } from '../types/oht.types';
|
|
2
|
+
/**
|
|
3
|
+
* `Error.name` set by agnostic-parser normalizer `JSONValidationError` classes.
|
|
4
|
+
* Normalizers can import this from the lib so the string stays a single source of truth.
|
|
5
|
+
*/
|
|
6
|
+
export declare const JSON_VALIDATION_ERROR_NAME: "JSONValidationError";
|
|
2
7
|
/**
|
|
3
8
|
* Validation error for parser/report validation (rejectReason + optional field).
|
|
4
9
|
* Used by mapErrorToRejectReason and handleError.
|
|
@@ -3,7 +3,7 @@ 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.ValidationError = void 0;
|
|
6
|
+
exports.ValidationError = exports.JSON_VALIDATION_ERROR_NAME = void 0;
|
|
7
7
|
exports.shouldSendSlackNotification = shouldSendSlackNotification;
|
|
8
8
|
exports.extractFormattedRejectReason = extractFormattedRejectReason;
|
|
9
9
|
exports.mapErrorToRejectReason = mapErrorToRejectReason;
|
|
@@ -17,6 +17,19 @@ const error_types_1 = require("../types/error.types");
|
|
|
17
17
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
18
18
|
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
19
19
|
dayjs_1.default.extend(utc_1.default);
|
|
20
|
+
/**
|
|
21
|
+
* `Error.name` set by agnostic-parser normalizer `JSONValidationError` classes.
|
|
22
|
+
* Normalizers can import this from the lib so the string stays a single source of truth.
|
|
23
|
+
*/
|
|
24
|
+
exports.JSON_VALIDATION_ERROR_NAME = 'JSONValidationError';
|
|
25
|
+
/**
|
|
26
|
+
* Agnostic-parser normalizers throw JSONValidationError (local class per normalizer).
|
|
27
|
+
* The lib must not depend on agnostic-parser; we detect it by Error.name so MISSING_DATA
|
|
28
|
+
* handling matches ValidationError when rejectReason is in the missing-data set.
|
|
29
|
+
*/
|
|
30
|
+
function isJsonValidationError(error) {
|
|
31
|
+
return error.name === exports.JSON_VALIDATION_ERROR_NAME;
|
|
32
|
+
}
|
|
20
33
|
/**
|
|
21
34
|
* Validation error for parser/report validation (rejectReason + optional field).
|
|
22
35
|
* Used by mapErrorToRejectReason and handleError.
|
|
@@ -162,13 +175,17 @@ async function handleError(error, fileName, apiKey, ohapiUrl, cloudEventId, part
|
|
|
162
175
|
if (error instanceof ValidationError) {
|
|
163
176
|
fieldName = error.fieldName;
|
|
164
177
|
}
|
|
178
|
+
else if (isJsonValidationError(error)) {
|
|
179
|
+
const path = error.fieldPath?.trim();
|
|
180
|
+
fieldName = path || undefined;
|
|
181
|
+
}
|
|
165
182
|
else if (finalStatusCode === 409 && rejectReason === oht_types_1.RejectReason.INCOMPLETE_DATA) {
|
|
166
183
|
fieldName = 'patient.id';
|
|
167
184
|
}
|
|
168
185
|
const formattedRejectReason = extractFormattedRejectReason(rejectReason, fieldName, errorMessage);
|
|
169
186
|
// Missing required fields (partner operational issue) should not be treated as processing REJECTED.
|
|
170
187
|
// We keep the existing REJECTED flow for all other errors.
|
|
171
|
-
const shouldMarkMissingData = error instanceof ValidationError &&
|
|
188
|
+
const shouldMarkMissingData = (error instanceof ValidationError || isJsonValidationError(error)) &&
|
|
172
189
|
(rejectReason === oht_types_1.RejectReason.INVALID_DATA_NO_BIOMARKER_DATA ||
|
|
173
190
|
rejectReason === oht_types_1.RejectReason.MISSING_LAB_ORDER_ID ||
|
|
174
191
|
rejectReason === oht_types_1.RejectReason.MISSING_EXAM_DATE ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUploadErrorHandler.service.js","sourceRoot":"","sources":["../../service/fileUploadErrorHandler.service.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"fileUploadErrorHandler.service.js","sourceRoot":"","sources":["../../service/fileUploadErrorHandler.service.ts"],"names":[],"mappings":"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"}
|