@precisa-saude/fhir 0.1.8 → 0.2.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/dist/{chunk-FDOBUUGY.js → chunk-35S3GSRK.js} +377 -177
- package/dist/chunk-35S3GSRK.js.map +1 -0
- package/dist/{chunk-Z6YE6FJ4.cjs → chunk-4EB4LIIT.cjs} +1 -1
- package/dist/{chunk-Z6YE6FJ4.cjs.map → chunk-4EB4LIIT.cjs.map} +1 -1
- package/dist/{chunk-UIDSSWBJ.js → chunk-RGHKKL3W.js} +1 -1
- package/dist/{chunk-UIDSSWBJ.js.map → chunk-RGHKKL3W.js.map} +1 -1
- package/dist/{chunk-2X6MT5KE.cjs → chunk-ZUBHCXUV.cjs} +377 -177
- package/dist/chunk-ZUBHCXUV.cjs.map +1 -0
- package/dist/converter.cjs +2 -2
- package/dist/converter.js +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.js +2 -2
- package/dist/reference-ranges.cjs +2 -2
- package/dist/reference-ranges.d.cts +13 -0
- package/dist/reference-ranges.d.ts +13 -0
- package/dist/reference-ranges.js +1 -1
- package/package.json +30 -20
- package/dist/chunk-2X6MT5KE.cjs.map +0 -1
- package/dist/chunk-FDOBUUGY.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-ZUBHCXUV.cjs","../src/reference-ranges.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-ZUBHCXUV.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 /**\n * Chave de fonte bibliográfica, opcionalmente com localizador.\n *\n * Formato: `'chave'` ou `'chave:localizador'`\n *\n * Exemplos:\n * - `'sbc-lipids-2017'` — fonte sem localização específica\n * - `'sbc-lipids-2017:p15'` — página 15\n * - `'sbpc-ml-2021:t4.1'` — tabela 4.1\n *\n * As chaves devem corresponder a entradas em `SOURCE_REGISTRY` (sources.ts).\n * Consulte `docs/fontes-referencia.md` para a bibliografia completa em formato ABNT.\n */\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 source: 'tietz-7ed-2015',\n },\n\n Adiponectin: {\n default: { max: 26, min: 4, optimalMax: 20, optimalMin: 8, unit: 'mcg/mL' },\n source: 'tietz-7ed-2015',\n },\n\n ADMA: {\n default: { max: 0.7, min: 0.3, optimalMax: 0.55, optimalMin: 0.3, unit: 'umol/L' },\n source: 'nemeth-adma-2017',\n },\n\n AFP: {\n default: { max: 10, min: 0, optimalMax: 8, optimalMin: 0, unit: 'ng/mL' },\n source: 'sturgeon-nacb-2008',\n },\n\n Albumin_Globulin_Ratio: {\n default: { max: 2.5, min: 1.0, optimalMax: 2.2, optimalMin: 1.2, unit: '' },\n source: 'tietz-7ed-2015',\n },\n\n Albumin: {\n default: { max: 5.0, min: 3.5, optimalMax: 4.8, optimalMin: 4.0, unit: 'g/dL' },\n source: 'pns-bioquimica-2019',\n },\n\n AlkalinePhosphatase: {\n default: { max: 147, min: 44, optimalMax: 120, optimalMin: 50, unit: 'U/L' },\n source: 'tietz-7ed-2015',\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: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n AntiThyroglobulin: {\n default: { max: 115, min: 0, optimalMax: 40, optimalMin: 0, unit: 'IU/mL' },\n source: 'tietz-7ed-2015',\n },\n\n AntiTPO: {\n default: { max: 34, min: 0, optimalMax: 9, optimalMin: 0, unit: 'IU/mL' },\n source: 'tietz-7ed-2015',\n },\n\n // Aortic valve calcium — no standardized clinical threshold; use mild cutoff\n // Cálcio de válvula aórtica — usa mesma classificação Agatston\n AorticValveCalcium: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n source: 'rumberger-cac-1999',\n },\n\n ApoA1: {\n default: { max: 200, min: 100, optimalMax: 180, optimalMin: 120, unit: 'mg/dL' },\n source: 'contois-apoa1-1996',\n },\n\n ApoB: {\n default: { max: 90, min: 0, optimalMax: 70, optimalMin: 0, unit: 'mg/dL' },\n direction: 'lower-better',\n source: 'sbc-lipids-2025',\n },\n\n ApoCIII: {\n default: { max: 10, min: 0, optimalMax: 7, optimalMin: 0, unit: 'mg/dL' },\n source: 'khetarpal-apociii-2016',\n },\n\n // ApoCIII/ApoA1 Ratio: derivado de ApoCIII (~10 mg/dL) e ApoA1 (~100-150 mg/dL)\n // NOTA: corte de 0.15 sem fonte publicada — valor calculado, não validado clinicamente\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 source: 'simopoulos-omega-ratio-2002',\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 source: 'simopoulos-omega-ratio-2002',\n },\n\n Arsenic: {\n default: { max: 35, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mcg/L' },\n source: 'nr7-pcmso-2020',\n },\n\n AST: {\n default: { max: 35, min: 0, optimalMax: 25, optimalMin: 0, unit: 'U/L' },\n source: 'tietz-7ed-2015',\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 source: 'pns-hemograma-2019',\n },\n\n Basophils_Abs: {\n default: { max: 0.1, min: 0, optimalMax: 0.05, optimalMin: 0, unit: 'K/uL' },\n source: 'pns-hemograma-2019',\n },\n\n // =============================================================================\n // HEMATOLOGY - CBC\n // =============================================================================\n\n Bicarbonate: {\n default: { max: 29, min: 23, optimalMax: 28, optimalMin: 24, unit: 'mEq/L' },\n source: 'tietz-7ed-2015',\n },\n\n BilirubinDirect: {\n default: { max: 0.3, min: 0, optimalMax: 0.2, optimalMin: 0, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n BilirubinIndirect: {\n default: { max: 0.8, min: 0, optimalMax: 0.6, optimalMin: 0, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n BilirubinTotal: {\n default: { max: 1.2, min: 0.1, optimalMax: 0.9, optimalMin: 0.2, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n // BNP: 35 pg/mL = corte não-agudo para triagem de IC (SBC IC 2018)\n BNP: {\n default: { max: 35, min: 0, optimalMax: 20, optimalMin: 0, unit: 'pg/mL' },\n source: 'sbc-ic-2018',\n },\n\n BUN_Creatinine_Ratio: {\n default: { max: 20, min: 10, optimalMax: 18, optimalMin: 12, unit: '' },\n source: 'tietz-7ed-2015',\n },\n\n CA125: {\n default: { max: 35, min: 0, optimalMax: 25, optimalMin: 0, unit: 'U/mL' },\n source: 'sturgeon-nacb-2008',\n },\n\n CA199: {\n default: { max: 37, min: 0, optimalMax: 30, optimalMin: 0, unit: 'U/mL' },\n source: 'sturgeon-nacb-2008',\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 source: 'rumberger-cac-1999',\n },\n\n // Per-vessel scores — same Agatston classification applied per vessel\n CAC_LAD: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n source: 'rumberger-cac-1999',\n },\n\n CAC_LCX: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n source: 'rumberger-cac-1999',\n },\n\n CAC_LMA: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n source: 'rumberger-cac-1999',\n },\n\n CAC_Percentile: {\n default: { max: 50, min: 0, optimalMax: 25, optimalMin: 0, unit: '%', warningMax: 75 },\n direction: 'lower-better',\n source: 'rumberger-cac-1999',\n },\n\n CAC_RCA: {\n default: { max: 99, min: 0, optimalMax: 0, optimalMin: 0, unit: 'AU' },\n direction: 'lower-better',\n source: 'rumberger-cac-1999',\n },\n\n Cadmium: {\n default: { max: 1.2, min: 0, optimalMax: 0.5, optimalMin: 0, unit: 'mcg/L' },\n source: 'nr7-pcmso-2020',\n },\n\n Calcium: {\n default: { max: 10.5, min: 8.5, optimalMax: 10.0, optimalMin: 9.0, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n CEA: {\n default: { max: 3.0, min: 0, optimalMax: 2.5, optimalMin: 0, unit: 'ng/mL' },\n source: 'sturgeon-nacb-2008',\n },\n\n // CK: valores conservadores baseados em faixas laboratoriais típicas\n CK: {\n default: { max: 190, min: 30, optimalMax: 170, optimalMin: 40, unit: 'U/L' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n Cholesterol: {\n default: { max: 200, min: 0, optimalMax: 180, optimalMin: 0, unit: 'mg/dL' },\n source: 'sbc-lipids-2025',\n },\n\n // Índice de Castelli I (CT/HDL-c)\n Cholesterol_HDL_Ratio: {\n // Índice de Castelli I — SBC 2017: M <4.9, F <4.3\n default: { max: 4.9, min: 0, optimalMax: 3.5, optimalMin: 0, unit: '' },\n direction: 'lower-better',\n source: 'castelli-ratio-1992',\n variants: [\n {\n ageMin: 18,\n range: { max: 4.9, min: 0, optimalMax: 4.0, optimalMin: 0, unit: '' },\n sex: 'M',\n },\n {\n ageMin: 18,\n range: { max: 4.3, 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 source: 'tietz-7ed-2015',\n },\n\n Copper: {\n default: { max: 175, min: 70, optimalMax: 150, optimalMin: 85, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n CoQ10: {\n default: { max: 1.5, min: 0.5, optimalMax: 1.3, optimalMin: 0.7, unit: 'mg/L' },\n source: 'tietz-7ed-2015',\n },\n\n Cortisol: {\n default: { max: 25, min: 5, optimalMax: 20, optimalMin: 10, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n CortisolFree: {\n default: { max: 2.5, min: 0.5, optimalMax: 2.0, optimalMin: 0.8, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n CPeptide: {\n default: { max: 3.9, min: 0.8, optimalMax: 3.0, optimalMin: 1.0, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\n },\n\n Creatinine: {\n default: { max: 1.2, min: 0.6, optimalMax: 1.0, optimalMin: 0.7, unit: 'mg/dL' },\n source: 'pns-bioquimica-2019',\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 source: 'tietz-7ed-2015',\n },\n\n CystatinC: {\n default: { max: 1.0, min: 0.5, optimalMax: 0.9, optimalMin: 0.6, unit: 'mg/L' },\n source: 'tietz-7ed-2015',\n },\n\n // D-Dímero: 500 ng/mL é o corte clínico padrão para exclusão de TEV\n DDimer: {\n default: { max: 500, min: 0, optimalMax: 250, optimalMin: 0, unit: 'ng/mL' },\n source: 'wells-ddimer-2003',\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 source: 'harris-omega3-2004',\n },\n\n DHEAS: {\n default: { max: 500, min: 100, optimalMax: 400, optimalMin: 150, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\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 source: 'harris-omega3-2004',\n },\n\n eGFR: {\n default: { max: 120, min: 90, optimalMax: 120, optimalMin: 90, unit: 'mL/min/1.73m²' },\n source: 'kdigo-ckd-2024',\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 source: 'pns-hemograma-2019',\n },\n\n Eosinophils_Abs: {\n default: { max: 0.5, min: 0, optimalMax: 0.3, optimalMin: 0, unit: 'K/uL' },\n source: 'pns-hemograma-2019',\n },\n\n Omega3_EPA: {\n default: { max: 3.5, min: 0.5, optimalMax: 2.5, optimalMin: 1.0, unit: '%' },\n source: 'harris-omega3-2004',\n },\n\n EPADPADHA: {\n default: { max: 10.0, min: 3.0, optimalMax: 9.0, optimalMin: 5.0, unit: '%' },\n source: 'harris-omega3-2004',\n },\n\n ESR: {\n default: { max: 20, min: 0, optimalMax: 10, optimalMin: 0, unit: 'mm/hr' },\n source: 'tietz-7ed-2015',\n },\n\n Estradiol: {\n default: { max: 40, min: 10, optimalMax: 35, optimalMin: 15, unit: 'pg/mL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n Ferritin: {\n default: { max: 150, min: 12, optimalMax: 120, optimalMin: 30, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\n variants: [\n {\n ageMin: 18,\n range: { max: 250, min: 20, optimalMax: 200, optimalMin: 40, unit: 'ng/mL' },\n sex: 'M',\n },\n {\n ageMax: 50,\n ageMin: 18,\n range: { max: 120, min: 10, optimalMax: 80, optimalMin: 20, unit: 'ng/mL' },\n sex: 'F',\n },\n {\n ageMin: 51,\n range: { max: 200, min: 20, optimalMax: 150, optimalMin: 30, unit: 'ng/mL' },\n sex: 'F',\n },\n ],\n },\n\n // Fibrinogênio: 200-400 mg/dL — faixa de referência padrão (método de Clauss)\n Fibrinogen: {\n default: { max: 400, min: 200, optimalMax: 350, optimalMin: 250, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n FolicAcid: {\n default: { max: 20, min: 3, optimalMax: 15, optimalMin: 5, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n Globulin: {\n default: { max: 3.5, min: 2.0, optimalMax: 3.2, optimalMin: 2.3, unit: 'g/dL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n GrowthHormone: {\n default: { max: 5, min: 0, optimalMax: 3, optimalMin: 0, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\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 source: 'pns-hemograma-2019',\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-2025',\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 source: 'caulfield-ionmobility-2008',\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 source: 'pns-hemograma-2019',\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 source: 'tietz-7ed-2015',\n },\n\n Homocysteine: {\n default: { max: 15, min: 4, optimalMax: 10, optimalMin: 5, unit: 'umol/L' },\n direction: 'lower-better',\n source: 'selhub-homocysteine-1999',\n },\n\n IGF1: {\n default: { max: 350, min: 100, optimalMax: 300, optimalMin: 150, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\n },\n\n // =============================================================================\n // METABOLIC\n // =============================================================================\n\n ImmatureGranulocytes: {\n default: { max: 1.0, min: 0, optimalMax: 0.5, optimalMin: 0, unit: '%' },\n source: 'tietz-7ed-2015',\n },\n\n Insulin: {\n default: { max: 25, min: 2, optimalMax: 8, optimalMin: 3, unit: 'µIU/mL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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-2025',\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 source: 'caulfield-ionmobility-2008',\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 source: 'caulfield-ionmobility-2008',\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 source: 'caulfield-ionmobility-2008',\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 source: 'caulfield-ionmobility-2008',\n },\n\n Lead: {\n default: { max: 5, min: 0, optimalMax: 2, optimalMin: 0, unit: 'mcg/dL' },\n source: 'nr7-pcmso-2020',\n },\n\n Leptin: {\n default: { max: 15, min: 2, optimalMax: 12, optimalMin: 3, unit: 'ng/mL' },\n direction: 'lower-better',\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'simopoulos-omega-ratio-2002',\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 source: 'sbc-lipids-2025',\n },\n\n Lymphocytes: {\n default: { max: 40, min: 20, optimalMax: 35, optimalMin: 25, unit: '%' },\n source: 'pns-hemograma-2019',\n },\n\n Lymphocytes_Abs: {\n default: { max: 4.0, min: 1.0, optimalMax: 3.0, optimalMin: 1.5, unit: 'K/uL' },\n source: 'pns-hemograma-2019',\n },\n\n Magnesium: {\n default: { max: 2.2, min: 1.7, optimalMax: 2.1, optimalMin: 1.9, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n Magnesium_RBC: {\n default: { max: 6.8, min: 4.0, optimalMax: 6.0, optimalMin: 4.5, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n MCH: {\n default: { max: 33, min: 27, optimalMax: 32, optimalMin: 28, unit: 'pg' },\n source: 'pns-hemograma-2019',\n },\n\n MCHC: {\n default: { max: 36, min: 32, optimalMax: 35, optimalMin: 33, unit: 'g/dL' },\n source: 'pns-hemograma-2019',\n },\n\n MCV: {\n default: { max: 100, min: 80, optimalMax: 98, optimalMin: 82, unit: 'fL' },\n source: 'pns-hemograma-2019',\n },\n\n Mercury: {\n default: { max: 10, min: 0, optimalMax: 5, optimalMin: 0, unit: 'mcg/L' },\n source: 'nr7-pcmso-2020',\n },\n\n Microalbumin: {\n default: { max: 30, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mg/L' },\n source: 'kdigo-ckd-2024',\n },\n\n // =============================================================================\n // HORMONES\n // =============================================================================\n\n MMA: {\n default: { max: 378, min: 0, optimalMax: 270, optimalMin: 0, unit: 'nmol/L' },\n source: 'tietz-7ed-2015',\n },\n\n Monocytes: {\n default: { max: 8, min: 2, optimalMax: 7, optimalMin: 3, unit: '%' },\n source: 'pns-hemograma-2019',\n },\n\n Monocytes_Abs: {\n default: { max: 0.8, min: 0.2, optimalMax: 0.7, optimalMin: 0.3, unit: 'K/uL' },\n source: 'pns-hemograma-2019',\n },\n\n MPV: {\n default: { max: 11.5, min: 7.5, optimalMax: 10.5, optimalMin: 8.0, unit: 'fL' },\n source: 'pns-hemograma-2019',\n },\n\n // MPO: Meuwese 2007 (EPIC-Norfolk) — risco CV elevado >322 pmol/L\n Myeloperoxidase: {\n default: { max: 470, min: 0, optimalMax: 322, optimalMin: 0, unit: 'pmol/L' },\n source: 'meuwese-mpo-2007',\n },\n\n // WBC Differential (%)\n Neutrophils: {\n default: { max: 70, min: 40, optimalMax: 65, optimalMin: 50, unit: '%' },\n source: 'pns-hemograma-2019',\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 source: 'pns-hemograma-2019',\n },\n\n NonHDL_Cholesterol: {\n default: { max: 130, min: 0, optimalMax: 100, optimalMin: 0, unit: 'mg/dL' },\n direction: 'lower-better',\n source: 'sbc-lipids-2025',\n },\n\n NRBC: {\n default: { max: 0, min: 0, optimalMax: 0, optimalMin: 0, unit: '/100WBC' },\n source: 'tietz-7ed-2015',\n },\n\n NTproBNP: {\n default: { max: 125, min: 0, optimalMax: 75, optimalMin: 0, unit: 'pg/mL' },\n source: 'sbc-ic-2018',\n },\n\n Oleic_Acid: {\n default: { max: 25.0, min: 15.0, optimalMax: 22.0, optimalMin: 18.0, unit: '%' },\n source: 'tietz-7ed-2015',\n },\n\n Omega3_Index: {\n default: { max: 8.0, min: 4.0, optimalMax: 8.0, optimalMin: 5.5, unit: '%' },\n source: 'harris-omega3-2004',\n },\n\n Omega3_Total: {\n default: { max: 12.0, min: 3.0, optimalMax: 10.0, optimalMin: 5.5, unit: '%' },\n source: 'harris-omega3-2004',\n },\n\n Omega6_Total: {\n default: { max: 40.0, min: 20.0, optimalMax: 35.0, optimalMin: 25.0, unit: '%' },\n source: 'simopoulos-omega-ratio-2002',\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 source: 'simopoulos-omega-ratio-2002',\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 source: 'harris-omega3-2004',\n },\n\n Palmitic_Acid: {\n default: { max: 30.0, min: 20.0, optimalMax: 27.0, optimalMin: 22.0, unit: '%' },\n source: 'tietz-7ed-2015',\n },\n\n Phosphorus: {\n default: { max: 4.5, min: 2.5, optimalMax: 4.0, optimalMin: 3.0, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n Platelets: {\n default: { max: 400, min: 150, optimalMax: 350, optimalMin: 180, unit: 'K/uL' },\n source: 'pns-hemograma-2019',\n },\n\n Potassium: {\n default: { max: 5.0, min: 3.5, optimalMax: 4.6, optimalMin: 3.8, unit: 'mEq/L' },\n source: 'tietz-7ed-2015',\n },\n\n // =============================================================================\n // CARDIAC MARKERS\n // =============================================================================\n\n Prealbumin: {\n default: { max: 38, min: 18, optimalMax: 35, optimalMin: 20, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n Progesterone: {\n default: { max: 0.9, min: 0.1, optimalMax: 0.7, optimalMin: 0.2, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\n },\n\n Prolactin: {\n default: { max: 18, min: 2, optimalMax: 15, optimalMin: 4, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\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 source: 'sturgeon-nacb-2008',\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 source: 'pns-hemograma-2019',\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 source: 'pns-hemograma-2019',\n },\n\n Reticulocytes: {\n default: { max: 2.5, min: 0.5, optimalMax: 2.0, optimalMin: 0.8, unit: '%' },\n source: 'pns-hemograma-2019',\n },\n\n SDMA: {\n default: { max: 0.6, min: 0.3, optimalMax: 0.5, optimalMin: 0.3, unit: 'umol/L' },\n source: 'schwedhelm-sdma-2011',\n },\n\n Selenium: {\n default: { max: 150, min: 70, optimalMax: 125, optimalMin: 85, unit: 'mcg/L' },\n source: 'tietz-7ed-2015',\n },\n\n SHBG: {\n default: { max: 54, min: 18, optimalMax: 50, optimalMin: 20, unit: 'nmol/L' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n Stearic_Acid: {\n default: { max: 14.0, min: 8.0, optimalMax: 12.0, optimalMin: 10.0, unit: '%' },\n source: 'tietz-7ed-2015',\n },\n\n T3Free: {\n default: { max: 4.2, min: 2.3, optimalMax: 3.8, optimalMin: 2.8, unit: 'pg/mL' },\n source: 'tietz-7ed-2015',\n },\n\n // =============================================================================\n // OMEGA FATTY ACIDS\n // =============================================================================\n\n T3Reverse: {\n default: { max: 24, min: 10, optimalMax: 20, optimalMin: 12, unit: 'ng/dL' },\n source: 'tietz-7ed-2015',\n },\n\n T4Free: {\n default: { max: 1.8, min: 0.8, optimalMax: 1.5, optimalMin: 1.0, unit: 'ng/dL' },\n source: 'tietz-7ed-2015',\n },\n\n T4Total: {\n default: { max: 12.0, min: 4.5, optimalMax: 10.0, optimalMin: 6.0, unit: 'ug/dL' },\n source: 'tietz-7ed-2015',\n },\n\n Testosterone: {\n default: { max: 1000, min: 300, optimalMax: 800, optimalMin: 500, unit: 'ng/dL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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: 370, min: 250, optimalMax: 350, optimalMin: 280, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n TotalProtein: {\n default: { max: 8.3, min: 6.0, optimalMax: 7.8, optimalMin: 6.5, unit: 'g/dL' },\n source: 'tietz-7ed-2015',\n },\n\n Trans_Fat_Index: {\n default: { max: 1.0, min: 0, optimalMax: 0.5, optimalMin: 0, unit: '%' },\n source: 'tietz-7ed-2015',\n },\n\n Transferrin: {\n default: { max: 360, min: 200, optimalMax: 340, optimalMin: 220, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n TransferrinSaturation: {\n default: { max: 50, min: 20, optimalMax: 45, optimalMin: 25, unit: '%' },\n source: 'tietz-7ed-2015',\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-2025',\n },\n\n // TroponinI: 0.04 ng/mL = percentil 99 (ensaio Siemens TnI-Ultra)\n TroponinI: {\n default: { max: 0.04, min: 0, optimalMax: 0.02, optimalMin: 0, unit: 'ng/mL' },\n source: 'keller-tni-2013',\n },\n\n // TroponinT: 14 ng/L = percentil 99 hs-cTnT (ensaio Roche Elecsys 5ª geração)\n TroponinT: {\n default: { max: 14, min: 0, optimalMax: 10, optimalMin: 0, unit: 'ng/L' },\n source: 'giannitsis-hstnt-2010',\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 source: 'tietz-7ed-2015',\n },\n\n UricAcid: {\n default: { max: 7.0, min: 2.5, optimalMax: 5.5, optimalMin: 3.0, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n HyalineCasts_Urine: {\n default: { max: 2, min: 0, optimalMax: 1, optimalMin: 0, unit: '/LPF' },\n source: 'tietz-7ed-2015',\n },\n\n RBC_Urine: {\n default: { max: 3, min: 0, optimalMax: 1, optimalMin: 0, unit: '/HPF' },\n source: 'tietz-7ed-2015',\n },\n\n SquamousEpithelial_Urine: {\n default: { max: 15, min: 0, optimalMax: 5, optimalMin: 0, unit: '/HPF' },\n source: 'tietz-7ed-2015',\n },\n\n Leukocytes_Urine: {\n default: { max: 5, min: 0, optimalMax: 2, optimalMin: 0, unit: '/HPF' },\n source: 'tietz-7ed-2015',\n },\n\n Folate: {\n default: { max: 20, min: 3.9, optimalMax: 17, optimalMin: 5, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\n },\n\n VitaminA: {\n default: { max: 100, min: 20, optimalMax: 80, optimalMin: 30, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\n },\n\n // =============================================================================\n // MINERALS\n // =============================================================================\n\n VitaminB1: {\n default: { max: 180, min: 70, optimalMax: 150, optimalMin: 80, unit: 'nmol/L' },\n source: 'tietz-7ed-2015',\n },\n\n VitaminB12: {\n default: { max: 900, min: 200, optimalMax: 800, optimalMin: 400, unit: 'pg/mL' },\n source: 'tietz-7ed-2015',\n },\n\n VitaminB6: {\n default: { max: 50, min: 5, optimalMax: 40, optimalMin: 10, unit: 'ng/mL' },\n source: 'tietz-7ed-2015',\n },\n\n VitaminC: {\n default: { max: 2.0, min: 0.4, optimalMax: 1.5, optimalMin: 0.6, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\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-vitamind-2014',\n },\n\n VitaminD_1_25: {\n default: { max: 72, min: 18, optimalMax: 60, optimalMin: 25, unit: 'pg/mL' },\n source: 'tietz-7ed-2015',\n },\n\n VitaminE: {\n default: { max: 17, min: 5.5, optimalMax: 14, optimalMin: 7, unit: 'mg/L' },\n source: 'tietz-7ed-2015',\n },\n\n // VLDL: estimado via fórmula de Friedewald (TG/5)\n VLDL: {\n default: { max: 30, min: 2, optimalMax: 20, optimalMin: 5, unit: 'mg/dL' },\n source: 'friedewald-1972',\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 source: 'pns-hemograma-2019',\n },\n\n Zinc: {\n default: { max: 120, min: 60, optimalMax: 100, optimalMin: 70, unit: 'mcg/dL' },\n source: 'tietz-7ed-2015',\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 source: 'kelly-dxa-2009',\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 source: 'kelly-dxa-2009',\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 source: 'kelly-dxa-2009',\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 source: 'gallagher-bodyfat-2000',\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 source: 'kelly-dxa-2009',\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 source: 'kelly-dxa-2009',\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 source: 'kelly-dxa-2009',\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 source: 'kelly-dxa-2009',\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 source: 'kelly-dxa-2009',\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 source: 'ofenheimer-vat-2020',\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 source: 'ofenheimer-vat-2020',\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 source: 'who-osteoporosis-1994',\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 source: 'who-osteoporosis-1994',\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 source: 'who-osteoporosis-1994',\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 source: 'tietz-7ed-2015',\n },\n\n Creatinine_Urine: {\n default: { max: 300, min: 20, optimalMax: 250, optimalMin: 40, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n Lipase: {\n default: { max: 60, min: 0, optimalMax: 50, optimalMin: 10, unit: 'U/L' },\n source: 'tietz-7ed-2015',\n },\n\n Microalbumin_Urine: {\n default: { max: 30, min: 0, optimalMax: 20, optimalMin: 0, unit: 'mg/L' },\n source: 'kdigo-ckd-2024',\n },\n\n PSA_Free: {\n default: { max: 1.5, min: 0, optimalMax: 1.0, optimalMin: 0, unit: 'ng/mL' },\n source: 'sturgeon-nacb-2008',\n },\n\n PSA_FreeRatio: {\n default: { max: 100, min: 25, optimalMax: 100, optimalMin: 30, unit: '%' },\n source: 'sturgeon-nacb-2008',\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 source: 'who-obesity-2000',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n // Prothrombin Time\n ProthrombinTime: {\n default: { max: 13.5, min: 11, optimalMax: 13, optimalMin: 11, unit: 'seconds' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\n },\n\n // IgG - Immunoglobulin G\n IgG: {\n default: { max: 1600, min: 700, optimalMax: 1600, optimalMin: 700, unit: 'mg/dL' },\n source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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 source: 'tietz-7ed-2015',\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"]}
|
package/dist/converter.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk4EB4LIITcjs = require('./chunk-4EB4LIIT.cjs');
|
|
7
7
|
require('./chunk-2EVQ2ESB.cjs');
|
|
8
8
|
require('./chunk-GFXKYXHW.cjs');
|
|
9
9
|
|
|
@@ -11,5 +11,5 @@ require('./chunk-GFXKYXHW.cjs');
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
exports.labObservationToFHIR =
|
|
14
|
+
exports.labObservationToFHIR = _chunk4EB4LIITcjs.labObservationToFHIR; exports.labReportToFHIR = _chunk4EB4LIITcjs.labReportToFHIR; exports.labResultToFHIRBundle = _chunk4EB4LIITcjs.labResultToFHIRBundle; exports.userProfileToFHIR = _chunk4EB4LIITcjs.userProfileToFHIR;
|
|
15
15
|
//# sourceMappingURL=converter.cjs.map
|
package/dist/converter.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkZUBHCXUVcjs = require('./chunk-ZUBHCXUV.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk4EB4LIITcjs = require('./chunk-4EB4LIIT.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
@@ -151,7 +151,7 @@ function interventionToFHIRObservation(intervention, patientId) {
|
|
|
151
151
|
}
|
|
152
152
|
function interventionsToFHIRBundle(interventions, userProfile) {
|
|
153
153
|
const patientId = userProfile.userId;
|
|
154
|
-
const fhirPatient =
|
|
154
|
+
const fhirPatient = _chunk4EB4LIITcjs.userProfileToFHIR.call(void 0, userProfile);
|
|
155
155
|
const entries = interventions.map((intervention) => {
|
|
156
156
|
const isMedication = intervention.type === "medication" || intervention.type === "supplement";
|
|
157
157
|
const resource = isMedication ? interventionToFHIRMedicationStatement(intervention, patientId) : interventionToFHIRObservation(intervention, patientId);
|
|
@@ -536,5 +536,5 @@ var pluralPhraseCount = (count, noun, adjective) => {
|
|
|
536
536
|
|
|
537
537
|
|
|
538
538
|
|
|
539
|
-
exports.AGE_BRACKETS = AGE_BRACKETS; exports.BIOMARKER_DEFAULT_UNIT = _chunkGFXKYXHWcjs.BIOMARKER_DEFAULT_UNIT; exports.BIOMARKER_DEFINITIONS = _chunk2EVQ2ESBcjs.BIOMARKER_DEFINITIONS; exports.BIOMARKER_UNITS = _chunkGFXKYXHWcjs.BIOMARKER_UNITS; exports.BODY_FAT_ZONES = BODY_FAT_ZONES; exports.CAC_INDICATOR_CODES = _chunk2EVQ2ESBcjs.CAC_INDICATOR_CODES; exports.CATEGORY_SCREENING_INTERVALS = CATEGORY_SCREENING_INTERVALS; exports.DEXA_CATEGORIES = _chunk2EVQ2ESBcjs.DEXA_CATEGORIES; exports.DEXA_INDICATOR_CODES = _chunk2EVQ2ESBcjs.DEXA_INDICATOR_CODES; exports.MAX_FILE_SIZE = _chunkO25F6G3Kcjs.MAX_FILE_SIZE; exports.MAX_OBSERVATIONS = _chunkO25F6G3Kcjs.MAX_OBSERVATIONS; exports.T_SCORE_ZONES = T_SCORE_ZONES; exports.UNIT_TO_UCUM = _chunkGFXKYXHWcjs.UNIT_TO_UCUM; exports.ZONE_DEFS = ZONE_DEFS; exports.applyFallbackReferenceRanges =
|
|
539
|
+
exports.AGE_BRACKETS = AGE_BRACKETS; exports.BIOMARKER_DEFAULT_UNIT = _chunkGFXKYXHWcjs.BIOMARKER_DEFAULT_UNIT; exports.BIOMARKER_DEFINITIONS = _chunk2EVQ2ESBcjs.BIOMARKER_DEFINITIONS; exports.BIOMARKER_UNITS = _chunkGFXKYXHWcjs.BIOMARKER_UNITS; exports.BODY_FAT_ZONES = BODY_FAT_ZONES; exports.CAC_INDICATOR_CODES = _chunk2EVQ2ESBcjs.CAC_INDICATOR_CODES; exports.CATEGORY_SCREENING_INTERVALS = CATEGORY_SCREENING_INTERVALS; exports.DEXA_CATEGORIES = _chunk2EVQ2ESBcjs.DEXA_CATEGORIES; exports.DEXA_INDICATOR_CODES = _chunk2EVQ2ESBcjs.DEXA_INDICATOR_CODES; exports.MAX_FILE_SIZE = _chunkO25F6G3Kcjs.MAX_FILE_SIZE; exports.MAX_OBSERVATIONS = _chunkO25F6G3Kcjs.MAX_OBSERVATIONS; exports.T_SCORE_ZONES = T_SCORE_ZONES; exports.UNIT_TO_UCUM = _chunkGFXKYXHWcjs.UNIT_TO_UCUM; exports.ZONE_DEFS = ZONE_DEFS; exports.applyFallbackReferenceRanges = _chunkZUBHCXUVcjs.applyFallbackReferenceRanges; exports.biomarkerRangeDefinitions = _chunkZUBHCXUVcjs.biomarkerRangeDefinitions; exports.calculateNextScreeningDate = calculateNextScreeningDate; exports.codeToLoinc = _chunk2EVQ2ESBcjs.codeToLoinc; exports.defaultReferenceRanges = _chunkZUBHCXUVcjs.defaultReferenceRanges; exports.extractObservationsFromBundle = _chunkO25F6G3Kcjs.extractObservationsFromBundle; exports.filterVisibleBiomarkers = _chunk2EVQ2ESBcjs.filterVisibleBiomarkers; exports.findCodeByName = _chunk2EVQ2ESBcjs.findCodeByName; exports.generateCacFullReference = _chunk2EVQ2ESBcjs.generateCacFullReference; exports.generateDexaFullReference = _chunk2EVQ2ESBcjs.generateDexaFullReference; exports.generateFilteredLLMReference = _chunk2EVQ2ESBcjs.generateFilteredLLMReference; exports.generateLLMReference = _chunk2EVQ2ESBcjs.generateLLMReference; exports.getAllCodes = _chunk2EVQ2ESBcjs.getAllCodes; exports.getAllDefinitions = _chunk2EVQ2ESBcjs.getAllDefinitions; exports.getAllLoincCodes = _chunk2EVQ2ESBcjs.getAllLoincCodes; exports.getAllSearchPatterns = _chunk2EVQ2ESBcjs.getAllSearchPatterns; exports.getBiomarkersByCategory = _chunk2EVQ2ESBcjs.getBiomarkersByCategory; exports.getBiomarkersForCategories = _chunk2EVQ2ESBcjs.getBiomarkersForCategories; exports.getCanonicalUnit = _chunkGFXKYXHWcjs.getCanonicalUnit; exports.getCategoriesByInterval = getCategoriesByInterval; exports.getDaysUntilScreening = getDaysUntilScreening; exports.getDefaultUnit = _chunkGFXKYXHWcjs.getDefaultUnit; exports.getDefinitionByCode = _chunk2EVQ2ESBcjs.getDefinitionByCode; exports.getDefinitionByLoinc = _chunk2EVQ2ESBcjs.getDefinitionByLoinc; exports.getDefinitionsBySex = _chunk2EVQ2ESBcjs.getDefinitionsBySex; exports.getDueCategories = getDueCategories; exports.getFallbackReferenceRange = _chunkZUBHCXUVcjs.getFallbackReferenceRange; exports.getRangeDirection = _chunkZUBHCXUVcjs.getRangeDirection; exports.getReferenceRange = _chunkZUBHCXUVcjs.getReferenceRange; exports.getSIUnit = _chunkGFXKYXHWcjs.getSIUnit; exports.getScreeningInterval = getScreeningInterval; exports.getSexForCode = _chunk2EVQ2ESBcjs.getSexForCode; exports.getVisibleDefinitions = _chunk2EVQ2ESBcjs.getVisibleDefinitions; exports.interventionToFHIRMedicationStatement = interventionToFHIRMedicationStatement; exports.interventionToFHIRObservation = interventionToFHIRObservation; exports.interventionsToFHIRBundle = interventionsToFHIRBundle; exports.isBiomarkerVisible = _chunk2EVQ2ESBcjs.isBiomarkerVisible; exports.isCacDocument = _chunk2EVQ2ESBcjs.isCacDocument; exports.isDexaDocument = _chunk2EVQ2ESBcjs.isDexaDocument; exports.isScreeningDue = isScreeningDue; exports.isValidCode = _chunk2EVQ2ESBcjs.isValidCode; exports.isValidLoinc = _chunk2EVQ2ESBcjs.isValidLoinc; exports.labObservationToFHIR = _chunk4EB4LIITcjs.labObservationToFHIR; exports.labReportToFHIR = _chunk4EB4LIITcjs.labReportToFHIR; exports.labResultToFHIRBundle = _chunk4EB4LIITcjs.labResultToFHIRBundle; exports.loincToCode = _chunk2EVQ2ESBcjs.loincToCode; exports.mapFHIRObservationToInternal = _chunkO25F6G3Kcjs.mapFHIRObservationToInternal; exports.normalizeCode = _chunk2EVQ2ESBcjs.normalizeCode; exports.plural = plural; exports.pluralCount = pluralCount; exports.pluralPhrase = pluralPhrase; exports.pluralPhraseCount = pluralPhraseCount; exports.processImportBundle = _chunkO25F6G3Kcjs.processImportBundle; exports.toBiomarkerTests = _chunk2EVQ2ESBcjs.toBiomarkerTests; exports.unitToUCUM = _chunkGFXKYXHWcjs.unitToUCUM; exports.userProfileToFHIR = _chunk4EB4LIITcjs.userProfileToFHIR; exports.validateFHIRDiagnosticReport = _chunk3ILBFLVQcjs.validateFHIRDiagnosticReport; exports.validateFHIRImportBundle = _chunk3ILBFLVQcjs.validateFHIRImportBundle; exports.validateFHIRObservation = _chunk3ILBFLVQcjs.validateFHIRObservation; exports.validateLoincNameMatch = _chunk2EVQ2ESBcjs.validateLoincNameMatch;
|
|
540
540
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
getFallbackReferenceRange,
|
|
6
6
|
getRangeDirection,
|
|
7
7
|
getReferenceRange
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-35S3GSRK.js";
|
|
9
9
|
import {
|
|
10
10
|
labObservationToFHIR,
|
|
11
11
|
labReportToFHIR,
|
|
12
12
|
labResultToFHIRBundle,
|
|
13
13
|
userProfileToFHIR
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RGHKKL3W.js";
|
|
15
15
|
import {
|
|
16
16
|
MAX_FILE_SIZE,
|
|
17
17
|
MAX_OBSERVATIONS,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkZUBHCXUVcjs = require('./chunk-ZUBHCXUV.cjs');
|
|
9
9
|
require('./chunk-GFXKYXHW.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
@@ -14,5 +14,5 @@ require('./chunk-GFXKYXHW.cjs');
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
exports.applyFallbackReferenceRanges =
|
|
17
|
+
exports.applyFallbackReferenceRanges = _chunkZUBHCXUVcjs.applyFallbackReferenceRanges; exports.biomarkerRangeDefinitions = _chunkZUBHCXUVcjs.biomarkerRangeDefinitions; exports.defaultReferenceRanges = _chunkZUBHCXUVcjs.defaultReferenceRanges; exports.getFallbackReferenceRange = _chunkZUBHCXUVcjs.getFallbackReferenceRange; exports.getRangeDirection = _chunkZUBHCXUVcjs.getRangeDirection; exports.getReferenceRange = _chunkZUBHCXUVcjs.getReferenceRange;
|
|
18
18
|
//# sourceMappingURL=reference-ranges.cjs.map
|
|
@@ -46,6 +46,19 @@ type RangeDirection = 'range' | 'higher-better' | 'lower-better';
|
|
|
46
46
|
interface BiomarkerRangeDefinition {
|
|
47
47
|
default: BiomarkerReferenceRange;
|
|
48
48
|
direction?: RangeDirection;
|
|
49
|
+
/**
|
|
50
|
+
* Chave de fonte bibliográfica, opcionalmente com localizador.
|
|
51
|
+
*
|
|
52
|
+
* Formato: `'chave'` ou `'chave:localizador'`
|
|
53
|
+
*
|
|
54
|
+
* Exemplos:
|
|
55
|
+
* - `'sbc-lipids-2017'` — fonte sem localização específica
|
|
56
|
+
* - `'sbc-lipids-2017:p15'` — página 15
|
|
57
|
+
* - `'sbpc-ml-2021:t4.1'` — tabela 4.1
|
|
58
|
+
*
|
|
59
|
+
* As chaves devem corresponder a entradas em `SOURCE_REGISTRY` (sources.ts).
|
|
60
|
+
* Consulte `docs/fontes-referencia.md` para a bibliografia completa em formato ABNT.
|
|
61
|
+
*/
|
|
49
62
|
source?: string;
|
|
50
63
|
variants?: RangeVariant[];
|
|
51
64
|
}
|
|
@@ -46,6 +46,19 @@ type RangeDirection = 'range' | 'higher-better' | 'lower-better';
|
|
|
46
46
|
interface BiomarkerRangeDefinition {
|
|
47
47
|
default: BiomarkerReferenceRange;
|
|
48
48
|
direction?: RangeDirection;
|
|
49
|
+
/**
|
|
50
|
+
* Chave de fonte bibliográfica, opcionalmente com localizador.
|
|
51
|
+
*
|
|
52
|
+
* Formato: `'chave'` ou `'chave:localizador'`
|
|
53
|
+
*
|
|
54
|
+
* Exemplos:
|
|
55
|
+
* - `'sbc-lipids-2017'` — fonte sem localização específica
|
|
56
|
+
* - `'sbc-lipids-2017:p15'` — página 15
|
|
57
|
+
* - `'sbpc-ml-2021:t4.1'` — tabela 4.1
|
|
58
|
+
*
|
|
59
|
+
* As chaves devem corresponder a entradas em `SOURCE_REGISTRY` (sources.ts).
|
|
60
|
+
* Consulte `docs/fontes-referencia.md` para a bibliografia completa em formato ABNT.
|
|
61
|
+
*/
|
|
49
62
|
source?: string;
|
|
50
63
|
variants?: RangeVariant[];
|
|
51
64
|
}
|
package/dist/reference-ranges.js
CHANGED
package/package.json
CHANGED
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@precisa-saude/fhir",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Tipos FHIR R4, definições de biomarcadores, faixas de referência e conversores para o ecossistema de saúde brasileiro",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"fhir",
|
|
7
|
+
"r4",
|
|
8
|
+
"brazil",
|
|
9
|
+
"biomarker",
|
|
10
|
+
"loinc",
|
|
11
|
+
"sbpc-ml",
|
|
12
|
+
"health"
|
|
13
|
+
],
|
|
5
14
|
"homepage": "https://github.com/Precisa-Saude/fhir-brasil/tree/main/packages/core#readme",
|
|
6
15
|
"bugs": "https://github.com/Precisa-Saude/fhir-brasil/issues",
|
|
7
|
-
"
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/Precisa-Saude/fhir-brasil.git",
|
|
19
|
+
"directory": "packages/core"
|
|
20
|
+
},
|
|
21
|
+
"license": "Apache-2.0",
|
|
22
|
+
"sideEffects": false,
|
|
8
23
|
"type": "module",
|
|
9
|
-
"main": "./dist/index.cjs",
|
|
10
|
-
"module": "./dist/index.js",
|
|
11
|
-
"types": "./dist/index.d.ts",
|
|
12
24
|
"exports": {
|
|
13
25
|
".": {
|
|
14
26
|
"import": {
|
|
@@ -81,28 +93,26 @@
|
|
|
81
93
|
}
|
|
82
94
|
}
|
|
83
95
|
},
|
|
84
|
-
"
|
|
96
|
+
"main": "./dist/index.cjs",
|
|
97
|
+
"module": "./dist/index.js",
|
|
98
|
+
"types": "./dist/index.d.ts",
|
|
99
|
+
"files": [
|
|
100
|
+
"dist"
|
|
101
|
+
],
|
|
85
102
|
"scripts": {
|
|
86
103
|
"build": "tsup",
|
|
87
|
-
"
|
|
88
|
-
"
|
|
104
|
+
"clean": "rm -rf dist .turbo",
|
|
105
|
+
"lint": "eslint src/ --max-warnings 0",
|
|
89
106
|
"test": "vitest run",
|
|
90
107
|
"test:coverage": "vitest run --coverage",
|
|
91
|
-
"
|
|
92
|
-
},
|
|
93
|
-
"keywords": ["fhir", "r4", "brazil", "biomarker", "loinc", "sbpc-ml", "health"],
|
|
94
|
-
"license": "Apache-2.0",
|
|
95
|
-
"repository": {
|
|
96
|
-
"type": "git",
|
|
97
|
-
"url": "https://github.com/Precisa-Saude/fhir-brasil.git",
|
|
98
|
-
"directory": "packages/core"
|
|
99
|
-
},
|
|
100
|
-
"publishConfig": {
|
|
101
|
-
"access": "public"
|
|
108
|
+
"typecheck": "tsc --noEmit"
|
|
102
109
|
},
|
|
103
110
|
"devDependencies": {
|
|
104
111
|
"tsup": "^8.3.5",
|
|
105
112
|
"typescript": "~5.7.3",
|
|
106
113
|
"vitest": "^2.1.8"
|
|
114
|
+
},
|
|
115
|
+
"publishConfig": {
|
|
116
|
+
"access": "public"
|
|
107
117
|
}
|
|
108
118
|
}
|