@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-2EVQ2ESB.cjs","../src/biomarkers.ts"],"names":[],"mappings":"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AACQ,EAAA;AAC/C;AAaoD;AACf,EAAA;AACC,EAAA;AAGiB,EAAA;AAEV,IAAA;AAC3C,EAAA;AAGe,EAAA;AAC8B,IAAA;AAC7C,EAAA;AAG+C,EAAA;AACjD;AAY0D;AAED,EAAA;AAC9C,IAAA;AACT,EAAA;AAG+C,EAAA;AACvB,EAAA;AACf,IAAA;AACT,EAAA;AAEO,EAAA;AACT;AAQ0F;AAC9B,EAAA;AAC5D;AAiByB;AACoC,EAAA;AAEd,EAAA;AACU,IAAA;AACV,IAAA;AACF,IAAA;AACrB,IAAA;AAEoC,MAAA;AACxD,IAAA;AACO,IAAA;AACR,EAAA;AACH;AAeyC;AACgB,EAAA;AAEpB,EAAA;AACoB,IAAA;AAC1B,IAAA;AACN,MAAA;AACrB,IAAA;AACF,EAAA;AAEO,EAAA;AACT;ADrV6D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/Users/rafael/Github/precisa-saude/fhir-brasil/packages/core/dist/chunk-2EVQ2ESB.cjs","sourcesContent":[null,"/**\n * Biomarker Definitions - Single Source of Truth\n *\n * This file defines all supported biomarkers with:\n * - LOINC codes (canonical identifier for cross-language matching)\n * - Internal codes (for UI display)\n * - Portuguese and English names\n * - Categories\n * - Default units\n *\n * The LLM extraction prompt includes these definitions so it can output\n * LOINC codes directly, eliminating the need for name-matching logic.\n */\n\nexport interface BiomarkerDefinition {\n category: string | string[];\n code: string;\n codeAliases?: string[];\n hidden?: boolean; // If true, biomarker is extracted but not shown in UI\n loinc?: string; // Optional - some DEXA regional metrics don't have official LOINC codes\n loincAliases?: string[];\n names: {\n en: string[];\n pt: string[];\n };\n sex?: 'male' | 'female' | 'both';\n unit?: string;\n}\n\n/** @deprecated Use `BiomarkerDefinition` instead */\nexport type SupportedBiomarker = BiomarkerDefinition;\n\n/**\n * All supported biomarker definitions\n */\nexport const BIOMARKER_DEFINITIONS: BiomarkerDefinition[] = [\n // ============================================================================\n // HEART / CORACAO\n // ============================================================================\n {\n category: 'coracao',\n code: 'ApoB',\n loinc: '1884-6',\n names: {\n en: ['Apolipoprotein B', 'ApoB'],\n pt: ['Apolipoproteína B', 'ApoB'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'coracao',\n code: 'HDL',\n loinc: '2085-9',\n names: {\n en: ['HDL Cholesterol', 'HDL', 'High-Density Lipoprotein'],\n pt: ['Colesterol HDL', 'HDL', 'HDL-Colesterol'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'coracao',\n code: 'HDL_Large',\n loinc: '43729-3',\n names: {\n en: ['HDL Large', 'Large HDL Particles'],\n pt: ['HDL Grande', 'Partículas HDL Grandes'],\n },\n unit: 'nmol/L',\n },\n {\n category: 'coracao',\n code: 'CRP',\n loinc: '1988-5',\n names: {\n en: ['C-Reactive Protein', 'CRP', 'hs-CRP', 'High-Sensitivity CRP'],\n pt: ['Proteína C-Reativa', 'PCR', 'PCR-as', 'PCR Ultrassensível'],\n },\n unit: 'mg/L',\n },\n {\n category: 'coracao',\n code: 'LDL',\n loinc: '2089-1',\n names: {\n en: ['LDL Cholesterol', 'LDL', 'Low-Density Lipoprotein'],\n pt: ['Colesterol LDL', 'LDL', 'LDL-Colesterol'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'coracao',\n code: 'LDL_Medium',\n loinc: '96735-6',\n names: {\n en: ['LDL Medium', 'Medium LDL Particles'],\n pt: ['LDL Médio', 'Partículas LDL Médias'],\n },\n unit: 'nmol/L',\n },\n {\n category: 'coracao',\n code: 'LDL_ParticleNumber',\n codeAliases: ['LDL_Particle_Number'],\n loinc: '54434-6',\n names: {\n en: ['LDL Particle Number', 'LDL-P'],\n pt: ['Número de Partículas LDL', 'LDL-P'],\n },\n unit: 'nmol/L',\n },\n {\n category: 'coracao',\n code: 'LDL_Pattern',\n loinc: '35505-7',\n names: {\n en: ['LDL Pattern', 'LDL Particle Pattern'],\n pt: ['Padrão LDL', 'Padrão de Partículas LDL'],\n },\n },\n {\n category: 'coracao',\n code: 'LDL_Peak_Size',\n loinc: '17782-4',\n names: {\n en: ['LDL Peak Size', 'LDL Particle Size'],\n pt: ['Tamanho de Pico LDL', 'Tamanho de Partícula LDL'],\n },\n unit: 'Angstrom',\n },\n {\n category: 'coracao',\n code: 'LDL_Small',\n loinc: '43727-7',\n names: {\n en: ['LDL Small', 'Small Dense LDL'],\n pt: ['LDL Pequeno', 'LDL Denso Pequeno'],\n },\n unit: 'nmol/L',\n },\n {\n category: 'coracao',\n code: 'Lipoprotein_a',\n loinc: '10835-7',\n names: {\n en: ['Lipoprotein (a)', 'Lp(a)'],\n pt: ['Lipoproteína (a)', 'Lp(a)'],\n },\n unit: 'nmol/L',\n },\n {\n category: 'coracao',\n code: 'NonHDL_Cholesterol',\n codeAliases: ['UNKNOWN_Colesterol_no_HDL', 'UNKNOWN_Colesterol_No_HDL'],\n loinc: '43396-1',\n names: {\n en: ['Non-HDL Cholesterol', 'Non HDL Cholesterol', 'NonHDL Cholesterol', 'Non-HDL-C'],\n pt: ['Colesterol Não-HDL', 'Colesterol no HDL', 'Colesterol não HDL', 'Colesterol Non-HDL'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'coracao',\n code: 'Cholesterol',\n loinc: '2093-3',\n names: {\n en: ['Total Cholesterol', 'Cholesterol'],\n pt: ['Colesterol Total', 'Colesterol'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'coracao',\n code: 'Cholesterol_HDL_Ratio',\n codeAliases: ['CholHDL_Ratio'],\n loinc: '9830-1',\n names: {\n en: [\n 'Total Cholesterol / HDL Ratio',\n 'Cholesterol/HDL Ratio',\n 'Chol/HDL Ratio',\n 'CholHDL Ratio',\n 'Cholesterol HDL Ratio',\n 'Chol/HDLC Ratio',\n 'CHOL/HDLC RATIO',\n ],\n pt: ['Razão Colesterol Total / HDL', 'Razão Colesterol/HDL'],\n },\n unit: 'razão',\n },\n {\n category: 'coracao',\n code: 'Triglycerides',\n loinc: '2571-8',\n names: {\n en: ['Triglycerides'],\n pt: ['Triglicerídeos', 'Triglicérides'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'coracao',\n code: 'VLDL',\n codeAliases: ['VLDL_Cholesterol'],\n loinc: '13458-5',\n names: {\n en: ['VLDL Cholesterol', 'VLDL'],\n pt: ['Colesterol VLDL', 'VLDL'],\n },\n unit: 'mg/dL',\n },\n\n // ============================================================================\n // CORONARY ARTERY CALCIUM (CAC) SCORE\n // ============================================================================\n {\n category: 'coracao',\n code: 'CAC',\n hidden: true,\n names: {\n en: [\n 'Coronary Artery Calcium Score',\n 'CAC Score',\n 'Calcium Score',\n 'Agatston Score',\n 'Total Agatston Score',\n 'CT Calcium Score',\n 'Total Coronary Calcium Score',\n ],\n pt: [\n 'Escore de Cálcio Coronariano',\n 'Escore de Cálcio',\n 'Escore CAC',\n 'Escore Agatston',\n 'Escore de Cálcio Total',\n 'Cálcio Coronariano',\n ],\n },\n unit: 'AU',\n },\n {\n category: 'coracao',\n code: 'CAC_LMA',\n hidden: true,\n names: {\n en: ['Left Main Artery Calcium', 'LMA Calcium Score', 'Left Main Calcium'],\n pt: ['Cálcio Tronco Coronária Esquerda', 'Cálcio TCE', 'Cálcio Artéria Coronária Esquerda'],\n },\n unit: 'AU',\n },\n {\n category: 'coracao',\n code: 'CAC_LAD',\n hidden: true,\n names: {\n en: ['Left Anterior Descending Calcium', 'LAD Calcium Score', 'LAD Calcium'],\n pt: [\n 'Cálcio Descendente Anterior Esquerda',\n 'Cálcio DA',\n 'Cálcio Artéria Descendente Anterior',\n ],\n },\n unit: 'AU',\n },\n {\n category: 'coracao',\n code: 'CAC_LCX',\n hidden: true,\n names: {\n en: ['Left Circumflex Calcium', 'LCX Calcium Score', 'LCX Calcium', 'Circumflex Calcium'],\n pt: ['Cálcio Circunflexa', 'Cálcio CX', 'Cálcio Artéria Circunflexa'],\n },\n unit: 'AU',\n },\n {\n category: 'coracao',\n code: 'CAC_RCA',\n hidden: true,\n names: {\n en: ['Right Coronary Artery Calcium', 'RCA Calcium Score', 'RCA Calcium'],\n pt: ['Cálcio Coronária Direita', 'Cálcio CD', 'Cálcio Artéria Coronária Direita'],\n },\n unit: 'AU',\n },\n {\n category: 'coracao',\n code: 'CAC_Percentile',\n names: {\n en: [\n 'CAC Percentile',\n 'MESA Percentile',\n 'Calcium Score Percentile',\n 'Age-Sex-Ethnicity Percentile',\n ],\n pt: ['Percentil CAC', 'Percentil MESA', 'Percentil do Escore de Cálcio'],\n },\n unit: '%',\n },\n {\n category: 'coracao',\n code: 'AorticValveCalcium',\n hidden: true,\n names: {\n en: ['Aortic Valve Calcium Score', 'Aortic Valve Calcium', 'AVC Score'],\n pt: ['Cálcio Valva Aórtica', 'Escore de Cálcio Valva Aórtica', 'Cálcio Válvula Aórtica'],\n },\n unit: 'AU',\n },\n\n {\n category: 'coracao',\n code: 'ApoA1',\n codeAliases: ['Apolipoprotein_A1'],\n loinc: '1869-7',\n names: {\n en: ['Apolipoprotein A-1', 'ApoA1', 'Apo A-I', 'Apolipoprotein A1'],\n pt: ['Apolipoproteína A-1', 'ApoA1', 'Apo A-I'],\n },\n unit: 'mg/dL',\n },\n\n // ============================================================================\n // THYROID / TIREOIDE\n // ============================================================================\n {\n category: 'tireoide',\n code: 'AntiThyroglobulin',\n loinc: '8098-6',\n names: {\n en: [\n 'Thyroglobulin Antibodies',\n 'Anti-TgAb',\n 'TgAb',\n 'Anti-Thyroglobulin Antibody',\n 'Anti-Thyroglobulin Antibodies',\n ],\n pt: [\n 'Anticorpos Anti-Tireoglobulina',\n 'Anti-Tg',\n 'TgAb',\n 'Anti-Tiroglobulina',\n 'Antic anti-tiroglobulina',\n 'Anticorpos Antitireoglobulina',\n ],\n },\n unit: 'IU/mL',\n },\n {\n category: 'tireoide',\n code: 'AntiTPO',\n loinc: '8099-4',\n names: {\n en: ['Thyroid Peroxidase Antibodies', 'TPO Antibodies', 'Anti-TPO'],\n pt: ['Anticorpos Anti-Peroxidase Tireoidiana', 'Anti-TPO', 'TPO'],\n },\n unit: 'IU/mL',\n },\n {\n category: 'tireoide',\n code: 'TSH',\n loinc: '3016-3',\n names: {\n en: ['Thyroid-Stimulating Hormone', 'TSH', 'Thyrotropin'],\n pt: ['Hormônio Tireoestimulante', 'TSH', 'Tireotrofina'],\n },\n unit: 'uIU/mL',\n },\n {\n category: 'tireoide',\n code: 'T4Free',\n loinc: '3024-7',\n names: {\n en: ['Thyroxine Free', 'Free T4', 'T4 Free', 'T4, Free', 'T4 FREE'],\n pt: ['Tiroxina Livre', 'T4 Livre'],\n },\n unit: 'ng/dL',\n },\n {\n category: 'tireoide',\n code: 'T3Free',\n loinc: '3051-0',\n names: {\n en: ['Triiodothyronine Free', 'Free T3', 'T3 Free', 'T3, Free', 'T3 FREE'],\n pt: ['Triiodotironina Livre', 'T3 Livre'],\n },\n unit: 'pg/mL',\n },\n {\n category: 'tireoide',\n code: 'T4Total',\n codeAliases: ['Tiroxina_T4', 'Thyroxine_T4_serum'],\n loinc: '3026-2',\n names: {\n en: ['Thyroxine', 'T4 Total', 'Total T4', 'Thyroxine (T4)', 'Thyroxine (T4), serum'],\n pt: ['Tiroxina', 'T4 Total', 'Tiroxina Total', 'Tiroxina (T4)'],\n },\n unit: 'ug/dL',\n },\n\n // ============================================================================\n // AUTOIMMUNITY / AUTOIMUNIDADE\n // ============================================================================\n {\n category: 'autoimunidade',\n code: 'ANA_Screen',\n loinc: '8061-4',\n names: {\n en: ['Antinuclear Antibodies Screen', 'ANA Screen'],\n pt: ['Triagem de Anticorpos Antinucleares', 'FAN Triagem'],\n },\n },\n {\n category: 'autoimunidade',\n code: 'RheumatoidFactor',\n loinc: '11572-5',\n names: {\n en: ['Rheumatoid Factor', 'RF'],\n pt: ['Fator Reumatoide', 'FR'],\n },\n unit: 'IU/mL',\n },\n\n // ============================================================================\n // IMMUNE REGULATION / REGULACAO-IMUNOLOGICA\n // ============================================================================\n {\n category: 'regulacao-imunologica',\n code: 'Basophils',\n loinc: '706-2',\n names: {\n en: ['Basophils', 'Basophils %'],\n pt: ['Basófilos', 'Basófilos %'],\n },\n unit: '%',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Basophils_Abs',\n hidden: true,\n loinc: '704-7',\n names: {\n en: ['Absolute Basophils', 'Basophils Absolute'],\n pt: ['Basófilos Absolutos'],\n },\n unit: 'K/uL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Eosinophils',\n loinc: '713-8',\n names: {\n en: ['Eosinophils', 'Eosinophils %'],\n pt: ['Eosinófilos', 'Eosinófilos %'],\n },\n unit: '%',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Eosinophils_Abs',\n hidden: true,\n loinc: '711-2',\n names: {\n en: ['Absolute Eosinophils', 'Eosinophils Absolute'],\n pt: ['Eosinófilos Absolutos'],\n },\n unit: 'K/uL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Lymphocytes',\n loinc: '736-9',\n names: {\n en: ['Lymphocytes', 'Lymphocytes %'],\n pt: ['Linfócitos', 'Linfócitos %'],\n },\n unit: '%',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Lymphocytes_Abs',\n hidden: true,\n loinc: '731-0',\n names: {\n en: ['Absolute Lymphocytes', 'Lymphocytes Absolute'],\n pt: ['Linfócitos Absolutos'],\n },\n unit: 'K/uL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Monocytes',\n loinc: '5905-5',\n names: {\n en: ['Monocytes', 'Monocytes %'],\n pt: ['Monócitos', 'Monócitos %'],\n },\n unit: '%',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Monocytes_Abs',\n hidden: true,\n loinc: '742-7',\n names: {\n en: ['Absolute Monocytes', 'Monocytes Absolute'],\n pt: ['Monócitos Absolutos'],\n },\n unit: 'K/uL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Neutrophils',\n loinc: '770-8',\n names: {\n en: ['Neutrophils', 'Neutrophils %'],\n pt: ['Neutrófilos', 'Neutrófilos %'],\n },\n unit: '%',\n },\n {\n category: 'regulacao-imunologica',\n code: 'Neutrophils_Abs',\n hidden: true,\n loinc: '751-8',\n names: {\n en: ['Absolute Neutrophils', 'Neutrophils Absolute'],\n pt: ['Neutrófilos Absolutos'],\n },\n unit: 'K/uL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'WBC',\n loinc: '6690-2',\n names: {\n en: ['White Blood Cell Count', 'WBC', 'Leukocytes'],\n pt: ['Contagem de Leucócitos', 'Leucócitos', 'Glóbulos Brancos'],\n },\n unit: 'K/uL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'IgA',\n loinc: '2458-8',\n names: {\n en: ['Immunoglobulin A', 'IgA', 'Serum IgA'],\n pt: ['Imunoglobulina A', 'IgA'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'IgG',\n codeAliases: ['IgG_Immunoglobulin', 'Immunoglobulin_G'],\n loinc: '2465-3',\n names: {\n en: ['Immunoglobulin G', 'IgG', 'Serum IgG'],\n pt: ['Imunoglobulina G', 'IgG'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'IgE_Total',\n codeAliases: ['IgE_Immunoglobulin', 'Total_IgE'],\n loinc: '19113-0',\n names: {\n en: ['Total IgE', 'IgE', 'Immunoglobulin E', 'IgE Total'],\n pt: ['IgE Total', 'Imunoglobulina E', 'IgE'],\n },\n unit: 'IU/mL',\n },\n {\n category: 'regulacao-imunologica',\n code: 'IgE_E1_CatDander',\n codeAliases: ['IgE_Cat_Dander', 'IgE_E1', 'IgE_Specific_E1__Cat_Dander'],\n loinc: '6833-8',\n names: {\n en: ['IgE E1 Cat Dander', 'Cat Dander IgE', 'Cat Allergy IgE', 'IgE Cat Epithelium'],\n pt: ['IgE E1 Epitélio de Gato', 'IgE Gato', 'Alergia a Gato IgE'],\n },\n unit: 'kU/L',\n },\n {\n category: 'regulacao-imunologica',\n code: 'IgE_GX1_Grasses',\n codeAliases: ['IgE_GX1', 'IgE_Grass_Pollen', 'IgE_Specific_GX1__Grasses'],\n loinc: '30189-5',\n names: {\n en: ['IgE GX1 Grasses', 'Grass Pollen IgE', 'Grass Mix IgE', 'IgE GX1 Grass Pollen Mix'],\n pt: ['IgE GX1 Gramíneas', 'IgE Pólen de Gramíneas', 'Painel de Gramíneas IgE'],\n },\n unit: 'kU/L',\n },\n\n // ============================================================================\n // WOMEN'S HEALTH / SAUDE-FEMININA\n // ============================================================================\n {\n category: 'saude-feminina',\n code: 'AMH',\n loinc: '38476-8',\n names: {\n en: ['Anti-Mullerian Hormone', 'AMH'],\n pt: ['Hormônio Anti-Mülleriano', 'AMH'],\n },\n sex: 'female',\n unit: 'ng/mL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'DHEAS',\n loinc: '2191-5',\n names: {\n en: ['DHEA-Sulfate', 'DHEAS', 'DHEA-S', 'DHEA Sulfate'],\n pt: ['DHEA-Sulfato', 'DHEAS', 'Sulfato de DHEA'],\n },\n unit: 'mcg/dL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'Estradiol',\n loinc: '2243-4',\n names: {\n en: ['Estradiol', 'E2'],\n pt: ['Estradiol', 'E2'],\n },\n unit: 'pg/mL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'FSH',\n loinc: '15067-2',\n names: {\n en: ['Follicle Stimulating Hormone', 'FSH'],\n pt: ['Hormônio Folículo-Estimulante', 'FSH', 'Folitropina'],\n },\n unit: 'mIU/mL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'LH',\n loinc: '10501-5',\n names: {\n en: ['Luteinizing Hormone', 'LH'],\n pt: ['Hormônio Luteinizante', 'LH', 'Lutropina'],\n },\n unit: 'mIU/mL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'Prolactin',\n loinc: '2842-3',\n names: {\n en: ['Prolactin'],\n pt: ['Prolactina'],\n },\n unit: 'ng/mL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'SHBG',\n loinc: '13967-5',\n names: {\n en: ['Sex Hormone Binding Globulin', 'SHBG'],\n pt: ['Globulina Ligadora de Hormônios Sexuais', 'SHBG'],\n },\n unit: 'nmol/L',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'TestosteroneFree',\n loinc: '2991-8',\n names: {\n en: [\n 'Testosterone Free',\n 'Free Testosterone',\n 'Testosterone, Free',\n 'Testosterone (Free)',\n 'Testosterone Free (Direct)',\n 'Free Testosterone (Direct)',\n ],\n pt: ['Testosterona Livre'],\n },\n unit: 'pg/mL',\n },\n {\n category: ['saude-feminina', 'saude-masculina'],\n code: 'Testosterone',\n loinc: '2986-8',\n names: {\n en: ['Testosterone Total', 'Testosterone'],\n pt: ['Testosterona Total', 'Testosterona'],\n },\n unit: 'ng/dL',\n },\n {\n category: 'saude-feminina',\n code: 'Progesterone',\n loinc: '2839-9',\n names: {\n en: ['Progesterone'],\n pt: ['Progesterona'],\n },\n sex: 'female',\n unit: 'ng/mL',\n },\n\n // ============================================================================\n // MEN'S HEALTH / SAUDE-MASCULINA\n // ============================================================================\n {\n category: 'saude-masculina',\n code: 'PSA',\n loinc: '2857-1',\n names: {\n en: ['Prostate Specific Antigen', 'PSA', 'PSA Total'],\n pt: ['Antígeno Prostático Específico', 'PSA', 'PSA Total'],\n },\n sex: 'male',\n unit: 'ng/mL',\n },\n {\n category: 'saude-masculina',\n code: 'PSA_Free',\n loinc: '10886-0',\n names: {\n en: ['Prostate Specific Antigen Free', 'PSA Free', 'Free PSA'],\n pt: ['PSA Livre', 'Antígeno Prostático Específico Livre'],\n },\n sex: 'male',\n unit: 'ng/mL',\n },\n {\n category: 'saude-masculina',\n code: 'PSA_FreeRatio',\n loinc: '12841-3',\n names: {\n en: ['PSA Free/Total Ratio', 'PSA % Free', 'Free PSA Ratio', 'PSA, % Free'],\n pt: ['Relação PSA Livre/Total', 'PSA % Livre', 'Razão PSA Livre'],\n },\n sex: 'male',\n unit: '%',\n },\n {\n category: 'hormonios',\n code: 'DHT',\n codeAliases: ['Dihydrotestosterone'],\n loinc: '1848-1',\n names: {\n en: ['Dihydrotestosterone', 'DHT', 'Androstanolone'],\n pt: ['Diidrotestosterona', 'DHT'],\n },\n unit: 'ng/dL',\n },\n\n // ============================================================================\n // METABOLIC / METABOLICO\n // ============================================================================\n {\n category: 'metabolico',\n code: 'Glucose',\n loinc: '2345-7',\n names: {\n en: ['Glucose', 'Blood Glucose', 'Fasting Glucose'],\n pt: ['Glicose', 'Glicemia', 'Glicemia de Jejum'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'metabolico',\n code: 'HbA1c',\n loinc: '4548-4',\n names: {\n en: ['Hemoglobin A1c', 'HbA1c', 'Glycated Hemoglobin'],\n pt: ['Hemoglobina Glicada', 'HbA1c', 'Hemoglobina Glicosilada'],\n },\n unit: '%',\n },\n {\n category: 'metabolico',\n code: 'eAG',\n codeAliases: ['Estimated_Average_Glucose'],\n loinc: '27353-2',\n names: {\n en: ['Estimated Average Glucose', 'eAG', 'Mean Glucose'],\n pt: ['Glicemia Média Estimada', 'GME', 'Glicose Média Estimada'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'metabolico',\n code: 'Insulin',\n loinc: '20448-7',\n names: {\n en: ['Insulin', 'Fasting Insulin'],\n pt: ['Insulina', 'Insulina de Jejum'],\n },\n unit: 'uIU/mL',\n },\n {\n category: 'metabolico',\n code: 'HOMA_IR',\n loinc: '47214-2',\n names: {\n en: ['HOMA-IR', 'Homeostatic Model Assessment for Insulin Resistance'],\n pt: ['HOMA-IR', 'Índice HOMA'],\n },\n unit: 'índice',\n },\n {\n category: 'metabolico',\n code: 'Leptin',\n loinc: '21365-2',\n names: {\n en: ['Leptin'],\n pt: ['Leptina'],\n },\n unit: 'ng/mL',\n },\n {\n category: 'metabolico',\n code: 'UricAcid',\n loinc: '3084-1',\n names: {\n en: ['Uric Acid', 'Urate'],\n pt: ['Ácido Úrico'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'metabolico',\n code: 'CK',\n codeAliases: ['Creatine_Kinase', 'CK_Total'],\n loinc: '2157-6',\n names: {\n en: ['Creatine Kinase', 'CK', 'CPK', 'CK Total', 'Creatine Phosphokinase'],\n pt: ['Creatina Quinase', 'CK', 'CPK', 'Creatinoquinase', 'CK Total'],\n },\n unit: 'U/L',\n },\n\n // ============================================================================\n // ENVIRONMENTAL TOXINS / TOXINAS-AMBIENTAIS\n // ============================================================================\n {\n category: 'toxinas-ambientais',\n code: 'Lead',\n loinc: '77307-7',\n names: {\n en: ['Lead', 'Blood Lead'],\n pt: ['Chumbo', 'Chumbo no Sangue'],\n },\n unit: 'mcg/dL',\n },\n {\n category: 'toxinas-ambientais',\n code: 'Mercury',\n loinc: '5685-3',\n names: {\n en: ['Mercury', 'Blood Mercury'],\n pt: ['Mercúrio', 'Mercúrio no Sangue'],\n },\n unit: 'mcg/L',\n },\n\n // ============================================================================\n // NUTRIENTS / NUTRIENTES\n // ============================================================================\n {\n category: 'nutrientes',\n code: 'AA_EPA_Ratio',\n codeAliases: ['Arachidonic_AcidEPA_Ratio'],\n loinc: '90909-3',\n names: {\n en: ['Arachidonic Acid/EPA Ratio', 'AA/EPA Ratio', 'Arachidonic Acid EPA Ratio'],\n pt: ['Razão Ácido Araquidônico/EPA', 'Razão AA/EPA'],\n },\n unit: 'razão',\n },\n {\n category: 'nutrientes',\n code: 'Calcium',\n loinc: '17861-6',\n names: {\n en: ['Calcium', 'Serum Calcium'],\n pt: ['Cálcio', 'Cálcio Sérico'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'nutrientes',\n code: 'Ferritin',\n loinc: '2276-4',\n names: {\n en: ['Ferritin'],\n pt: ['Ferritina'],\n },\n unit: 'ng/mL',\n },\n {\n category: 'nutrientes',\n code: 'Folate',\n loinc: '2284-8',\n names: {\n en: ['Folate', 'Folic Acid', 'Serum Folate'],\n pt: ['Folato', 'Ácido Fólico', 'Folato Sérico', 'Ac. Fólico', 'Dosagem de Ácido Fólico'],\n },\n unit: 'ng/mL',\n },\n {\n category: 'nutrientes',\n code: 'Homocysteine',\n loinc: '13965-9',\n names: {\n en: ['Homocysteine'],\n pt: ['Homocisteína'],\n },\n unit: 'umol/L',\n },\n {\n category: 'nutrientes',\n code: 'Iron',\n loinc: '2498-4',\n names: {\n en: ['Iron', 'Serum Iron'],\n pt: ['Ferro', 'Ferro Sérico'],\n },\n unit: 'mcg/dL',\n },\n {\n category: 'nutrientes',\n code: 'TransferrinSaturation',\n codeAliases: ['Saturation_of_Transferrin'],\n loinc: '2502-3',\n names: {\n en: [\n 'Iron Saturation',\n 'Transferrin Saturation',\n 'TSAT',\n '% Saturation',\n 'Iron % Saturation',\n 'Saturation',\n 'Saturation of Transferrin',\n ],\n pt: [\n 'Saturação de Ferro',\n 'Saturação de Transferrina',\n 'IST',\n '% Saturação',\n 'Ferro - Grau de Saturação',\n 'Grau de Saturação do Ferro',\n ],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'TIBC',\n loinc: '2500-7',\n names: {\n en: ['Iron Binding Capacity', 'TIBC', 'Total Iron Binding Capacity'],\n pt: [\n 'Capacidade de Ligação do Ferro',\n 'TIBC',\n 'CTLFe',\n 'Capacidade Total de Ligação do Ferro',\n 'Ferro - Capac Total ligação',\n ],\n },\n unit: 'mcg/dL',\n },\n {\n category: 'nutrientes',\n code: 'Magnesium_RBC',\n loinc: '26746-8',\n names: {\n en: [\n 'Magnesium RBC',\n 'Magnesium Red Blood Cells',\n 'RBC Magnesium',\n 'Magnesium, RBC',\n 'Magnesium (RBC)',\n ],\n pt: ['Magnésio RBC', 'Magnésio Eritrocitário', 'Magnésio Intraeritrocitário'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'nutrientes',\n code: 'MMA',\n loinc: '13964-2',\n names: {\n en: ['Methylmalonic Acid', 'MMA'],\n pt: ['Ácido Metilmalônico', 'MMA'],\n },\n unit: 'nmol/L',\n },\n {\n category: 'nutrientes',\n code: 'Omega3_Total',\n loinc: '35178-3',\n names: {\n en: ['Omega-3 Total', 'Total Omega-3'],\n pt: ['Ômega-3 Total'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'Omega3_DHA',\n codeAliases: ['DHA'],\n loinc: '75095-0',\n names: {\n en: ['Omega-3 DHA', 'DHA', 'Docosahexaenoic Acid'],\n pt: ['Ômega-3: DHA', 'DHA', 'Ácido Docosahexaenoico'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'Omega3_DPA',\n codeAliases: ['DPA'],\n loinc: '48371-9',\n names: {\n en: ['Omega-3 DPA', 'DPA', 'Docosapentaenoic Acid'],\n pt: ['Ômega-3: DPA', 'DPA', 'Ácido Docosapentaenoico'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'Omega3_EPA',\n codeAliases: ['EPA'],\n loinc: '75097-6',\n names: {\n en: ['Omega-3 EPA', 'EPA', 'Eicosapentaenoic Acid'],\n pt: ['Ômega-3: EPA', 'EPA', 'Ácido Eicosapentaenoico'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'EPADPADHA',\n loinc: '90908-5',\n names: {\n en: ['Omega-3 EPA+DPA+DHA', 'EPA+DPA+DHA'],\n pt: ['Ômega-3: EPA+DPA+DHA'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'Omega6_Omega3_Ratio',\n codeAliases: ['Omega6Omega3_Ratio'],\n loinc: '90910-1',\n names: {\n en: ['Omega-6/Omega-3 Ratio'],\n pt: ['Razão Ômega-6 / Ômega-3'],\n },\n unit: 'razão',\n },\n {\n category: 'nutrientes',\n code: 'Omega6_Total',\n loinc: '35177-5',\n names: {\n en: ['Omega-6 Total', 'Total Omega-6'],\n pt: ['Ômega-6 Total'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'Omega6_AA',\n codeAliases: ['Arachidonic_Acid'],\n loinc: '75110-7',\n names: {\n en: ['Omega-6 Arachidonic Acid', 'Arachidonic Acid', 'AA'],\n pt: ['Ômega-6: Ácido Araquidônico', 'Ácido Araquidônico', 'AA'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'Omega6_LA',\n codeAliases: ['Linoleic_Acid'],\n loinc: '75117-2',\n names: {\n en: ['Omega-6 Linoleic Acid', 'Linoleic Acid', 'LA'],\n pt: ['Ômega-6: Ácido Linoleico', 'Ácido Linoleico', 'LA'],\n },\n unit: '%',\n },\n {\n category: 'nutrientes',\n code: 'VitaminA',\n loinc: '2923-1',\n names: {\n en: ['Vitamin A', 'Retinol', 'Serum Retinol'],\n pt: ['Vitamina A', 'Retinol', 'Retinol Sérico', 'Vit A', 'Vit. A', 'Dosagem de Vitamina A'],\n },\n unit: 'mcg/dL',\n },\n {\n category: 'nutrientes',\n code: 'VitaminB12',\n loinc: '2132-9',\n names: {\n en: ['Vitamin B12', 'Cobalamin', 'B12', 'Cyanocobalamin'],\n pt: [\n 'Vitamina B12',\n 'Vitamina B-12',\n 'Cobalamina',\n 'B12',\n 'Cianocobalamina',\n 'Vit B12',\n 'Vit. B12',\n 'Dosagem de Vitamina B12',\n ],\n },\n unit: 'pg/mL',\n },\n {\n category: 'nutrientes',\n code: 'VitaminC',\n loinc: '1903-4',\n names: {\n en: ['Vitamin C', 'Ascorbic Acid'],\n pt: [\n 'Vitamina C',\n 'Ácido Ascórbico',\n 'Vit C',\n 'Vit. C',\n 'Dosagem de Vitamina C',\n 'Dosagem de Ácido Ascórbico',\n ],\n },\n unit: 'mg/dL',\n },\n {\n category: 'nutrientes',\n code: 'VitaminD',\n loinc: '1989-3',\n names: {\n en: [\n 'Vitamin D',\n '25-Hydroxy Vitamin D',\n '25-OH Vitamin D',\n 'Vitamin D, 25-Hydroxy',\n '25-Hydroxy Vitamin D, Total',\n ],\n pt: [\n 'Vitamina D',\n '25-Hidroxivitamina D',\n '25-OH Vitamina D',\n 'Vitamina D, 25-Hidroxi',\n '25-Hidroxi Vitamina D',\n ],\n },\n unit: 'ng/mL',\n },\n {\n category: 'nutrientes',\n code: 'Zinc',\n loinc: '8245-3',\n names: {\n en: ['Zinc', 'Serum Zinc'],\n pt: ['Zinco'],\n },\n unit: 'mcg/dL',\n },\n\n // ============================================================================\n // STRESS & AGING / ESTRESSE-ENVELHECIMENTO\n // ============================================================================\n {\n category: 'estresse-envelhecimento',\n code: 'Cortisol',\n loinc: '2143-6',\n names: {\n en: ['Cortisol', 'Serum Cortisol'],\n pt: ['Cortisol'],\n },\n unit: 'mcg/dL',\n },\n\n // ============================================================================\n // LIVER / FIGADO\n // ============================================================================\n {\n category: 'figado',\n code: 'ALT',\n loinc: '1742-6',\n names: {\n en: ['Alanine Transaminase', 'ALT', 'SGPT'],\n pt: ['Alanina Aminotransferase', 'ALT', 'TGP'],\n },\n unit: 'U/L',\n },\n {\n category: 'figado',\n code: 'Albumin',\n loinc: '1751-7',\n names: {\n en: ['Albumin', 'Serum Albumin'],\n pt: ['Albumina'],\n },\n unit: 'g/dL',\n },\n {\n category: 'figado',\n code: 'Albumin_Globulin_Ratio',\n codeAliases: ['AG_Ratio'],\n loinc: '1759-0',\n names: {\n en: ['Albumin/Globulin Ratio', 'A/G Ratio'],\n pt: ['Razão Albumina / Globulina', 'Razão A/G'],\n },\n unit: 'razão',\n },\n {\n category: 'figado',\n code: 'AlkalinePhosphatase',\n loinc: '6768-6',\n names: {\n en: ['Alkaline Phosphatase', 'ALP'],\n pt: ['Fosfatase Alcalina', 'ALP'],\n },\n unit: 'U/L',\n },\n {\n category: 'figado',\n code: 'AST',\n loinc: '1920-8',\n names: {\n en: ['Aspartate Aminotransferase', 'AST', 'SGOT'],\n pt: ['Aspartato Aminotransferase', 'AST', 'TGO'],\n },\n unit: 'U/L',\n },\n {\n category: 'figado',\n code: 'GGT',\n loinc: '2324-2',\n names: {\n en: ['Gamma-glutamyl Transferase', 'GGT', 'Gamma GT'],\n pt: ['Gama-Glutamil Transferase', 'GGT', 'Gama GT'],\n },\n unit: 'U/L',\n },\n {\n category: 'figado',\n code: 'Globulin',\n loinc: '2336-6',\n names: {\n en: ['Globulin', 'Serum Globulin'],\n pt: ['Globulina'],\n },\n unit: 'g/dL',\n },\n {\n category: 'figado',\n code: 'TotalProtein',\n loinc: '2885-2',\n names: {\n en: ['Total Protein', 'Serum Protein'],\n pt: ['Proteína Total', 'Proteínas Totais'],\n },\n unit: 'g/dL',\n },\n {\n category: 'figado',\n code: 'BilirubinTotal',\n loinc: '1975-2',\n names: {\n en: ['Total Bilirubin', 'Bilirubin Total', 'Bilirubin, Total', 'BILIRUBIN TOTAL'],\n pt: ['Bilirrubina Total'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'figado',\n code: 'BilirubinDirect',\n codeAliases: ['Bilirubin_Direct', 'Direct_Bilirubin', 'Bilirrubina_Direta'],\n loinc: '1968-7',\n names: {\n en: ['Direct Bilirubin', 'Bilirubin Direct', 'Conjugated Bilirubin'],\n pt: ['Bilirrubina Direta', 'Bilirrubina Conjugada'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'figado',\n code: 'BilirubinIndirect',\n codeAliases: ['Bilirubin_Indirect', 'Indirect_Bilirubin', 'Bilirrubina_Indireta'],\n loinc: '1971-1',\n names: {\n en: ['Indirect Bilirubin', 'Bilirubin Indirect', 'Unconjugated Bilirubin'],\n pt: ['Bilirrubina Indireta', 'Bilirrubina Não Conjugada'],\n },\n unit: 'mg/dL',\n },\n\n // ============================================================================\n // BLOOD / SANGUE\n // ============================================================================\n {\n category: 'sangue',\n code: 'Hct',\n loinc: '4544-3',\n names: {\n en: ['Hematocrit', 'Hct', 'HCT'],\n pt: ['Hematócrito', 'Hct'],\n },\n unit: '%',\n },\n {\n category: 'sangue',\n code: 'Hgb',\n loinc: '718-7',\n names: {\n en: ['Hemoglobin', 'Hgb', 'HGB'],\n pt: ['Hemoglobina', 'Hgb'],\n },\n unit: 'g/dL',\n },\n {\n category: 'sangue',\n code: 'MCH',\n loinc: '785-6',\n names: {\n en: ['Mean Corpuscular Hemoglobin', 'MCH'],\n pt: ['Hemoglobina Corpuscular Média', 'HCM'],\n },\n unit: 'pg',\n },\n {\n category: 'sangue',\n code: 'MCHC',\n loinc: '786-4',\n names: {\n en: ['Mean Corpuscular Hemoglobin Concentration', 'MCHC'],\n pt: ['Concentração de Hemoglobina Corpuscular Média', 'CHCM'],\n },\n unit: 'g/dL',\n },\n {\n category: 'sangue',\n code: 'MCV',\n loinc: '787-2',\n names: {\n en: ['Mean Corpuscular Volume', 'MCV'],\n pt: ['Volume Corpuscular Médio', 'VCM'],\n },\n unit: 'fL',\n },\n {\n category: 'sangue',\n code: 'MPV',\n loinc: '32623-1',\n names: {\n en: ['Mean Platelet Volume', 'MPV'],\n pt: ['Volume Plaquetário Médio', 'VPM'],\n },\n unit: 'fL',\n },\n {\n category: 'sangue',\n code: 'Platelets',\n loinc: '777-3',\n names: {\n en: ['Platelet Count', 'Platelets'],\n pt: ['Contagem de Plaquetas', 'Plaquetas'],\n },\n unit: 'K/uL',\n },\n {\n category: 'sangue',\n code: 'RBC',\n loinc: '789-8',\n names: {\n en: ['Red Blood Cell Count', 'RBC', 'Erythrocytes'],\n pt: ['Contagem de Hemácias', 'Hemácias', 'Eritrócitos'],\n },\n unit: 'M/uL',\n },\n {\n category: 'sangue',\n code: 'RDW',\n loinc: '788-0',\n names: {\n en: ['Red Cell Distribution Width', 'RDW'],\n pt: ['Amplitude de Distribuição dos Eritrócitos', 'RDW'],\n },\n unit: '%',\n },\n {\n category: 'sangue',\n code: 'ABO_Group',\n hidden: true,\n loinc: '883-9',\n names: {\n en: ['ABO Group', 'ABO Blood Group', 'Blood Type ABO'],\n pt: ['Grupo ABO', 'Tipo Sanguíneo ABO', 'Grupo Sanguíneo ABO'],\n },\n },\n {\n category: 'sangue',\n code: 'Rh_Type',\n hidden: true,\n loinc: '10331-7',\n names: {\n en: ['Rh Type', 'Rh Factor', 'Rhesus Factor'],\n pt: ['Tipo Rh', 'Fator Rh', 'Fator Rhesus'],\n },\n },\n {\n category: 'sangue',\n code: 'ESR',\n codeAliases: ['Erythrocyte_Sedimentation_Rate', 'VHS'],\n loinc: '30341-2',\n names: {\n en: ['Erythrocyte Sedimentation Rate', 'ESR', 'Sed Rate'],\n pt: ['Velocidade de Hemossedimentação', 'VHS', 'VSG'],\n },\n unit: 'mm/hr',\n },\n {\n category: 'sangue',\n code: 'INR',\n codeAliases: ['International_Normalized_Ratio'],\n loinc: '6301-6',\n names: {\n en: ['International Normalized Ratio', 'INR'],\n pt: ['Razão Normalizada Internacional', 'INR', 'RNI'],\n },\n unit: 'ratio',\n },\n {\n category: 'sangue',\n code: 'ProthrombinTime',\n codeAliases: ['Prothrombin_Time', 'PT_Time'],\n loinc: '5902-2',\n names: {\n en: ['Prothrombin Time', 'PT', 'Pro Time'],\n pt: ['Tempo de Protrombina', 'TP', 'TAP'],\n },\n unit: 'seconds',\n },\n {\n category: 'sangue',\n code: 'Reticulocytes',\n codeAliases: ['Reticulocyte_Count', 'Reticulocyte_Fraction'],\n loinc: '4679-7',\n names: {\n en: ['Reticulocytes', 'Reticulocyte Count', 'Reticulocyte Fraction', 'Retic Count'],\n pt: ['Reticulócitos', 'Contagem de Reticulócitos'],\n },\n unit: '%',\n },\n\n // ============================================================================\n // KIDNEYS / RINS\n // ============================================================================\n {\n category: 'rins',\n code: 'Microalbumin_Urine',\n codeAliases: ['Urine_Microalbumin'],\n loinc: '14957-5',\n names: {\n en: ['Microalbumin Urine', 'Urine Albumin', 'Urine Microalbumin'],\n pt: ['Albumina Urina', 'Microalbumina Urina', 'Microalbumina na Urina'],\n },\n unit: 'mg/L',\n },\n {\n category: 'rins',\n code: 'Urea',\n loinc: '3094-0',\n names: {\n en: ['Blood Urea Nitrogen', 'BUN', 'Urea'],\n pt: ['Ureia', 'Uréia'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'rins',\n code: 'BUN_Creatinine_Ratio',\n loinc: '3097-3',\n names: {\n en: ['BUN/Creatinine Ratio', 'Urea/Creatinine Ratio'],\n pt: ['Razão Ureia / Creatinina'],\n },\n unit: 'razão',\n },\n {\n category: 'rins',\n code: 'Creatinine',\n loinc: '2160-0',\n names: {\n en: ['Creatinine', 'Serum Creatinine'],\n pt: ['Creatinina', 'Creatinina Sérica'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'rins',\n code: 'eGFR',\n codeAliases: ['CKDEPI_2021', 'CKDEPI_eGFR_2021', 'eGFR_CKDEPI_2021', 'eGFR_MDRD'],\n loinc: '98979-8',\n names: {\n en: [\n 'Estimated Glomerular Filtration Rate',\n 'eGFR',\n 'GFR',\n 'eGFR CKD-EPI',\n 'eGFR CKD-EPI 2021',\n 'CKD-EPI 2021',\n 'CKD-EPI eGFR 2021',\n 'eGFR (CKD-EPI 2021)',\n 'eGFR (MDRD)',\n 'Glomerular Filtration Rate',\n ],\n pt: [\n 'Taxa de Filtração Glomerular Estimada',\n 'TFGe',\n 'TFG',\n 'TFGe CKD-EPI',\n 'Filtração Glomerular',\n 'CKD-EPI 2021',\n 'TFGe CKD-EPI 2021',\n ],\n },\n unit: 'mL/min/1.73m²',\n },\n {\n category: 'rins',\n code: 'Potassium',\n loinc: '2823-3',\n names: {\n en: ['Potassium', 'K'],\n pt: ['Potássio', 'K'],\n },\n unit: 'mEq/L',\n },\n {\n category: 'rins',\n code: 'Sodium',\n loinc: '2951-2',\n names: {\n en: ['Sodium', 'Na'],\n pt: ['Sódio', 'Na'],\n },\n unit: 'mEq/L',\n },\n {\n category: 'rins',\n code: 'Creatinine_Urine',\n codeAliases: ['Urine_Creatinine'],\n loinc: '2161-8',\n names: {\n en: ['Creatinine Urine', 'Urine Creatinine', 'Creatinine Random Urine'],\n pt: ['Creatinina Urinária', 'Creatinina na Urina'],\n },\n unit: 'mg/dL',\n },\n {\n category: 'rins',\n code: 'Albumin_Creatinine_Ratio',\n codeAliases: ['ACR'],\n loinc: '9318-7',\n names: {\n en: [\n 'Albumin/Creatinine Ratio',\n 'Albumin Creatinine Ratio',\n 'ACR',\n 'Urine Albumin to Creatinine Ratio',\n ],\n pt: [\n 'Razão Albumina/Creatinina',\n 'Relação Albumina Creatinina',\n 'RAC',\n 'Razão Albumina Creatinina Urinária',\n ],\n },\n unit: 'mg/g',\n },\n\n // ============================================================================\n // PANCREAS\n // ============================================================================\n {\n category: 'pancreas',\n code: 'Amylase',\n loinc: '1798-8',\n names: {\n en: ['Amylase', 'Serum Amylase'],\n pt: ['Amilase'],\n },\n unit: 'U/L',\n },\n {\n category: 'pancreas',\n code: 'Lipase',\n loinc: '3040-3',\n names: {\n en: ['Lipase', 'Serum Lipase'],\n pt: ['Lipase'],\n },\n unit: 'U/L',\n },\n\n // ============================================================================\n // ELECTROLYTES / ELETROLITOS\n // ============================================================================\n {\n category: 'eletrolitos',\n code: 'CO2',\n loinc: '2028-9',\n names: {\n en: ['Carbon Dioxide', 'CO2', 'Bicarbonate'],\n pt: ['Dióxido de Carbono', 'CO2', 'Bicarbonato'],\n },\n unit: 'mEq/L',\n },\n {\n category: 'eletrolitos',\n code: 'Chloride',\n loinc: '2075-0',\n names: {\n en: ['Chloride', 'Cl'],\n pt: ['Cloreto', 'Cloretos', 'Cl'],\n },\n unit: 'mEq/L',\n },\n\n // ============================================================================\n // URINE / URINA\n // ============================================================================\n {\n category: 'urina',\n code: 'Appearance_Urine',\n codeAliases: ['UrineAppearance'],\n loinc: '5767-9',\n names: {\n en: ['Urine Appearance', 'Appearance'],\n pt: ['Aparência da Urina', 'Aparência'],\n },\n },\n {\n category: 'urina',\n code: 'Bacteria_Urine',\n codeAliases: ['UrineBacteria'],\n loinc: '630-4',\n names: {\n en: ['Urine Bacteria', 'Bacteria Urine', 'Bacteria, Urine', 'Bacteria'],\n pt: ['Bactérias na Urina', 'Bactérias'],\n },\n unit: '/HPF',\n },\n {\n category: 'urina',\n code: 'Bilirubin_Urine',\n codeAliases: ['UrineBilirubin'],\n loinc: '5770-3',\n names: {\n en: ['Urine Bilirubin', 'Bilirubin Urine', 'Bilirubin, Urine', 'Bilirubin'],\n pt: ['Bilirrubina na Urina', 'Bilirrubina Urina', 'Bilirrubina'],\n },\n },\n {\n category: 'urina',\n code: 'Blood_Urine',\n codeAliases: ['UrineBlood'],\n loinc: '5794-3',\n names: {\n en: ['Urine Blood', 'Occult Blood in Urine', 'Occult Blood', 'Blood'],\n pt: ['Sangue Oculto na Urina', 'Sangue Oculto'],\n },\n },\n {\n category: 'urina',\n code: 'Color_Urine',\n codeAliases: ['UrineColor'],\n loinc: '5778-6',\n names: {\n en: ['Urine Color', 'Color'],\n pt: ['Cor da Urina', 'Cor'],\n },\n },\n {\n category: 'urina',\n code: 'Glucose_Urine',\n loinc: '5792-7',\n names: {\n en: ['Urine Glucose', 'Glucose Urine', 'Glucose, Urine'],\n pt: ['Glicose na Urina', 'Glicose Urina'],\n },\n },\n {\n category: 'urina',\n code: 'HyalineCasts_Urine',\n codeAliases: ['UrineHyalineCast'],\n loinc: '5796-8',\n names: {\n en: ['Hyaline Casts Urine', 'Hyaline Cast', 'Hyaline Casts'],\n pt: ['Cilindros Hialinos na Urina', 'Cilindro Hialino'],\n },\n unit: '/LPF',\n },\n {\n category: 'urina',\n code: 'Ketones_Urine',\n codeAliases: ['UrineKetones'],\n loinc: '5797-6',\n names: {\n en: ['Urine Ketones', 'Ketones Urine', 'Ketones, Urine', 'Ketones'],\n pt: ['Cetonas na Urina', 'Cetonas'],\n },\n },\n {\n category: 'urina',\n code: 'LeukocyteEsterase_Urine',\n loinc: '5799-2',\n names: {\n en: ['Leukocyte Esterase Urine', 'Leukocyte Esterase', 'Leuk Esterase'],\n pt: ['Esterase Leucocitária na Urina', 'Esterase Leucocitária'],\n },\n },\n {\n category: 'urina',\n code: 'Leukocytes_Urine',\n codeAliases: ['UrineLeukocytes'],\n loinc: '5821-4',\n names: {\n en: ['Urine Leukocytes', 'Urine WBC', 'White Blood Cells in Urine', 'WBC Urine'],\n pt: ['Leucócitos na Urina', 'Leucócitos Urinários'],\n },\n unit: '/HPF',\n },\n {\n category: 'urina',\n code: 'Nitrite_Urine',\n codeAliases: ['UrineNitrite'],\n loinc: '5802-4',\n names: {\n en: ['Urine Nitrite', 'Nitrite Urine', 'Nitrite, Urine', 'Nitrite'],\n pt: ['Nitrito na Urina', 'Nitrito Urina', 'Nitrito'],\n },\n },\n {\n category: 'urina',\n code: 'pH_Urine',\n codeAliases: ['UrinaryPH'],\n loinc: '5803-2',\n names: {\n en: ['Urine pH', 'pH Urine', 'pH, Urine'],\n pt: ['pH Urinário', 'pH da Urina'],\n },\n },\n {\n category: 'urina',\n code: 'Protein_Urine',\n loinc: '5804-0',\n names: {\n en: ['Urine Protein', 'Protein Urine', 'Protein, Urine', 'Protein'],\n pt: ['Proteína na Urina', 'Proteína'],\n },\n },\n {\n category: 'urina',\n code: 'RBC_Urine',\n loinc: '5808-1',\n names: {\n en: ['Urine RBC', 'Red Blood Cells in Urine', 'RBC Urine', 'RBC, Urine'],\n pt: ['Hemácias na Urina'],\n },\n unit: '/HPF',\n },\n {\n category: 'urina',\n code: 'SpecificGravity_Urine',\n codeAliases: ['SpecificGravity'],\n loinc: '5811-5',\n names: {\n en: [\n 'Urine Specific Gravity',\n 'Specific Gravity Urine',\n 'Specific Gravity, Urine',\n 'Specific Gravity',\n ],\n pt: ['Densidade da Urina', 'Gravidade Específica'],\n },\n },\n {\n category: 'urina',\n code: 'SquamousEpithelial_Urine',\n codeAliases: ['UrineSquamousEpithelial'],\n loinc: '11277-1',\n names: {\n en: [\n 'Squamous Epithelial Cells Urine',\n 'Squamous Epithelial Cells, Urine',\n 'Squamous Epithelial Urine',\n 'Squamous Epithelial Cells',\n ],\n pt: ['Células Epiteliais Escamosas na Urina'],\n },\n unit: '/HPF',\n },\n {\n category: 'urina',\n code: 'Urobilinogen_Urine',\n codeAliases: ['Urine_Urobilinogen'],\n loinc: '20405-7',\n names: {\n en: ['Urobilinogen Urine', 'Urine Urobilinogen', 'Urobilinogen'],\n pt: ['Urobilinogênio Urinário', 'Urobilinogênio na Urina'],\n },\n unit: 'mg/dL',\n },\n\n // ============================================================================\n // TUMOR MARKERS / MARCADORES TUMORAIS\n // ============================================================================\n {\n category: 'marcadores-tumorais',\n code: 'AFP',\n codeAliases: ['AlfaFetoproteina', 'Alfa_Fetoprotena'],\n loinc: '1834-1',\n names: {\n en: ['Alpha-Fetoprotein', 'AFP', 'Alfa-Fetoprotein'],\n pt: ['Alfa-Fetoproteína', 'AFP', 'Alfafetoproteína'],\n },\n unit: 'ng/mL',\n },\n {\n category: 'marcadores-tumorais',\n code: 'CA125',\n codeAliases: ['CA_125'],\n loinc: '10334-1',\n names: {\n en: ['CA-125', 'CA 125', 'Cancer Antigen 125'],\n pt: ['CA-125', 'CA 125', 'Antígeno CA-125'],\n },\n sex: 'female',\n unit: 'U/mL',\n },\n {\n category: 'marcadores-tumorais',\n code: 'CEA',\n codeAliases: ['Carcinoembryonic_Antigen_CEA_Serum'],\n loinc: '2039-6',\n names: {\n en: ['Carcinoembryonic Antigen', 'CEA'],\n pt: ['Antígeno Carcinoembrionário', 'CEA'],\n },\n unit: 'ng/mL',\n },\n\n // ============================================================================\n // ADD-ON TESTS (Commented out for future use)\n // These are specialized tests available as add-ons in Function Health.\n // Uncomment when ready to support in the UI.\n // ============================================================================\n\n // --- CELIAC / GLUTEN INTOLERANCE (Add-on) ---\n {\n category: 'autoimunidade',\n code: 'Gliadin_Deamidated_IgA',\n loinc: '63453-5',\n names: {\n en: [\n 'Gliadin (Deamidated) Antibodies IgA',\n 'DGP IgA',\n 'Deamidated Gliadin Peptide IgA',\n 'Gliadin Deamidated AB IgA',\n 'Gliadin Deamidated AB, IgA',\n 'Gliadin (Deamidated) AB (IgA)',\n 'Gliadin (Deamidated) AB (IGA)',\n ],\n pt: ['Anticorpos Anti-Gliadina Deamidada IgA', 'DGP IgA'],\n },\n unit: 'U',\n },\n {\n category: 'autoimunidade',\n code: 'Gliadin_Deamidated_IgG',\n loinc: '63459-2',\n names: {\n en: [\n 'Gliadin (Deamidated) Antibodies IgG',\n 'DGP IgG',\n 'Deamidated Gliadin Peptide IgG',\n 'Gliadin Deamidated AB IgG',\n 'Gliadin Deamidated AB, IgG',\n 'Gliadin (Deamidated) AB (IgG)',\n 'Gliadin (Deamidated) AB (IGG)',\n ],\n pt: ['Anticorpos Anti-Gliadina Deamidada IgG', 'DGP IgG'],\n },\n unit: 'U',\n },\n {\n category: 'autoimunidade',\n code: 'tTG_IgA',\n loinc: '31017-7',\n names: {\n en: [\n 'Tissue Transglutaminase IgA',\n 'tTG IgA',\n 'Anti-tTG IgA',\n 'Tissue Transglutaminase AB, IGA',\n 'Tissue Transglutaminase AB IgA',\n 'TTG AB IGA',\n 'T-Transglutaminase IgA',\n 'Transglutaminase IgA',\n ],\n pt: ['Transglutaminase Tecidual IgA', 'tTG IgA', 'Anti-tTG IgA'],\n },\n unit: 'U/mL',\n },\n {\n category: 'autoimunidade',\n code: 'tTG_IgG',\n loinc: '32998-7',\n names: {\n en: [\n 'Tissue Transglutaminase IgG',\n 'tTG IgG',\n 'Anti-tTG IgG',\n 'Tissue Transglutaminase AB, IGG',\n 'Tissue Transglutaminase AB IgG',\n 'TTG AB IGG',\n 'T-Transglutaminase IgG',\n 'Transglutaminase IgG',\n ],\n pt: ['Transglutaminase Tecidual IgG', 'tTG IgG', 'Anti-tTG IgG'],\n },\n unit: 'U/mL',\n },\n\n // ============================================================================\n // CARDIOVASCULAR GENETICS / GENÉTICA CARDIOVASCULAR\n // ============================================================================\n {\n category: 'coracao',\n code: 'APOE_Genotype',\n loinc: '21619-2',\n names: {\n en: [\n 'APOE Genotype',\n 'Apolipoprotein E Genotype',\n 'ApoE Gene',\n 'APO E Genotype',\n 'Cardio IQ APOE Genotype',\n ],\n pt: ['Genótipo APOE', 'Genótipo Apolipoproteína E'],\n },\n },\n\n // ============================================================================\n // METABOLIC ADD-ONS / MARCADORES METABÓLICOS ADICIONAIS\n // ============================================================================\n {\n category: 'metabolico',\n code: 'Adiponectin',\n loinc: '47828-9',\n names: {\n en: ['Adiponectin', 'Serum Adiponectin'],\n pt: ['Adiponectina'],\n },\n unit: 'mcg/mL',\n },\n\n // ============================================================================\n // BODY COMPOSITION / COMPOSIÇÃO CORPORAL (DEXA Scan)\n // ============================================================================\n {\n category: 'composicao-corporal',\n code: 'BMI',\n codeAliases: ['Body_Mass_Index'],\n loinc: '39156-5',\n names: {\n en: ['Body Mass Index', 'BMI'],\n pt: ['Índice de Massa Corporal', 'IMC'],\n },\n unit: 'kg/m2',\n },\n {\n category: 'composicao-corporal',\n code: 'BodyFatPct',\n loinc: '41982-0',\n names: {\n en: [\n 'Body Fat Percentage',\n 'Body Fat %',\n 'Total Body Fat %',\n 'Body Fat',\n 'Fat Percentage',\n 'Percent Body Fat',\n '% Body Fat',\n 'Total Body % Fat',\n ],\n pt: [\n 'Percentual de Gordura Corporal',\n '% Gordura Corporal',\n 'Gordura Corporal Total %',\n 'Percentual de Gordura',\n '% Gordura Total',\n 'Gordura Corporal',\n ],\n },\n unit: '%',\n },\n {\n category: 'composicao-corporal',\n code: 'FatMass',\n loinc: '73708-0',\n names: {\n en: ['Fat Mass', 'Total Fat Mass', 'Body Fat Mass', 'Fat Tissue Mass'],\n pt: ['Massa de Gordura', 'Massa Gorda', 'Massa de Gordura Total', 'Tecido Adiposo'],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'LeanMass',\n loinc: '73964-9',\n names: {\n en: ['Lean Mass', 'Lean Body Mass', 'Lean Tissue Mass', 'Total Lean Mass', 'LBM'],\n pt: ['Massa Magra', 'Massa Corporal Magra', 'Tecido Magro', 'Massa Magra Total'],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'BMC',\n // No official LOINC code exists for total body BMC from DEXA\n names: {\n en: [\n 'Bone Mineral Content',\n 'BMC',\n 'Total Body BMC',\n 'Bone Mass',\n 'Total Bone Mineral Content',\n ],\n pt: [\n 'Conteúdo Mineral Ósseo',\n 'CMO',\n 'Massa Óssea',\n 'Conteúdo Mineral Ósseo Total',\n 'CMO Total',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'FatFreeMass',\n // No official LOINC code exists for fat-free mass from DEXA\n names: {\n en: ['Fat-Free Mass', 'Fat Free Mass', 'Fat Free', 'FFM', 'Non-Fat Mass'],\n pt: ['Massa Livre de Gordura', 'Massa Isenta de Gordura', 'MLG'],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'VATVolume',\n // No official LOINC code exists for visceral adipose tissue volume\n names: {\n en: [\n 'Visceral Fat Volume',\n 'VAT Volume',\n 'VATVolume',\n 'Visceral Adipose Tissue Volume',\n 'VAT',\n 'Visceral Fat',\n 'Visceral Volume',\n 'Volume',\n ],\n pt: [\n 'Volume de Gordura Visceral',\n 'Volume TAV',\n 'Tecido Adiposo Visceral Volume',\n 'Gordura Visceral',\n 'Volume Visceral',\n ],\n },\n unit: 'cm³',\n },\n {\n category: 'composicao-corporal',\n code: 'VATMass',\n // No official LOINC code exists for visceral adipose tissue mass\n names: {\n en: [\n 'Visceral Fat Mass',\n 'VAT Mass',\n 'VATMass',\n 'Visceral Adipose Tissue Mass',\n 'Visceral Adipose Tissue',\n 'Visceral Mass',\n ],\n pt: [\n 'Massa de Gordura Visceral',\n 'Massa TAV',\n 'Tecido Adiposo Visceral Massa',\n 'Tecido Adiposo Visceral',\n 'Massa Visceral',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'AndroidGynoidRatio',\n // No official LOINC code exists for android/gynoid ratio\n names: {\n en: [\n 'Android/Gynoid Ratio',\n 'A/G Ratio',\n 'Android Gynoid Ratio',\n 'AndroidGynoidRatio',\n 'AG Ratio',\n 'Android to Gynoid Ratio',\n 'AndrogenGynoindRatio',\n 'Androgen Gynoid Ratio',\n ],\n pt: [\n 'Razão Androide/Ginoide',\n 'Razão A/G',\n 'Relação Androide Ginoide',\n 'Razão AG',\n 'Índice Androide/Ginoide',\n ],\n },\n unit: 'ratio',\n },\n {\n category: 'composicao-corporal',\n code: 'AndroidFatPct',\n // No official LOINC code exists for android region fat percentage\n names: {\n en: [\n 'Android Fat Percentage',\n 'Android Fat %',\n 'AndroidFatPct',\n 'AndroidFatPercent',\n 'Android Region Fat %',\n 'Abdominal Fat %',\n 'Android % Fat',\n ],\n pt: [\n 'Percentual de Gordura Androide',\n '% Gordura Androide',\n 'Gordura Região Androide %',\n '% Gordura Abdominal',\n ],\n },\n unit: '%',\n },\n {\n category: 'composicao-corporal',\n code: 'GynoidFatPct',\n // No official LOINC code exists for gynoid region fat percentage\n names: {\n en: [\n 'Gynoid Fat Percentage',\n 'Gynoid Fat %',\n 'GynoidFatPct',\n 'GynoidFatPercent',\n 'GynoindFatPercent',\n 'Gynoid Region Fat %',\n 'Hip Fat %',\n 'Gynoid % Fat',\n ],\n pt: [\n 'Percentual de Gordura Ginoide',\n '% Gordura Ginoide',\n 'Gordura Região Ginoide %',\n '% Gordura Quadril',\n ],\n },\n unit: '%',\n },\n {\n category: 'composicao-corporal',\n code: 'TotalMass',\n loinc: '29463-7',\n names: {\n en: ['Total Mass', 'Total Body Mass', 'Body Weight', 'Weight'],\n pt: ['Massa Total', 'Massa Corporal Total', 'Peso Corporal', 'Peso'],\n },\n unit: 'kg',\n },\n\n // Regional Body Composition (DEXA)\n // Note: No official LOINC codes exist for regional lean/fat mass measurements\n // Hidden from UI for now - may be shown in future regional breakdown view\n {\n category: 'composicao-corporal',\n code: 'ArmsLeanMass',\n hidden: true,\n names: {\n en: [\n 'Arms Lean Mass',\n 'Arms Lean',\n 'Arms Lean Tissue',\n 'Arm Lean Mass',\n 'Arm Lean',\n 'Upper Limb Lean Mass',\n 'Upper Limbs Lean Mass',\n 'Upper Extremity Lean Mass',\n 'Lean Arms',\n 'Lean Mass Arms',\n 'Lean Mass Bracos',\n ],\n pt: [\n 'Massa Magra Braços',\n 'Tecido Magro Braços',\n 'Massa Magra Membros Superiores',\n 'Braços Massa Magra',\n 'Massa Magra dos Braços',\n 'MMSS Massa Magra',\n 'Membros Superiores Magro',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'ArmsFatMass',\n hidden: true,\n names: {\n en: [\n 'Arms Fat Mass',\n 'Arms Fat',\n 'Arms Fat Tissue',\n 'Arm Fat Mass',\n 'Arm Fat',\n 'Upper Limb Fat Mass',\n 'Upper Limbs Fat Mass',\n 'Upper Extremity Fat Mass',\n 'Fat Arms',\n 'Fat Mass Arms',\n 'Fat Mass Bracos',\n ],\n pt: [\n 'Massa de Gordura Braços',\n 'Tecido Adiposo Braços',\n 'Gordura Membros Superiores',\n 'Braços Gordura',\n 'Gordura dos Braços',\n 'Braços Massa Gorda',\n 'MMSS Gordura',\n 'Membros Superiores Gordura',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'LegsLeanMass',\n hidden: true,\n names: {\n en: [\n 'Legs Lean Mass',\n 'Legs Lean',\n 'Legs Lean Tissue',\n 'Leg Lean Mass',\n 'Leg Lean',\n 'Lower Limb Lean Mass',\n 'Lower Limbs Lean Mass',\n 'Lower Extremity Lean Mass',\n 'Lean Legs',\n 'Lean Mass Legs',\n 'Lean Mass Pernas',\n ],\n pt: [\n 'Massa Magra Pernas',\n 'Tecido Magro Pernas',\n 'Massa Magra Membros Inferiores',\n 'Pernas Massa Magra',\n 'Massa Magra das Pernas',\n 'MMII Massa Magra',\n 'Membros Inferiores Magro',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'LegsFatMass',\n hidden: true,\n names: {\n en: [\n 'Legs Fat Mass',\n 'Legs Fat',\n 'Legs Fat Tissue',\n 'Leg Fat Mass',\n 'Leg Fat',\n 'Lower Limb Fat Mass',\n 'Lower Limbs Fat Mass',\n 'Lower Extremity Fat Mass',\n 'Fat Legs',\n 'Fat Mass Legs',\n 'Fat Mass Pernas',\n ],\n pt: [\n 'Massa de Gordura Pernas',\n 'Tecido Adiposo Pernas',\n 'Gordura Membros Inferiores',\n 'Pernas Gordura',\n 'Gordura das Pernas',\n 'Pernas Massa Gorda',\n 'MMII Gordura',\n 'Membros Inferiores Gordura',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'TrunkLeanMass',\n hidden: true,\n names: {\n en: [\n 'Trunk Lean Mass',\n 'Trunk Lean',\n 'Trunk Lean Tissue',\n 'Torso Lean Mass',\n 'Core Lean Mass',\n 'Lean Trunk',\n 'Lean Mass Trunk',\n 'Lean Mass Tronco',\n ],\n pt: [\n 'Massa Magra Tronco',\n 'Tecido Magro Tronco',\n 'Massa Magra Core',\n 'Tronco Massa Magra',\n 'Massa Magra do Tronco',\n ],\n },\n unit: 'kg',\n },\n {\n category: 'composicao-corporal',\n code: 'TrunkFatMass',\n hidden: true,\n names: {\n en: [\n 'Trunk Fat Mass',\n 'Trunk Fat',\n 'Trunk Fat Tissue',\n 'Torso Fat Mass',\n 'Core Fat Mass',\n 'Fat Trunk',\n 'Fat Mass Trunk',\n 'Fat Mass Tronco',\n ],\n pt: [\n 'Massa de Gordura Tronco',\n 'Tecido Adiposo Tronco',\n 'Gordura Core',\n 'Tronco Gordura',\n 'Gordura do Tronco',\n 'Tronco Massa Gorda',\n ],\n },\n unit: 'kg',\n },\n\n // ============================================================================\n // BONE DENSITY / DENSIDADE ÓSSEA (DEXA Scan)\n // ============================================================================\n {\n category: 'densidade-ossea',\n code: 'BMD_Total',\n // No official LOINC code exists for total body BMD (only site-specific)\n names: {\n en: [\n 'Total Body BMD',\n 'BMD Total',\n 'BMD',\n 'TotalBodyBMD',\n 'Bone Mineral Density',\n 'Total BMD',\n 'Bone Density',\n 'Total Body Bone Density',\n ],\n pt: [\n 'DMO Corpo Total',\n 'DMO Total',\n 'DMO',\n 'Densidade Mineral Óssea',\n 'Densidade Óssea Total',\n 'Densidade Óssea',\n ],\n },\n unit: 'g/cm²',\n },\n {\n category: 'densidade-ossea',\n code: 'TScore_Total',\n // No official LOINC code exists for total body T-score (only site-specific)\n names: {\n en: [\n 'Total Body T-Score',\n 'T-Score',\n 'T Score',\n 'TScore',\n 'TScore_Total',\n 'TotalBodyTScore',\n 'BMD T-Score',\n 'Bone Density T-Score',\n 'T-Score Total Body',\n ],\n pt: ['T-Score Corpo Total', 'T-Score', 'Escore T', 'T-Score DMO', 'T-Score Densidade Óssea'],\n },\n unit: 'score',\n },\n {\n category: 'densidade-ossea',\n code: 'ZScore_Total',\n // No official LOINC code exists for total body Z-score (only site-specific)\n names: {\n en: [\n 'Total Body Z-Score',\n 'Z-Score',\n 'Z Score',\n 'ZScore',\n 'ZScore_Total',\n 'TotalBodyZScore',\n 'BMD Z-Score',\n 'Bone Density Z-Score',\n 'Z-Score Total Body',\n ],\n pt: ['Z-Score Corpo Total', 'Z-Score', 'Escore Z', 'Z-Score DMO', 'Z-Score Densidade Óssea'],\n },\n unit: 'score',\n },\n];\n\n// ============================================================================\n// LOOKUP MAPS (Generated from definitions)\n// ============================================================================\n\n/** Map LOINC code to internal code */\nconst loincToCodeMap = new Map<string, string>();\n\n/** Map internal code to LOINC */\nconst codeToLoincMap = new Map<string, string>();\n\n/** Map internal code to definition */\nconst codeToDefinitionMap = new Map<string, BiomarkerDefinition>();\n\n/** Set of all valid LOINC codes */\nconst validLoincSet = new Set<string>();\n\n/** Map code alias to canonical code */\nconst codeAliasToCanonicalMap = new Map<string, string>();\n\n/** Set of all valid codes (canonical + aliases) */\nconst validCodeSet = new Set<string>();\n\n// Initialize maps\nfor (const def of BIOMARKER_DEFINITIONS) {\n // Only add to LOINC maps if loinc is defined\n if (def.loinc) {\n loincToCodeMap.set(def.loinc, def.code);\n codeToLoincMap.set(def.code, def.loinc);\n validLoincSet.add(def.loinc);\n }\n\n codeToDefinitionMap.set(def.code, def);\n validCodeSet.add(def.code);\n\n // Handle LOINC aliases\n if (def.loincAliases) {\n for (const alias of def.loincAliases) {\n loincToCodeMap.set(alias, def.code);\n validLoincSet.add(alias);\n }\n }\n\n // Handle code aliases\n if (def.codeAliases) {\n for (const alias of def.codeAliases) {\n codeAliasToCanonicalMap.set(alias, def.code);\n validCodeSet.add(alias);\n // Also add alias to definition map for easy lookup\n codeToDefinitionMap.set(alias, def);\n }\n }\n}\n\n// ============================================================================\n// EXPORTED FUNCTIONS\n// ============================================================================\n\n/**\n * Convert LOINC code to internal code\n */\nexport function loincToCode(loinc: string): string | undefined {\n return loincToCodeMap.get(loinc);\n}\n\n/**\n * Convert internal code to LOINC\n */\nexport function codeToLoinc(code: string): string | undefined {\n return codeToLoincMap.get(code);\n}\n\n/**\n * Check if a LOINC code is in our supported list\n */\nexport function isValidLoinc(loinc: string): boolean {\n return validLoincSet.has(loinc);\n}\n\n/**\n * Check if a code is valid (canonical or alias)\n */\nexport function isValidCode(code: string): boolean {\n return validCodeSet.has(code);\n}\n\n/**\n * Normalize a code alias to its canonical form.\n * Returns the canonical code if input is an alias, otherwise returns the input unchanged.\n *\n * Use this at data boundaries (e.g. parsing lab results) to map incoming aliases\n * to canonical codes. Do NOT use this as a fallback inside lookup functions —\n * dictionary keys (e.g. biomarkerRangeDefinitions) must use canonical codes directly.\n */\nexport function normalizeCode(code: string): string {\n return codeAliasToCanonicalMap.get(code) ?? code;\n}\n\n/**\n * Get the sex relevance for a biomarker code\n * @returns 'male', 'female', or 'both' (default)\n */\nexport function getSexForCode(code: string): 'male' | 'female' | 'both' {\n const def = codeToDefinitionMap.get(code);\n return def?.sex ?? 'both';\n}\n\n/**\n * Get all biomarker definitions filtered by sex\n * @param sex - 'male', 'female', or 'both' (returns all)\n */\nexport function getDefinitionsBySex(sex: 'male' | 'female' | 'both'): BiomarkerDefinition[] {\n if (sex === 'both') {\n return BIOMARKER_DEFINITIONS;\n }\n return BIOMARKER_DEFINITIONS.filter(\n (def) => def.sex === sex || def.sex === undefined || def.sex === 'both',\n );\n}\n\n/**\n * Get biomarker definition by code\n */\nexport function getDefinitionByCode(code: string): BiomarkerDefinition | undefined {\n return codeToDefinitionMap.get(code);\n}\n\n/**\n * Get biomarker definition by LOINC\n */\nexport function getDefinitionByLoinc(loinc: string): BiomarkerDefinition | undefined {\n const code = loincToCodeMap.get(loinc);\n return code ? codeToDefinitionMap.get(code) : undefined;\n}\n\n/**\n * Get all biomarker definitions\n */\nexport function getAllDefinitions(): BiomarkerDefinition[] {\n return BIOMARKER_DEFINITIONS;\n}\n\n/**\n * Get all visible biomarker definitions (excludes hidden biomarkers)\n */\nexport function getVisibleDefinitions(): BiomarkerDefinition[] {\n return BIOMARKER_DEFINITIONS.filter((def) => !def.hidden);\n}\n\n/**\n * Get all supported internal codes (canonical codes only, not aliases)\n */\nexport function getAllCodes(): string[] {\n return BIOMARKER_DEFINITIONS.map((def) => def.code);\n}\n\n/**\n * Get all supported LOINC codes\n */\nexport function getAllLoincCodes(): string[] {\n return Array.from(validLoincSet);\n}\n\n/**\n * Generate LLM reference prompt for biomarker extraction\n * This is included in the extraction prompt so the LLM can output LOINC codes directly\n */\nexport function generateLLMReference(): string {\n const lines: string[] = [\n 'SUPPORTED BIOMARKERS (output the LOINC code or internal Code for each matched biomarker):',\n '',\n ];\n\n // Group by category for better organization\n const byCategory = new Map<string, BiomarkerDefinition[]>();\n for (const def of BIOMARKER_DEFINITIONS) {\n const categories = Array.isArray(def.category) ? def.category : [def.category];\n for (const cat of categories) {\n const existing = byCategory.get(cat) || [];\n existing.push(def);\n byCategory.set(cat, existing);\n }\n }\n\n for (const [category, defs] of byCategory) {\n lines.push(`[${category.toUpperCase()}]`);\n for (const def of defs) {\n const ptNames = def.names.pt.join(', ');\n const enNames = def.names.en.join(', ');\n if (def.loinc) {\n lines.push(`- LOINC: ${def.loinc} | Code: ${def.code}`);\n } else {\n lines.push(`- Code: ${def.code} (no LOINC - use code only)`);\n }\n lines.push(` EN: ${enNames}`);\n lines.push(` PT: ${ptNames}`);\n }\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Generate biomarkerTests format for UI compatibility\n * This replaces the old hardcoded biomarkerTests.ts\n * Excludes hidden biomarkers from the output\n */\nexport function toBiomarkerTests(): Record<\n string,\n Array<{ pt: string; en: string; code: string }>\n> {\n const result: Record<string, Array<{ pt: string; en: string; code: string }>> = {};\n\n for (const def of BIOMARKER_DEFINITIONS) {\n // Skip hidden biomarkers\n if (def.hidden) continue;\n\n const categories = Array.isArray(def.category) ? def.category : [def.category];\n const ptName = def.names.pt[0] ?? def.code;\n const enName = def.names.en[0] ?? def.code;\n for (const category of categories) {\n if (!result[category]) {\n result[category] = [];\n }\n result[category]!.push({\n code: def.code,\n en: enName,\n pt: ptName,\n });\n }\n }\n\n return result;\n}\n\n/**\n * Biomarker search pattern for OCR text anchoring\n */\nexport interface BiomarkerSearchPattern {\n code: string;\n loinc?: string;\n names: string[]; // All names (EN + PT) for this biomarker\n}\n\n/**\n * Get all biomarker search patterns for OCR text anchoring\n * Returns a flat list of all biomarker codes with their searchable names\n */\nexport function getAllSearchPatterns(): BiomarkerSearchPattern[] {\n return BIOMARKER_DEFINITIONS.map((def) => ({\n code: def.code,\n ...(def.loinc && { loinc: def.loinc }),\n names: [...def.names.en, ...def.names.pt],\n }));\n}\n\n/**\n * Generate filtered LLM reference for specific biomarker codes\n * Only includes biomarkers that were found in the OCR text\n */\nexport function generateFilteredLLMReference(codes: string[]): string {\n const codeSet = new Set(codes);\n const filteredDefs = BIOMARKER_DEFINITIONS.filter((def) => codeSet.has(def.code));\n\n if (filteredDefs.length === 0) {\n return 'NO MATCHING BIOMARKERS FOUND IN TEXT - Return empty biomarkers array.';\n }\n\n const lines: string[] = [\n 'ALLOWED BIOMARKERS (ONLY extract these - they were found in the document):',\n '',\n ];\n\n // Group by category for organization\n const byCategory = new Map<string, BiomarkerDefinition[]>();\n for (const def of filteredDefs) {\n const categories = Array.isArray(def.category) ? def.category : [def.category];\n for (const cat of categories) {\n const existing = byCategory.get(cat) || [];\n existing.push(def);\n byCategory.set(cat, existing);\n }\n }\n\n for (const [category, defs] of byCategory) {\n lines.push(`[${category.toUpperCase()}]`);\n for (const def of defs) {\n const ptNames = def.names.pt.join(', ');\n const enNames = def.names.en.join(', ');\n if (def.loinc) {\n lines.push(`- LOINC: ${def.loinc} | Code: ${def.code}`);\n } else {\n lines.push(`- Code: ${def.code} (no LOINC - use code only)`);\n }\n lines.push(` EN: ${enNames}`);\n lines.push(` PT: ${ptNames}`);\n }\n lines.push('');\n }\n\n return lines.join('\\n');\n}\n\n/**\n * DEXA indicator biomarker codes\n * When these are found in OCR text, the document is likely a DEXA/body composition scan\n */\nexport const DEXA_INDICATOR_CODES = [\n 'BodyFatPct',\n 'FatMass',\n 'LeanMass',\n 'BMC',\n 'FatFreeMass',\n 'TotalMass',\n] as const;\n\n/**\n * DEXA-related categories that should be included when a DEXA document is detected\n */\nexport const DEXA_CATEGORIES = ['composicao-corporal', 'densidade-ossea'] as const;\n\n/**\n * Generate full DEXA/body composition reference for LLM extraction\n * This includes ALL body composition biomarkers (regional metrics, VAT, bone density)\n * that may not be detected by OCR anchoring due to table layouts\n *\n * Use this when DEXA indicator biomarkers (BodyFatPct, FatMass, LeanMass, etc.)\n * are detected in the document\n */\nexport function generateDexaFullReference(): string {\n const dexaCodes = BIOMARKER_DEFINITIONS.filter((def) => {\n const categories = Array.isArray(def.category) ? def.category : [def.category];\n return categories.some((cat) =>\n DEXA_CATEGORIES.includes(cat as (typeof DEXA_CATEGORIES)[number]),\n );\n }).map((def) => def.code);\n\n return generateFilteredLLMReference(dexaCodes);\n}\n\n/**\n * Check if a list of biomarker codes indicates a DEXA/body composition document\n */\nexport function isDexaDocument(matchedCodes: string[]): boolean {\n return DEXA_INDICATOR_CODES.some((code) => matchedCodes.includes(code));\n}\n\n/**\n * CAC (Coronary Artery Calcium) indicator biomarker codes\n * When these are found in OCR text, the document is likely a CAC scoring report\n */\nexport const CAC_INDICATOR_CODES = [\n 'CAC',\n 'CAC_LAD',\n 'CAC_LCX',\n 'CAC_RCA',\n 'CAC_Percentile',\n] as const;\n\n/**\n * Generate full CAC reference for LLM extraction\n * This includes all CAC-related biomarkers (total score, per-vessel, percentile, aortic valve)\n */\nexport function generateCacFullReference(): string {\n const cacCodes = BIOMARKER_DEFINITIONS.filter((def) => {\n return def.code === 'CAC' || def.code.startsWith('CAC_') || def.code === 'AorticValveCalcium';\n }).map((def) => def.code);\n\n return generateFilteredLLMReference(cacCodes);\n}\n\n/**\n * Check if a list of biomarker codes indicates a CAC scoring document\n */\nexport function isCacDocument(matchedCodes: string[]): boolean {\n return CAC_INDICATOR_CODES.some((code) => matchedCodes.includes(code));\n}\n\n/**\n * Normalize text for comparison\n * - Splits camelCase/PascalCase into words (e.g., \"ArmsLeanMass\" → \"arms lean mass\")\n * - Removes diacritics\n * - Lowercases\n * - Normalizes whitespace\n */\nfunction normalizeText(text: string): string {\n return (\n text\n // Replace underscores, hyphens, and slashes with spaces (BMD_Total → BMD Total, LDL-Cholesterol → LDL Cholesterol, Omega6/Omega3 → Omega6 Omega3)\n .replace(/[_\\-/]/g, ' ')\n // Split camelCase/PascalCase into words (ArmsLeanMass → Arms Lean Mass)\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n // Split uppercase sequences followed by lowercase (VATVolume → VAT Volume)\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n // Remove diacritics\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase()\n .replace(/\\s+/g, ' ')\n .trim()\n );\n}\n\n// Build a normalized name map for fast lookups\nconst normalizedNameToCodeMap = new Map<string, string>();\nfor (const def of BIOMARKER_DEFINITIONS) {\n for (const name of [...def.names.en, ...def.names.pt]) {\n normalizedNameToCodeMap.set(normalizeText(name), def.code);\n }\n}\n\n/**\n * Find a biomarker code by name (with normalization)\n * This is a fallback when LOINC lookup fails\n * @param name - The biomarker name from the LLM output\n * @returns The internal code if found, undefined otherwise\n */\nexport function findCodeByName(name: string): string | undefined {\n // Check if the input is already a valid biomarker code (e.g., \"Omega3_DHA\")\n if (codeToDefinitionMap.has(name)) {\n return codeToDefinitionMap.get(name)!.code;\n }\n\n // Check code aliases (e.g., alias → canonical code)\n const canonical = codeAliasToCanonicalMap.get(name);\n if (canonical) {\n return canonical;\n }\n\n const normalized = normalizeText(name);\n return normalizedNameToCodeMap.get(normalized);\n}\n\n/**\n * Validate that a LOINC code matches a given name\n * Returns the correct code if they match, or the name-based code if they don't\n * This catches cases where LLM provides a valid-but-wrong LOINC\n * @param loinc - The LOINC code provided by LLM\n * @param name - The biomarker name provided by LLM\n * @returns Object with code and whether a correction was made\n */\nexport function validateLoincNameMatch(\n loinc: string,\n name: string,\n): { code: string | undefined; corrected: boolean } {\n const loincCode = loincToCode(loinc);\n const nameCode = findCodeByName(name);\n\n // If LOINC maps to a code, check if it matches the name-based code\n if (loincCode && nameCode && loincCode !== nameCode) {\n // LOINC and name disagree - trust the name since it's what the LLM saw in the document\n return { code: nameCode, corrected: true };\n }\n\n // If LOINC is valid, use it\n if (loincCode) {\n return { code: loincCode, corrected: false };\n }\n\n // Fallback to name-based lookup\n return { code: nameCode, corrected: !!nameCode };\n}\n\n/**\n * Check if a biomarker code should be displayed in the UI\n *\n * Returns false for:\n * - UNKNOWN_ codes (unrecognized biomarkers)\n * - Biomarkers marked as hidden in their definition\n *\n * @param code - The biomarker code to check\n * @returns true if the biomarker should be displayed\n */\nexport function isBiomarkerVisible(code: string): boolean {\n // Filter out UNKNOWN codes\n if (code.startsWith('UNKNOWN_') || code === 'UNKNOWN') {\n return false;\n }\n\n // Check if the biomarker is marked as hidden\n const definition = codeToDefinitionMap.get(code);\n if (definition?.hidden) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Filter an array of biomarkers to only include visible ones\n *\n * @param biomarkers - Array of objects with a `code` property\n * @returns Filtered array with only visible biomarkers\n */\nexport function filterVisibleBiomarkers<T extends { code: string }>(biomarkers: T[]): T[] {\n return biomarkers.filter((b) => isBiomarkerVisible(b.code));\n}\n\n/**\n * Get all biomarkers for a specific category\n *\n * @param category - The category slug (e.g., 'coracao', 'tireoide')\n * @param options - Optional filters\n * @param options.includeHidden - Include hidden biomarkers (default: false)\n * @param options.sex - Filter by sex ('male', 'female', or 'both' for all)\n * @returns Array of biomarker definitions for the category\n */\nexport function getBiomarkersByCategory(\n category: string,\n options?: {\n includeHidden?: boolean;\n sex?: 'male' | 'female' | 'both';\n },\n): BiomarkerDefinition[] {\n const { includeHidden = false, sex = 'both' } = options ?? {};\n\n return BIOMARKER_DEFINITIONS.filter((def) => {\n const categories = Array.isArray(def.category) ? def.category : [def.category];\n if (!categories.includes(category)) return false;\n if (!includeHidden && def.hidden) return false;\n if (sex !== 'both') {\n // Include biomarkers that are for this sex or for 'both' (undefined)\n if (def.sex && def.sex !== sex && def.sex !== 'both') return false;\n }\n return true;\n });\n}\n\n/**\n * Get all biomarkers for multiple categories\n *\n * @param categories - Array of category slugs\n * @param options - Optional filters (same as getBiomarkersByCategory)\n * @returns Array of biomarker definitions grouped by category\n */\nexport function getBiomarkersForCategories(\n categories: string[],\n options?: {\n includeHidden?: boolean;\n sex?: 'male' | 'female' | 'both';\n },\n): Record<string, BiomarkerDefinition[]> {\n const result: Record<string, BiomarkerDefinition[]> = {};\n\n for (const category of categories) {\n const biomarkers = getBiomarkersByCategory(category, options);\n if (biomarkers.length > 0) {\n result[category] = biomarkers;\n }\n }\n\n return result;\n}\n"]}
|