@openhealth/oht-custom-parser-lib 0.2.74 → 0.2.75

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.
@@ -1,13 +1,5 @@
1
1
  import { LabToOhtContract, LabToOhtMapper, RangeExtraction, RangeExtractionResponse, UnitExtraction, ValueExtraction, SynonymUnit, UnknownUnits, TransformationRulesChains } from "../types/custom-parser.types";
2
2
  import { Biomarker, BiomarkerValueType, Measurement, MeasurementValueComparator, PatientInfo, UnknownMeasurement, Exam } from "../types/oht.types";
3
- /**
4
- * Extracts unit from rawData (OhtExam object)
5
- * @param unitExtraction - Unit extraction configuration
6
- * @param rawData - OhtExam object (not a JSON string)
7
- * @param ohtBiomarker - Biomarker information
8
- * @param synonymUnits - Synonym units for unit resolution
9
- * @param partnerId - Partner ID for synonym resolution
10
- */
11
3
  declare function extractUnit(unitExtraction: UnitExtraction | undefined, rawData: any, ohtBiomarker: Biomarker, synonymUnits?: SynonymUnit[] | null, partnerId?: string | null | undefined): {
12
4
  unit: string;
13
5
  isUnitParsedCorrectly: boolean;
@@ -15,36 +7,17 @@ declare function extractUnit(unitExtraction: UnitExtraction | undefined, rawData
15
7
  isArbitraryUnit: boolean;
16
8
  unknownUnit: string;
17
9
  };
18
- /**
19
- * Extracts reference annotation from rawExam (OhtExam object)
20
- * @param labToOhtMapper - Lab to OHT mapper configuration
21
- * @param rawExam - OhtExam object (not a JSON string)
22
- * @param patientInfo - Patient information
23
- * @param documentDate - Document date
24
- * @param exams - Array of exams for appended mappings
25
- */
26
10
  declare function extractReferenceAnnotation(labToOhtMapper: LabToOhtMapper, rawExam: any, patientInfo: PatientInfo, documentDate?: Date, exams?: Exam[]): string;
27
- /**
28
- * Extracts range from rawData (OhtExam object) using position and regex
29
- */
30
11
  declare const getRangeFromPositionAndRegex: (rangeExtraction: RangeExtraction, rawData: any) => {
31
12
  from: number | undefined;
32
13
  to: number | undefined;
33
14
  };
34
- /**
35
- * Extracts reference ranges from rawData (OhtExam object)
36
- * Custom extraction functions (extractionFunc, defaultRangeExtractionFunc) now receive OhtExam object
37
- */
38
15
  declare function extractReferenceRanges(labToOhtMapper: LabToOhtMapper, rawData: any, patientInfo: PatientInfo, documentDate?: Date): RangeExtractionResponse;
39
16
  declare function extractValueFromGreaterLowerThan(value: string): {
40
17
  extractedValue: number | null;
41
18
  extractedValueComparator: MeasurementValueComparator | null;
42
19
  valueParsedCorrectly: boolean;
43
20
  };
44
- /**
45
- * Parses exam value from rawExamObj (OhtExam object)
46
- * Custom extraction functions (extractionFunc) now receive OhtExam object
47
- */
48
21
  declare function parseExamValue(rawExamObj: any, valueExtraction: ValueExtraction | undefined, ohtBiomarker: Biomarker): {
49
22
  valueType: BiomarkerValueType;
50
23
  alphanumericalValue: string | null;
@@ -21,14 +21,6 @@ const auxiliaryFunctions_service_1 = require("./auxiliaryFunctions.service");
21
21
  const logger = (0, pinoLogger_1.default)();
22
22
  const OHT_CORE_URL = process.env.OHT_CORE_URL;
23
23
  let filename = '';
24
- /**
25
- * Extracts unit from rawData (OhtExam object)
26
- * @param unitExtraction - Unit extraction configuration
27
- * @param rawData - OhtExam object (not a JSON string)
28
- * @param ohtBiomarker - Biomarker information
29
- * @param synonymUnits - Synonym units for unit resolution
30
- * @param partnerId - Partner ID for synonym resolution
31
- */
32
24
  function extractUnit(unitExtraction, rawData, ohtBiomarker, synonymUnits = null, partnerId = null) {
33
25
  if (!(0, dataUtils_1.isBiomarkerValueNumerical)(ohtBiomarker)) {
34
26
  return { unit: "None", isUnitParsedCorrectly: true, originalUnit: "", isArbitraryUnit: false, unknownUnit: '' };
@@ -93,12 +85,8 @@ function extractUnit(unitExtraction, rawData, ohtBiomarker, synonymUnits = null,
93
85
  return { unit: unitExtraction?.predefinedUnit, isUnitParsedCorrectly: allUnitContainsUnitFromOhtMap, originalUnit: originalUnit, isArbitraryUnit: isArbitraryUnit, unknownUnit: '' };
94
86
  }
95
87
  if (unitExtraction?.extractionRegex) {
96
- // CHANGED: Extract value first, then apply regex to the extracted string value
97
- // rawData is now OhtExam object, not a string, so we need to extract the value first
98
- const extractedValue = (0, dataUtils_1.extractValue)(rawData, unitExtraction?.unitPosition);
99
- const valueString = extractedValue ? String(extractedValue) : '';
100
88
  const regex = new RegExp(unitExtraction.extractionRegex);
101
- const match = valueString.match(regex);
89
+ const match = rawData.match(regex);
102
90
  const allUnitContainsUnitMatch = allBmOhtUnits.includes(match?.[1]?.toLowerCase());
103
91
  if (match?.[1] && allUnitContainsUnitMatch) {
104
92
  return { unit: match?.[1], isUnitParsedCorrectly: true, originalUnit: originalUnit, isArbitraryUnit: isArbitraryUnit, unknownUnit: '' };
@@ -107,14 +95,6 @@ function extractUnit(unitExtraction, rawData, ohtBiomarker, synonymUnits = null,
107
95
  // if the unit didnt match any of the cases, add the unit to an unknownUnit list
108
96
  return { unit: '', isUnitParsedCorrectly: false, originalUnit: '', isArbitraryUnit: false, unknownUnit: unit };
109
97
  }
110
- /**
111
- * Extracts reference annotation from rawExam (OhtExam object)
112
- * @param labToOhtMapper - Lab to OHT mapper configuration
113
- * @param rawExam - OhtExam object (not a JSON string)
114
- * @param patientInfo - Patient information
115
- * @param documentDate - Document date
116
- * @param exams - Array of exams for appended mappings
117
- */
118
98
  function extractReferenceAnnotation(labToOhtMapper, rawExam, patientInfo, documentDate, exams) {
119
99
  const annotationExtractionFunc = labToOhtMapper?.referenceAsAnnotation?.extractionFunc;
120
100
  let annotation = '';
@@ -145,16 +125,11 @@ function extractReferenceAnnotation(labToOhtMapper, rawExam, patientInfo, docume
145
125
  }
146
126
  return annotation || undefined;
147
127
  }
148
- /**
149
- * Extracts range from rawData (OhtExam object) using position and regex
150
- */
151
128
  const getRangeFromPositionAndRegex = (rangeExtraction, rawData) => {
152
129
  const extractionRegex = rangeExtraction.extractionRegex;
153
130
  const rangePosition = rangeExtraction.rangePosition;
154
131
  const regex = typeof extractionRegex === 'string' ? new RegExp(extractionRegex) : extractionRegex;
155
- // CHANGED: extractValue returns any, convert to string for regex.exec()
156
- const extractedValue = (0, dataUtils_1.extractValue)(rawData, rangePosition);
157
- const value = extractedValue ? String(extractedValue) : '';
132
+ const value = (0, dataUtils_1.extractValue)(rawData, rangePosition);
158
133
  if (regex) {
159
134
  let match = regex.exec(value);
160
135
  if (match) {
@@ -175,10 +150,6 @@ const getRangeFromPositionAndRegex = (rangeExtraction, rawData) => {
175
150
  };
176
151
  };
177
152
  exports.getRangeFromPositionAndRegex = getRangeFromPositionAndRegex;
178
- /**
179
- * Extracts reference ranges from rawData (OhtExam object)
180
- * Custom extraction functions (extractionFunc, defaultRangeExtractionFunc) now receive OhtExam object
181
- */
182
153
  function extractReferenceRanges(labToOhtMapper, rawData, patientInfo, documentDate) {
183
154
  // WIP
184
155
  const nullRangeNotParsedCorrectly = { from: null, to: null, isRangeParsedCorrectly: false };
@@ -251,21 +222,10 @@ function extractValueFromGreaterLowerThan(value) {
251
222
  // If no pattern is found, return the value as is and the comparator as EQUAL and isValueParsedCorrectly as false
252
223
  return { extractedValue: null, extractedValueComparator: null, valueParsedCorrectly: false };
253
224
  }
254
- /**
255
- * Parses exam value from rawExamObj (OhtExam object)
256
- * Custom extraction functions (extractionFunc) now receive OhtExam object
257
- */
258
225
  function parseExamValue(rawExamObj, valueExtraction, ohtBiomarker) {
259
226
  let value = (0, dataUtils_1.extractValue)(rawExamObj, valueExtraction?.valuePosition);
260
227
  // try default extraction function or return the value as is
261
228
  value = valueExtraction?.extractionFunc ? valueExtraction?.extractionFunc(rawExamObj) : value;
262
- // extractValue can return any type, so we normalize to string for parseFloat
263
- if (value != null) {
264
- value = String(value);
265
- }
266
- else {
267
- value = '';
268
- }
269
229
  // If is parse float nan, the value is alphanumerical
270
230
  const valueType = (0, dataUtils_1.isBiomarkerValueNumerical)(ohtBiomarker)
271
231
  ? oht_types_1.BiomarkerValueType.NUMERICAL
@@ -336,7 +296,7 @@ function checkValueForPlausibleValues(labToOhtMapper, ohtBiomarker, unit, value,
336
296
  const isPlausibleValue = value >= plausibleLowerValue && value <= plausibleUpperValue;
337
297
  // Log if the value is not plausible
338
298
  if (!isPlausibleValue) {
339
- logger.warn({ labToOhtMapper, value, standardUnit, plausibleLowerValue, plausibleUpperValue, filename }, `Value "${value} ${standardUnit}" not plausible "${plausibleLowerValue} to ${plausibleUpperValue}" for "${labToOhtMapper.ohtBmId}" | "${labToOhtMapper.ohtExam.labKey}", filename: ${filename}`);
299
+ logger.warn({ labToOhtMapper, value, standardUnit, plausibleLowerValue, plausibleUpperValue, filename }, `Value "${value} ${standardUnit}" not plausible "${plausibleLowerValue} to ${plausibleUpperValue}" for "${labToOhtMapper.ohtBmId}" | "${labToOhtMapper.labKey}", filename: ${filename}`);
340
300
  }
341
301
  return isPlausibleValue;
342
302
  }
@@ -474,16 +434,19 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
474
434
  }
475
435
  labToOhtContract.labToOhtList.forEach((labToOhtMapper) => {
476
436
  let isMeasurementCorrectlyParsed = true;
477
- if (!labToOhtMapper.ohtExam) {
437
+ if (!labToOhtMapper.rawExam) {
478
438
  labToOhtContract.errorMessages.push({
479
439
  destination: { slack: true, notes: false, bi: false },
480
- message: `Missing ohtExam for labKey: ${labToOhtMapper.ohtExam?.labKey || 'unknown'} filename: ${filename}`,
440
+ message: `Missing rawExam for labKey: ${labToOhtMapper.labKey} filename: ${filename}`,
481
441
  });
482
442
  return;
483
443
  }
484
- // Get the transformed exam for this labKey, or use the original ohtExam
485
- const transformedExam = transformedExamsMap.get(labToOhtMapper.ohtExam.labKey);
486
- const examObj = transformedExam ? transformedExam.ohtExam : labToOhtMapper.ohtExam;
444
+ let examObj = JSON.parse(labToOhtMapper.rawExam);
445
+ // Get the transformed exam for this labKey
446
+ const transformedExam = transformedExamsMap.get(labToOhtMapper.labKey);
447
+ if (transformedExam) {
448
+ examObj = transformedExam.ohtExam;
449
+ }
487
450
  if (labToOhtMapper?.ohtBmId && labToOhtMapper?.ohtBmId !== -1) {
488
451
  // if BM is already in measurements, continue to the next one
489
452
  if (measurements.some(measurement => measurement.biomarkerId === labToOhtMapper.ohtBmId)) {
@@ -491,30 +454,30 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
491
454
  labToOhtContract.errorMessages.push({
492
455
  destination: { slack: false, notes: false, bi: true },
493
456
  message: `Biomarkers Duplicated keys:[PLACEHOLDER]`,
494
- item: `bmId:${labToOhtMapper.ohtBmId}, labKey:${examObj.labKey}`
457
+ item: `bmId:${labToOhtMapper.ohtBmId}, labKey:${labToOhtMapper.labKey}`
495
458
  });
496
459
  return;
497
460
  }
498
461
  const ohtBiomarker = biomarkers?.data?.items.find((bm) => bm.id === labToOhtMapper.ohtBmId);
499
462
  // Used for error messages
500
463
  const bmInfo = ohtBiomarker?.acf?.shortName ?
501
- `name:${ohtBiomarker.acf.shortName}, bmId:${labToOhtMapper.ohtBmId}, labKey:${examObj.labKey}` :
502
- `bmId:${labToOhtMapper.ohtBmId}, labKey:${examObj.labKey}`;
464
+ `name:${ohtBiomarker.acf.shortName}, bmId:${labToOhtMapper.ohtBmId}, labKey:${labToOhtMapper.labKey}` :
465
+ `bmId:${labToOhtMapper.ohtBmId}, labKey:${labToOhtMapper.labKey}`;
503
466
  const { unit, isUnitParsedCorrectly, originalUnit, isArbitraryUnit, unknownUnit } = extractUnit(labToOhtMapper.unitExtraction, examObj, ohtBiomarker, synonymUnits, partnerId);
504
467
  if (unknownUnit.length > 0) {
505
468
  unknownUnits.push({
506
469
  biomarkerId: ohtBiomarker.id,
507
470
  unit: unknownUnit,
508
471
  partnerId: partnerId,
509
- labKey: examObj.labKey,
472
+ labKey: labToOhtMapper.labKey,
510
473
  ohtExam: labToOhtMapper.ohtExam,
511
474
  originalExam: labToOhtMapper.originalExam,
512
- biomarkerName: examObj.mnemonic || '',
475
+ biomarkerName: labToOhtMapper.biomarkerName,
513
476
  dataImportFileUploadId: null, // is null it will be set later in the structParser.service.ts
514
477
  });
515
478
  }
516
479
  if (!isUnitParsedCorrectly) {
517
- logger.warn({ labToOhtMapper }, `Unit not extracted correctly for "${labToOhtMapper.ohtBmId}|${examObj.labKey}", filename: ${filename}`);
480
+ logger.warn({ labToOhtMapper }, `Unit not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
518
481
  labToOhtContract.errorMessages.push({
519
482
  destination: { slack: true, notes: true, bi: true },
520
483
  message: `Unit not extracted correctly for:[PLACEHOLDER]`,
@@ -524,7 +487,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
524
487
  }
525
488
  let { valueType, alphanumericalValue, numberValue, valueComparator, isValueParsedCorrectly } = parseExamValue(examObj, labToOhtMapper.valueExtraction, ohtBiomarker);
526
489
  if (!isValueParsedCorrectly) {
527
- logger.warn({ labToOhtMapper }, `Value not extracted correctly for "${labToOhtMapper.ohtBmId}|${examObj.labKey}", filename: ${filename}`);
490
+ logger.warn({ labToOhtMapper }, `Value not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
528
491
  labToOhtContract.errorMessages.push({
529
492
  destination: { slack: true, notes: true, bi: true },
530
493
  message: `Value not extracted correctly for:[PLACEHOLDER]`,
@@ -535,7 +498,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
535
498
  if ((0, dataUtils_1.isNumericalWithoutValidResult)(valueType, numberValue, alphanumericalValue)) {
536
499
  const alphanumericalValueTrimmed = alphanumericalValue?.trim() ?? '';
537
500
  const unknownMeasurement = {
538
- labKey: examObj.labKey,
501
+ labKey: labToOhtMapper.labKey,
539
502
  biomarkerName: examObj.description ?? '',
540
503
  value: alphanumericalValueTrimmed,
541
504
  unit: unit ?? '',
@@ -546,10 +509,10 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
546
509
  methodVersion: 'oht-custom-parser-lib',
547
510
  path: 'exams',
548
511
  }],
549
- originalName: examObj.examName ?? '',
512
+ originalName: labToOhtMapper?.originalName ?? '',
550
513
  originalExam: {
551
514
  contentType: 'application/json',
552
- exam: JSON.stringify(examObj)
515
+ exam: labToOhtMapper.rawExam ?? ''
553
516
  },
554
517
  ohtExam: examObj
555
518
  };
@@ -560,7 +523,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
560
523
  if (isValueParsedCorrectly && valueType === 'NUMERICAL') {
561
524
  const isPlausibleValue = numberValue !== null && checkValueForPlausibleValues(labToOhtMapper, ohtBiomarker, unit, numberValue, isUnitParsedCorrectly);
562
525
  if (!isPlausibleValue) {
563
- logger.warn({ labToOhtMapper }, `Value [${numberValue} ${unit}] is not plausible for "${labToOhtMapper.ohtBmId}|${examObj.labKey}", filename: ${filename}`);
526
+ logger.warn({ labToOhtMapper }, `Value [${numberValue} ${unit}] is not plausible for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
564
527
  labToOhtContract.errorMessages.push({
565
528
  destination: { slack: true, notes: true, bi: true },
566
529
  message: `Value is not plausible for:[PLACEHOLDER]`,
@@ -578,7 +541,7 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
578
541
  to = extractedRange.to ?? null;
579
542
  isRangeParsedCorrectly = extractedRange.isRangeParsedCorrectly;
580
543
  if (!isRangeParsedCorrectly) {
581
- logger.warn({ labToOhtMapper }, `Range not extracted correctly for "${labToOhtMapper.ohtBmId}|${examObj.labKey}", filename: ${filename}`);
544
+ logger.warn({ labToOhtMapper }, `Range not extracted correctly for "${labToOhtMapper.ohtBmId}|${labToOhtMapper.labKey}", filename: ${filename}`);
582
545
  labToOhtContract.errorMessages.push({
583
546
  destination: { slack: true, notes: true, bi: true },
584
547
  message: `Range not extracted correctly for:[PLACEHOLDER]`,
@@ -603,12 +566,12 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
603
566
  alphaValue = alphaValue && unit?.length > 0 ? `${alphaValue} ${originalUnit}`.trim() : alphaValue;
604
567
  }
605
568
  // adding dates for measurements in ISO 8601 format
606
- const collectionDate = examObj.collectionDate ? new Date(examObj.collectionDate).toISOString() : null;
607
- const effectiveDate = examObj.effectiveDate ? new Date(examObj.effectiveDate).toISOString() : null;
608
- const examCollectionDate = examObj.examCollectionDate ? new Date(examObj.examCollectionDate).toISOString() : null;
609
- const examEffectiveDate = examObj.examEffectiveDate ? new Date(examObj.examEffectiveDate).toISOString() : null;
569
+ const collectionDate = labToOhtMapper?.collectionDate ? new Date(labToOhtMapper.collectionDate).toISOString() : null;
570
+ const effectiveDate = labToOhtMapper?.effectiveDate ? new Date(labToOhtMapper.effectiveDate).toISOString() : null;
571
+ const examCollectionDate = labToOhtMapper?.examCollectionDate ? new Date(labToOhtMapper.examCollectionDate).toISOString() : null;
572
+ const examEffectiveDate = labToOhtMapper?.examEffectiveDate ? new Date(labToOhtMapper.examEffectiveDate).toISOString() : null;
610
573
  // add original name for document search
611
- const originalName = examObj.examName ?? '';
574
+ const originalName = labToOhtMapper?.originalName ?? '';
612
575
  let measurement = {
613
576
  biomarkerId: ohtBiomarker.id,
614
577
  valueType,
@@ -635,18 +598,18 @@ async function ohtMeasurementsExtractor(labToOhtContract, exams, transformationR
635
598
  measurements.push(measurement);
636
599
  }
637
600
  else {
638
- const labKey = examObj.labKey;
639
- logger.warn(`Created an ungroupedBiomarker for id: ${labKey}, filename: ${filename}`);
601
+ logger.warn(`Created an ungroupedBiomarker for id: ${labToOhtMapper.labKey}, filename: ${filename}`);
640
602
  labToOhtContract.errorMessages.push({
641
603
  destination: { slack: false, notes: false, bi: true },
642
604
  message: `Created ungroupedBiomarkers for:[PLACEHOLDER]`,
643
- item: `labKey:${labKey}`
605
+ item: `labKey:${labToOhtMapper.labKey}`
644
606
  });
645
607
  const biomarkerName = labToOhtMapper?.unknownMeasurement?.biomarkerName ?? '';
646
608
  const value = labToOhtMapper?.unknownMeasurement?.value ?? '';
647
609
  const unit = labToOhtMapper?.unknownMeasurement?.unit ?? '';
648
610
  const annotation = labToOhtMapper?.unknownMeasurement?.annotation ?? '';
649
611
  const originalName = labToOhtMapper?.unknownMeasurement?.originalName ?? '';
612
+ const labKey = labToOhtMapper.labKey;
650
613
  const originalExam = labToOhtMapper?.unknownMeasurement?.originalExam
651
614
  ? {
652
615
  contentType: typeof labToOhtMapper.unknownMeasurement.originalExam.contentType === 'string'
@@ -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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"}
@@ -72,16 +72,24 @@ export interface OriginalExam {
72
72
  }
73
73
  export interface LabToOhtMapper {
74
74
  ohtBmId?: number;
75
+ biomarkerName?: string;
76
+ labKey?: string;
77
+ rawExam?: string;
75
78
  material?: string;
76
79
  method?: string;
80
+ collectionDate?: string;
81
+ effectiveDate?: string;
82
+ examCollectionDate?: string;
83
+ examEffectiveDate?: string;
77
84
  valueExtraction?: ValueExtraction;
78
85
  unitExtraction?: UnitExtraction;
79
86
  rangeExtraction?: RangeExtraction;
80
87
  referenceAsAnnotation?: ReferenceAsAnnotation;
81
88
  unknownMeasurement?: UnknownMeasurementExtraction;
82
89
  annotationConfig?: AnnotationConfig;
90
+ originalName?: string;
83
91
  originalExam?: OriginalExam;
84
- ohtExam: OhtExam;
92
+ ohtExam?: OhtExam;
85
93
  }
86
94
  export interface LabToOhtContract {
87
95
  labToOhtList: LabToOhtMapper[];
@@ -445,6 +445,9 @@ export interface BackendBiomarkerMapping {
445
445
  jsonBlob?: any;
446
446
  isIgnored?: boolean;
447
447
  keepAsUnmapped?: boolean;
448
+ /** Optional tagged LOINC code */
449
+ taggedLoincCode?: string;
450
+ /** all the following configurations will be deleted */
448
451
  /** Range extraction configuration */
449
452
  rangeExtraction: RangeExtractionConfig;
450
453
  /** Unit extraction configuration */
@@ -454,9 +457,7 @@ export interface BackendBiomarkerMapping {
454
457
  /** Reference as annotation configuration */
455
458
  referenceAsAnnotation: ReferenceAsAnnotationConfig;
456
459
  /** Annotation configuration for appended biomarkers */
457
- annotationConfig?: AnnotationConfig;
458
- /** Optional tagged LOINC code */
459
- taggedLoincCode?: string;
460
+ annotationConfig: AnnotationConfig;
460
461
  }
461
462
  /** Custom parser transformation rules */
462
463
  export type TransformationRule = {
@@ -0,0 +1,10 @@
1
+ import { LabToOhtMapper, RangeExtractionResponse } from "../types/custom-parser.types";
2
+ import { OhtExam, PatientInfo } from "../types/oht.types";
3
+ /**
4
+ * Default range parsing function that extracts range information from exam data
5
+ * @param exam - The OHT exam object containing range information
6
+ * @param labToOhtMapper - The lab to OHT mapper configuration
7
+ * @returns Range extraction response with parsed range bounds
8
+ */
9
+ declare function parseRange(exam: OhtExam, labToOhtMapper: LabToOhtMapper, patientInfo: PatientInfo): RangeExtractionResponse;
10
+ export { parseRange };