@precisa-saude/fhir 0.1.0
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/README.md +85 -0
- package/dist/biomarkers.cjs +67 -0
- package/dist/biomarkers.cjs.map +1 -0
- package/dist/biomarkers.d.cts +226 -0
- package/dist/biomarkers.d.ts +226 -0
- package/dist/biomarkers.js +67 -0
- package/dist/biomarkers.js.map +1 -0
- package/dist/chunk-2EVQ2ESB.cjs +2692 -0
- package/dist/chunk-2EVQ2ESB.cjs.map +1 -0
- package/dist/chunk-2X6MT5KE.cjs +1464 -0
- package/dist/chunk-2X6MT5KE.cjs.map +1 -0
- package/dist/chunk-3ILBFLVQ.cjs +63 -0
- package/dist/chunk-3ILBFLVQ.cjs.map +1 -0
- package/dist/chunk-FDOBUUGY.js +1464 -0
- package/dist/chunk-FDOBUUGY.js.map +1 -0
- package/dist/chunk-GFXKYXHW.cjs +436 -0
- package/dist/chunk-GFXKYXHW.cjs.map +1 -0
- package/dist/chunk-I6H35QXI.js +2692 -0
- package/dist/chunk-I6H35QXI.js.map +1 -0
- package/dist/chunk-N3ZCOLG2.js +63 -0
- package/dist/chunk-N3ZCOLG2.js.map +1 -0
- package/dist/chunk-O25F6G3K.cjs +153 -0
- package/dist/chunk-O25F6G3K.cjs.map +1 -0
- package/dist/chunk-S6VJHXJF.js +153 -0
- package/dist/chunk-S6VJHXJF.js.map +1 -0
- package/dist/chunk-UIDSSWBJ.js +251 -0
- package/dist/chunk-UIDSSWBJ.js.map +1 -0
- package/dist/chunk-VPMT4MRS.js +436 -0
- package/dist/chunk-VPMT4MRS.js.map +1 -0
- package/dist/chunk-Z6YE6FJ4.cjs +251 -0
- package/dist/chunk-Z6YE6FJ4.cjs.map +1 -0
- package/dist/converter-C-QpCcTL.d.ts +99 -0
- package/dist/converter-Dee-qjBV.d.cts +99 -0
- package/dist/converter.cjs +15 -0
- package/dist/converter.cjs.map +1 -0
- package/dist/converter.d.cts +2 -0
- package/dist/converter.d.ts +2 -0
- package/dist/converter.js +15 -0
- package/dist/converter.js.map +1 -0
- package/dist/fhir-types-D9hUzGrc.d.cts +129 -0
- package/dist/fhir-types-D9hUzGrc.d.ts +129 -0
- package/dist/importer.cjs +17 -0
- package/dist/importer.cjs.map +1 -0
- package/dist/importer.d.cts +60 -0
- package/dist/importer.d.ts +60 -0
- package/dist/importer.js +17 -0
- package/dist/importer.js.map +1 -0
- package/dist/index.cjs +540 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +163 -0
- package/dist/index.d.ts +163 -0
- package/dist/index.js +540 -0
- package/dist/index.js.map +1 -0
- package/dist/reference-ranges.cjs +18 -0
- package/dist/reference-ranges.cjs.map +1 -0
- package/dist/reference-ranges.d.cts +106 -0
- package/dist/reference-ranges.d.ts +106 -0
- package/dist/reference-ranges.js +18 -0
- package/dist/reference-ranges.js.map +1 -0
- package/dist/units.cjs +19 -0
- package/dist/units.cjs.map +1 -0
- package/dist/units.d.cts +46 -0
- package/dist/units.d.ts +46 -0
- package/dist/units.js +19 -0
- package/dist/units.js.map +1 -0
- package/dist/validators.cjs +11 -0
- package/dist/validators.cjs.map +1 -0
- package/dist/validators.d.cts +23 -0
- package/dist/validators.d.ts +23 -0
- package/dist/validators.js +11 -0
- package/dist/validators.js.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/rafael/Github/precisa-saude/fhir-brasil/packages/core/dist/chunk-2X6MT5KE.cjs","../src/reference-ranges.ts"],"names":[],"mappings":"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","file":"/Users/rafael/Github/precisa-saude/fhir-brasil/packages/core/dist/chunk-2X6MT5KE.cjs","sourcesContent":[null,"/**\n * Biomarker Reference Ranges\n *\n * Single source of truth for biomarker reference ranges used by both\n * web app (for display) and API (for fallback when LLM doesn't extract ranges).\n *\n * Data sources (priority order):\n * 1. Brazilian Government - SBPC/ML (Sociedade Brasileira de Patologia Clínica) guidelines\n * 2. International Standards - WHO, clinical laboratory guidelines\n * 3. Specific Labs - Fleury, Weinmann, Quest, LabCorp (when above unavailable)\n */\n\nimport { getCanonicalUnit as getCanonicalUnitForCode } from './units';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\n/**\n * Sex-specific key for reference ranges\n */\nexport type SexKey = 'M' | 'F' | 'all';\n\n/**\n * Reference range configuration for a biomarker\n */\nexport interface BiomarkerReferenceRange {\n max?: number;\n min?: number;\n optimalMax?: number;\n optimalMin?: number;\n unit: string;\n warningMax?: number;\n}\n\n/**\n * A variant of a reference range that applies to a specific sex and/or age group\n */\nexport interface RangeVariant {\n ageMax?: number;\n ageMin?: number;\n range: BiomarkerReferenceRange;\n sex: SexKey;\n}\n\n/**\n * Extended biomarker range definition with sex/age-specific variants\n */\n/**\n * Direction indicates whether exceeding the reference range on one side is benign.\n * - 'range': both above-max and below-min are abnormal (default)\n * - 'higher-better': above-max is normal (e.g., BMC, HDL)\n * - 'lower-better': below-min is normal (e.g., LDL, CRP)\n */\nexport type RangeDirection = 'range' | 'higher-better' | 'lower-better';\n\nexport interface BiomarkerRangeDefinition {\n default: BiomarkerReferenceRange;\n direction?: RangeDirection;\n source?: string;\n variants?: RangeVariant[];\n}\n\n/**\n * User context for personalized reference range lookup\n */\nexport interface ReferenceRangeContext {\n age?: number;\n biologicalSex?: 'M' | 'F';\n}\n\n// =============================================================================\n// BIOMARKER RANGE DEFINITIONS\n// =============================================================================\n\n/**\n * Comprehensive biomarker reference range definitions with sex/age-specific variants\n *\n * Each marker has a default range (used as fallback) and optional variants\n * for sex/age-specific ranges.\n */\nexport const biomarkerRangeDefinitions: Record<string, BiomarkerRangeDefinition> = {\n // =============================================================================\n // LIPIDS\n // =============================================================================\n\n Albumin_Creatinine_Ratio: {\n default: { max: 30, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mg/g' },\n },\n\n Adiponectin: {\n default: { max: 26, min: 4, optimalMax: 20, optimalMin: 8, unit: 'mcg/mL' },\n },\n\n ADMA: {\n default: { max: 0.7, min: 0.3, optimalMax: 0.55, optimalMin: 0.3, unit: 'umol/L' },\n },\n\n AFP: {\n default: { max: 10, min: 0, optimalMax: 8, optimalMin: 0, unit: 'ng/mL' },\n },\n\n Albumin_Globulin_Ratio: {\n default: { max: 2.5, min: 1.0, optimalMax: 2.2, optimalMin: 1.2, unit: '' },\n },\n\n Albumin: {\n default: { max: 5.0, min: 3.5, optimalMax: 4.8, optimalMin: 4.0, unit: 'g/dL' },\n source: 'sbpc-ml-2021',\n },\n\n AlkalinePhosphatase: {\n default: { max: 147, min: 44, optimalMax: 120, optimalMin: 50, unit: 'U/L' },\n variants: [\n {\n ageMin: 18,\n range: { max: 147, min: 44, optimalMax: 120, optimalMin: 50, unit: 'U/L' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 104, min: 35, optimalMax: 90, optimalMin: 40, unit: 'U/L' },\n sex: 'F',\n },\n ],\n },\n\n ALT: {\n default: { max: 35, min: 0, optimalMax: 25, optimalMin: 0, unit: 'U/L' },\n source: 'sbpc-ml-2021',\n variants: [\n {\n ageMin: 18,\n range: { max: 56, min: 7, optimalMax: 35, optimalMin: 10, unit: 'U/L' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 45, min: 7, optimalMax: 30, optimalMin: 10, unit: 'U/L' },\n sex: 'F',\n },\n ],\n },\n\n AMH: {\n default: { max: 10.0, min: 1.0, optimalMax: 6.9, optimalMin: 2.0, unit: 'ng/mL' },\n variants: [\n {\n ageMax: 24,\n ageMin: 18,\n range: { max: 13.0, min: 1.5, optimalMax: 10.0, optimalMin: 3.0, unit: 'ng/mL' },\n sex: 'F',\n },\n {\n ageMax: 30,\n ageMin: 25,\n range: { max: 10.0, min: 1.5, optimalMax: 8.0, optimalMin: 2.5, unit: 'ng/mL' },\n sex: 'F',\n },\n {\n ageMax: 35,\n ageMin: 31,\n range: { max: 8.0, min: 1.0, optimalMax: 6.0, optimalMin: 2.0, unit: 'ng/mL' },\n sex: 'F',\n },\n {\n ageMax: 40,\n ageMin: 36,\n range: { max: 6.0, min: 0.5, optimalMax: 4.0, optimalMin: 1.0, unit: 'ng/mL' },\n sex: 'F',\n },\n {\n ageMin: 41,\n range: { max: 3.0, min: 0.1, optimalMax: 2.0, optimalMin: 0.5, unit: 'ng/mL' },\n sex: 'F',\n },\n ],\n },\n\n Ammonia: {\n default: { max: 45, min: 15, optimalMax: 40, optimalMin: 20, unit: 'umol/L' },\n },\n\n AntiThyroglobulin: {\n default: { max: 115, min: 0, optimalMax: 40, optimalMin: 0, unit: 'IU/mL' },\n },\n\n AntiTPO: {\n default: { max: 34, min: 0, optimalMax: 9, optimalMin: 0, unit: 'IU/mL' },\n },\n\n // Aortic valve calcium — no standardized clinical threshold; use mild cutoff\n AorticValveCalcium: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n },\n\n ApoA1: {\n default: { max: 200, min: 100, optimalMax: 180, optimalMin: 120, unit: 'mg/dL' },\n },\n\n ApoB: {\n default: { max: 90, min: 0, optimalMax: 70, optimalMin: 0, unit: 'mg/dL' },\n direction: 'lower-better',\n },\n\n ApoCIII: {\n default: { max: 10, min: 0, optimalMax: 7, optimalMin: 0, unit: 'mg/dL' },\n },\n\n ApoCIII_ApoA1_Ratio: {\n default: { max: 0.15, min: 0, optimalMax: 0.1, optimalMin: 0, unit: '' },\n },\n\n // =============================================================================\n // THYROID\n // =============================================================================\n\n Omega6_AA: {\n default: { max: 15.0, min: 5.0, optimalMax: 12.0, optimalMin: 7.0, unit: '%' },\n },\n\n AA_EPA_Ratio: {\n default: { max: 15.0, min: 1.0, optimalMax: 5.0, optimalMin: 1.5, unit: '' },\n direction: 'lower-better',\n },\n\n Arsenic: {\n default: { max: 35, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mcg/L' },\n },\n\n AST: {\n default: { max: 35, min: 0, optimalMax: 25, optimalMin: 0, unit: 'U/L' },\n source: 'sbpc-ml-2021',\n variants: [\n {\n ageMin: 18,\n range: { max: 40, min: 10, optimalMax: 30, optimalMin: 10, unit: 'U/L' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 32, min: 9, optimalMax: 25, optimalMin: 10, unit: 'U/L' },\n sex: 'F',\n },\n ],\n },\n\n Basophils: {\n default: { max: 1, min: 0, optimalMax: 0.5, optimalMin: 0, unit: '%' },\n },\n\n Basophils_Abs: {\n default: { max: 0.1, min: 0, optimalMax: 0.05, optimalMin: 0, unit: 'K/uL' },\n },\n\n // =============================================================================\n // HEMATOLOGY - CBC\n // =============================================================================\n\n Bicarbonate: {\n default: { max: 29, min: 23, optimalMax: 28, optimalMin: 24, unit: 'mEq/L' },\n },\n\n BilirubinDirect: {\n default: { max: 0.3, min: 0, optimalMax: 0.2, optimalMin: 0, unit: 'mg/dL' },\n },\n\n BilirubinIndirect: {\n default: { max: 0.8, min: 0, optimalMax: 0.6, optimalMin: 0, unit: 'mg/dL' },\n },\n\n BilirubinTotal: {\n default: { max: 1.2, min: 0.1, optimalMax: 0.9, optimalMin: 0.2, unit: 'mg/dL' },\n },\n\n BNP: {\n default: { max: 100, min: 0, optimalMax: 50, optimalMin: 0, unit: 'pg/mL' },\n },\n\n BUN_Creatinine_Ratio: {\n default: { max: 20, min: 10, optimalMax: 18, optimalMin: 12, unit: '' },\n },\n\n CA125: {\n default: { max: 35, min: 0, optimalMax: 25, optimalMin: 0, unit: 'U/mL' },\n },\n\n CA199: {\n default: { max: 37, min: 0, optimalMax: 30, optimalMin: 0, unit: 'U/mL' },\n },\n\n // CAC: Agatston classification — 0=none, 1-99=mild, 100-399=moderate, 400+=severe\n // max=99 so only moderate+ scores (≥100) flag as ANORMAL; optimalMax=0 (zero is ideal)\n CAC: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n },\n\n // Per-vessel scores (hidden) — no standardized thresholds, use same mild cutoff\n CAC_LAD: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n },\n\n CAC_LCX: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n },\n\n CAC_LMA: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n },\n\n CAC_Percentile: {\n default: { max: 50, min: 0, optimalMax: 25, optimalMin: 0, unit: '%', warningMax: 75 },\n direction: 'lower-better',\n },\n\n CAC_RCA: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n },\n\n Cadmium: {\n default: { max: 1.2, min: 0, optimalMax: 0.5, optimalMin: 0, unit: 'mcg/L' },\n },\n\n Calcium: {\n default: { max: 10.5, min: 8.5, optimalMax: 10.0, optimalMin: 9.0, unit: 'mg/dL' },\n },\n\n CEA: {\n default: { max: 3.0, min: 0, optimalMax: 2.5, optimalMin: 0, unit: 'ng/mL' },\n },\n\n CK: {\n default: { max: 190, min: 30, optimalMax: 170, optimalMin: 40, unit: 'U/L' },\n variants: [\n { sex: 'F', range: { max: 170, min: 30, optimalMax: 150, optimalMin: 40, unit: 'U/L' } },\n ],\n },\n\n Chloride: {\n default: { max: 106, min: 98, optimalMax: 105, optimalMin: 100, unit: 'mEq/L' },\n },\n\n Cholesterol: {\n default: { max: 200, min: 0, optimalMax: 180, optimalMin: 0, unit: 'mg/dL' },\n source: 'sbc-lipids-2017',\n },\n\n Cholesterol_HDL_Ratio: {\n // Lower is better - Function Health reference: <= 3.5\n default: { max: 5.0, min: 0, optimalMax: 3.5, optimalMin: 0, unit: '' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 5.0, min: 0, optimalMax: 4.0, optimalMin: 0, unit: '' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 4.5, min: 0, optimalMax: 3.5, optimalMin: 0, unit: '' },\n sex: 'F',\n },\n ],\n },\n\n CO2: {\n default: { max: 29, min: 23, optimalMax: 28, optimalMin: 24, unit: 'mEq/L' },\n },\n\n Copper: {\n default: { max: 175, min: 70, optimalMax: 150, optimalMin: 85, unit: 'mcg/dL' },\n },\n\n CoQ10: {\n default: { max: 1.5, min: 0.5, optimalMax: 1.3, optimalMin: 0.7, unit: 'mg/L' },\n },\n\n Cortisol: {\n default: { max: 25, min: 5, optimalMax: 20, optimalMin: 10, unit: 'mcg/dL' },\n },\n\n CortisolFree: {\n default: { max: 2.5, min: 0.5, optimalMax: 2.0, optimalMin: 0.8, unit: 'mcg/dL' },\n },\n\n CPeptide: {\n default: { max: 3.9, min: 0.8, optimalMax: 3.0, optimalMin: 1.0, unit: 'ng/mL' },\n },\n\n Creatinine: {\n default: { max: 1.2, min: 0.6, optimalMax: 1.0, optimalMin: 0.7, unit: 'mg/dL' },\n source: 'sbpc-ml-2021',\n variants: [\n {\n ageMin: 18,\n range: { max: 1.3, min: 0.7, optimalMax: 1.1, optimalMin: 0.8, unit: 'mg/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 1.1, min: 0.5, optimalMax: 0.9, optimalMin: 0.6, unit: 'mg/dL' },\n sex: 'F',\n },\n ],\n },\n\n CRP: {\n default: { max: 3.0, min: 0, optimalMax: 1.0, optimalMin: 0, unit: 'mg/L' },\n direction: 'lower-better',\n },\n\n CystatinC: {\n default: { max: 1.0, min: 0.5, optimalMax: 0.9, optimalMin: 0.6, unit: 'mg/L' },\n },\n\n DDimer: {\n default: { max: 500, min: 0, optimalMax: 250, optimalMin: 0, unit: 'ng/mL' },\n },\n\n // =============================================================================\n // METABOLIC PANEL\n // =============================================================================\n\n Omega3_DHA: {\n default: { max: 8.0, min: 2.0, optimalMax: 6.5, optimalMin: 3.5, unit: '%' },\n },\n\n DHEAS: {\n default: { max: 500, min: 100, optimalMax: 400, optimalMin: 150, unit: 'mcg/dL' },\n variants: [\n {\n ageMax: 39,\n ageMin: 18,\n range: { max: 640, min: 280, optimalMax: 500, optimalMin: 300, unit: 'mcg/dL' },\n sex: 'M',\n },\n {\n ageMax: 59,\n ageMin: 40,\n range: { max: 520, min: 120, optimalMax: 400, optimalMin: 150, unit: 'mcg/dL' },\n sex: 'M',\n },\n {\n ageMin: 60,\n range: { max: 290, min: 42, optimalMax: 220, optimalMin: 80, unit: 'mcg/dL' },\n sex: 'M',\n },\n {\n ageMax: 39,\n ageMin: 18,\n range: { max: 380, min: 65, optimalMax: 300, optimalMin: 100, unit: 'mcg/dL' },\n sex: 'F',\n },\n {\n ageMax: 59,\n ageMin: 40,\n range: { max: 240, min: 32, optimalMax: 180, optimalMin: 60, unit: 'mcg/dL' },\n sex: 'F',\n },\n {\n ageMin: 60,\n range: { max: 140, min: 18, optimalMax: 100, optimalMin: 30, unit: 'mcg/dL' },\n sex: 'F',\n },\n ],\n },\n\n Omega3_DPA: {\n default: { max: 2.0, min: 0.3, optimalMax: 1.5, optimalMin: 0.5, unit: '%' },\n },\n\n eGFR: {\n default: { max: 120, min: 90, optimalMax: 120, optimalMin: 90, unit: 'mL/min/1.73m²' },\n variants: [\n {\n ageMin: 60,\n range: { max: 90, min: 60, optimalMax: 90, optimalMin: 60, unit: 'mL/min/1.73m²' },\n sex: 'all',\n },\n ],\n },\n\n Eosinophils: {\n default: { max: 5, min: 0, optimalMax: 4, optimalMin: 1, unit: '%' },\n direction: 'lower-better',\n },\n\n Eosinophils_Abs: {\n default: { max: 0.5, min: 0, optimalMax: 0.3, optimalMin: 0, unit: 'K/uL' },\n },\n\n Omega3_EPA: {\n default: { max: 3.5, min: 0.5, optimalMax: 2.5, optimalMin: 1.0, unit: '%' },\n },\n\n EPADPADHA: {\n default: { max: 10.0, min: 3.0, optimalMax: 9.0, optimalMin: 5.0, unit: '%' },\n },\n\n ESR: {\n default: { max: 20, min: 0, optimalMax: 10, optimalMin: 0, unit: 'mm/hr' },\n },\n\n Estradiol: {\n default: { max: 40, min: 10, optimalMax: 35, optimalMin: 15, unit: 'pg/mL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 40, min: 10, optimalMax: 30, optimalMin: 15, unit: 'pg/mL' },\n sex: 'M',\n },\n {\n ageMax: 50,\n ageMin: 18,\n range: { max: 400, min: 30, optimalMax: 300, optimalMin: 50, unit: 'pg/mL' },\n sex: 'F',\n },\n {\n ageMin: 51,\n range: { max: 30, min: 0, optimalMax: 20, optimalMin: 0, unit: 'pg/mL' },\n sex: 'F',\n },\n ],\n },\n\n F2Isoprostanes: {\n default: { max: 86, min: 0, optimalMax: 60, optimalMin: 0, unit: 'pg/mL' },\n },\n\n Ferritin: {\n default: { max: 300, min: 20, optimalMax: 150, optimalMin: 50, unit: 'ng/mL' },\n source: 'sbpc-ml-2021',\n variants: [\n {\n ageMin: 18,\n range: { max: 400, min: 30, optimalMax: 200, optimalMin: 50, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMax: 50,\n ageMin: 18,\n range: { max: 150, min: 15, optimalMax: 100, optimalMin: 30, unit: 'ng/mL' },\n sex: 'F',\n },\n {\n ageMin: 51,\n range: { max: 300, min: 30, optimalMax: 150, optimalMin: 50, unit: 'ng/mL' },\n sex: 'F',\n },\n ],\n },\n\n Fibrinogen: {\n default: { max: 400, min: 200, optimalMax: 350, optimalMin: 250, unit: 'mg/dL' },\n },\n\n FolicAcid: {\n default: { max: 20, min: 3, optimalMax: 15, optimalMin: 5, unit: 'ng/mL' },\n },\n\n // =============================================================================\n // LIVER FUNCTION\n // =============================================================================\n\n FSH: {\n default: { max: 12.4, min: 1.5, optimalMax: 10.0, optimalMin: 3.0, unit: 'mIU/mL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 12.4, min: 1.5, optimalMax: 8.0, optimalMin: 1.5, unit: 'mIU/mL' },\n sex: 'M',\n },\n {\n ageMax: 50,\n ageMin: 18,\n range: { max: 12.5, min: 3.5, optimalMax: 10.0, optimalMin: 3.5, unit: 'mIU/mL' },\n sex: 'F',\n },\n {\n ageMin: 51,\n range: { max: 134.8, min: 25.8, optimalMax: 80.0, optimalMin: 25.8, unit: 'mIU/mL' },\n sex: 'F',\n },\n ],\n },\n\n GGT: {\n default: { max: 55, min: 0, optimalMax: 30, optimalMin: 0, unit: 'U/L' },\n direction: 'lower-better',\n source: 'sbpc-ml-2021',\n variants: [\n {\n ageMin: 18,\n range: { max: 61, min: 8, optimalMax: 40, optimalMin: 10, unit: 'U/L' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 36, min: 5, optimalMax: 25, optimalMin: 8, unit: 'U/L' },\n sex: 'F',\n },\n ],\n },\n\n Ghrelin: {\n default: { max: 1000, min: 300, optimalMax: 800, optimalMin: 400, unit: 'pg/mL' },\n },\n\n Globulin: {\n default: { max: 3.5, min: 2.0, optimalMax: 3.2, optimalMin: 2.3, unit: 'g/dL' },\n },\n\n Glucose: {\n default: { max: 100, min: 70, optimalMax: 90, optimalMin: 70, unit: 'mg/dL' },\n source: 'sbd-diabetes-2024',\n },\n\n GlycoMark: {\n default: { max: 40, min: 10, optimalMax: 35, optimalMin: 15, unit: 'mcg/mL' },\n },\n\n GrowthHormone: {\n default: { max: 5, min: 0, optimalMax: 3, optimalMin: 0, unit: 'ng/mL' },\n },\n\n HbA1c: {\n default: { max: 5.7, min: 4.0, optimalMax: 5.3, optimalMin: 4.5, unit: '%' },\n source: 'sbd-diabetes-2024',\n },\n\n Hct: {\n default: { max: 50, min: 36, optimalMax: 48, optimalMin: 40, unit: '%' },\n variants: [\n {\n ageMin: 18,\n range: { max: 54, min: 40, optimalMax: 50, optimalMin: 42, unit: '%' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 48, min: 36, optimalMax: 45, optimalMin: 38, unit: '%' },\n sex: 'F',\n },\n ],\n },\n\n HDL: {\n default: { max: 60, min: 40, optimalMax: 60, optimalMin: 50, unit: 'mg/dL' },\n direction: 'higher-better',\n source: 'sbc-lipids-2017',\n variants: [\n {\n ageMin: 18,\n range: { max: 60, min: 40, optimalMax: 60, optimalMin: 45, unit: 'mg/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 60, min: 50, optimalMax: 60, optimalMin: 55, unit: 'mg/dL' },\n sex: 'F',\n },\n ],\n },\n\n HDL_Large: {\n // HDL Large: higher is better\n // Quest Ion Mobility reference: Male 4334-10815, Female 5038-17886 nmol/L, optimal >6729\n default: { max: 17886, min: 4334, optimalMax: 17886, optimalMin: 6729, unit: 'nmol/L' },\n direction: 'higher-better',\n },\n\n // =============================================================================\n // INFLAMMATION\n // =============================================================================\n\n Hgb: {\n default: { max: 17.5, min: 12.0, optimalMax: 16.0, optimalMin: 13.5, unit: 'g/dL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 17.5, min: 13.5, optimalMax: 16.5, optimalMin: 14.0, unit: 'g/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 15.5, min: 12.0, optimalMax: 14.5, optimalMin: 12.5, unit: 'g/dL' },\n sex: 'F',\n },\n ],\n },\n\n HOMA_IR: {\n default: { max: 2.5, min: 0, optimalMax: 1.5, optimalMin: 0, unit: '' },\n direction: 'lower-better',\n },\n\n Homocysteine: {\n default: { max: 15, min: 4, optimalMax: 10, optimalMin: 5, unit: 'umol/L' },\n direction: 'lower-better',\n },\n\n IGF1: {\n default: { max: 350, min: 100, optimalMax: 300, optimalMin: 150, unit: 'ng/mL' },\n },\n\n // =============================================================================\n // METABOLIC\n // =============================================================================\n\n ImmatureGranulocytes: {\n default: { max: 1.0, min: 0, optimalMax: 0.5, optimalMin: 0, unit: '%' },\n },\n\n Insulin: {\n default: { max: 25, min: 2, optimalMax: 8, optimalMin: 3, unit: 'µIU/mL' },\n },\n\n Iron: {\n default: { max: 170, min: 60, optimalMax: 140, optimalMin: 80, unit: 'mcg/dL' },\n source: 'sbpc-ml-2021',\n variants: [\n {\n ageMin: 18,\n range: { max: 175, min: 65, optimalMax: 150, optimalMin: 80, unit: 'mcg/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 170, min: 50, optimalMax: 130, optimalMin: 60, unit: 'mcg/dL' },\n sex: 'F',\n },\n ],\n },\n\n Lactate: {\n default: { max: 2.2, min: 0.5, optimalMax: 1.8, optimalMin: 0.7, unit: 'mmol/L' },\n },\n\n LDL: {\n default: { max: 100, min: 0, optimalMax: 70, optimalMin: 0, unit: 'mg/dL' },\n direction: 'lower-better',\n source: 'sbc-lipids-2017',\n },\n\n LDL_Medium: {\n // LDL Medium (LDL Média): lower is better\n // Quest Ion Mobility reference: Male 167-485, Female 121-397 nmol/L, optimal <215\n default: { max: 485, min: 121, optimalMax: 215, optimalMin: 121, unit: 'nmol/L' },\n direction: 'lower-better',\n },\n\n LDL_ParticleNumber: {\n // LDL Particle Number: lower is better\n // Quest Ion Mobility reference: 1016-2185 nmol/L, optimal <1138\n default: { max: 2185, min: 1016, optimalMax: 1138, optimalMin: 1016, unit: 'nmol/L' },\n direction: 'lower-better',\n },\n\n LDL_Peak_Size: {\n // LDL Peak Size: higher is better (larger particles less atherogenic)\n // Quest Ion Mobility reference: optimal >222.9 Å (22.29 nm)\n default: { max: 250.0, min: 217.4, optimalMax: 250.0, optimalMin: 222.9, unit: 'Å' },\n direction: 'higher-better',\n },\n\n // =============================================================================\n // IRON STUDIES\n // =============================================================================\n\n LDL_Small: {\n // LDL Small (LDL Pequena): lower is better (small dense LDL is most atherogenic)\n // Quest Ion Mobility reference: Male 123-441, Female 126-382 nmol/L, optimal <142\n default: { max: 441, min: 123, optimalMax: 142, optimalMin: 123, unit: 'nmol/L' },\n direction: 'lower-better',\n },\n\n Lead: {\n default: { max: 5, min: 0, optimalMax: 2, optimalMin: 0, unit: 'mcg/dL' },\n },\n\n Leptin: {\n default: { max: 15, min: 2, optimalMax: 12, optimalMin: 3, unit: 'ng/mL' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 10, min: 1, optimalMax: 8, optimalMin: 2, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 25, min: 4, optimalMax: 18, optimalMin: 5, unit: 'ng/mL' },\n sex: 'F',\n },\n ],\n },\n\n LH: {\n default: { max: 8.6, min: 1.7, optimalMax: 8.0, optimalMin: 2.0, unit: 'mIU/mL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 8.6, min: 1.7, optimalMax: 6.0, optimalMin: 1.7, unit: 'mIU/mL' },\n sex: 'M',\n },\n {\n ageMax: 50,\n ageMin: 18,\n range: { max: 12.6, min: 2.4, optimalMax: 10.0, optimalMin: 2.4, unit: 'mIU/mL' },\n sex: 'F',\n },\n {\n ageMin: 51,\n range: { max: 58.5, min: 7.7, optimalMax: 40.0, optimalMin: 10.0, unit: 'mIU/mL' },\n sex: 'F',\n },\n ],\n },\n\n Omega6_LA: {\n default: { max: 35.0, min: 15.0, optimalMax: 28.0, optimalMin: 18.0, unit: '%' },\n },\n\n // =============================================================================\n // VITAMINS\n // =============================================================================\n\n Lipoprotein_a: {\n default: { max: 75, min: 0, optimalMax: 30, optimalMin: 0, unit: 'nmol/L' },\n direction: 'lower-better',\n },\n\n Lymphocytes: {\n default: { max: 40, min: 20, optimalMax: 35, optimalMin: 25, unit: '%' },\n },\n\n Lymphocytes_Abs: {\n default: { max: 4.0, min: 1.0, optimalMax: 3.0, optimalMin: 1.5, unit: 'K/uL' },\n },\n\n Magnesium: {\n default: { max: 2.2, min: 1.7, optimalMax: 2.1, optimalMin: 1.9, unit: 'mg/dL' },\n },\n\n Magnesium_RBC: {\n default: { max: 6.8, min: 4.0, optimalMax: 6.0, optimalMin: 4.5, unit: 'mg/dL' },\n },\n\n MCH: {\n default: { max: 33, min: 27, optimalMax: 32, optimalMin: 28, unit: 'pg' },\n },\n\n MCHC: {\n default: { max: 36, min: 32, optimalMax: 35, optimalMin: 33, unit: 'g/dL' },\n },\n\n MCV: {\n default: { max: 100, min: 80, optimalMax: 98, optimalMin: 82, unit: 'fL' },\n },\n\n Mercury: {\n default: { max: 10, min: 0, optimalMax: 5, optimalMin: 0, unit: 'mcg/L' },\n },\n\n Microalbumin: {\n default: { max: 30, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mg/L' },\n },\n\n // =============================================================================\n // HORMONES\n // =============================================================================\n\n MMA: {\n default: { max: 378, min: 0, optimalMax: 270, optimalMin: 0, unit: 'nmol/L' },\n },\n\n Monocytes: {\n default: { max: 8, min: 2, optimalMax: 7, optimalMin: 3, unit: '%' },\n },\n\n Monocytes_Abs: {\n default: { max: 0.8, min: 0.2, optimalMax: 0.7, optimalMin: 0.3, unit: 'K/uL' },\n },\n\n MPV: {\n default: { max: 11.5, min: 7.5, optimalMax: 10.5, optimalMin: 8.0, unit: 'fL' },\n },\n\n Myeloperoxidase: {\n default: { max: 420, min: 0, optimalMax: 300, optimalMin: 0, unit: 'pmol/L' },\n },\n\n // WBC Differential (%)\n Neutrophils: {\n default: { max: 70, min: 40, optimalMax: 65, optimalMin: 50, unit: '%' },\n },\n\n // WBC Differential (Absolute)\n Neutrophils_Abs: {\n default: { max: 8.0, min: 1.5, optimalMax: 6.0, optimalMin: 2.0, unit: 'K/uL' },\n },\n\n NonHDL_Cholesterol: {\n default: { max: 130, min: 0, optimalMax: 100, optimalMin: 0, unit: 'mg/dL' },\n direction: 'lower-better',\n },\n\n NRBC: {\n default: { max: 0, min: 0, optimalMax: 0, optimalMin: 0, unit: '/100WBC' },\n },\n\n NTproBNP: {\n default: { max: 125, min: 0, optimalMax: 75, optimalMin: 0, unit: 'pg/mL' },\n },\n\n Oleic_Acid: {\n default: { max: 25.0, min: 15.0, optimalMax: 22.0, optimalMin: 18.0, unit: '%' },\n },\n\n Omega3_Index: {\n default: { max: 8.0, min: 4.0, optimalMax: 8.0, optimalMin: 5.5, unit: '%' },\n },\n\n Omega3_Total: {\n default: { max: 12.0, min: 3.0, optimalMax: 10.0, optimalMin: 5.5, unit: '%' },\n },\n\n Omega6_Total: {\n default: { max: 40.0, min: 20.0, optimalMax: 35.0, optimalMin: 25.0, unit: '%' },\n },\n\n Omega6_Omega3_Ratio: {\n default: { max: 10.0, min: 1.0, optimalMax: 4.0, optimalMin: 1.0, unit: '' },\n direction: 'lower-better',\n },\n\n // =============================================================================\n // TUMOR MARKERS\n // =============================================================================\n\n OmegaCheck: {\n default: { max: 8.0, min: 4.0, optimalMax: 8.0, optimalMin: 5.5, unit: '%' },\n },\n\n Palmitic_Acid: {\n default: { max: 30.0, min: 20.0, optimalMax: 27.0, optimalMin: 22.0, unit: '%' },\n },\n\n Phosphorus: {\n default: { max: 4.5, min: 2.5, optimalMax: 4.0, optimalMin: 3.0, unit: 'mg/dL' },\n },\n\n Platelets: {\n default: { max: 400, min: 150, optimalMax: 350, optimalMin: 180, unit: 'K/uL' },\n },\n\n Potassium: {\n default: { max: 5.0, min: 3.5, optimalMax: 4.6, optimalMin: 3.8, unit: 'mEq/L' },\n },\n\n // =============================================================================\n // CARDIAC MARKERS\n // =============================================================================\n\n Prealbumin: {\n default: { max: 38, min: 18, optimalMax: 35, optimalMin: 20, unit: 'mg/dL' },\n },\n\n Progesterone: {\n default: { max: 0.9, min: 0.1, optimalMax: 0.7, optimalMin: 0.2, unit: 'ng/mL' },\n },\n\n Prolactin: {\n default: { max: 18, min: 2, optimalMax: 15, optimalMin: 4, unit: 'ng/mL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 18, min: 2, optimalMax: 15, optimalMin: 4, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 29, min: 2, optimalMax: 23, optimalMin: 4, unit: 'ng/mL' },\n sex: 'F',\n },\n ],\n },\n\n PSA: {\n default: { max: 4.0, min: 0, optimalMax: 2.5, optimalMin: 0, unit: 'ng/mL' },\n variants: [\n {\n ageMax: 49,\n ageMin: 18,\n range: { max: 2.5, min: 0, optimalMax: 1.5, optimalMin: 0, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMax: 59,\n ageMin: 50,\n range: { max: 3.5, min: 0, optimalMax: 2.5, optimalMin: 0, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMax: 69,\n ageMin: 60,\n range: { max: 4.5, min: 0, optimalMax: 3.0, optimalMin: 0, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMin: 70,\n range: { max: 6.5, min: 0, optimalMax: 4.0, optimalMin: 0, unit: 'ng/mL' },\n sex: 'M',\n },\n ],\n },\n\n RBC: {\n default: { max: 5.5, min: 4.0, optimalMax: 5.2, optimalMin: 4.3, unit: 'M/uL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 5.9, min: 4.5, optimalMax: 5.5, optimalMin: 4.7, unit: 'M/uL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 5.2, min: 4.0, optimalMax: 5.0, optimalMin: 4.2, unit: 'M/uL' },\n sex: 'F',\n },\n ],\n },\n\n // =============================================================================\n // URINALYSIS\n // =============================================================================\n\n RDW: {\n default: { max: 14.5, min: 11.5, optimalMax: 14.0, optimalMin: 12.0, unit: '%' },\n },\n\n Reticulocytes: {\n default: { max: 2.5, min: 0.5, optimalMax: 2.0, optimalMin: 0.8, unit: '%' },\n },\n\n SDMA: {\n default: { max: 0.6, min: 0.3, optimalMax: 0.5, optimalMin: 0.3, unit: 'umol/L' },\n },\n\n Selenium: {\n default: { max: 150, min: 70, optimalMax: 125, optimalMin: 85, unit: 'mcg/L' },\n },\n\n SHBG: {\n default: { max: 54, min: 18, optimalMax: 50, optimalMin: 20, unit: 'nmol/L' },\n variants: [\n {\n ageMin: 18,\n range: { max: 54, min: 18, optimalMax: 45, optimalMin: 20, unit: 'nmol/L' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 122, min: 24, optimalMax: 90, optimalMin: 30, unit: 'nmol/L' },\n sex: 'F',\n },\n ],\n },\n\n Sodium: {\n default: { max: 145, min: 136, optimalMax: 143, optimalMin: 138, unit: 'mEq/L' },\n },\n\n // =============================================================================\n // KIDNEY FUNCTION\n // =============================================================================\n\n SpecificGravity_Urine: {\n default: { max: 1.03, min: 1.005, optimalMax: 1.025, optimalMin: 1.01, unit: 'SG' },\n },\n\n Stearic_Acid: {\n default: { max: 14.0, min: 8.0, optimalMax: 12.0, optimalMin: 10.0, unit: '%' },\n },\n\n T3Free: {\n default: { max: 4.2, min: 2.3, optimalMax: 3.8, optimalMin: 2.8, unit: 'pg/mL' },\n },\n\n // =============================================================================\n // OMEGA FATTY ACIDS\n // =============================================================================\n\n T3Reverse: {\n default: { max: 27, min: 9, optimalMax: 22, optimalMin: 12, unit: 'ng/dL' },\n },\n\n T4Free: {\n default: { max: 1.8, min: 0.8, optimalMax: 1.5, optimalMin: 1.0, unit: 'ng/dL' },\n },\n\n T4Total: {\n default: { max: 12.0, min: 4.5, optimalMax: 10.0, optimalMin: 6.0, unit: 'ug/dL' },\n },\n\n Testosterone: {\n default: { max: 1000, min: 300, optimalMax: 800, optimalMin: 500, unit: 'ng/dL' },\n variants: [\n {\n ageMax: 49,\n ageMin: 18,\n range: { max: 1000, min: 300, optimalMax: 800, optimalMin: 500, unit: 'ng/dL' },\n sex: 'M',\n },\n {\n ageMin: 50,\n range: { max: 800, min: 200, optimalMax: 650, optimalMin: 400, unit: 'ng/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 70, min: 15, optimalMax: 50, optimalMin: 20, unit: 'ng/dL' },\n sex: 'F',\n },\n ],\n },\n\n TestosteroneBioavailable: {\n default: { max: 200, min: 50, optimalMax: 150, optimalMin: 80, unit: 'ng/dL' },\n },\n\n // TestosteroneFree - using direct immunoassay ranges (Quest/LabCorp standard)\n // Previous values (9.3-26.5 pg/mL) were based on equilibrium dialysis method\n TestosteroneFree: {\n default: { max: 155, min: 35, optimalMax: 120, optimalMin: 50, unit: 'pg/mL' },\n variants: [\n {\n ageMax: 49,\n ageMin: 18,\n range: { max: 155, min: 35, optimalMax: 120, optimalMin: 50, unit: 'pg/mL' },\n sex: 'M',\n },\n {\n ageMin: 50,\n range: { max: 130, min: 30, optimalMax: 100, optimalMin: 40, unit: 'pg/mL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 5.0, min: 0.2, optimalMax: 3.0, optimalMin: 0.5, unit: 'pg/mL' },\n sex: 'F',\n },\n ],\n },\n\n TIBC: {\n default: { max: 400, min: 250, optimalMax: 370, optimalMin: 280, unit: 'mcg/dL' },\n },\n\n TotalProtein: {\n default: { max: 8.3, min: 6.0, optimalMax: 7.8, optimalMin: 6.5, unit: 'g/dL' },\n },\n\n Trans_Fat_Index: {\n default: { max: 1.0, min: 0, optimalMax: 0.5, optimalMin: 0, unit: '%' },\n },\n\n Transferrin: {\n default: { max: 360, min: 200, optimalMax: 340, optimalMin: 220, unit: 'mg/dL' },\n },\n\n TransferrinSaturation: {\n default: { max: 50, min: 20, optimalMax: 45, optimalMin: 25, unit: '%' },\n variants: [\n {\n ageMin: 18,\n range: { max: 55, min: 20, optimalMax: 45, optimalMin: 25, unit: '%' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 50, min: 15, optimalMax: 40, optimalMin: 20, unit: '%' },\n sex: 'F',\n },\n ],\n },\n\n Triglycerides: {\n default: { max: 150, min: 0, optimalMax: 100, optimalMin: 0, unit: 'mg/dL' },\n direction: 'lower-better',\n source: 'sbc-lipids-2017',\n },\n\n TroponinI: {\n default: { max: 0.04, min: 0, optimalMax: 0.02, optimalMin: 0, unit: 'ng/mL' },\n },\n\n TroponinT: {\n default: { max: 14, min: 0, optimalMax: 10, optimalMin: 0, unit: 'ng/L' },\n },\n\n TSH: {\n default: { max: 4.0, min: 0.4, optimalMax: 2.5, optimalMin: 1.0, unit: 'µIU/mL' },\n source: 'sbem-thyroid-2013',\n variants: [\n {\n ageMin: 65,\n range: { max: 6.0, min: 0.4, optimalMax: 4.0, optimalMin: 1.0, unit: 'µIU/mL' },\n sex: 'all',\n },\n ],\n },\n\n Urea: {\n default: { max: 20, min: 7, optimalMax: 16, optimalMin: 10, unit: 'mg/dL' },\n },\n\n UricAcid: {\n default: { max: 7.0, min: 2.5, optimalMax: 5.5, optimalMin: 3.0, unit: 'mg/dL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 7.0, min: 3.4, optimalMax: 6.0, optimalMin: 4.0, unit: 'mg/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 6.0, min: 2.4, optimalMax: 5.0, optimalMin: 3.0, unit: 'mg/dL' },\n sex: 'F',\n },\n ],\n },\n\n Urobilinogen_Urine: {\n default: { max: 1.0, min: 0.1, optimalMax: 1.0, optimalMin: 0.1, unit: 'mg/dL' },\n },\n\n // =============================================================================\n // ADVANCED CARDIOVASCULAR\n // =============================================================================\n\n pH_Urine: {\n default: { max: 8.0, min: 4.5, optimalMax: 7.0, optimalMin: 5.5, unit: 'pH' },\n },\n\n HyalineCasts_Urine: {\n default: { max: 2, min: 0, optimalMax: 1, optimalMin: 0, unit: '/LPF' },\n },\n\n RBC_Urine: {\n default: { max: 3, min: 0, optimalMax: 1, optimalMin: 0, unit: '/HPF' },\n },\n\n SquamousEpithelial_Urine: {\n default: { max: 15, min: 0, optimalMax: 5, optimalMin: 0, unit: '/HPF' },\n },\n\n Leukocytes_Urine: {\n default: { max: 5, min: 0, optimalMax: 2, optimalMin: 0, unit: '/HPF' },\n },\n\n Folate: {\n default: { max: 20, min: 3.9, optimalMax: 17, optimalMin: 5, unit: 'ng/mL' },\n },\n\n VitaminA: {\n default: { max: 100, min: 20, optimalMax: 80, optimalMin: 30, unit: 'mcg/dL' },\n },\n\n // =============================================================================\n // MINERALS\n // =============================================================================\n\n VitaminB1: {\n default: { max: 180, min: 70, optimalMax: 150, optimalMin: 80, unit: 'nmol/L' },\n },\n\n VitaminB12: {\n default: { max: 900, min: 200, optimalMax: 800, optimalMin: 400, unit: 'pg/mL' },\n source: 'sbpc-ml-2021',\n },\n\n VitaminB6: {\n default: { max: 50, min: 5, optimalMax: 40, optimalMin: 10, unit: 'ng/mL' },\n },\n\n VitaminC: {\n default: { max: 2.0, min: 0.4, optimalMax: 1.5, optimalMin: 0.6, unit: 'mg/dL' },\n },\n\n // =============================================================================\n // HEAVY METALS\n // =============================================================================\n\n VitaminD: {\n default: { max: 100, min: 30, optimalMax: 70, optimalMin: 40, unit: 'ng/mL' },\n source: 'sbem-thyroid-2013',\n },\n\n VitaminD_1_25: {\n default: { max: 72, min: 18, optimalMax: 60, optimalMin: 25, unit: 'pg/mL' },\n },\n\n VitaminE: {\n default: { max: 17, min: 5.5, optimalMax: 14, optimalMin: 7, unit: 'mg/L' },\n },\n\n VLDL: {\n default: { max: 40, min: 5, optimalMax: 30, optimalMin: 10, unit: 'mg/dL' },\n },\n\n // =============================================================================\n // OTHER\n // =============================================================================\n\n WBC: {\n default: { max: 11.0, min: 4.0, optimalMax: 8.0, optimalMin: 5.0, unit: 'K/uL' },\n },\n\n Zinc: {\n default: { max: 120, min: 60, optimalMax: 100, optimalMin: 70, unit: 'mcg/dL' },\n },\n\n // =============================================================================\n // BODY COMPOSITION (DXA)\n // =============================================================================\n\n AndroidFatPct: {\n default: { max: 35, min: 10, optimalMax: 25, optimalMin: 15, unit: '%' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 30, min: 10, optimalMax: 22, optimalMin: 12, unit: '%' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 42, min: 15, optimalMax: 32, optimalMin: 20, unit: '%' },\n sex: 'F',\n },\n ],\n },\n\n AndroidGynoidRatio: {\n default: { max: 1.2, min: 0.5, optimalMax: 1.0, optimalMin: 0.6, unit: '' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 1.2, min: 0.6, optimalMax: 1.0, optimalMin: 0.7, unit: '' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 1.0, min: 0.4, optimalMax: 0.8, optimalMin: 0.5, unit: '' },\n sex: 'F',\n },\n ],\n },\n\n BMC: {\n default: { max: 3.5, min: 2.0, optimalMax: 3.2, optimalMin: 2.3, unit: 'kg' },\n direction: 'higher-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 4.0, min: 2.5, optimalMax: 3.5, optimalMin: 2.8, unit: 'kg' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 3.0, min: 1.8, optimalMax: 2.7, optimalMin: 2.0, unit: 'kg' },\n sex: 'F',\n },\n ],\n },\n\n // BodyFatPct — Age-bracketed ranges from Gallagher et al. Am J Clin Nutr 2000;72:694-701\n // (PMID: 10966886) and ACSM Guidelines for Exercise Testing, 11th Ed (2021)\n BodyFatPct: {\n default: { max: 30, min: 10, optimalMax: 25, optimalMin: 15, unit: '%' },\n direction: 'lower-better',\n variants: [\n // Men — age brackets\n {\n ageMax: 25,\n ageMin: 18,\n range: { max: 25, min: 5, optimalMax: 20, optimalMin: 10, unit: '%' },\n sex: 'M',\n },\n {\n ageMax: 35,\n ageMin: 26,\n range: { max: 26, min: 5, optimalMax: 21, optimalMin: 11, unit: '%' },\n sex: 'M',\n },\n {\n ageMax: 45,\n ageMin: 36,\n range: { max: 27, min: 5, optimalMax: 22, optimalMin: 12, unit: '%' },\n sex: 'M',\n },\n {\n ageMax: 55,\n ageMin: 46,\n range: { max: 28, min: 5, optimalMax: 23, optimalMin: 13, unit: '%' },\n sex: 'M',\n },\n {\n ageMin: 56,\n range: { max: 29, min: 5, optimalMax: 24, optimalMin: 14, unit: '%' },\n sex: 'M',\n },\n // Women — age brackets\n {\n ageMax: 25,\n ageMin: 18,\n range: { max: 32, min: 13, optimalMax: 28, optimalMin: 18, unit: '%' },\n sex: 'F',\n },\n {\n ageMax: 35,\n ageMin: 26,\n range: { max: 33, min: 13, optimalMax: 29, optimalMin: 18, unit: '%' },\n sex: 'F',\n },\n {\n ageMax: 45,\n ageMin: 36,\n range: { max: 34, min: 13, optimalMax: 30, optimalMin: 19, unit: '%' },\n sex: 'F',\n },\n {\n ageMax: 55,\n ageMin: 46,\n range: { max: 35, min: 13, optimalMax: 31, optimalMin: 20, unit: '%' },\n sex: 'F',\n },\n {\n ageMin: 56,\n range: { max: 36, min: 13, optimalMax: 32, optimalMin: 20, unit: '%' },\n sex: 'F',\n },\n ],\n },\n\n FatFreeMass: {\n default: { max: 80, min: 40, optimalMax: 70, optimalMin: 45, unit: 'kg' },\n direction: 'higher-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 90, min: 50, optimalMax: 80, optimalMin: 55, unit: 'kg' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 60, min: 35, optimalMax: 52, optimalMin: 38, unit: 'kg' },\n sex: 'F',\n },\n ],\n },\n\n FatMass: {\n default: { max: 30, min: 5, optimalMax: 20, optimalMin: 8, unit: 'kg' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 25, min: 5, optimalMax: 18, optimalMin: 7, unit: 'kg' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 30, min: 8, optimalMax: 22, optimalMin: 10, unit: 'kg' },\n sex: 'F',\n },\n ],\n },\n\n GynoidFatPct: {\n default: { max: 45, min: 15, optimalMax: 35, optimalMin: 20, unit: '%' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 35, min: 12, optimalMax: 28, optimalMin: 15, unit: '%' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 50, min: 20, optimalMax: 40, optimalMin: 25, unit: '%' },\n sex: 'F',\n },\n ],\n },\n\n LeanMass: {\n default: { max: 75, min: 35, optimalMax: 65, optimalMin: 40, unit: 'kg' },\n direction: 'higher-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 85, min: 45, optimalMax: 75, optimalMin: 50, unit: 'kg' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 55, min: 30, optimalMax: 48, optimalMin: 35, unit: 'kg' },\n sex: 'F',\n },\n ],\n },\n\n TotalMass: {\n default: { max: 100, min: 50, optimalMax: 85, optimalMin: 55, unit: 'kg' },\n variants: [\n {\n ageMin: 18,\n range: { max: 100, min: 55, optimalMax: 90, optimalMin: 60, unit: 'kg' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 85, min: 45, optimalMax: 75, optimalMin: 50, unit: 'kg' },\n sex: 'F',\n },\n ],\n },\n\n VATMass: {\n default: { max: 1.5, min: 0, optimalMax: 0.8, optimalMin: 0, unit: 'kg' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 1.5, min: 0, optimalMax: 1.0, optimalMin: 0, unit: 'kg' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 1.0, min: 0, optimalMax: 0.5, optimalMin: 0, unit: 'kg' },\n sex: 'F',\n },\n ],\n },\n\n VATVolume: {\n default: { max: 1500, min: 0, optimalMax: 800, optimalMin: 0, unit: 'cm³' },\n direction: 'lower-better',\n variants: [\n {\n ageMin: 18,\n range: { max: 1500, min: 0, optimalMax: 1000, optimalMin: 0, unit: 'cm³' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 1000, min: 0, optimalMax: 500, optimalMin: 0, unit: 'cm³' },\n sex: 'F',\n },\n ],\n },\n\n // =============================================================================\n // BONE DENSITOMETRY (DXA)\n // =============================================================================\n\n BMD_Total: {\n default: { max: 1.4, min: 0.9, optimalMax: 1.3, optimalMin: 1.0, unit: 'g/cm²' },\n direction: 'higher-better',\n },\n\n TScore_Total: {\n default: { max: 4.0, min: -1.0, optimalMax: 2.0, optimalMin: -0.5, unit: '' },\n direction: 'higher-better',\n },\n\n ZScore_Total: {\n default: { max: 2.0, min: -2.0, optimalMax: 1.0, optimalMin: -1.0, unit: '' },\n direction: 'higher-better',\n },\n\n // =============================================================================\n // MISSING LAB RANGES\n // =============================================================================\n\n Amylase: {\n default: { max: 100, min: 28, optimalMax: 90, optimalMin: 35, unit: 'U/L' },\n },\n\n Creatinine_Urine: {\n default: { max: 300, min: 20, optimalMax: 250, optimalMin: 40, unit: 'mg/dL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 300, min: 40, optimalMax: 260, optimalMin: 60, unit: 'mg/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 220, min: 20, optimalMax: 180, optimalMin: 40, unit: 'mg/dL' },\n sex: 'F',\n },\n ],\n },\n\n IgA: {\n default: { max: 400, min: 70, optimalMax: 350, optimalMin: 100, unit: 'mg/dL' },\n },\n\n Lipase: {\n default: { max: 60, min: 0, optimalMax: 50, optimalMin: 10, unit: 'U/L' },\n },\n\n Microalbumin_Urine: {\n default: { max: 30, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mg/L' },\n },\n\n PSA_Free: {\n default: { max: 1.5, min: 0, optimalMax: 1.0, optimalMin: 0, unit: 'ng/mL' },\n },\n\n PSA_FreeRatio: {\n default: { max: 100, min: 25, optimalMax: 100, optimalMin: 30, unit: '%' },\n },\n\n // BMI - WHO classification: 18.5–24.9 normal, 25–29.9 overweight, ≥30 obese\n BMI: {\n default: { max: 30, min: 18.5, optimalMax: 24.9, optimalMin: 18.5, unit: 'kg/m2' },\n },\n\n // eAG - Estimated Average Glucose, derived from HbA1c (ADAG study)\n eAG: {\n default: { max: 154, min: 70, optimalMax: 126, optimalMin: 70, unit: 'mg/dL' },\n },\n\n // INR - International Normalized Ratio (non-anticoagulated patients)\n INR: {\n default: { max: 1.2, min: 0.8, optimalMax: 1.1, optimalMin: 0.9, unit: 'ratio' },\n },\n\n // Prothrombin Time\n ProthrombinTime: {\n default: { max: 13.5, min: 11, optimalMax: 13, optimalMin: 11, unit: 'seconds' },\n },\n\n // DHT - Dihydrotestosterone (adult male reference; female values are much lower)\n DHT: {\n default: { max: 85, min: 30, optimalMax: 85, optimalMin: 30, unit: 'ng/dL' },\n variants: [\n {\n ageMin: 18,\n range: { max: 85, min: 30, optimalMax: 85, optimalMin: 30, unit: 'ng/dL' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 22, min: 4, optimalMax: 22, optimalMin: 4, unit: 'ng/dL' },\n sex: 'F',\n },\n ],\n },\n\n // Total IgE - higher values suggest atopy/allergic sensitization\n IgE_Total: {\n default: { max: 100, min: 0, optimalMax: 100, optimalMin: 0, unit: 'IU/mL' },\n direction: 'lower-better',\n },\n\n // IgG - Immunoglobulin G\n IgG: {\n default: { max: 1600, min: 700, optimalMax: 1600, optimalMin: 700, unit: 'mg/dL' },\n },\n\n // IgE E1 Cat Dander - Class 0 (≤0.35 kU/L) = negative\n IgE_E1_CatDander: {\n default: { max: 0.35, min: 0, optimalMax: 0.35, optimalMin: 0, unit: 'kU/L' },\n direction: 'lower-better',\n },\n\n // IgE GX1 Grasses - Class 0 (≤0.35 kU/L) = negative\n IgE_GX1_Grasses: {\n default: { max: 0.35, min: 0, optimalMax: 0.35, optimalMin: 0, unit: 'kU/L' },\n direction: 'lower-better',\n },\n};\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\n\n/**\n * Legacy flat reference ranges for backward compatibility\n * This is derived from biomarkerRangeDefinitions defaults\n */\nexport const defaultReferenceRanges: Record<string, BiomarkerReferenceRange> = Object.fromEntries(\n Object.entries(biomarkerRangeDefinitions).map(([code, def]) => [code, def.default]),\n);\n\n/**\n * Get the reference range for a biomarker code, optionally personalized for user context\n * @param testCode - The biomarker code (e.g., \"HDL\", \"Testosterone\")\n * @param context - Optional user context for personalized ranges\n * @returns Reference range or undefined if not found\n */\nexport function getReferenceRange(\n testCode: string,\n context?: ReferenceRangeContext,\n): BiomarkerReferenceRange | undefined {\n const definition = biomarkerRangeDefinitions[testCode];\n if (!definition) return undefined;\n\n // If no context or no variants, return default\n if (!context || !definition.variants || definition.variants.length === 0) {\n return definition.default;\n }\n\n const { age, biologicalSex } = context;\n\n // Find matching variant (first match wins - more specific variants should be listed first)\n for (const variant of definition.variants) {\n // Check sex match ('all' matches everyone)\n if (variant.sex !== 'all' && variant.sex !== biologicalSex) {\n continue;\n }\n\n // Check age range\n if (variant.ageMin !== undefined && (age === undefined || age < variant.ageMin)) {\n continue;\n }\n if (variant.ageMax !== undefined && (age === undefined || age > variant.ageMax)) {\n continue;\n }\n\n return variant.range;\n }\n\n // No matching variant found - return default\n return definition.default;\n}\n\n/**\n * Get the range direction for a biomarker code.\n * Returns 'range' (default) if not specified.\n */\nexport function getRangeDirection(testCode: string): RangeDirection {\n return biomarkerRangeDefinitions[testCode]?.direction ?? 'range';\n}\n\n/**\n * Get fallback reference range for a biomarker code (default only, no personalization)\n * Used by API when LLM doesn't extract reference values\n * @param biomarkerCode - The biomarker code\n * @returns Reference range with min/max/unit or undefined\n */\nexport function getFallbackReferenceRange(\n biomarkerCode: string,\n): { min: number; max: number; unit: string } | undefined {\n const definition = biomarkerRangeDefinitions[biomarkerCode];\n if (!definition || definition.default.min === undefined || definition.default.max === undefined) {\n return undefined;\n }\n return {\n max: definition.default.max,\n min: definition.default.min,\n unit: definition.default.unit,\n };\n}\n\n/**\n * Apply fallback reference ranges to biomarkers that are missing them\n * @param biomarkers - Array of parsed biomarkers\n * @returns Count of biomarkers that received fallback references\n */\nexport function applyFallbackReferenceRanges<\n T extends {\n code: string;\n referenceMin?: number | null;\n referenceMax?: number | null;\n unit?: string;\n },\n>(biomarkers: T[]): number {\n let fallbackCount = 0;\n\n for (const biomarker of biomarkers) {\n // Skip if already has reference values\n if (biomarker.referenceMin != null && biomarker.referenceMax != null) {\n continue;\n }\n\n const fallback = getFallbackReferenceRange(biomarker.code);\n if (fallback) {\n // Only apply if units are compatible or biomarker has no unit\n const canonicalUnit = getCanonicalUnitForCode(biomarker.code);\n const unitsMatch =\n !biomarker.unit ||\n biomarker.unit.toLowerCase() === fallback.unit.toLowerCase() ||\n (canonicalUnit && biomarker.unit.toLowerCase() === canonicalUnit.toLowerCase()) ||\n // Handle common unit variations\n (biomarker.unit === '%' && fallback.unit === '%');\n\n if (unitsMatch) {\n if (biomarker.referenceMin == null) {\n biomarker.referenceMin = fallback.min;\n }\n if (biomarker.referenceMax == null) {\n biomarker.referenceMax = fallback.max;\n }\n fallbackCount++;\n }\n }\n }\n\n return fallbackCount;\n}\n"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/validators.ts
|
|
2
|
+
function validateFHIRDiagnosticReport(report) {
|
|
3
|
+
const errors = [];
|
|
4
|
+
if (!report.resourceType || report.resourceType !== "DiagnosticReport") {
|
|
5
|
+
errors.push("Invalid resourceType");
|
|
6
|
+
}
|
|
7
|
+
if (!report.status) {
|
|
8
|
+
errors.push("Missing status");
|
|
9
|
+
}
|
|
10
|
+
if (!report.code || !report.code.coding || report.code.coding.length === 0) {
|
|
11
|
+
errors.push("Missing or invalid code");
|
|
12
|
+
}
|
|
13
|
+
if (!report.subject || !report.subject.reference) {
|
|
14
|
+
errors.push("Missing subject reference");
|
|
15
|
+
}
|
|
16
|
+
return errors;
|
|
17
|
+
}
|
|
18
|
+
function validateFHIRObservation(observation) {
|
|
19
|
+
const errors = [];
|
|
20
|
+
if (!observation.resourceType || observation.resourceType !== "Observation") {
|
|
21
|
+
errors.push("Invalid resourceType");
|
|
22
|
+
}
|
|
23
|
+
if (!observation.status) {
|
|
24
|
+
errors.push("Missing status");
|
|
25
|
+
}
|
|
26
|
+
if (!observation.code || !observation.code.coding || observation.code.coding.length === 0) {
|
|
27
|
+
errors.push("Missing or invalid code");
|
|
28
|
+
}
|
|
29
|
+
if (!observation.subject || !observation.subject.reference) {
|
|
30
|
+
errors.push("Missing subject reference");
|
|
31
|
+
}
|
|
32
|
+
if (!observation.valueQuantity && !observation.valueString) {
|
|
33
|
+
errors.push("Missing value (valueQuantity or valueString)");
|
|
34
|
+
}
|
|
35
|
+
return errors;
|
|
36
|
+
}
|
|
37
|
+
function validateFHIRImportBundle(data) {
|
|
38
|
+
const errors = [];
|
|
39
|
+
if (!data || typeof data !== "object") {
|
|
40
|
+
errors.push({ details: "Input must be a JSON object", field: "root" });
|
|
41
|
+
return errors;
|
|
42
|
+
}
|
|
43
|
+
const bundle = data;
|
|
44
|
+
if (bundle.resourceType !== "Bundle") {
|
|
45
|
+
errors.push({
|
|
46
|
+
details: `Expected resourceType "Bundle", got "${String(bundle.resourceType)}"`,
|
|
47
|
+
field: "resourceType"
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (!Array.isArray(bundle.entry)) {
|
|
51
|
+
errors.push({ details: 'Bundle must contain an "entry" array', field: "entry" });
|
|
52
|
+
} else if (bundle.entry.length === 0) {
|
|
53
|
+
errors.push({ details: "Bundle entry array is empty", field: "entry" });
|
|
54
|
+
}
|
|
55
|
+
return errors;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
exports.validateFHIRDiagnosticReport = validateFHIRDiagnosticReport; exports.validateFHIRObservation = validateFHIRObservation; exports.validateFHIRImportBundle = validateFHIRImportBundle;
|
|
63
|
+
//# sourceMappingURL=chunk-3ILBFLVQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/rafael/Github/precisa-saude/fhir-brasil/packages/core/dist/chunk-3ILBFLVQ.cjs","../src/validators.ts"],"names":[],"mappings":"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","file":"/Users/rafael/Github/precisa-saude/fhir-brasil/packages/core/dist/chunk-3ILBFLVQ.cjs","sourcesContent":[null,"/**\n * FHIR Validators\n *\n * Validation functions for FHIR R4 resources.\n */\n\nimport type { FHIRDiagnosticReport, FHIRObservation } from './fhir-types';\nimport type { ImportError } from './importer';\n\n/**\n * Validate FHIR DiagnosticReport\n */\nexport function validateFHIRDiagnosticReport(report: FHIRDiagnosticReport): string[] {\n const errors: string[] = [];\n\n if (!report.resourceType || report.resourceType !== 'DiagnosticReport') {\n errors.push('Invalid resourceType');\n }\n\n if (!report.status) {\n errors.push('Missing status');\n }\n\n if (!report.code || !report.code.coding || report.code.coding.length === 0) {\n errors.push('Missing or invalid code');\n }\n\n if (!report.subject || !report.subject.reference) {\n errors.push('Missing subject reference');\n }\n\n return errors;\n}\n\n/**\n * Validate FHIR Observation\n */\nexport function validateFHIRObservation(observation: FHIRObservation): string[] {\n const errors: string[] = [];\n\n if (!observation.resourceType || observation.resourceType !== 'Observation') {\n errors.push('Invalid resourceType');\n }\n\n if (!observation.status) {\n errors.push('Missing status');\n }\n\n if (!observation.code || !observation.code.coding || observation.code.coding.length === 0) {\n errors.push('Missing or invalid code');\n }\n\n if (!observation.subject || !observation.subject.reference) {\n errors.push('Missing subject reference');\n }\n\n if (!observation.valueQuantity && !observation.valueString) {\n errors.push('Missing value (valueQuantity or valueString)');\n }\n\n return errors;\n}\n\n/**\n * Validate that the input is a structurally valid FHIR Bundle\n */\nexport function validateFHIRImportBundle(data: unknown): ImportError[] {\n const errors: ImportError[] = [];\n\n if (!data || typeof data !== 'object') {\n errors.push({ details: 'Input must be a JSON object', field: 'root' });\n return errors;\n }\n\n const bundle = data as Record<string, unknown>;\n\n if (bundle.resourceType !== 'Bundle') {\n errors.push({\n details: `Expected resourceType \"Bundle\", got \"${String(bundle.resourceType)}\"`,\n field: 'resourceType',\n });\n }\n\n if (!Array.isArray(bundle.entry)) {\n errors.push({ details: 'Bundle must contain an \"entry\" array', field: 'entry' });\n } else if (bundle.entry.length === 0) {\n errors.push({ details: 'Bundle entry array is empty', field: 'entry' });\n }\n\n return errors;\n}\n"]}
|