@openhealth/oht-custom-parser-lib 0.2.49 → 0.2.52

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 CHANGED
@@ -3,9 +3,11 @@ export { parseExternalPatientId, parseGender, isPatientAgeValid, handleRejection
3
3
  export { ohtMeasurementsExtractor, checkValueForPlausibleValues, extractReferenceRanges, extractReferenceAnnotation, parseExamValue, getRangeFromPositionAndRegex, extractUnit, extractValueFromGreaterLowerThan } from './service/ohtMeasurementsExtractor.service';
4
4
  export { getSlackFileIssueNotificationMessage, sendMessageToSlack } from './service/slackMessages.service';
5
5
  export { aggregateMessages, aggregateBiMessages, publishToTopic, generateBIMessages } from './service/errorHandling.service';
6
+ export { applyRules as applyTransformationRules, validateJsonataExpression as validateTransformationRuleExpression, } from './service/transformationRules.service';
6
7
  export { LabToOhtContract, LabToOhtMapper, UnknownMeasurementExtraction, ReferenceAsAnnotation, UnitExtraction, RangeExtraction, RangeExtractionResponse, ValueExtraction, unitSynonyms, ValueExtractionResponse, } from './types/custom-parser.types';
7
8
  export { AcfBiomarkerRangeAnnotationCheck, AcfBiomarkerGenericDisclaimerLogic, ManualCheck, BiomarkerCompatibility, ReferenceRangeType, AcfReferenceRange, VisualRange, NameAlias, AlternativeUnit, BiomarkerAcf, Biomarker, PipelineStep, DigitizationStatus, MeasurementValueComparator, BiomarkerValueType, DataImportFileUploadStatus, Sex, Digitization, PatientInfo, UnknownMeasurement, Measurement, DataImportFileUpload, MessagePayload, SignedUpload, ReportStyleConfig, LanguageCode, BiomarkerCustomisation, PartnerCustomPanel, ReportDisplaySettings, ReportCustomisation, OHTPartner, UploadType, } from './types/oht.types';
8
9
  export { ErrorMessage } from './types/error.types';
10
+ export type { TransformationRule, TransformationContext, ApplyRulesResult as TransformationApplyRulesResult, ApplyRulesOptions as TransformationApplyRulesOptions, ValidationResult as TransformationValidationResult, } from './types/transformationRules.types';
9
11
  export { makeApiCallWithRetry, parseErrorObj } from './util-ts/apiUtils';
10
12
  export { extractValue, isBiomarkerValueNumerical, isBiomarkerExternalNoVisualRange, processAppendedMappings } from './util-ts/dataUtils';
11
13
  export { readFileFromBucket, uploadFileBufferToGCS } from './util-ts/googleStorageUtils';
package/dist/index.js CHANGED
@@ -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.getMappedBiomarkers = exports.getLowerThanPatterns = exports.getGreaterThanPatterns = exports.pinoLogger = exports.uploadFileBufferToGCS = exports.readFileFromBucket = exports.processAppendedMappings = exports.isBiomarkerExternalNoVisualRange = exports.isBiomarkerValueNumerical = exports.extractValue = exports.parseErrorObj = exports.makeApiCallWithRetry = 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.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.postFileUploadSetStatus = exports.queryFileUploadsWithFilters = exports.handleRejection = exports.isPatientAgeValid = exports.parseGender = exports.parseExternalPatientId = exports.postDataImportFileUploadToCore = void 0;
6
+ exports.getMappedBiomarkers = exports.getLowerThanPatterns = exports.getGreaterThanPatterns = exports.pinoLogger = exports.uploadFileBufferToGCS = exports.readFileFromBucket = exports.processAppendedMappings = exports.isBiomarkerExternalNoVisualRange = exports.isBiomarkerValueNumerical = exports.extractValue = exports.parseErrorObj = exports.makeApiCallWithRetry = 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.postFileUploadSetStatus = exports.queryFileUploadsWithFilters = exports.handleRejection = exports.isPatientAgeValid = exports.parseGender = exports.parseExternalPatientId = exports.postDataImportFileUploadToCore = void 0;
7
7
  // ### SERVICES ###
8
8
  var reportCreator_service_1 = require("./service/reportCreator.service");
9
9
  Object.defineProperty(exports, "postDataImportFileUploadToCore", { enumerable: true, get: function () { return reportCreator_service_1.postDataImportFileUploadToCore; } });
@@ -31,6 +31,9 @@ Object.defineProperty(exports, "aggregateMessages", { enumerable: true, get: fun
31
31
  Object.defineProperty(exports, "aggregateBiMessages", { enumerable: true, get: function () { return errorHandling_service_1.aggregateBiMessages; } });
32
32
  Object.defineProperty(exports, "publishToTopic", { enumerable: true, get: function () { return errorHandling_service_1.publishToTopic; } });
33
33
  Object.defineProperty(exports, "generateBIMessages", { enumerable: true, get: function () { return errorHandling_service_1.generateBIMessages; } });
34
+ var transformationRules_service_1 = require("./service/transformationRules.service");
35
+ Object.defineProperty(exports, "applyTransformationRules", { enumerable: true, get: function () { return transformationRules_service_1.applyRules; } });
36
+ Object.defineProperty(exports, "validateTransformationRuleExpression", { enumerable: true, get: function () { return transformationRules_service_1.validateJsonataExpression; } });
34
37
  // ### TYPES ###
35
38
  var custom_parser_types_1 = require("./types/custom-parser.types");
36
39
  Object.defineProperty(exports, "unitSynonyms", { enumerable: true, get: function () { return custom_parser_types_1.unitSynonyms; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;AAAA,mBAAmB;AACnB,yEAEyC;AADvC,uIAAA,8BAA8B,OAAA;AAEhC,mFAO8C;AAN5C,oIAAA,sBAAsB,OAAA;AACtB,yHAAA,WAAW,OAAA;AACX,+HAAA,iBAAiB,OAAA;AACjB,6HAAA,eAAe,OAAA;AACf,yIAAA,2BAA2B,OAAA;AAC3B,qIAAA,uBAAuB,OAAA;AAEzB,+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;AAElC,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;AAGpB,gBAAgB;AAChB,mEAWqC;AAFnC,mHAAA,YAAY,OAAA;AAGd,+CAiC2B;AAhCzB,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;AAeH,uGAAA,UAAU,OAAA;AAIZ,kBAAkB;AAClB,+CAAuE;AAA/D,gHAAA,oBAAoB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAC3C,iDAAuI;AAA/H,yGAAA,YAAY,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AAAE,6HAAA,gCAAgC,OAAA;AAAE,oHAAA,uBAAuB,OAAA;AAC1G,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,iDAA0D;AAAlD,gHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;AAAA,mBAAmB;AACnB,yEAEyC;AADvC,uIAAA,8BAA8B,OAAA;AAEhC,mFAO8C;AAN5C,oIAAA,sBAAsB,OAAA;AACtB,yHAAA,WAAW,OAAA;AACX,+HAAA,iBAAiB,OAAA;AACjB,6HAAA,eAAe,OAAA;AACf,yIAAA,2BAA2B,OAAA;AAC3B,qIAAA,uBAAuB,OAAA;AAEzB,+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;AAElC,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,mEAWqC;AAFnC,mHAAA,YAAY,OAAA;AAGd,+CAiC2B;AAhCzB,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;AAeH,uGAAA,UAAU,OAAA;AAWZ,kBAAkB;AAClB,+CAAuE;AAA/D,gHAAA,oBAAoB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAC3C,iDAAuI;AAA/H,yGAAA,YAAY,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AAAE,6HAAA,gCAAgC,OAAA;AAAE,oHAAA,uBAAuB,OAAA;AAC1G,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,iDAA0D;AAAlD,gHAAA,mBAAmB,OAAA"}
@@ -29,7 +29,7 @@ function extractUnit(unitExtraction, rawData, ohtBiomarker) {
29
29
  // If there's a function to extract the unit, use it
30
30
  if (unitExtraction && unitExtraction?.extractionFunc) {
31
31
  const extractedUnitExtraction = unitExtraction.extractionFunc(rawData);
32
- return { unit: extractedUnitExtraction ?? '', isUnitParsedCorrectly: !!extractedUnitExtraction, originalUnit: extractedUnitExtraction ?? '', isArbitraryUnit };
32
+ return { unit: extractedUnitExtraction ?? '', isUnitParsedCorrectly: !!extractedUnitExtraction, originalUnit: originalUnit, isArbitraryUnit };
33
33
  }
34
34
  const unit = (0, dataUtils_1.extractValue)(rawData, unitExtraction?.unitPosition);
35
35
  let unitLowerCase = unit?.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"ohtMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtMeasurementsExtractor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ohtMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtMeasurementsExtractor.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { TransformationRule, ApplyRulesResult, ApplyRulesOptions, ValidationResult } from '../types/transformationRules.types';
2
+ /**
3
+ * Apply multiple transformation rules to data
4
+ *
5
+ * Rules are applied sequentially in the order provided.
6
+ * Each rule is evaluated against the current state of the data after previous rules.
7
+ *
8
+ * @param rules - Array of transformation rules to apply
9
+ * @param inputData - OHT Exam data object (available as $exam in expressions)
10
+ * @param options - Optional configuration for rule application
11
+ * @param options.ohtReportJson - OHT Report/full document JSON (available as $report in expressions)
12
+ * @param options.contextJson - Context JSON like patient info (available as $context in expressions)
13
+ * @returns Promise<ApplyRulesResult> - Result containing transformed data, applied rule IDs, and any errors
14
+ */
15
+ export declare const applyRules: (rules: TransformationRule[], inputData: Record<string, unknown>, options?: ApplyRulesOptions) => Promise<ApplyRulesResult>;
16
+ /**
17
+ * Validate a JSONata expression
18
+ *
19
+ * @param expression - JSONata expression string to validate
20
+ * @returns ValidationResult - Object with valid flag and optional error message
21
+ */
22
+ export declare const validateJsonataExpression: (expression: string) => ValidationResult;
@@ -0,0 +1,172 @@
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.validateJsonataExpression = exports.applyRules = void 0;
7
+ const jsonata_1 = __importDefault(require("jsonata"));
8
+ const transformationRules_1 = require("../util-ts/transformationRules");
9
+ /**
10
+ * JSON Transformation Rules Engine
11
+ *
12
+ * This is a standalone, reusable library for applying transformation rules to JSON data.
13
+ * It uses JSONata expressions for powerful, declarative transformations.
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ const createExpression = (expressionText, context) => {
18
+ const expression = (0, jsonata_1.default)(expressionText);
19
+ expression.assign('report', context.ohtReport);
20
+ expression.assign('exam', context.ohtExam);
21
+ expression.assign('context', context.context);
22
+ return expression;
23
+ };
24
+ /**
25
+ * Evaluate a JSONata condition with the given context
26
+ *
27
+ * @param condition - JSONata expression that returns a boolean
28
+ * @param context - Context object with root, item, and optional global data
29
+ * @returns Promise<boolean> - True if condition is met, false otherwise
30
+ */
31
+ const evaluateCondition = async (condition, context) => {
32
+ try {
33
+ if (!condition || condition.trim() === '') {
34
+ return true;
35
+ }
36
+ const expression = createExpression(condition, context);
37
+ const result = await expression.evaluate(context.ohtExam);
38
+ return Boolean(result);
39
+ }
40
+ catch (error) {
41
+ console.error('Error evaluating condition:', error);
42
+ return false;
43
+ }
44
+ };
45
+ /**
46
+ * Evaluate a JSONata value expression
47
+ *
48
+ * @param valueExpression - JSONata expression to evaluate
49
+ * @param context - Context object with root, item, and optional global data
50
+ * @returns Promise<unknown> - Result of the expression evaluation
51
+ * @throws Error if expression evaluation fails
52
+ */
53
+ const evaluateValueExpression = async (valueExpression, context) => {
54
+ try {
55
+ const expression = createExpression(valueExpression, context);
56
+ const result = await expression.evaluate(context.ohtExam);
57
+ return result;
58
+ }
59
+ catch (error) {
60
+ console.error('Error evaluating value expression:', error);
61
+ throw error;
62
+ }
63
+ };
64
+ /**
65
+ * Apply a single transformation rule to data
66
+ *
67
+ * @param rule - Transformation rule to apply
68
+ * @param data - Input data object
69
+ * @param options - Optional configuration (ohtReport and contextJson)
70
+ * @returns Promise<Record<string, unknown>> - Transformed data object
71
+ */
72
+ const applyRule = async (rule, data, options = {}) => {
73
+ const context = {
74
+ ohtReport: options.ohtReportJson ?? {},
75
+ ohtExam: data,
76
+ context: options.contextJson ?? {},
77
+ };
78
+ const shouldApply = await evaluateCondition(rule.conditionExpression, context);
79
+ if (!shouldApply) {
80
+ return data;
81
+ }
82
+ const newValue = await evaluateValueExpression(rule.valueExpression, context);
83
+ const transformedData = { ...data };
84
+ if (rule.targetExpression.startsWith('$.')) {
85
+ const pathSegments = (0, transformationRules_1.parsePath)(rule.targetExpression);
86
+ (0, transformationRules_1.setValueByPath)(transformedData, pathSegments, newValue);
87
+ }
88
+ return transformedData;
89
+ };
90
+ /**
91
+ * Apply multiple transformation rules to data
92
+ *
93
+ * Rules are applied sequentially in the order provided.
94
+ * Each rule is evaluated against the current state of the data after previous rules.
95
+ *
96
+ * @param rules - Array of transformation rules to apply
97
+ * @param inputData - OHT Exam data object (available as $exam in expressions)
98
+ * @param options - Optional configuration for rule application
99
+ * @param options.ohtReportJson - OHT Report/full document JSON (available as $report in expressions)
100
+ * @param options.contextJson - Context JSON like patient info (available as $context in expressions)
101
+ * @returns Promise<ApplyRulesResult> - Result containing transformed data, applied rule IDs, and any errors
102
+ */
103
+ const applyRules = async (rules, inputData, options = {}) => {
104
+ const result = await rules.reduce(async (accPromise, rule) => {
105
+ const acc = await accPromise;
106
+ try {
107
+ const context = {
108
+ ohtReport: options.ohtReportJson ?? {},
109
+ ohtExam: acc.data,
110
+ context: options.contextJson ?? {},
111
+ };
112
+ const shouldApply = await evaluateCondition(rule.conditionExpression, context);
113
+ if (shouldApply) {
114
+ const transformedData = await applyRule(rule, acc.data, options);
115
+ return {
116
+ data: transformedData,
117
+ appliedRules: [...acc.appliedRules, rule.id],
118
+ errors: acc.errors,
119
+ };
120
+ }
121
+ return acc;
122
+ }
123
+ catch (error) {
124
+ return {
125
+ data: acc.data,
126
+ appliedRules: acc.appliedRules,
127
+ errors: [
128
+ ...acc.errors,
129
+ {
130
+ ruleId: rule.id,
131
+ ruleName: rule.name,
132
+ error: (0, transformationRules_1.getErrorMessage)(error),
133
+ },
134
+ ],
135
+ };
136
+ }
137
+ }, Promise.resolve({
138
+ data: { ...inputData },
139
+ appliedRules: [],
140
+ errors: [],
141
+ }));
142
+ return {
143
+ success: result.errors.length === 0,
144
+ data: result.data,
145
+ appliedRules: result.appliedRules,
146
+ errors: result.errors,
147
+ };
148
+ };
149
+ exports.applyRules = applyRules;
150
+ /**
151
+ * Validate a JSONata expression
152
+ *
153
+ * @param expression - JSONata expression string to validate
154
+ * @returns ValidationResult - Object with valid flag and optional error message
155
+ */
156
+ const validateJsonataExpression = (expression) => {
157
+ try {
158
+ if (!expression || expression.trim() === '') {
159
+ return { valid: true };
160
+ }
161
+ (0, jsonata_1.default)(expression);
162
+ return { valid: true };
163
+ }
164
+ catch (error) {
165
+ return {
166
+ valid: false,
167
+ error: (0, transformationRules_1.getErrorMessage)(error),
168
+ };
169
+ }
170
+ };
171
+ exports.validateJsonataExpression = validateJsonataExpression;
172
+ //# sourceMappingURL=transformationRules.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformationRules.service.js","sourceRoot":"","sources":["../../service/transformationRules.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface TransformationRule {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ conditionExpression: string;
6
+ targetExpression: string;
7
+ valueExpression: string;
8
+ tags: string[];
9
+ createdAt: Date;
10
+ updatedAt: Date;
11
+ sampleOhtExam?: string;
12
+ sampleOhtReport?: string;
13
+ sampleContextJson?: string;
14
+ }
15
+ export interface TransformationContext {
16
+ ohtReport: Record<string, unknown>;
17
+ ohtExam: Record<string, unknown>;
18
+ context: Record<string, unknown>;
19
+ }
20
+ export interface ApplyRulesResult {
21
+ success: boolean;
22
+ data: Record<string, unknown>;
23
+ appliedRules: string[];
24
+ errors: Array<{
25
+ ruleId: string;
26
+ error: string;
27
+ }>;
28
+ }
29
+ export interface ApplyRulesOptions {
30
+ /**
31
+ * The full/global document (OHT Report) accessible inside JSONata expressions via $report
32
+ */
33
+ ohtReportJson?: Record<string, unknown>;
34
+ /**
35
+ * Additional context (e.g., patient info) accessible inside JSONata expressions via $context
36
+ */
37
+ contextJson?: Record<string, unknown>;
38
+ }
39
+ export interface ValidationResult {
40
+ valid: boolean;
41
+ error?: string;
42
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transformationRules.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformationRules.types.js","sourceRoot":"","sources":["../../types/transformationRules.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Converts an unknown error to a string message
3
+ * Handles Error objects, objects with message property, and other types
4
+ *
5
+ * @param error - The error to convert
6
+ * @returns String representation of the error
7
+ */
8
+ export declare function getErrorMessage(error: unknown): string;
9
+ /**
10
+ * Lightweight deep equality check for JSON-serializable objects.
11
+ * Only handles primitives, arrays, and plain objects (no functions, symbols, etc.)
12
+ * which is sufficient for transformation rule data.
13
+ *
14
+ * @param obj1 - First object to compare
15
+ * @param obj2 - Second object to compare
16
+ * @returns True if objects are deeply equal, false otherwise
17
+ */
18
+ export declare function isDeepEqual(obj1: unknown, obj2: unknown): boolean;
19
+ /**
20
+ * Parse a JSONPath-like target path into segments
21
+ * Supports dot notation, bracket notation, and array indices
22
+ *
23
+ * @param path - Path string (e.g., "$.user.name", "$.items[0]", "$.data['key']")
24
+ * @returns Array of path segments
25
+ */
26
+ export declare function parsePath(path: string): Array<string | number>;
27
+ /**
28
+ * Set a value in an object using a parsed path
29
+ * Creates intermediate objects/arrays as needed
30
+ *
31
+ * @param obj - Target object to modify
32
+ * @param segments - Path segments from parsePath()
33
+ * @param value - Value to set
34
+ */
35
+ export declare function setValueByPath(obj: Record<string, unknown>, segments: Array<string | number>, value: unknown): void;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getErrorMessage = getErrorMessage;
4
+ exports.isDeepEqual = isDeepEqual;
5
+ exports.parsePath = parsePath;
6
+ exports.setValueByPath = setValueByPath;
7
+ /**
8
+ * Converts an unknown error to a string message
9
+ * Handles Error objects, objects with message property, and other types
10
+ *
11
+ * @param error - The error to convert
12
+ * @returns String representation of the error
13
+ */
14
+ function getErrorMessage(error) {
15
+ if (error instanceof Error) {
16
+ return error.message;
17
+ }
18
+ if (typeof error === 'object' && error !== null && 'message' in error) {
19
+ const maybeMessage = error.message;
20
+ return typeof maybeMessage === 'string' ? maybeMessage : String(maybeMessage);
21
+ }
22
+ return String(error);
23
+ }
24
+ /**
25
+ * Lightweight deep equality check for JSON-serializable objects.
26
+ * Only handles primitives, arrays, and plain objects (no functions, symbols, etc.)
27
+ * which is sufficient for transformation rule data.
28
+ *
29
+ * @param obj1 - First object to compare
30
+ * @param obj2 - Second object to compare
31
+ * @returns True if objects are deeply equal, false otherwise
32
+ */
33
+ function isDeepEqual(obj1, obj2) {
34
+ // Same reference or both null/undefined
35
+ if (obj1 === obj2)
36
+ return true;
37
+ // Different types or one is null
38
+ if (typeof obj1 !== typeof obj2 || obj1 === null || obj2 === null || typeof obj1 !== 'object') {
39
+ return false;
40
+ }
41
+ // Handle arrays
42
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
43
+ if (obj1.length !== obj2.length)
44
+ return false;
45
+ return obj1.every((item, index) => isDeepEqual(item, obj2[index]));
46
+ }
47
+ // One is array, other is not
48
+ if (Array.isArray(obj1) !== Array.isArray(obj2)) {
49
+ return false;
50
+ }
51
+ // Handle plain objects
52
+ const keys1 = Object.keys(obj1);
53
+ const keys2 = Object.keys(obj2);
54
+ if (keys1.length !== keys2.length)
55
+ return false;
56
+ return keys1.every((key) => isDeepEqual(obj1[key], obj2[key]));
57
+ }
58
+ /**
59
+ * Parse a JSONPath-like target path into segments
60
+ * Supports dot notation, bracket notation, and array indices
61
+ *
62
+ * @param path - Path string (e.g., "$.user.name", "$.items[0]", "$.data['key']")
63
+ * @returns Array of path segments
64
+ */
65
+ function parsePath(path) {
66
+ // Remove leading $. if present
67
+ const cleanPath = path.startsWith('$.') ? path.substring(2) : path;
68
+ if (!cleanPath) {
69
+ return [];
70
+ }
71
+ const segments = [];
72
+ let currentSegment = '';
73
+ let i = 0;
74
+ while (i < cleanPath.length) {
75
+ const char = cleanPath[i];
76
+ // Handle bracket notation for arrays [0] or objects ['key']
77
+ if (char === '[') {
78
+ // Save any accumulated segment
79
+ if (currentSegment) {
80
+ segments.push(currentSegment);
81
+ currentSegment = '';
82
+ }
83
+ i += 1; // Move past [
84
+ let bracketContent = '';
85
+ // Extract content between brackets
86
+ while (i < cleanPath.length && cleanPath[i] !== ']') {
87
+ bracketContent += cleanPath[i];
88
+ i += 1;
89
+ }
90
+ // Parse bracket content
91
+ if (bracketContent) {
92
+ // Remove quotes if present (for string keys like ['key'])
93
+ if ((bracketContent.startsWith("'") && bracketContent.endsWith("'"))
94
+ || (bracketContent.startsWith('"') && bracketContent.endsWith('"'))) {
95
+ segments.push(bracketContent.slice(1, -1));
96
+ }
97
+ else {
98
+ // Try to parse as number (for array indices)
99
+ const numValue = Number(bracketContent);
100
+ if (!Number.isNaN(numValue) && Number.isInteger(numValue)) {
101
+ segments.push(numValue);
102
+ }
103
+ else {
104
+ segments.push(bracketContent);
105
+ }
106
+ }
107
+ }
108
+ i += 1; // Move past ]
109
+ }
110
+ else if (char === '.') {
111
+ // Dot separator - save current segment
112
+ if (currentSegment) {
113
+ segments.push(currentSegment);
114
+ currentSegment = '';
115
+ }
116
+ i += 1;
117
+ }
118
+ else {
119
+ // Regular character - accumulate
120
+ currentSegment += char;
121
+ i += 1;
122
+ }
123
+ }
124
+ // Add final segment if any
125
+ if (currentSegment) {
126
+ segments.push(currentSegment);
127
+ }
128
+ return segments;
129
+ }
130
+ /**
131
+ * Set a value in an object using a parsed path
132
+ * Creates intermediate objects/arrays as needed
133
+ *
134
+ * @param obj - Target object to modify
135
+ * @param segments - Path segments from parsePath()
136
+ * @param value - Value to set
137
+ */
138
+ function setValueByPath(obj, segments, value) {
139
+ if (segments.length === 0) {
140
+ return;
141
+ }
142
+ let current = obj;
143
+ // Navigate to parent, creating intermediate structures as needed
144
+ for (let i = 0; i < segments.length - 1; i += 1) {
145
+ const segment = segments[i];
146
+ const nextSegment = segments[i + 1];
147
+ if (!(segment in current)) {
148
+ // Create array if next segment is a number, otherwise create object
149
+ current[segment] = typeof nextSegment === 'number' ? [] : {};
150
+ }
151
+ current = current[segment];
152
+ }
153
+ // Set the final value
154
+ const lastSegment = segments[segments.length - 1];
155
+ current[lastSegment] = value;
156
+ }
157
+ //# sourceMappingURL=transformationRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformationRules.js","sourceRoot":"","sources":["../../util-ts/transformationRules.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,33 +1,34 @@
1
- {
2
- "name": "@openhealth/oht-custom-parser-lib",
3
- "version": "0.2.49",
4
- "description": "Shared nodejs lib with with reusable functions",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "files": [
8
- "/dist"
9
- ],
10
- "scripts": {
11
- "test": "jest"
12
- },
13
- "keywords": [],
14
- "author": "",
15
- "license": "ISC",
16
- "dependencies": {
17
- "@google-cloud/pubsub": "^4.10.0",
18
- "@google-cloud/storage": "^7.7.0",
19
- "axios": "^1.6.7",
20
- "bottleneck": "^2.19.5",
21
- "dayjs": "^1.11.13",
22
- "dotenv": "^16.4.5",
23
- "moment": "^2.30.1",
24
- "mongodb": "^6.3.0",
25
- "pino": "^8.19.0"
26
- },
27
- "devDependencies": {
28
- "@types/jest": "^29.5.14",
29
- "axios-mock-adapter": "^2.1.0",
30
- "jest": "^29.7.0",
31
- "ts-jest": "^29.2.5"
32
- }
33
- }
1
+ {
2
+ "name": "@openhealth/oht-custom-parser-lib",
3
+ "version": "0.2.52",
4
+ "description": "Shared nodejs lib with with reusable functions",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "scripts": {
11
+ "test": "jest"
12
+ },
13
+ "keywords": [],
14
+ "author": "",
15
+ "license": "ISC",
16
+ "dependencies": {
17
+ "@google-cloud/pubsub": "^4.10.0",
18
+ "@google-cloud/storage": "^7.7.0",
19
+ "axios": "^1.6.7",
20
+ "bottleneck": "^2.19.5",
21
+ "dayjs": "^1.11.13",
22
+ "dotenv": "^16.4.5",
23
+ "jsonata": "^2.1.0",
24
+ "moment": "^2.30.1",
25
+ "mongodb": "^6.3.0",
26
+ "pino": "^8.19.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/jest": "^29.5.14",
30
+ "axios-mock-adapter": "^2.1.0",
31
+ "jest": "^29.7.0",
32
+ "ts-jest": "^29.2.5"
33
+ }
34
+ }
package/readme.md CHANGED
@@ -1,99 +1,99 @@
1
- # oht-custom-parser-lib
2
-
3
- `oht-custom-parser-lib` is a shared library designed for use across multiple Node.js cloud functions. It contains common MongoDB connectors and data utilities that can be reused to avoid code duplication and ensure consistency.
4
-
5
- ## Table of Contents
6
-
7
- - [Installation](#installation)
8
- - [Usage](#usage)
9
- - [Development](#development)
10
- - [Patch Versions](#patch-versions)
11
- - [Publish to npm Registry](#publish-to-npm-registry)
12
- - [Using the Library in Cloud Functions](#using-the-library-in-cloud-functions)
13
-
14
- ## Installation
15
-
16
- To install `oht-custom-parser-lib`, you can add it as a dependency in your project using npm:
17
-
18
- ```bash
19
- npm install oht-custom-parser-lib
20
- ```
21
-
22
- Or, if you want to install a specific version:
23
-
24
- ```bash
25
- npm install oht-custom-parser-lib@<version>
26
- ```
27
-
28
- ## Usage
29
-
30
- After installing, you can import and use the library in your cloud functions:
31
-
32
- ```javascript
33
- const { connectToMongoDB } = require('oht-custom-parser-lib');
34
- ```
35
-
36
- ## Development
37
-
38
- ### Patch Versions
39
-
40
- When making changes to the `oht-custom-parser-lib`, you need to update the version number before publishing. Follow these steps:
41
-
42
- 1. **Update the version number**: Use npm's version command to bump the version:
43
- - **Patch** for bug fixes:
44
- ```bash
45
- npm version patch
46
- ```
47
- - **Minor** for new features:
48
- ```bash
49
- npm version minor
50
- ```
51
- - **Major** for breaking changes:
52
- ```bash
53
- npm version major
54
- ```
55
-
56
- This command will automatically update the version in the `package.json` and create a git tag.
57
-
58
- 2. **Commit Changes**: Ensure your changes and the version bump are committed to the repository.
59
-
60
- ### Publish to npm Registry
61
-
62
- After updating the version, you can publish the library to the npm registry:
63
-
64
- 1. **Login to npm** (if you haven't already):
65
- ```bash
66
- npm login
67
- ```
68
-
69
- 2. **Publish the package**:
70
- ```bash
71
- npm publish
72
- ```
73
-
74
- If this is a private package, use:
75
- ```bash
76
- npm publish --access restricted
77
- ```
78
-
79
- 3. **Verify the publish**: You can check the package on [npmjs.com](https://www.npmjs.com/) to verify that the new version is available.
80
-
81
- ## Using the Library in Cloud Functions
82
-
83
- To use `oht-custom-parser-lib` in your cloud functions:
84
-
85
- 1. **Install the Library**: Add `oht-custom-parser-lib` as a dependency in the cloud function's `package.json`:
86
-
87
- ```json
88
- {
89
- "dependencies": {
90
- "oht-custom-parser-lib": "^1.0.0"
91
- }
92
- }
93
- ```
94
-
95
- Replace `^1.0.0` with the appropriate version as needed.
96
-
97
- 2. **Install Dependencies**: Run `npm install` to install the library along with other dependencies.
98
-
99
- 3. **Deploy Your Function**: Deploy your cloud function as usual, ensuring that the updated dependencies are included.
1
+ # oht-custom-parser-lib
2
+
3
+ `oht-custom-parser-lib` is a shared library designed for use across multiple Node.js cloud functions. It contains common MongoDB connectors and data utilities that can be reused to avoid code duplication and ensure consistency.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Installation](#installation)
8
+ - [Usage](#usage)
9
+ - [Development](#development)
10
+ - [Patch Versions](#patch-versions)
11
+ - [Publish to npm Registry](#publish-to-npm-registry)
12
+ - [Using the Library in Cloud Functions](#using-the-library-in-cloud-functions)
13
+
14
+ ## Installation
15
+
16
+ To install `oht-custom-parser-lib`, you can add it as a dependency in your project using npm:
17
+
18
+ ```bash
19
+ npm install oht-custom-parser-lib
20
+ ```
21
+
22
+ Or, if you want to install a specific version:
23
+
24
+ ```bash
25
+ npm install oht-custom-parser-lib@<version>
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ After installing, you can import and use the library in your cloud functions:
31
+
32
+ ```javascript
33
+ const { connectToMongoDB } = require('oht-custom-parser-lib');
34
+ ```
35
+
36
+ ## Development
37
+
38
+ ### Patch Versions
39
+
40
+ When making changes to the `oht-custom-parser-lib`, you need to update the version number before publishing. Follow these steps:
41
+
42
+ 1. **Update the version number**: Use npm's version command to bump the version:
43
+ - **Patch** for bug fixes:
44
+ ```bash
45
+ npm version patch
46
+ ```
47
+ - **Minor** for new features:
48
+ ```bash
49
+ npm version minor
50
+ ```
51
+ - **Major** for breaking changes:
52
+ ```bash
53
+ npm version major
54
+ ```
55
+
56
+ This command will automatically update the version in the `package.json` and create a git tag.
57
+
58
+ 2. **Commit Changes**: Ensure your changes and the version bump are committed to the repository.
59
+
60
+ ### Publish to npm Registry
61
+
62
+ After updating the version, you can publish the library to the npm registry:
63
+
64
+ 1. **Login to npm** (if you haven't already):
65
+ ```bash
66
+ npm login
67
+ ```
68
+
69
+ 2. **Publish the package**:
70
+ ```bash
71
+ npm publish
72
+ ```
73
+
74
+ If this is a private package, use:
75
+ ```bash
76
+ npm publish --access restricted
77
+ ```
78
+
79
+ 3. **Verify the publish**: You can check the package on [npmjs.com](https://www.npmjs.com/) to verify that the new version is available.
80
+
81
+ ## Using the Library in Cloud Functions
82
+
83
+ To use `oht-custom-parser-lib` in your cloud functions:
84
+
85
+ 1. **Install the Library**: Add `oht-custom-parser-lib` as a dependency in the cloud function's `package.json`:
86
+
87
+ ```json
88
+ {
89
+ "dependencies": {
90
+ "oht-custom-parser-lib": "^1.0.0"
91
+ }
92
+ }
93
+ ```
94
+
95
+ Replace `^1.0.0` with the appropriate version as needed.
96
+
97
+ 2. **Install Dependencies**: Run `npm install` to install the library along with other dependencies.
98
+
99
+ 3. **Deploy Your Function**: Deploy your cloud function as usual, ensuring that the updated dependencies are included.