@openhealth/oht-custom-parser-lib 0.5.16 → 0.5.18
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.map +1 -1
- package/dist/service/ohtAgnosticMeasurementsExtractor.service.d.ts +59 -0
- package/dist/service/ohtAgnosticMeasurementsExtractor.service.js +603 -0
- package/dist/service/ohtAgnosticMeasurementsExtractor.service.js.map +1 -0
- package/dist/service/ohtReportMeasurementsExtractor.service.d.ts +12 -7
- package/dist/service/ohtReportMeasurementsExtractor.service.js +28 -9
- package/dist/service/ohtReportMeasurementsExtractor.service.js.map +1 -1
- package/dist/types/oht.types.d.ts +87 -1
- package/dist/types/oht.types.js.map +1 -1
- package/dist/util-ts/dataUtils.js +0 -5
- package/dist/util-ts/dataUtils.js.map +1 -1
- package/dist/util-ts/extractionUtils.d.ts +34 -2
- package/dist/util-ts/extractionUtils.js +110 -0
- package/dist/util-ts/extractionUtils.js.map +1 -1
- package/package.json +36 -36
- package/readme.md +115 -115
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UnknownUnits, TransformationRulesChains } from "../types/custom-parser.types";
|
|
2
|
-
import { Measurement, PatientInfo, UnknownMeasurement, Exam, UnmappedLabKey } from "../types/oht.types";
|
|
2
|
+
import { Measurement, PatientInfo, UnknownMeasurement, Exam, UnmappedLabKey, PartnerCustomization } from "../types/oht.types";
|
|
3
3
|
import { ErrorMessage } from "../types/error.types";
|
|
4
4
|
type ExamWithSyntheticId = Exam & {
|
|
5
5
|
_syntheticId: string;
|
|
@@ -86,10 +86,13 @@ type ApplyTransformationRulesResult = {
|
|
|
86
86
|
* - Logs warning and marks measurement as incorrectly parsed if value is not plausible
|
|
87
87
|
*
|
|
88
88
|
* ##### 5.3.7: Extract Reference Ranges (for NUMERICAL biomarkers)
|
|
89
|
-
* -
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* -
|
|
89
|
+
* - Uses `getEffectiveBiomarkerCompatibility()` combined with
|
|
90
|
+
* `getRangeForCompatibility()` to decide if and how to extract ranges
|
|
91
|
+
* from `ohtReportExtractReferenceRanges()`/`parseRange()`.
|
|
92
|
+
* - For internal compatibilities or configured fallbacks, it can return
|
|
93
|
+
* null ranges with `isRangeParsedCorrectly = true` (no warnings).
|
|
94
|
+
* - Only scenarios that require a “real” external range
|
|
95
|
+
* (`external_strict` and default modes) produce warnings when extraction fails.
|
|
93
96
|
*
|
|
94
97
|
* ##### 5.3.8: Extract Reference Annotation
|
|
95
98
|
* - Calls `ohtReportExtractReferenceAnnotation()` to extract annotation text
|
|
@@ -100,7 +103,8 @@ type ApplyTransformationRulesResult = {
|
|
|
100
103
|
* - Constructs complete `Measurement` object with all extracted data:
|
|
101
104
|
* - Biomarker ID, value type, value, alphanumeric value
|
|
102
105
|
* - Unit, original unit, arbitrary unit flag
|
|
103
|
-
* - Reference range (min/max normal values)
|
|
106
|
+
* - Reference range (min/max normal values), respecting effective
|
|
107
|
+
* compatibility (internal vs external, no visual range, alphanumerical, etc.)
|
|
104
108
|
* - Range annotation
|
|
105
109
|
* - Material, method
|
|
106
110
|
* - Collection dates (collectionDate, effectiveDate, examCollectionDate, examEffectiveDate)
|
|
@@ -149,9 +153,10 @@ type ApplyTransformationRulesResult = {
|
|
|
149
153
|
* @param partnerId - Partner ID for fetching biomarker mappings and synonym units
|
|
150
154
|
* @param errorMessages - Array to accumulate error messages (modified in-place)
|
|
151
155
|
* @param isReportPreview - isReportPreview Report Simulator
|
|
156
|
+
* @param partnerCustomization - `panelCustomisation` and `reportCustomisation` coming from `partnerConfig`.
|
|
152
157
|
* @returns Promise resolving to extraction result with measurements, unknownMeasurements, unknownUnits, unmappedLabKeys, parsing status, and transformation errors
|
|
153
158
|
*/
|
|
154
|
-
declare function ohtReportMeasurementsExtractor(isReportPreview: boolean, exams: Exam[], sourceFilename: string, patientInfo: PatientInfo, documentDate: Date | undefined, transformationRules: TransformationRulesChains, allowMultiMeasurementsPerBiomarker: boolean, ohtCoreApiKey: string, partnerId: string, errorMessages: ErrorMessage[]): Promise<{
|
|
159
|
+
declare function ohtReportMeasurementsExtractor(isReportPreview: boolean, exams: Exam[], sourceFilename: string, patientInfo: PatientInfo, documentDate: Date | undefined, transformationRules: TransformationRulesChains, allowMultiMeasurementsPerBiomarker: boolean, ohtCoreApiKey: string, partnerId: string, errorMessages: ErrorMessage[], partnerCustomization?: PartnerCustomization): Promise<{
|
|
155
160
|
measurements: Measurement[];
|
|
156
161
|
unknownMeasurements: UnknownMeasurement[];
|
|
157
162
|
unknownUnits: UnknownUnits[];
|
|
@@ -254,10 +254,13 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
|
|
|
254
254
|
* - Logs warning and marks measurement as incorrectly parsed if value is not plausible
|
|
255
255
|
*
|
|
256
256
|
* ##### 5.3.7: Extract Reference Ranges (for NUMERICAL biomarkers)
|
|
257
|
-
* -
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
* -
|
|
257
|
+
* - Uses `getEffectiveBiomarkerCompatibility()` combined with
|
|
258
|
+
* `getRangeForCompatibility()` to decide if and how to extract ranges
|
|
259
|
+
* from `ohtReportExtractReferenceRanges()`/`parseRange()`.
|
|
260
|
+
* - For internal compatibilities or configured fallbacks, it can return
|
|
261
|
+
* null ranges with `isRangeParsedCorrectly = true` (no warnings).
|
|
262
|
+
* - Only scenarios that require a “real” external range
|
|
263
|
+
* (`external_strict` and default modes) produce warnings when extraction fails.
|
|
261
264
|
*
|
|
262
265
|
* ##### 5.3.8: Extract Reference Annotation
|
|
263
266
|
* - Calls `ohtReportExtractReferenceAnnotation()` to extract annotation text
|
|
@@ -268,7 +271,8 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
|
|
|
268
271
|
* - Constructs complete `Measurement` object with all extracted data:
|
|
269
272
|
* - Biomarker ID, value type, value, alphanumeric value
|
|
270
273
|
* - Unit, original unit, arbitrary unit flag
|
|
271
|
-
* - Reference range (min/max normal values)
|
|
274
|
+
* - Reference range (min/max normal values), respecting effective
|
|
275
|
+
* compatibility (internal vs external, no visual range, alphanumerical, etc.)
|
|
272
276
|
* - Range annotation
|
|
273
277
|
* - Material, method
|
|
274
278
|
* - Collection dates (collectionDate, effectiveDate, examCollectionDate, examEffectiveDate)
|
|
@@ -317,9 +321,10 @@ async function applyTransformationRulesToExams(exams, transformationRules, patie
|
|
|
317
321
|
* @param partnerId - Partner ID for fetching biomarker mappings and synonym units
|
|
318
322
|
* @param errorMessages - Array to accumulate error messages (modified in-place)
|
|
319
323
|
* @param isReportPreview - isReportPreview Report Simulator
|
|
324
|
+
* @param partnerCustomization - `panelCustomisation` and `reportCustomisation` coming from `partnerConfig`.
|
|
320
325
|
* @returns Promise resolving to extraction result with measurements, unknownMeasurements, unknownUnits, unmappedLabKeys, parsing status, and transformation errors
|
|
321
326
|
*/
|
|
322
|
-
async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFilename, patientInfo, documentDate, transformationRules, allowMultiMeasurementsPerBiomarker, ohtCoreApiKey, partnerId, errorMessages) {
|
|
327
|
+
async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFilename, patientInfo, documentDate, transformationRules, allowMultiMeasurementsPerBiomarker, ohtCoreApiKey, partnerId, errorMessages, partnerCustomization) {
|
|
323
328
|
filename = sourceFilename;
|
|
324
329
|
const measurements = [];
|
|
325
330
|
const unknownMeasurements = [];
|
|
@@ -441,11 +446,16 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
441
446
|
synonymUnits = null;
|
|
442
447
|
}
|
|
443
448
|
}
|
|
449
|
+
// Collect reference range extraction log entries to log once at the end
|
|
450
|
+
const referenceRangeLogEntries = [];
|
|
444
451
|
// Process each exam directly using the exams with synthetic IDs
|
|
445
452
|
for (const examWithId of examsWithIds) {
|
|
446
453
|
const labKey = examWithId.ohtExam.labKey;
|
|
447
454
|
const examObj = examWithId.ohtExam;
|
|
448
455
|
const originalExam = examWithId.originalExam;
|
|
456
|
+
// Get the partner customisation for this labKey.
|
|
457
|
+
const partnerPanelCustomization = partnerCustomization?.panelCustomisation;
|
|
458
|
+
const partnerReportCustomization = partnerCustomization?.reportCustomisation;
|
|
449
459
|
// Get the transformed exam by synthetic UUID (supports duplicate labKeys)
|
|
450
460
|
const transformedExamWithId = transformedExamsMap.get(examWithId._syntheticId);
|
|
451
461
|
const transformedExamObj = transformedExamWithId ? transformedExamWithId.ohtExam : examObj;
|
|
@@ -489,7 +499,6 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
489
499
|
fallbackValue: backendMapping.annotationConfig?.fallbackValue,
|
|
490
500
|
separator: backendMapping.annotationConfig?.separator,
|
|
491
501
|
};
|
|
492
|
-
processingLogger_service_1.processingLogger.logInfo(`Using mappings from custom parser studio (oht-core backend) for labKey: ${labKey} (ohtBmId: ${backendMapping.ohtBmId})`);
|
|
493
502
|
}
|
|
494
503
|
else {
|
|
495
504
|
processingLogger_service_1.processingLogger.logDebug(`No backend mapping found for labKey: ${labKey}, will process as unmapped`);
|
|
@@ -531,6 +540,10 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
531
540
|
const bmInfo = ohtBiomarker?.acf?.shortName ?
|
|
532
541
|
`name:${ohtBiomarker.acf.shortName}, bmId:${finalOhtBmId}, labKey:${transformedExamObj.labKey}` :
|
|
533
542
|
`bmId:${finalOhtBmId}, labKey:${transformedExamObj.labKey}`;
|
|
543
|
+
// Determine effective biomarker compatibility, combining ACF
|
|
544
|
+
// with reportCustomisation rules when present.
|
|
545
|
+
const effectiveCompatibility = (0, extractionUtils_1.getEffectiveBiomarkerCompatibility)(ohtBiomarker, partnerPanelCustomization, partnerReportCustomization);
|
|
546
|
+
// extract the unit
|
|
534
547
|
const { unit, isUnitParsedCorrectly, originalUnit, isArbitraryUnit, unknownUnit } = (0, extractionUtils_1.ohtReportExtractUnit)(transformedExamObj, ohtBiomarker, synonymUnits, partnerId);
|
|
535
548
|
if (unknownUnit.length > 0) {
|
|
536
549
|
unknownUnits.push({
|
|
@@ -610,9 +623,9 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
610
623
|
}
|
|
611
624
|
let from = null, to = null;
|
|
612
625
|
let isRangeParsedCorrectly = true;
|
|
613
|
-
//
|
|
626
|
+
// Extract reference range respecting biomarker compatibility.
|
|
614
627
|
if ((0, dataUtils_1.isBiomarkerValueNumerical)(ohtBiomarker)) {
|
|
615
|
-
const extractedRange = (0, extractionUtils_1.
|
|
628
|
+
const extractedRange = (0, extractionUtils_1.getRangeForCompatibility)(ohtBiomarker, effectiveCompatibility, transformedExamObj, patientInfo, referenceRangeLogEntries);
|
|
616
629
|
from = extractedRange.from ?? null;
|
|
617
630
|
to = extractedRange.to ?? null;
|
|
618
631
|
isRangeParsedCorrectly = extractedRange.isRangeParsedCorrectly;
|
|
@@ -712,6 +725,12 @@ async function ohtReportMeasurementsExtractor(isReportPreview, exams, sourceFile
|
|
|
712
725
|
unknownMeasurements.push(unknownMeasurement);
|
|
713
726
|
}
|
|
714
727
|
}
|
|
728
|
+
// Log reference range extraction summary once with all labkeys
|
|
729
|
+
if (referenceRangeLogEntries.length > 0) {
|
|
730
|
+
processingLogger_service_1.processingLogger.logInfo('LabKey compatibility list', {
|
|
731
|
+
labKeyCompatibilityList: referenceRangeLogEntries.map((e) => `processed labkey ${e.labkey} with compatibility ${e.compatibility}`),
|
|
732
|
+
});
|
|
733
|
+
}
|
|
715
734
|
// Log summary of processing
|
|
716
735
|
const backendMappedCount = measurements.length;
|
|
717
736
|
const unmappedCount = unknownMeasurements.length;
|
|
@@ -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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"}
|
|
@@ -16,8 +16,51 @@ export interface OHTPartner {
|
|
|
16
16
|
reportCustomisation?: ReportCustomisation;
|
|
17
17
|
style: ReportStyleConfig[];
|
|
18
18
|
}
|
|
19
|
+
export type PartnerCustomization = {
|
|
20
|
+
panelCustomisation?: PartnerCustomPanel;
|
|
21
|
+
reportCustomisation?: ReportCustomisation;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Lightweight type describing report rules used by checkOhtBiomarkerCompatibility.
|
|
25
|
+
*
|
|
26
|
+
* The current implementation only relies on a subset of fields:
|
|
27
|
+
* - objectType: must be "BIOMARKER" for biomarker rules
|
|
28
|
+
* - objectIds: optional list of biomarker IDs (as strings) that the rule applies to
|
|
29
|
+
* - includeAllObjects: when true, rule applies to all biomarkers of the given objectType
|
|
30
|
+
* - objectsFilter.compatibility: list of ACF compatibilities that this rule may override
|
|
31
|
+
* - config.compatibilityOverrideMap: map from current compatibility to the overridden compatibility
|
|
32
|
+
*
|
|
33
|
+
* Other properties can exist on the rule object and will be ignored by the compatibility helper.
|
|
34
|
+
*/
|
|
35
|
+
export type BiomarkerReportRule = {
|
|
36
|
+
/** Type of object the rule targets, e.g. "BIOMARKER" */
|
|
37
|
+
objectType: string;
|
|
38
|
+
/** Explicit list of biomarker IDs (as strings) this rule targets */
|
|
39
|
+
objectIds?: string[];
|
|
40
|
+
/** When true, rule applies to all objects of the given type */
|
|
41
|
+
includeAllObjects?: boolean;
|
|
42
|
+
objectsFilter?: {
|
|
43
|
+
/**
|
|
44
|
+
* List of compatibilities from ACF that this rule can override.
|
|
45
|
+
* Values come from BiomarkerCompatibility but we keep it permissive
|
|
46
|
+
* to stay forward‑compatible with backend-defined strings.
|
|
47
|
+
*/
|
|
48
|
+
compatibility?: (BiomarkerCompatibility | string)[];
|
|
49
|
+
};
|
|
50
|
+
config?: {
|
|
51
|
+
/**
|
|
52
|
+
* Map where the key is the current compatibility and the value
|
|
53
|
+
* is the compatibility that should be applied.
|
|
54
|
+
*/
|
|
55
|
+
compatibilityOverrideMap?: Record<string, BiomarkerCompatibility | string>;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
19
58
|
export type ReportCustomisation = {
|
|
20
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Ordered list of report rules that can override biomarker compatibility.
|
|
61
|
+
* Only a subset of the shape is required by the compatibility helper, see BiomarkerReportRule.
|
|
62
|
+
*/
|
|
63
|
+
rules: BiomarkerReportRule[];
|
|
21
64
|
displaySettings: ReportDisplaySettings;
|
|
22
65
|
enableHistoricalData: boolean;
|
|
23
66
|
enableHistoricalMode: boolean;
|
|
@@ -188,6 +231,49 @@ export interface OriginalExam {
|
|
|
188
231
|
contentType: string;
|
|
189
232
|
exam: string;
|
|
190
233
|
}
|
|
234
|
+
export interface OhtMetadata {
|
|
235
|
+
/** REQUIRED: Unique identifier for the report/order. Must be a non-empty string. */
|
|
236
|
+
labOrderId: string;
|
|
237
|
+
/** REQUIRED: Collection date in ISO 8601 format (2006-01-02T15:04:05.000Z). Must be a non-empty string. */
|
|
238
|
+
collectionDate: string;
|
|
239
|
+
/** Exam date */
|
|
240
|
+
examDate: string;
|
|
241
|
+
/** Order date */
|
|
242
|
+
documentDate: string;
|
|
243
|
+
}
|
|
244
|
+
export interface OhtPatient {
|
|
245
|
+
/** REQUIRED: Patient unique identifier. Must be a non-empty string. */
|
|
246
|
+
id: string;
|
|
247
|
+
/** Patient name (PacienteNome) */
|
|
248
|
+
name: string;
|
|
249
|
+
/** Patient first name */
|
|
250
|
+
firstName: string;
|
|
251
|
+
/** Patient last name */
|
|
252
|
+
lastName: string;
|
|
253
|
+
/** Patient birth date (DataNascimento) */
|
|
254
|
+
birthdate: string;
|
|
255
|
+
/** REQUIRED: Patient sex/gender. Must be one of: "MALE", "FEMALE", or "OTHER". Case-insensitive. */
|
|
256
|
+
sex: string;
|
|
257
|
+
/** Patient gender (alternative field) */
|
|
258
|
+
gender: string;
|
|
259
|
+
/** Patient social name */
|
|
260
|
+
socialName: string;
|
|
261
|
+
/** Patient email */
|
|
262
|
+
email: string;
|
|
263
|
+
/** Patient CPF */
|
|
264
|
+
cpf: string;
|
|
265
|
+
/** Patient Document ID */
|
|
266
|
+
documentId: string;
|
|
267
|
+
/** Patient address */
|
|
268
|
+
address: string;
|
|
269
|
+
/** Patient phone number */
|
|
270
|
+
phoneNumber: string;
|
|
271
|
+
}
|
|
272
|
+
export interface OhtReport {
|
|
273
|
+
metadata: OhtMetadata;
|
|
274
|
+
patient: OhtPatient;
|
|
275
|
+
exams: Exam[];
|
|
276
|
+
}
|
|
191
277
|
export interface UnmappedLabKey extends UnknownMeasurement {
|
|
192
278
|
jsonBlob?: string;
|
|
193
279
|
labKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oht.types.js","sourceRoot":"","sources":["../../types/oht.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"oht.types.js","sourceRoot":"","sources":["../../types/oht.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,27 +178,22 @@ function processAppendedMappings(exams, labKeys, filename, annotationConfig) {
|
|
|
178
178
|
}
|
|
179
179
|
// Use request-scoped fileName so log message and structured context (file_name, file_upload_id) always match; avoids cross-request leakage under concurrency.
|
|
180
180
|
const filenameForLogging = (0, processingLogger_service_1.getRequestScopedFilename)(filename);
|
|
181
|
-
processingLogger_service_1.processingLogger.logInfo(`Processing appended mapping with ${labKeys.length} additional labKeys. filename: ${filenameForLogging}`);
|
|
182
181
|
const allExtractedValues = [];
|
|
183
182
|
const labKeyResults = [];
|
|
184
183
|
for (const additionalLabKey of labKeys) {
|
|
185
|
-
processingLogger_service_1.processingLogger.logInfo(`Processing labKey: ${additionalLabKey.labKey}, filename: ${filenameForLogging}`);
|
|
186
184
|
// First try: Find exam by direct labKey match
|
|
187
185
|
let exam = exams.find(exam => exam?.labKey === additionalLabKey.labKey ||
|
|
188
186
|
exam?.ohtExam?.labKey === additionalLabKey.labKey);
|
|
189
187
|
let examData = null;
|
|
190
188
|
if (exam) {
|
|
191
|
-
processingLogger_service_1.processingLogger.logInfo(`Found exam by direct labKey match for: ${additionalLabKey.labKey}`);
|
|
192
189
|
// Use ohtExam data if available, otherwise use exam directly
|
|
193
190
|
examData = exam.ohtExam || exam;
|
|
194
191
|
}
|
|
195
192
|
else {
|
|
196
|
-
processingLogger_service_1.processingLogger.logInfo(`Direct labKey not found, trying complex search for: ${additionalLabKey.labKey}`);
|
|
197
193
|
// Second try: labKey search for "labKeyFirstHalf:labKeySecondHalf" format
|
|
198
194
|
examData = findExamByLabKey(exams, additionalLabKey.labKey);
|
|
199
195
|
if (!examData)
|
|
200
196
|
continue;
|
|
201
|
-
processingLogger_service_1.processingLogger.logInfo(`Found exam by complex search for: ${additionalLabKey.labKey}`);
|
|
202
197
|
}
|
|
203
198
|
const parts = [];
|
|
204
199
|
// Process each extraction path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataUtils.js","sourceRoot":"","sources":["../../util-ts/dataUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dataUtils.js","sourceRoot":"","sources":["../../util-ts/dataUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RangeExtractionResponse, SynonymUnit } from "../types/custom-parser.types";
|
|
2
|
-
import { AnnotationLabKey, BackendBiomarkerMapping, OhtExam, PatientInfo, Biomarker, BiomarkerValueType, MeasurementValueComparator, AnnotationConfig, Exam } from "../types/oht.types";
|
|
2
|
+
import { AnnotationLabKey, BackendBiomarkerMapping, OhtExam, PatientInfo, Biomarker, BiomarkerValueType, MeasurementValueComparator, AnnotationConfig, Exam, ReportCustomisation, PartnerCustomPanel, BiomarkerCompatibility } from "../types/oht.types";
|
|
3
3
|
/**
|
|
4
4
|
* Default range parsing function that extracts range information from exam data
|
|
5
5
|
* @param exam - The OHT exam object containing range information
|
|
@@ -49,6 +49,37 @@ declare function ohtReportExtractReferenceAnnotation(annotationConfig: Annotatio
|
|
|
49
49
|
* Always uses parseRange function from extractionUtils for range extraction
|
|
50
50
|
*/
|
|
51
51
|
declare function ohtReportExtractReferenceRanges(ohtExam: OhtExam, patientInfo: PatientInfo): RangeExtractionResponse;
|
|
52
|
+
/**
|
|
53
|
+
* Computes the effective compatibility for a biomarker, taking into account
|
|
54
|
+
* report customisation rules when present and falling back to the ACF
|
|
55
|
+
* compatibility when there are no applicable rules.
|
|
56
|
+
*
|
|
57
|
+
* This is a thin wrapper around checkOhtBiomarkerCompatibility that:
|
|
58
|
+
* - Uses reportCustomisation rules if present
|
|
59
|
+
* - Falls back to ohtBiomarker.acf.compatibility when rules are absent
|
|
60
|
+
*/
|
|
61
|
+
declare function getEffectiveBiomarkerCompatibility(ohtBiomarker: Biomarker, panelCustomisation?: PartnerCustomPanel, reportCustomisation?: ReportCustomisation): BiomarkerCompatibility | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Centralizes reference range selection according to the biomarker's
|
|
64
|
+
* effective compatibility.
|
|
65
|
+
*
|
|
66
|
+
* Main rules:
|
|
67
|
+
* - external_strict: uses ohtReportExtractReferenceRanges; parse failures keep
|
|
68
|
+
* isRangeParsedCorrectly = false (warnings are generated as today).
|
|
69
|
+
* - external / external_no_visual_range: tries ohtReportExtractReferenceRanges;
|
|
70
|
+
* if it fails, returns { null, null, true } (no warnings, no parse error).
|
|
71
|
+
* - internal: never extracts an external range; always returns { null, null, true }.
|
|
72
|
+
* - external_alphanumerical: does not extract ranges or call parseRange;
|
|
73
|
+
* always returns { null, null, true }.
|
|
74
|
+
* - custom / undefined / others: keeps current behaviour, calling
|
|
75
|
+
* ohtReportExtractReferenceRanges once and respecting its
|
|
76
|
+
* isRangeParsedCorrectly value.
|
|
77
|
+
*/
|
|
78
|
+
export type ReferenceRangeLogEntry = {
|
|
79
|
+
labkey: string;
|
|
80
|
+
compatibility: string;
|
|
81
|
+
};
|
|
82
|
+
declare function getRangeForCompatibility(ohtBiomarker: Biomarker, compatibility: BiomarkerCompatibility | undefined, ohtExam: OhtExam, patientInfo: PatientInfo, logEntries?: ReferenceRangeLogEntry[]): RangeExtractionResponse;
|
|
52
83
|
declare function ohtReportExtractValueFromGreaterLowerThan(value: string): {
|
|
53
84
|
extractedValue: number | null;
|
|
54
85
|
extractedValueComparator: MeasurementValueComparator | null;
|
|
@@ -66,4 +97,5 @@ declare function ohtReportParseExamValue(ohtExam: OhtExam, ohtBiomarker: Biomark
|
|
|
66
97
|
isValueParsedCorrectly: boolean;
|
|
67
98
|
};
|
|
68
99
|
declare function ohtReportCheckValueForPlausibleValues(ohtBmId: number, labKey: string, ohtBiomarker: Biomarker, unit: string, value: number, isUnitParsedCorrectly: boolean, filename: string): boolean;
|
|
69
|
-
|
|
100
|
+
declare function checkOhtBiomarkerCompatibility(ohtBiomarker: Biomarker, panelCustomisation?: PartnerCustomPanel, reportCustomisation?: ReportCustomisation): BiomarkerCompatibility | undefined;
|
|
101
|
+
export { parseRange, handleBiomarkerId, ohtReportExtractUnit, ohtReportExtractReferenceAnnotation, ohtReportExtractReferenceRanges, ohtReportExtractValueFromGreaterLowerThan, ohtReportParseExamValue, ohtReportCheckValueForPlausibleValues, checkOhtBiomarkerCompatibility, getEffectiveBiomarkerCompatibility, getRangeForCompatibility, };
|
|
@@ -11,6 +11,9 @@ exports.ohtReportExtractReferenceRanges = ohtReportExtractReferenceRanges;
|
|
|
11
11
|
exports.ohtReportExtractValueFromGreaterLowerThan = ohtReportExtractValueFromGreaterLowerThan;
|
|
12
12
|
exports.ohtReportParseExamValue = ohtReportParseExamValue;
|
|
13
13
|
exports.ohtReportCheckValueForPlausibleValues = ohtReportCheckValueForPlausibleValues;
|
|
14
|
+
exports.checkOhtBiomarkerCompatibility = checkOhtBiomarkerCompatibility;
|
|
15
|
+
exports.getEffectiveBiomarkerCompatibility = getEffectiveBiomarkerCompatibility;
|
|
16
|
+
exports.getRangeForCompatibility = getRangeForCompatibility;
|
|
14
17
|
const oht_types_1 = require("../types/oht.types");
|
|
15
18
|
const moment_1 = __importDefault(require("moment"));
|
|
16
19
|
const processingLogger_service_1 = require("../service/processingLogger.service");
|
|
@@ -537,6 +540,68 @@ function ohtReportExtractReferenceRanges(ohtExam, patientInfo) {
|
|
|
537
540
|
}
|
|
538
541
|
return nullRangeNotParsedCorrectly;
|
|
539
542
|
}
|
|
543
|
+
/**
|
|
544
|
+
* Computes the effective compatibility for a biomarker, taking into account
|
|
545
|
+
* report customisation rules when present and falling back to the ACF
|
|
546
|
+
* compatibility when there are no applicable rules.
|
|
547
|
+
*
|
|
548
|
+
* This is a thin wrapper around checkOhtBiomarkerCompatibility that:
|
|
549
|
+
* - Uses reportCustomisation rules if present
|
|
550
|
+
* - Falls back to ohtBiomarker.acf.compatibility when rules are absent
|
|
551
|
+
*/
|
|
552
|
+
function getEffectiveBiomarkerCompatibility(ohtBiomarker, panelCustomisation, reportCustomisation) {
|
|
553
|
+
const compatibilityFromRules = checkOhtBiomarkerCompatibility(ohtBiomarker, panelCustomisation, reportCustomisation);
|
|
554
|
+
return compatibilityFromRules ?? ohtBiomarker.acf?.compatibility;
|
|
555
|
+
}
|
|
556
|
+
function getRangeForCompatibility(ohtBiomarker, compatibility, ohtExam, patientInfo, logEntries) {
|
|
557
|
+
const nullRangeTrue = {
|
|
558
|
+
from: null,
|
|
559
|
+
to: null,
|
|
560
|
+
isRangeParsedCorrectly: true,
|
|
561
|
+
};
|
|
562
|
+
const nullRangeFalse = {
|
|
563
|
+
from: null,
|
|
564
|
+
to: null,
|
|
565
|
+
isRangeParsedCorrectly: false,
|
|
566
|
+
};
|
|
567
|
+
if (logEntries) {
|
|
568
|
+
logEntries.push({
|
|
569
|
+
labkey: ohtExam.labKey ?? '',
|
|
570
|
+
compatibility: compatibility ?? 'undefined',
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
// external_alphanumerical: forces alphanumerical behaviour, never extracts a range
|
|
574
|
+
if (compatibility === oht_types_1.BiomarkerCompatibility.ExternalAlphanumerical) {
|
|
575
|
+
return nullRangeTrue;
|
|
576
|
+
}
|
|
577
|
+
// If the biomarker is not numerical, we should not extract a range
|
|
578
|
+
if (!(0, dataUtils_1.isBiomarkerValueNumerical)(ohtBiomarker)) {
|
|
579
|
+
return nullRangeTrue;
|
|
580
|
+
}
|
|
581
|
+
switch (compatibility) {
|
|
582
|
+
case oht_types_1.BiomarkerCompatibility.Internal:
|
|
583
|
+
case oht_types_1.BiomarkerCompatibility.External:
|
|
584
|
+
case oht_types_1.BiomarkerCompatibility.ExternalNoVisualRange: {
|
|
585
|
+
const extracted = ohtReportExtractReferenceRanges(ohtExam, patientInfo);
|
|
586
|
+
if (extracted.isRangeParsedCorrectly) {
|
|
587
|
+
return extracted;
|
|
588
|
+
}
|
|
589
|
+
// Internal fallback: do not call parseRange again, just clear the range
|
|
590
|
+
// and keep isRangeParsedCorrectly = true to avoid warnings.
|
|
591
|
+
return nullRangeTrue;
|
|
592
|
+
}
|
|
593
|
+
case oht_types_1.BiomarkerCompatibility.ExternalStrict: {
|
|
594
|
+
const extracted = ohtReportExtractReferenceRanges(ohtExam, patientInfo);
|
|
595
|
+
// Strict behaviour: if extraction fails, we keep the error.
|
|
596
|
+
return extracted.isRangeParsedCorrectly ? extracted : nullRangeFalse;
|
|
597
|
+
}
|
|
598
|
+
case oht_types_1.BiomarkerCompatibility.Custom:
|
|
599
|
+
default: {
|
|
600
|
+
// Default/custom behaviour: keep the current extraction logic
|
|
601
|
+
return ohtReportExtractReferenceRanges(ohtExam, patientInfo);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
540
605
|
function ohtReportExtractValueFromGreaterLowerThan(value) {
|
|
541
606
|
// Checks first if any greater than pattern is present
|
|
542
607
|
const greaterThanPatterns = getGreaterThanPatternsLocal(); // TODO: CAN USE THE SAME PATTERNS AS PARSE RANGE FUNCTION?
|
|
@@ -672,4 +737,49 @@ function ohtReportCheckValueForPlausibleValues(ohtBmId, labKey, ohtBiomarker, un
|
|
|
672
737
|
}
|
|
673
738
|
return isPlausibleValue;
|
|
674
739
|
}
|
|
740
|
+
function checkOhtBiomarkerCompatibility(ohtBiomarker, panelCustomisation, reportCustomisation) {
|
|
741
|
+
const biomarkerId = ohtBiomarker.id;
|
|
742
|
+
const biomarkerAcfCompatibility = ohtBiomarker.acf?.compatibility;
|
|
743
|
+
// If no ACF compatibility, return undefined
|
|
744
|
+
if (!biomarkerAcfCompatibility) {
|
|
745
|
+
return undefined;
|
|
746
|
+
}
|
|
747
|
+
// If no rules exist, return ACF compatibility
|
|
748
|
+
if (!reportCustomisation?.rules || reportCustomisation.rules.length === 0) {
|
|
749
|
+
return biomarkerAcfCompatibility;
|
|
750
|
+
}
|
|
751
|
+
// Convert biomarkerId to string for comparison (objectIds are strings in the rules)
|
|
752
|
+
const biomarkerIdString = String(biomarkerId);
|
|
753
|
+
// Helper function to apply compatibility override map
|
|
754
|
+
const applyOverrideMap = (compatibility, overrideMap) => {
|
|
755
|
+
if (overrideMap && overrideMap[compatibility]) {
|
|
756
|
+
// Cast to BiomarkerCompatibility as override map values might be custom strings
|
|
757
|
+
return overrideMap[compatibility];
|
|
758
|
+
}
|
|
759
|
+
return compatibility;
|
|
760
|
+
};
|
|
761
|
+
// Start with ACF compatibility - this will be modified by applying rules in sequence
|
|
762
|
+
let currentCompatibility = biomarkerAcfCompatibility;
|
|
763
|
+
// 1. Apply all specific rules where objectIds contains the biomarkerId (in order)
|
|
764
|
+
const specificRules = reportCustomisation.rules.filter(rule => rule.objectType === "BIOMARKER" &&
|
|
765
|
+
rule.objectIds?.includes(biomarkerIdString));
|
|
766
|
+
for (const rule of specificRules) {
|
|
767
|
+
const overrideMap = rule.config?.compatibilityOverrideMap;
|
|
768
|
+
currentCompatibility = applyOverrideMap(currentCompatibility, overrideMap);
|
|
769
|
+
}
|
|
770
|
+
// 2. Apply all general rules with includeAllObjects: true (in order)
|
|
771
|
+
// Check if objectsFilter.compatibility includes the original ACF compatibility
|
|
772
|
+
const generalRules = reportCustomisation.rules.filter(rule => rule.objectType === "BIOMARKER" &&
|
|
773
|
+
rule.includeAllObjects === true);
|
|
774
|
+
for (const rule of generalRules) {
|
|
775
|
+
const filterCompatibility = rule.objectsFilter?.compatibility;
|
|
776
|
+
// Check if the filter includes the original ACF compatibility
|
|
777
|
+
if (Array.isArray(filterCompatibility) && filterCompatibility.includes(biomarkerAcfCompatibility)) {
|
|
778
|
+
const overrideMap = rule.config?.compatibilityOverrideMap;
|
|
779
|
+
currentCompatibility = applyOverrideMap(currentCompatibility, overrideMap);
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
// Return the final compatibility after applying all rules in sequence
|
|
783
|
+
return currentCompatibility;
|
|
784
|
+
}
|
|
675
785
|
//# sourceMappingURL=extractionUtils.js.map
|