@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.
@@ -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
- * - Calls `ohtReportExtractReferenceRanges()` which uses `parseRange()` internally
90
- * - Extracts min/max normal values based on patient age, sex, and range data
91
- * - Filters ranges by patient demographics and selects most appropriate range
92
- * - Logs warning and marks measurement as incorrectly parsed if range extraction fails
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
- * - Calls `ohtReportExtractReferenceRanges()` which uses `parseRange()` internally
258
- * - Extracts min/max normal values based on patient age, sex, and range data
259
- * - Filters ranges by patient demographics and selects most appropriate range
260
- * - Logs warning and marks measurement as incorrectly parsed if range extraction fails
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
- // If the biomarker is numerical, extract the reference range
626
+ // Extract reference range respecting biomarker compatibility.
614
627
  if ((0, dataUtils_1.isBiomarkerValueNumerical)(ohtBiomarker)) {
615
- const extractedRange = (0, extractionUtils_1.ohtReportExtractReferenceRanges)(transformedExamObj, patientInfo);
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
- rules: any[];
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":"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"}
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":";;;AAkBA,0DAkDC;AAED,8DAEC;AAED,4EAEC;AAiJD,0DAuLC;AASD,0CAiCC;AASD,kCAUC;AAsFD,sEAKC;AA5iBD,kDAAmG;AAEnG,yCAAkD;AAClD,kFAAiG;AAEjG;;GAEG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,aAAqB,EACrB,WAAmB,EACnB,SAAoC,EACpC,YAA2B;IAE3B,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAEpD,iDAAiD;IACjD,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,qBAAqB,GAAG,YAAY,CAAC,IAAI,CAC7C,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,WAAW,KAAK,WAAW;YAChC,IAAI,CAAC,SAAS,KAAK,SAAS;YAC5B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,cAAc,CACrD,CAAC;QACF,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CACpC,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C,IAAI,CAAC,SAAS,KAAK,SAAS;YAC5B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,cAAc,CACrD,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CACnC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,SAAS,IAAI,IAAI;QACtB,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,cAAc,CACrD,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,8BAA8B;AACzE,CAAC;AAED,SAAgB,yBAAyB,CAAC,SAAc;IACtD,OAAO,SAAS,EAAE,GAAG,EAAE,aAAa,KAAK,yBAAyB,CAAC;AACrE,CAAC;AAED,SAAgB,gCAAgC,CAAC,SAAc;IAC7D,OAAO,SAAS,EAAE,GAAG,EAAE,aAAa,KAAK,0BAA0B,CAAC;AACtE,CAAC;AAEM,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,QAAiB,EAAO,EAAE;IAC/D,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB;AAEF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAE9C,qHAAqH;AAC9G,MAAM,mBAAmB,GAAG,KAAK,EAAE,SAAiB,EAAE,aAAqB,EAAE,EAAE;IACpF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAoB,EACzC,KAAK,EACL,GAAG,YAAY,6BAA6B,SAAS,kBAAkB,EACvE,IAAI,EACJ,aAAa,CACd,CAAC;QACF,OAAO,QAAQ,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;IACjD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC,CAAC;AAfW,QAAA,mBAAmB,uBAe9B;AAEF,oIAAoI;AACpI,wFAAwF;AACjF,MAAM,yBAAyB,GAAG,KAAK,EAAE,SAAiB,EAAE,aAAqB,EAAE,EAAE;IAC1F,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAoB,EACzC,KAAK,EACL,GAAG,YAAY,6BAA6B,SAAS,kBAAkB,EACvE,IAAI,EACJ,aAAa,CACd,CAAC;QACF,OAAO,QAAQ,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;IACjD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC,CAAC;AAfW,QAAA,yBAAyB,6BAepC;AAEF,uIAAuI;AAChI,MAAM,wCAAwC,GAAG,KAAK,EAAE,SAAiB,EAAE,uBAAgD,EAAE,aAAqB,EAAE,EAAE;IAC3J,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAoB,EACzC,MAAM,EACN,GAAG,YAAY,6BAA6B,SAAS,gBAAgB,EACrE;QACE,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,uBAAuB,CAAC,eAAe;KACzD,EACD,aAAa,CACd,CAAC;IACF,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,CAAC;IACpC,2CAAgB,CAAC,OAAO,CAAC,wCAAwC,SAAS,gBAAgB,EAAE;QAC1F,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,uBAAuB,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;QACpE,WAAW,EAAE,QAAQ,EAAE,MAAM;QAC7B,gBAAgB,EAAE,OAAO,YAAY,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAC/F,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,wCAAwC,4CAiBnD;AAEF,gIAAgI;AACzH,MAAM,kCAAkC,GAAG,KAAK,EAAE,SAAiB,EAAE,YAA4B,EAAE,aAAqB,EAAE,EAAE;IACjI,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAoB,EACzC,MAAM,EACN,GAAG,YAAY,wBAAwB,SAAS,qBAAqB,EACrE;QACE,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,YAAY;KAC3B,EACD,aAAa,CACd,CAAC;IACF,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAC;IAChC,2CAAgB,CAAC,OAAO,CAAC,mCAAmC,SAAS,qBAAqB,EAAE;QAC1F,UAAU,EAAE,SAAS;QACrB,mBAAmB,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;QAC9C,WAAW,EAAE,QAAQ,EAAE,MAAM;QAC7B,gBAAgB,EAAE,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACvF,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,kCAAkC,sCAiB7C;AAEF;;;GAGG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,SAAoC,EACpC,aAAqB,EACG,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,YAAY,qCAAqC,SAAS,CAAC,CAAC,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE7G,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAoB,EACzC,KAAK,EACL,GAAG,EACH,IAAI,EACJ,aAAa,CACd,CAAC;QAEF,gGAAgG;QAChG,MAAM,YAAY,GAAkB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/D,CAAC,CAAC,QAAQ,CAAC,IAAI;YACf,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAEhC,2CAAgB,CAAC,OAAO,CACtB,WAAW,YAAY,CAAC,MAAM,yBAAyB,EACvD,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CACtD,CAAC;QAEF,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,2CAAgB,CAAC,UAAU,CACzB,4EAA4E,EAC5E,qBAAqB,EACrB;YACE,WAAW,EAAE,4BAA4B;YACzC,eAAe,EAAE,gBAAgB;YACjC,eAAe,EAAE,UAAU;YAC3B,IAAI,EAAE;gBACJ,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB;SACF,CACF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAzCW,QAAA,iBAAiB,qBAyC5B;AAEF;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CACrC,KAAY,EACZ,OAA2B,EAC3B,QAAgB,EAChB,gBAIC;IAcD,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,8BAA8B;YACrC,eAAe,EAAE,EAAE;SACpB,CAAC;IACJ,CAAC;IAED,8JAA8J;IAC9J,MAAM,kBAAkB,GAAG,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC;IAC9D,2CAAgB,CAAC,OAAO,CAAC,oCAAoC,OAAO,CAAC,MAAM,kCAAkC,kBAAkB,EAAE,CAAC,CAAC;IAEnI,MAAM,kBAAkB,GAOnB,EAAE,CAAC;IAER,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,MAAM,gBAAgB,IAAI,OAAO,EAAE,CAAC;QACvC,2CAAgB,CAAC,OAAO,CAAC,sBAAsB,gBAAgB,CAAC,MAAM,eAAe,kBAAkB,EAAE,CAAC,CAAC;QAE3G,8CAA8C;QAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3B,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAC,MAAM;YACxC,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,gBAAgB,CAAC,MAAM,CAClD,CAAC;QAEF,IAAI,QAAQ,GAAQ,IAAI,CAAC;QAEzB,IAAI,IAAI,EAAE,CAAC;YACT,2CAAgB,CAAC,OAAO,CAAC,0CAA0C,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9F,6DAA6D;YAC7D,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,2CAAgB,CAAC,OAAO,CAAC,uDAAuD,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3G,0EAA0E;YAC1E,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,2CAAgB,CAAC,OAAO,CAAC,qCAAqC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,+BAA+B;QAC/B,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,eAAe,EAAE,CAAC;YACpD,mDAAmD;YACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,QAAQ,IAAI,YAAY,CAAC;YAE5C,4BAA4B;YAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEvD,+CAA+C;YAC/C,kBAAkB,CAAC,IAAI,CAAC;gBACtB,MAAM,EAAE,gBAAgB,CAAC,MAAM;gBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,CAAC,CAAC,SAAS;aAClB,CAAC,CAAC;YAEH,iFAAiF;YACjF,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrD,2CAAgB,CAAC,UAAU,CACzB,4BAA4B,IAAI,CAAC,IAAI,yBAAyB,gBAAgB,CAAC,MAAM,EAAE,EACvF,yBAAyB,EACzB;oBACE,WAAW,EAAE,kCAAkC;oBAC/C,eAAe,EAAE,SAAS;oBAC1B,eAAe,EAAE,UAAU;oBAC3B,IAAI,EAAE;wBACJ,MAAM,EAAE,gBAAgB,CAAC,MAAM;wBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,kBAAkB;qBAC7B;iBACF,CACF,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,sCAAsC,gBAAgB,CAAC,MAAM,YAAY,CAAC,CAAC;YACxF,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,sCAAsC;gBACtC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAS;QAE5B,2EAA2E;QAC3E,kFAAkF;QAClF,6DAA6D;QAC7D,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,qBAAqB;gBACrB,iDAAiD;gBACjD,6CAA6C;gBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9D,aAAa,IAAI,GAAG,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,8DAA8D;YAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/C,aAAa,IAAI,IAAI,CAAC;QACxB,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,gBAAgB,CAAC,MAAM,IAAI,EAAE,GAAG,aAAa,GAAG,gBAAgB,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,sDAAsD;IACtD,qEAAqE;IACrE,+DAA+D;IAC/D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,gBAAgB,EAAE,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,6EAA6E;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACrC,yBAAyB;gBACzB,iDAAiD;gBACjD,6CAA6C;gBAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9D,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC;gBAC1C,CAAC;YACH,CAAC;YACD,2CAA2C;YAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACvD,SAAS,IAAI,IAAI,CAAC;QACpB,CAAC;QACD,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,0CAA0C;QAC1C,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,gCAAgC;IAChC,IAAI,gBAAgB,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACjF,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,aAAa,EAAE,CAAC;QAClD,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,kBAAkB;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,GAAQ,EAAE,IAAY;IACpD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/B,0DAA0D;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,OAAO,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,iCAAiC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAQ,GAAG,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7B,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,KAAa,EAAE,MAAe;IACxD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,gCAAgC;QAChC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,KAAY,EAAE,MAAc;IACpD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9D,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEvD,sEAAsE;IACtE,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChD,OAAO,mBAAmB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB;QAAE,OAAO,IAAI,CAAC;IAE1C,+FAA+F;IAC/F,OAAO,wBAAwB,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,GAAQ,EAAE,WAAmB;IACxD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElD,oDAAoD;IACpD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;IACpF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,SAAc,EAAE,WAAmB;IACnE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE7D,yBAAyB;IACzB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,4BAA4B;YAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC9C,0CAA0C;oBAC1C,IAAI,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,oCAAoC;oBACpC,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBAC3D,IAAI,MAAM;wBAAE,OAAO,MAAM,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACvD,mDAAmD;YACnD,IAAI,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,4BAA4B;YAC5B,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,6BAA6B,CAAC,SAA6B,EAAE,WAA0B,EAAE,mBAAkC;IACzI,IAAI,SAAS,KAAK,8BAAkB,CAAC,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,OAAO,mBAAmB,KAAK,QAAQ,CAAC,EAAE,CAAC;QAClJ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
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
- export { parseRange, handleBiomarkerId, ohtReportExtractUnit, ohtReportExtractReferenceAnnotation, ohtReportExtractReferenceRanges, ohtReportExtractValueFromGreaterLowerThan, ohtReportParseExamValue, ohtReportCheckValueForPlausibleValues, };
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