@precisa-saude/fhir 0.8.0 → 0.10.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-MJ254F5K.cjs","../src/units.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-MJ254F5K.cjs","sourcesContent":[null,"/**\n * Unit Mappings and Biomarker Unit Definitions\n *\n * Maps units to UCUM format, provides default units for biomarkers,\n * and defines canonical/SI unit configurations with aliases.\n */\n\n// ─── UCUM Mappings ───────────────────────────────────────────────────────────\n\n/**\n * Map units to UCUM (Unified Code for Units of Measure)\n * See: https://ucum.org/\n */\nexport const UNIT_TO_UCUM: Record<string, string> = {\n // Dimensionless / special measurements\n '[pH]': '[pH]',\n '{ratio}': '{ratio}',\n '{specific gravity}': '{specific gravity}',\n\n '/µL': '/uL',\n // Percentage\n '%': '%',\n // Count units\n '10³/µL': '10*3/uL',\n '10⁶/µL': '10*6/uL',\n // Volume\n fL: 'fL',\n g: 'g',\n\n // Mass concentration\n 'g/dL': 'g/dL',\n L: 'L',\n // Molar concentration\n 'mEq/L': 'meq/L',\n\n mg: 'mg',\n 'mg/dL': 'mg/dL',\n mL: 'mL',\n 'mmol/L': 'mmol/L',\n 'mUI/mL': 'm[IU]/mL',\n\n ng: 'ng',\n\n 'ng/dL': 'ng/dL',\n 'ng/mL': 'ng/mL',\n 'nmol/L': 'nmol/L',\n // Mass\n pg: 'pg',\n\n 'pg/mL': 'pg/mL',\n pH: '[pH]',\n // Enzyme activity\n 'U/L': 'U/L',\n // Special units\n 'U/mL': 'U/mL',\n 'UI/L': '[IU]/L',\n\n 'UI/mL': '[IU]/mL',\n\n µg: 'ug',\n 'µg/dL': 'ug/dL',\n 'µmol/L': 'umol/L',\n 'µUI/mL': 'u[IU]/mL',\n};\n\n/**\n * Default units for biomarkers when source data doesn't provide one\n * These are the most common units used in Brazilian labs\n */\nexport const BIOMARKER_DEFAULT_UNIT: Record<string, string> = {\n // Proteins\n Albumin: 'g/dL',\n AlkalinePhosphatase: 'U/L',\n // Liver\n ALT: 'U/L',\n AST: 'U/L',\n\n Calcium: 'mg/dL',\n Chloride: 'mEq/L',\n // Lipids\n Cholesterol: 'mg/dL',\n // Kidney\n Creatinine: 'mg/dL',\n eAG: 'mg/dL',\n Ferritin: 'ng/mL',\n\n FolicAcid: 'ng/mL',\n GGT: 'U/L',\n // Glucose/Diabetes\n Glucose: 'mg/dL',\n\n HbA1c: '%',\n Hct: '%',\n\n HDL: 'mg/dL',\n // Hematology\n Hgb: 'g/dL',\n Insulin: 'µUI/mL',\n\n // Iron studies\n Iron: 'µg/dL',\n LDL: 'mg/dL',\n Magnesium: 'mg/dL',\n NonHDL_Cholesterol: 'mg/dL',\n\n // Urinalysis - dimensionless\n pH_Urine: '[pH]',\n Potassium: 'mEq/L',\n RDW: '%',\n // Electrolytes\n Sodium: 'mEq/L',\n SpecificGravity_Urine: '{specific gravity}',\n\n T3Free: 'pg/mL',\n T4Free: 'ng/dL',\n TIBC: 'µg/dL',\n TotalProtein: 'g/dL',\n\n TransferrinSaturation: '%',\n Triglycerides: 'mg/dL',\n // Thyroid\n TSH: 'µUI/mL',\n\n Urea: 'mg/dL',\n UricAcid: 'mg/dL',\n\n // Vitamins\n VitaminB12: 'pg/mL',\n VitaminD: 'ng/mL',\n VLDL: 'mg/dL',\n};\n\n/**\n * Convert unit to UCUM format\n */\nexport function unitToUCUM(unit: string): string {\n return UNIT_TO_UCUM[unit] || unit;\n}\n\n/**\n * Get default unit for a biomarker code\n * @param biomarkerCode - The biomarker code (e.g., \"Glucose\", \"HbA1c\")\n * @returns The default unit or empty string if not found\n */\nexport function getDefaultUnit(biomarkerCode: string): string {\n return BIOMARKER_DEFAULT_UNIT[biomarkerCode] || '';\n}\n\n// ─── Biomarker Unit Configurations ───────────────────────────────────────────\n\n/** Biomarker unit definitions — canonical units match reference-ranges.ts (BR conventional). */\n\nexport interface BiomarkerUnitConfig {\n aliases: Record<string, string>;\n canonicalUcum: string;\n canonicalUnit: string;\n molecularWeight?: number;\n siUcum: string;\n siUnit: string;\n}\n\nconst CBC_DIFF_ALIASES: Record<string, string> = {\n '/ul': '/uL',\n '/µl': '/uL',\n '10*3/ul': 'K/uL',\n 'cells/ul': '/uL',\n 'cells/µl': '/uL',\n 'k/ul': 'K/uL',\n 'x10e3/ul': 'K/uL',\n};\nconst CBC_DIFF: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: '10*3/uL',\n canonicalUnit: 'K/uL',\n siUcum: '10*3/uL',\n siUnit: 'K/uL',\n};\nconst DEXA_KG_ALIASES: Record<string, string> = {\n kg: 'kg',\n lb: '[lb_av]',\n lbs: '[lb_av]',\n};\nconst DEXA_KG: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: 'kg',\n canonicalUnit: 'kg',\n siUcum: 'kg',\n siUnit: 'kg',\n};\n\n/**\n * Urine sediment units — Brazilian automated analyzers (Sysmex UF-series)\n * report in /mL while manual microscopy uses /HPF. Canonical unit is /HPF.\n */\nconst URINE_SEDIMENT_ALIASES: Record<string, string> = {\n '/hpf': '/HPF',\n '/ml': '/mL',\n};\nconst URINE_SEDIMENT: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: '/[HPF]',\n canonicalUnit: '/HPF',\n siUcum: '/[HPF]',\n siUnit: '/HPF',\n};\n\n/** Percentage biomarkers — canonical and SI both use %. */\nconst PERCENTAGE_ALIASES: Record<string, string> = { '%': '%', pct: '%', percent: '%' };\nconst PERCENTAGE: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: '%',\n canonicalUnit: '%',\n siUcum: '%',\n siUnit: '%',\n};\n\n/** Enzyme activity — canonical and SI both use U/L. */\nconst ENZYME_ALIASES: Record<string, string> = { 'iu/l': 'U/L', 'u/l': 'U/L' };\nconst ENZYME: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: 'U/L',\n canonicalUnit: 'U/L',\n siUcum: 'U/L',\n siUnit: 'U/L',\n};\n\n/** Monovalent electrolytes — mEq/L ↔ mmol/L (1:1). */\nconst ELECTROLYTE_MONO_ALIASES: Record<string, string> = { 'meq/l': 'mEq/L', 'mmol/l': 'mmol/L' };\nconst ELECTROLYTE_MONO: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: 'meq/L',\n canonicalUnit: 'mEq/L',\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n};\n\n/** CAC scores — Agatston Units (AU), dimensionless. */\nconst CAC_ALIASES: Record<string, string> = { au: 'AU' };\nconst CAC: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: '{score}',\n canonicalUnit: 'AU',\n siUcum: '{score}',\n siUnit: 'AU',\n};\n\n/** nmol/L biomarkers — same unit for canonical and SI. */\nconst NMOL_L_ALIASES: Record<string, string> = { 'nmol/l': 'nmol/L' };\nconst NMOL_L: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: 'nmol/L',\n canonicalUnit: 'nmol/L',\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n};\n\nexport const BIOMARKER_UNITS: Record<string, BiomarkerUnitConfig> = {\n AFP: {\n aliases: { 'ng/ml': 'ng/mL' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ng/mL',\n siUnit: 'ng/mL',\n },\n Albumin: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n AlkalinePhosphatase: { aliases: ENZYME_ALIASES, ...ENZYME },\n ALT: { aliases: ENZYME_ALIASES, ...ENZYME },\n AMH: {\n aliases: { 'ng/ml': 'ng/mL', 'pmol/l': 'pmol/L' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n molecularWeight: 12_500,\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n Amylase: { aliases: ENZYME_ALIASES, ...ENZYME },\n AntiThyroglobulin: {\n aliases: { 'iu/ml': 'IU/mL', 'ui/ml': 'IU/mL' },\n canonicalUcum: '[iU]/mL',\n canonicalUnit: 'IU/mL',\n siUcum: '[iU]/mL',\n siUnit: 'IU/mL',\n },\n AntiTPO: {\n aliases: { 'iu/ml': 'IU/mL', 'ui/ml': 'IU/mL' },\n canonicalUcum: '[iU]/mL',\n canonicalUnit: 'IU/mL',\n siUcum: '[iU]/mL',\n siUnit: 'IU/mL',\n },\n AoA1: {\n aliases: { 'mg/dl': 'mg/dL' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n siUcum: 'mg/dL',\n siUnit: 'mg/dL',\n },\n AorticValveCalcium: { aliases: CAC_ALIASES, ...CAC },\n ApoB: {\n aliases: { 'mg/dl': 'mg/dL' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n siUcum: 'mg/dL',\n siUnit: 'mg/dL',\n },\n AST: { aliases: ENZYME_ALIASES, ...ENZYME },\n Basophils: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Basophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n BilirubinDirect: {\n aliases: { 'mg/dl': 'mg/dL', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 584.66,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n BilirubinIndirect: {\n aliases: { 'mg/dl': 'mg/dL', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 584.66,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n BilirubinTotal: {\n aliases: { 'mg/dl': 'mg/dL', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 584.66,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n BMC: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n BMI: {\n aliases: { 'kg/m2': 'kg/m²', 'kg/m²': 'kg/m²' },\n canonicalUcum: 'kg/m2',\n canonicalUnit: 'kg/m²',\n siUcum: 'kg/m2',\n siUnit: 'kg/m²',\n },\n BNP: {\n aliases: { 'pg/ml': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n siUcum: 'pg/mL',\n siUnit: 'pg/mL',\n },\n CA125: {\n aliases: { 'u/ml': 'U/mL' },\n canonicalUcum: 'U/mL',\n canonicalUnit: 'U/mL',\n siUcum: 'U/mL',\n siUnit: 'U/mL',\n },\n CAC_LAD: { aliases: CAC_ALIASES, ...CAC },\n CAC_LCX: { aliases: CAC_ALIASES, ...CAC },\n CAC_LMA: { aliases: CAC_ALIASES, ...CAC },\n CAC_RCA: { aliases: CAC_ALIASES, ...CAC },\n Calcium: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 40.08,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n CEA: {\n aliases: { 'ng/ml': 'ng/mL' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ng/mL',\n siUnit: 'ng/mL',\n },\n Chloride: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },\n Cholesterol: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n CK: { aliases: ENZYME_ALIASES, ...ENZYME },\n CO2: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },\n Cortisol: {\n aliases: { 'mcg/dl': 'µg/dL', 'nmol/l': 'nmol/L', 'ug/dl': 'µg/dL', 'µg/dl': 'µg/dL' },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'µg/dL',\n molecularWeight: 362.46,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n Creatinine: {\n aliases: { 'mg/dl': 'mg/dL', 'umol/l': 'µmol/L', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 113.12,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n CRP: {\n aliases: { 'mg/dl': 'mg/dL', 'mg/l': 'mg/L' },\n canonicalUcum: 'mg/L',\n canonicalUnit: 'mg/L',\n siUcum: 'mg/L',\n siUnit: 'mg/L',\n },\n DHEAS: {\n aliases: { 'mcg/dl': 'µg/dL', 'ug/dl': 'µg/dL', 'µg/dl': 'µg/dL', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'µg/dL',\n molecularWeight: 368.49,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n DHT: {\n aliases: { 'ng/dl': 'ng/dL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'ng/dL',\n canonicalUnit: 'ng/dL',\n molecularWeight: 290.44,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n eGFR: {\n aliases: {\n 'ml/min/1,73 m2': 'mL/min/1.73m²',\n 'ml/min/1.73m2': 'mL/min/1.73m²',\n 'ml/min/1.73m²': 'mL/min/1.73m²',\n },\n canonicalUcum: 'mL/min/{1.73_m2}',\n canonicalUnit: 'mL/min/1.73m²',\n siUcum: 'mL/min/{1.73_m2}',\n siUnit: 'mL/min/1.73m²',\n },\n Eosinophils: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Eosinophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n EPADPADHA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n ESR: {\n aliases: { 'mm/h': 'mm/h', 'mm/hr': 'mm/h' },\n canonicalUcum: 'mm/h',\n canonicalUnit: 'mm/h',\n siUcum: 'mm/h',\n siUnit: 'mm/h',\n },\n Estradiol: {\n aliases: { 'ng/dl': 'ng/dL', 'pg/ml': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n molecularWeight: 272.38,\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n FatFreeMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n FatMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n Ferritin: {\n aliases: {\n 'mcg/l': 'ng/mL',\n 'microg/l': 'ng/mL',\n 'ng/ml': 'ng/mL',\n 'µg/l': 'ng/mL',\n },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ug/L',\n siUnit: 'µg/L',\n },\n Folate: {\n aliases: { 'ng/ml': 'ng/mL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n molecularWeight: 441.4,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n FSH: {\n aliases: {\n 'iu/l': 'mIU/mL',\n 'miu/ml': 'mIU/mL',\n 'ui/l': 'mIU/mL',\n },\n canonicalUcum: 'mIU/mL',\n canonicalUnit: 'mIU/mL',\n siUcum: '[iU]/L',\n siUnit: 'IU/L',\n },\n GGT: { aliases: ENZYME_ALIASES, ...ENZYME },\n Globulin: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n Glucose: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 180.156,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n HbA1c: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Hct: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n HDL: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n HDL_Large: { aliases: NMOL_L_ALIASES, ...NMOL_L },\n Hgb: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n Homocysteine: {\n aliases: { 'umol/l': 'µmol/L', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'umol/L',\n canonicalUnit: 'µmol/L',\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n IgA: {\n aliases: { 'g/l': 'g/L', 'mg/dl': 'mg/dL' },\n canonicalUcum: 'g/L',\n canonicalUnit: 'g/L',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n IgG: {\n aliases: { 'g/l': 'g/L', 'mg/dl': 'mg/dL' },\n canonicalUcum: 'g/L',\n canonicalUnit: 'g/L',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n INR: {\n aliases: { '{ratio}': '{ratio}' },\n canonicalUcum: '{ratio}',\n canonicalUnit: '{ratio}',\n siUcum: '{ratio}',\n siUnit: '{ratio}',\n },\n Insulin: {\n aliases: {\n 'mu/l': 'uIU/mL',\n 'uiu/ml': 'uIU/mL',\n 'µu/ml': 'uIU/mL',\n 'µui/ml': 'uIU/mL',\n },\n canonicalUcum: 'u[iU]/mL',\n canonicalUnit: 'uIU/mL',\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n Iron: {\n aliases: {\n 'mcg/dl': 'mcg/dL',\n 'microg/dl': 'mcg/dL',\n 'ug/dl': 'mcg/dL',\n 'µg/dl': 'mcg/dL',\n },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'mcg/dL',\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n LDL: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n LDL_Medium: { aliases: NMOL_L_ALIASES, ...NMOL_L },\n LDL_ParticleNumber: { aliases: NMOL_L_ALIASES, ...NMOL_L },\n LDL_Peak_Size: {\n aliases: { å: 'Ao', angstrom: 'Ao', ao: 'Ao', nm: 'nm' },\n canonicalUcum: 'Ao',\n canonicalUnit: 'Angstrom',\n siUcum: 'nm',\n siUnit: 'nm',\n },\n LDL_Small: { aliases: NMOL_L_ALIASES, ...NMOL_L },\n Lead: {\n aliases: { 'mcg/dl': 'µg/dL', 'ug/dl': 'µg/dL', 'µg/dl': 'µg/dL', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'µg/dL',\n molecularWeight: 207.2,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n LeanMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n Leptin: {\n aliases: { 'ng/ml': 'ng/mL' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ng/mL',\n siUnit: 'ng/mL',\n },\n Leukocytes_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },\n LH: {\n aliases: {\n 'iu/l': 'mIU/mL',\n 'miu/ml': 'mIU/mL',\n 'ui/l': 'mIU/mL',\n },\n canonicalUcum: 'mIU/mL',\n canonicalUnit: 'mIU/mL',\n siUcum: '[iU]/L',\n siUnit: 'IU/L',\n },\n Lipase: { aliases: ENZYME_ALIASES, ...ENZYME },\n Lipoprotein_a: {\n aliases: { 'mg/dl': 'mg/dL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'nmol/L',\n canonicalUnit: 'nmol/L',\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n Lymphocytes: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Lymphocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n MCH: {\n aliases: { pg: 'pg' },\n canonicalUcum: 'pg',\n canonicalUnit: 'pg',\n siUcum: 'pg',\n siUnit: 'pg',\n },\n MCHC: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n MCV: {\n aliases: { fl: 'fL' },\n canonicalUcum: 'fL',\n canonicalUnit: 'fL',\n siUcum: 'fL',\n siUnit: 'fL',\n },\n Mercury: {\n aliases: { 'mcg/l': 'µg/L', 'nmol/l': 'nmol/L', 'ug/l': 'µg/L', 'µg/l': 'µg/L' },\n canonicalUcum: 'ug/L',\n canonicalUnit: 'µg/L',\n molecularWeight: 200.59,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n Microalbumin_Urine: {\n aliases: { 'mg/l': 'mg/L' },\n canonicalUcum: 'mg/L',\n canonicalUnit: 'mg/L',\n siUcum: 'mg/L',\n siUnit: 'mg/L',\n },\n MMA: { aliases: NMOL_L_ALIASES, ...NMOL_L },\n Monocytes: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Monocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n MPV: {\n aliases: { fl: 'fL' },\n canonicalUcum: 'fL',\n canonicalUnit: 'fL',\n siUcum: 'fL',\n siUnit: 'fL',\n },\n Myeloperoxidase: {\n aliases: { 'pmol/l': 'pmol/L' },\n canonicalUcum: 'pmol/L',\n canonicalUnit: 'pmol/L',\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n Neutrophils: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Neutrophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n // MW 386.65 = colesterol livre. Frações lipoproteicas são heterogêneas,\n // mas a conversão mg/dL→mmol/L usa MW do colesterol por convenção clínica.\n NonHDL_Cholesterol: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n NTproBNP: {\n aliases: { 'pg/ml': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n siUcum: 'pg/mL',\n siUnit: 'pg/mL',\n },\n Omega3_DHA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Omega3_DPA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Omega3_EPA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Omega3_Total: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Omega6_AA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Omega6_LA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Omega6_Total: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Platelets: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Potassium: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },\n Progesterone: {\n aliases: { 'ng/ml': 'ng/mL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n molecularWeight: 314.46,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n Prolactin: {\n aliases: {\n 'microg/l': 'ng/mL',\n 'ng/ml': 'ng/mL',\n 'µg/l': 'ng/mL',\n },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ug/L',\n siUnit: 'µg/L',\n },\n ProthrombinTime: {\n aliases: { s: 's', sec: 's' },\n canonicalUcum: 's',\n canonicalUnit: 's',\n siUcum: 's',\n siUnit: 's',\n },\n PSA: {\n aliases: { 'ng/ml': 'ng/mL' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ng/mL',\n siUnit: 'ng/mL',\n },\n PSA_Free: {\n aliases: { 'ng/ml': 'ng/mL' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ng/mL',\n siUnit: 'ng/mL',\n },\n RBC: {\n aliases: {\n '/ul': '/uL',\n '/µl': '/uL',\n '10*6/ul': 'M/uL',\n 'cells/ul': '/uL',\n 'm/ul': 'M/uL',\n 'milhões/mm3': 'M/uL',\n 'milhões/mm³': 'M/uL',\n 'x10e6/ul': 'M/uL',\n },\n canonicalUcum: '10*6/uL',\n canonicalUnit: 'M/uL',\n siUcum: '10*6/uL',\n siUnit: 'M/uL',\n },\n RBC_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },\n RDW: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n Reticulocytes: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },\n RheumatoidFactor: {\n aliases: { 'iu/ml': 'IU/mL', 'ui/ml': 'IU/mL' },\n canonicalUcum: '[iU]/mL',\n canonicalUnit: 'IU/mL',\n siUcum: '[iU]/mL',\n siUnit: 'IU/mL',\n },\n SHBG: { aliases: NMOL_L_ALIASES, ...NMOL_L },\n Sodium: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },\n T3Free: {\n aliases: { 'pg/ml': 'pg/mL', 'pmol/l': 'pmol/L' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n molecularWeight: 650.98,\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n T4Free: {\n aliases: { 'ng/dl': 'ng/dL', 'pmol/l': 'pmol/L' },\n canonicalUcum: 'ng/dL',\n canonicalUnit: 'ng/dL',\n molecularWeight: 776.87,\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n T4Total: {\n aliases: { 'mcg/dl': 'µg/dL', 'nmol/l': 'nmol/L', 'ug/dl': 'µg/dL', 'µg/dl': 'µg/dL' },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'µg/dL',\n molecularWeight: 776.87,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n Testosterone: {\n aliases: { 'ng/dl': 'ng/dL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'ng/dL',\n canonicalUnit: 'ng/dL',\n molecularWeight: 288.42,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n TestosteroneFree: {\n aliases: { 'pg/ml': 'pg/mL', 'pmol/l': 'pmol/L' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n molecularWeight: 288.42,\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n TIBC: {\n aliases: {\n 'mcg/dl': 'mcg/dL',\n 'microg/dl': 'mcg/dL',\n 'ug/dl': 'mcg/dL',\n 'µg/dl': 'mcg/dL',\n },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'mcg/dL',\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n TotalMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n TotalProtein: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n Triglycerides: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 885.4,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n TroponinI: {\n aliases: { 'ng/ml': 'ng/mL' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ng/mL',\n siUnit: 'ng/mL',\n },\n TroponinT: {\n aliases: { 'ng/l': 'ng/L' },\n canonicalUcum: 'ng/L',\n canonicalUnit: 'ng/L',\n siUcum: 'ng/L',\n siUnit: 'ng/L',\n },\n TSH: {\n aliases: {\n 'miu/l': 'uIU/mL',\n 'mui/l': 'uIU/mL',\n 'uiu/ml': 'uIU/mL',\n 'µui/ml': 'uIU/mL',\n },\n canonicalUcum: 'u[iU]/mL',\n canonicalUnit: 'uIU/mL',\n siUcum: 'mIU/L',\n siUnit: 'mIU/L',\n },\n Urea: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 60.06,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n UricAcid: {\n aliases: { 'mg/dl': 'mg/dL', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 168.11,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n VATMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n VATVolume: {\n aliases: { cm3: 'cm3', 'cm³': 'cm3', in3: '[in_i]3', 'in³': '[in_i]3' },\n canonicalUcum: 'cm3',\n canonicalUnit: 'cm³',\n siUcum: 'cm3',\n siUnit: 'cm³',\n },\n VitaminB12: {\n aliases: { 'ng/l': 'pg/mL', 'pg/ml': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n VitaminD: {\n aliases: { 'ng/ml': 'ng/mL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n molecularWeight: 384.64,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n VLDL: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n WBC: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n};\n\n/**\n * Get the canonical unit for a biomarker code.\n */\nexport function getCanonicalUnit(code: string): string | null {\n return BIOMARKER_UNITS[code]?.canonicalUnit ?? null;\n}\n\n/**\n * Get the SI unit for a biomarker code.\n */\nexport function getSIUnit(code: string): string | null {\n return BIOMARKER_UNITS[code]?.siUnit ?? null;\n}\n\n// ─── Unit Conversion ────────────────────────────────────────────────────────────\n\n/**\n * Normalize a unit string to its canonical display form for a given biomarker.\n * Returns the input unchanged if no alias is found.\n */\nfunction normalizeUnit(unit: string, config: BiomarkerUnitConfig): string {\n return config.aliases[unit.toLowerCase()] ?? config.aliases[unit] ?? unit;\n}\n\n/**\n * Conversion factor tables for unit pairs that don't require molecular weight.\n * Key format: \"fromUnit -> toUnit\" (using canonical display forms).\n * Both directions must be listed explicitly — there is no auto-inversion.\n */\nconst FIXED_FACTORS: Record<string, number> = {\n 'g/dL -> g/L': 10,\n 'g/L -> g/dL': 0.1,\n 'g/L -> mg/dL': 100,\n 'mEq/L -> mmol/L': 1,\n 'mg/dL -> g/L': 0.01,\n 'mmol/L -> mEq/L': 1,\n 'ng/dL -> pg/mL': 10,\n 'ng/mL -> µg/L': 1,\n 'pg/mL -> ng/dL': 0.1,\n 'µg/L -> ng/mL': 1,\n};\n\n/**\n * MW-based conversion definitions.\n * Each entry maps a (fromUnit, toUnit) pair to the formula:\n * result = value × numerator / (MW × denominator)\n *\n * Common patterns:\n * mg/dL → mmol/L: value × 10 / MW\n * mg/dL → µmol/L: value × 10000 / MW (or equivalently × 10 / MW × 1000)\n * ng/mL → nmol/L: value × 1000 / MW\n * pg/mL → pmol/L: value × 1000 / MW\n * ng/dL → nmol/L: value × 10 / MW\n */\n/**\n * MW conversion entries. Each direction is explicit to avoid fragile inversion logic.\n * Formula: result = value × scale / MW (when divideByMW is true)\n * result = value × MW / scale (when divideByMW is false)\n */\ninterface MWConversion {\n divideByMW: boolean;\n scale: number;\n}\n\nconst MW_CONVERSIONS: Record<string, MWConversion> = {\n 'mg/dL -> mmol/L': { divideByMW: true, scale: 10 },\n 'mg/dL -> µmol/L': { divideByMW: true, scale: 10_000 },\n 'mmol/L -> mg/dL': { divideByMW: false, scale: 10 },\n 'ng/dL -> nmol/L': { divideByMW: true, scale: 10 },\n 'ng/dL -> pmol/L': { divideByMW: true, scale: 10_000 },\n 'ng/mL -> nmol/L': { divideByMW: true, scale: 1000 },\n 'ng/mL -> pmol/L': { divideByMW: true, scale: 1_000_000 },\n 'nmol/L -> ng/dL': { divideByMW: false, scale: 10 },\n 'nmol/L -> ng/mL': { divideByMW: false, scale: 1000 },\n 'nmol/L -> µg/dL': { divideByMW: false, scale: 10_000 },\n 'nmol/L -> µg/L': { divideByMW: false, scale: 1000 },\n 'pg/mL -> pmol/L': { divideByMW: true, scale: 1000 },\n 'pmol/L -> ng/dL': { divideByMW: false, scale: 10_000 },\n 'pmol/L -> ng/mL': { divideByMW: false, scale: 1_000_000 },\n 'pmol/L -> pg/mL': { divideByMW: false, scale: 1000 },\n 'µg/dL -> nmol/L': { divideByMW: true, scale: 10_000 },\n 'µg/dL -> µmol/L': { divideByMW: true, scale: 10 },\n 'µg/L -> nmol/L': { divideByMW: true, scale: 1000 },\n 'µmol/L -> mg/dL': { divideByMW: false, scale: 10_000 },\n 'µmol/L -> µg/dL': { divideByMW: false, scale: 10 },\n};\n\nexport interface ConversionResult {\n unit: string;\n value: number;\n}\n\n/**\n * Convert a biomarker value between units.\n *\n * Supports:\n * - Fixed-factor conversions (e.g. ng/dL ↔ pg/mL, g/dL ↔ g/L)\n * - Molecular-weight-based conversions (e.g. mg/dL ↔ mmol/L, pg/mL ↔ pmol/L)\n *\n * @returns The converted value and target unit, or null if conversion is not possible.\n */\nexport function convertUnit(\n value: number,\n fromUnit: string,\n toUnit: string,\n biomarkerCode: string,\n): ConversionResult | null {\n const config = BIOMARKER_UNITS[biomarkerCode];\n if (!config) return null;\n\n const normFrom = normalizeUnit(fromUnit, config);\n const normTo = normalizeUnit(toUnit, config);\n\n if (normFrom === normTo) {\n return { unit: normTo, value };\n }\n\n const key = `${normFrom} -> ${normTo}`;\n\n const fixedFactor = FIXED_FACTORS[key];\n if (fixedFactor !== undefined) {\n return { unit: normTo, value: value * fixedFactor };\n }\n\n const mwConv = MW_CONVERSIONS[key];\n if (mwConv && config.molecularWeight) {\n const result = mwConv.divideByMW\n ? (value * mwConv.scale) / config.molecularWeight\n : (value * config.molecularWeight) / mwConv.scale;\n return { unit: normTo, value: result };\n }\n\n return null;\n}\n"]}
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getDefaultUnit,
6
6
  unitToUCUM
7
- } from "./chunk-R25V2E6S.js";
7
+ } from "./chunk-R4MUCMO3.js";
8
8
 
9
9
  // src/converter.ts
10
10
  function interpretationCode(flag) {
@@ -248,4 +248,4 @@ export {
248
248
  userProfileToFHIR,
249
249
  labResultToFHIRBundle
250
250
  };
251
- //# sourceMappingURL=chunk-4KGWSF55.js.map
251
+ //# sourceMappingURL=chunk-N6J26FVW.js.map
@@ -4,7 +4,7 @@ var _chunk2EVQ2ESBcjs = require('./chunk-2EVQ2ESB.cjs');
4
4
 
5
5
 
6
6
 
7
- var _chunkZYSD6A2Kcjs = require('./chunk-ZYSD6A2K.cjs');
7
+ var _chunkMJ254F5Kcjs = require('./chunk-MJ254F5K.cjs');
8
8
 
9
9
  // src/converter.ts
10
10
  function interpretationCode(flag) {
@@ -31,8 +31,8 @@ function interpretationDisplay(flag) {
31
31
  }
32
32
  function labObservationToFHIR(observation, patientId, laboratoryName) {
33
33
  const loincCode = _chunk2EVQ2ESBcjs.codeToLoinc.call(void 0, observation.biomarkerCode) || "99999-9";
34
- const sourceUnit = observation.unit || _chunkZYSD6A2Kcjs.getDefaultUnit.call(void 0, observation.biomarkerCode) || observation.unit;
35
- const ucumUnit = _chunkZYSD6A2Kcjs.unitToUCUM.call(void 0, sourceUnit);
34
+ const sourceUnit = observation.unit || _chunkMJ254F5Kcjs.getDefaultUnit.call(void 0, observation.biomarkerCode) || observation.unit;
35
+ const ucumUnit = _chunkMJ254F5Kcjs.unitToUCUM.call(void 0, sourceUnit);
36
36
  const isQualitative = observation.isQualitative || typeof observation.value === "string";
37
37
  const fhirObs = {
38
38
  category: [
@@ -248,4 +248,4 @@ function labResultToFHIRBundle(report, observations, userProfile) {
248
248
 
249
249
 
250
250
  exports.labObservationToFHIR = labObservationToFHIR; exports.labReportToFHIR = labReportToFHIR; exports.userProfileToFHIR = userProfileToFHIR; exports.labResultToFHIRBundle = labResultToFHIRBundle;
251
- //# sourceMappingURL=chunk-CPZ7YNON.cjs.map
251
+ //# sourceMappingURL=chunk-PJJVDGX4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-CPZ7YNON.cjs","../src/converter.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-CPZ7YNON.cjs","sourcesContent":[null,"/**\n * FHIR Converter\n *\n * Converts lab results to FHIR R4 DiagnosticReport and Observation resources.\n * See: https://hl7.org/fhir/diagnosticreport.html\n */\n\nimport { codeToLoinc } from './biomarkers';\nimport type { FHIRBundle, FHIRDiagnosticReport, FHIRObservation, FHIRPatient } from './fhir-types';\nimport type { Flag, LabObservationData, LabReportData, UserProfileData } from './types';\nimport { getDefaultUnit, unitToUCUM } from './units';\n\n// Re-export all types and functions\nexport * from './fhir-types';\n\n/**\n * Convert Flag to FHIR interpretation code\n */\nfunction interpretationCode(flag: Flag): string {\n switch (flag) {\n case 'H':\n return 'H'; // High\n case 'L':\n return 'L'; // Low\n default:\n return 'N'; // Normal\n }\n}\n\n/**\n * Convert Flag to FHIR interpretation display\n */\nfunction interpretationDisplay(flag: Flag): string {\n switch (flag) {\n case 'H':\n return 'High';\n case 'L':\n return 'Low';\n default:\n return 'Normal';\n }\n}\n\n/**\n * Convert generic lab observation to FHIR Observation\n */\nexport function labObservationToFHIR(\n observation: LabObservationData,\n patientId: string,\n laboratoryName?: string,\n): FHIRObservation {\n const loincCode = codeToLoinc(observation.biomarkerCode) || '99999-9';\n // Use default unit if source unit is empty\n const sourceUnit =\n observation.unit || getDefaultUnit(observation.biomarkerCode) || observation.unit;\n const ucumUnit = unitToUCUM(sourceUnit);\n const isQualitative = observation.isQualitative || typeof observation.value === 'string';\n\n // Base observation structure\n const fhirObs: FHIRObservation = {\n category: [\n {\n coding: [\n {\n code: 'laboratory',\n display: 'Laboratory',\n system: 'http://terminology.hl7.org/CodeSystem/observation-category',\n },\n ],\n },\n ],\n code: {\n coding: [\n {\n code: loincCode,\n display: observation.biomarkerName,\n system: 'http://loinc.org',\n },\n {\n code: observation.biomarkerCode,\n display: observation.biomarkerName,\n system: 'http://fhir-brasil.dev/biomarker-codes',\n },\n ],\n text: observation.biomarkerName,\n },\n effectiveDateTime: observation.collectionDate,\n id: `${observation.reportId}-${observation.biomarkerCode}`,\n interpretation: [\n {\n coding: [\n {\n code: interpretationCode(observation.flag),\n display: interpretationDisplay(observation.flag),\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n },\n ],\n },\n ],\n performer: laboratoryName ? [{ display: laboratoryName }] : undefined,\n resourceType: 'Observation',\n status: 'final',\n subject: {\n reference: `Patient/${patientId}`,\n },\n };\n\n // Add value based on type (qualitative = string, quantitative = number)\n if (isQualitative) {\n fhirObs.valueString = String(observation.value);\n } else {\n fhirObs.valueQuantity = {\n code: ucumUnit,\n system: 'http://unitsofmeasure.org',\n unit: sourceUnit,\n value: observation.value as number,\n };\n\n // Reference range only applies to quantitative values\n if (observation.referenceMin !== undefined && observation.referenceMax !== undefined) {\n fhirObs.referenceRange = [\n {\n high: {\n code: ucumUnit,\n system: 'http://unitsofmeasure.org',\n unit: sourceUnit,\n value: observation.referenceMax,\n },\n low: {\n code: ucumUnit,\n system: 'http://unitsofmeasure.org',\n unit: sourceUnit,\n value: observation.referenceMin,\n },\n },\n ];\n }\n }\n\n return fhirObs;\n}\n\n/**\n * Convert generic lab report to FHIR DiagnosticReport\n */\nexport function labReportToFHIR(\n report: LabReportData,\n patientId: string,\n observationIds: string[],\n): FHIRDiagnosticReport {\n // Map processing status to FHIR status\n let status: FHIRDiagnosticReport['status'];\n switch (report.processingStatus) {\n case 'complete':\n status = 'final';\n break;\n case 'partial':\n status = 'partial';\n break;\n case 'pending_review':\n status = 'preliminary';\n break;\n default:\n status = 'final';\n }\n\n return {\n category: [\n {\n coding: [\n {\n code: 'LAB',\n display: 'Laboratory',\n system: 'http://terminology.hl7.org/CodeSystem/v2-0074',\n },\n ],\n },\n ],\n code: {\n coding: [\n {\n code: '11502-2', // Laboratory report\n display: 'Laboratory report',\n system: 'http://loinc.org',\n },\n ],\n text: 'Laboratory Results',\n },\n conclusion:\n report.overallStatus === 'NORMAL'\n ? 'All results within normal limits'\n : 'One or more abnormal results detected',\n conclusionCode:\n report.overallStatus === 'ANORMAL'\n ? [\n {\n coding: [\n {\n code: 'A',\n display: 'Abnormal',\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n },\n ],\n },\n ]\n : undefined,\n effectiveDateTime: report.collectionDate,\n id: report.reportId,\n issued: report.createdAt,\n performer: report.laboratoryName ? [{ display: report.laboratoryName }] : undefined,\n resourceType: 'DiagnosticReport',\n result: observationIds.map((id) => ({ reference: `Observation/${id}` })),\n status,\n subject: {\n reference: `Patient/${patientId}`,\n },\n };\n}\n\n/**\n * Convert user profile to FHIR Patient\n * NOTE: CPF is intentionally excluded for privacy (LGPD compliance)\n */\nexport function userProfileToFHIR(profile: UserProfileData): FHIRPatient {\n const nameParts = profile.name.split(' ');\n const given = nameParts.slice(0, -1);\n const family = nameParts[nameParts.length - 1] || '';\n\n return {\n address: profile.address\n ? [\n {\n city: profile.address.city,\n country: profile.address.country || 'BR',\n line: [\n profile.address.street && profile.address.number\n ? `${profile.address.street}, ${profile.address.number}`\n : profile.address.street,\n profile.address.complement,\n ].filter(Boolean) as string[],\n postalCode: profile.address.postalCode,\n state: profile.address.state,\n },\n ]\n : undefined,\n birthDate: profile.birthDate,\n gender: profile.gender,\n id: profile.userId,\n name: [\n {\n family,\n given: given.length > 0 ? given : undefined,\n text: profile.name,\n },\n ],\n resourceType: 'Patient',\n telecom:\n [\n ...(profile.email ? [{ system: 'email' as const, value: profile.email }] : []),\n ...(profile.phone ? [{ system: 'phone' as const, value: profile.phone }] : []),\n ].length > 0\n ? [\n ...(profile.email ? [{ system: 'email' as const, value: profile.email }] : []),\n ...(profile.phone ? [{ system: 'phone' as const, value: profile.phone }] : []),\n ]\n : undefined,\n };\n}\n\n/**\n * Convert complete lab result to FHIR Bundle\n * This is the main function for exporting lab results to FHIR R4 format\n */\nexport function labResultToFHIRBundle(\n report: LabReportData,\n observations: LabObservationData[],\n userProfile: UserProfileData,\n): FHIRBundle {\n const patientId = userProfile.userId;\n\n // Convert observations\n const fhirObservations = observations.map((obs) => ({\n fullUrl: `urn:uuid:observation-${obs.reportId}-${obs.biomarkerCode}`,\n resource: labObservationToFHIR(\n { ...obs, collectionDate: report.collectionDate },\n patientId,\n report.laboratoryName,\n ),\n }));\n\n const observationIds = observations.map(\n (obs) => `observation-${obs.reportId}-${obs.biomarkerCode}`,\n );\n\n // Convert report\n const diagnosticReport = labReportToFHIR(report, patientId, observationIds);\n\n // Convert patient\n const fhirPatient = userProfileToFHIR(userProfile);\n\n return {\n entry: [\n {\n fullUrl: `urn:uuid:${patientId}`,\n resource: fhirPatient,\n },\n {\n fullUrl: `urn:uuid:diagnostic-report-${report.reportId}`,\n resource: diagnosticReport,\n },\n ...fhirObservations,\n ],\n resourceType: 'Bundle',\n type: 'collection',\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-PJJVDGX4.cjs","../src/converter.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-PJJVDGX4.cjs","sourcesContent":[null,"/**\n * FHIR Converter\n *\n * Converts lab results to FHIR R4 DiagnosticReport and Observation resources.\n * See: https://hl7.org/fhir/diagnosticreport.html\n */\n\nimport { codeToLoinc } from './biomarkers';\nimport type { FHIRBundle, FHIRDiagnosticReport, FHIRObservation, FHIRPatient } from './fhir-types';\nimport type { Flag, LabObservationData, LabReportData, UserProfileData } from './types';\nimport { getDefaultUnit, unitToUCUM } from './units';\n\n// Re-export all types and functions\nexport * from './fhir-types';\n\n/**\n * Convert Flag to FHIR interpretation code\n */\nfunction interpretationCode(flag: Flag): string {\n switch (flag) {\n case 'H':\n return 'H'; // High\n case 'L':\n return 'L'; // Low\n default:\n return 'N'; // Normal\n }\n}\n\n/**\n * Convert Flag to FHIR interpretation display\n */\nfunction interpretationDisplay(flag: Flag): string {\n switch (flag) {\n case 'H':\n return 'High';\n case 'L':\n return 'Low';\n default:\n return 'Normal';\n }\n}\n\n/**\n * Convert generic lab observation to FHIR Observation\n */\nexport function labObservationToFHIR(\n observation: LabObservationData,\n patientId: string,\n laboratoryName?: string,\n): FHIRObservation {\n const loincCode = codeToLoinc(observation.biomarkerCode) || '99999-9';\n // Use default unit if source unit is empty\n const sourceUnit =\n observation.unit || getDefaultUnit(observation.biomarkerCode) || observation.unit;\n const ucumUnit = unitToUCUM(sourceUnit);\n const isQualitative = observation.isQualitative || typeof observation.value === 'string';\n\n // Base observation structure\n const fhirObs: FHIRObservation = {\n category: [\n {\n coding: [\n {\n code: 'laboratory',\n display: 'Laboratory',\n system: 'http://terminology.hl7.org/CodeSystem/observation-category',\n },\n ],\n },\n ],\n code: {\n coding: [\n {\n code: loincCode,\n display: observation.biomarkerName,\n system: 'http://loinc.org',\n },\n {\n code: observation.biomarkerCode,\n display: observation.biomarkerName,\n system: 'http://fhir-brasil.dev/biomarker-codes',\n },\n ],\n text: observation.biomarkerName,\n },\n effectiveDateTime: observation.collectionDate,\n id: `${observation.reportId}-${observation.biomarkerCode}`,\n interpretation: [\n {\n coding: [\n {\n code: interpretationCode(observation.flag),\n display: interpretationDisplay(observation.flag),\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n },\n ],\n },\n ],\n performer: laboratoryName ? [{ display: laboratoryName }] : undefined,\n resourceType: 'Observation',\n status: 'final',\n subject: {\n reference: `Patient/${patientId}`,\n },\n };\n\n // Add value based on type (qualitative = string, quantitative = number)\n if (isQualitative) {\n fhirObs.valueString = String(observation.value);\n } else {\n fhirObs.valueQuantity = {\n code: ucumUnit,\n system: 'http://unitsofmeasure.org',\n unit: sourceUnit,\n value: observation.value as number,\n };\n\n // Reference range only applies to quantitative values\n if (observation.referenceMin !== undefined && observation.referenceMax !== undefined) {\n fhirObs.referenceRange = [\n {\n high: {\n code: ucumUnit,\n system: 'http://unitsofmeasure.org',\n unit: sourceUnit,\n value: observation.referenceMax,\n },\n low: {\n code: ucumUnit,\n system: 'http://unitsofmeasure.org',\n unit: sourceUnit,\n value: observation.referenceMin,\n },\n },\n ];\n }\n }\n\n return fhirObs;\n}\n\n/**\n * Convert generic lab report to FHIR DiagnosticReport\n */\nexport function labReportToFHIR(\n report: LabReportData,\n patientId: string,\n observationIds: string[],\n): FHIRDiagnosticReport {\n // Map processing status to FHIR status\n let status: FHIRDiagnosticReport['status'];\n switch (report.processingStatus) {\n case 'complete':\n status = 'final';\n break;\n case 'partial':\n status = 'partial';\n break;\n case 'pending_review':\n status = 'preliminary';\n break;\n default:\n status = 'final';\n }\n\n return {\n category: [\n {\n coding: [\n {\n code: 'LAB',\n display: 'Laboratory',\n system: 'http://terminology.hl7.org/CodeSystem/v2-0074',\n },\n ],\n },\n ],\n code: {\n coding: [\n {\n code: '11502-2', // Laboratory report\n display: 'Laboratory report',\n system: 'http://loinc.org',\n },\n ],\n text: 'Laboratory Results',\n },\n conclusion:\n report.overallStatus === 'NORMAL'\n ? 'All results within normal limits'\n : 'One or more abnormal results detected',\n conclusionCode:\n report.overallStatus === 'ANORMAL'\n ? [\n {\n coding: [\n {\n code: 'A',\n display: 'Abnormal',\n system: 'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation',\n },\n ],\n },\n ]\n : undefined,\n effectiveDateTime: report.collectionDate,\n id: report.reportId,\n issued: report.createdAt,\n performer: report.laboratoryName ? [{ display: report.laboratoryName }] : undefined,\n resourceType: 'DiagnosticReport',\n result: observationIds.map((id) => ({ reference: `Observation/${id}` })),\n status,\n subject: {\n reference: `Patient/${patientId}`,\n },\n };\n}\n\n/**\n * Convert user profile to FHIR Patient\n * NOTE: CPF is intentionally excluded for privacy (LGPD compliance)\n */\nexport function userProfileToFHIR(profile: UserProfileData): FHIRPatient {\n const nameParts = profile.name.split(' ');\n const given = nameParts.slice(0, -1);\n const family = nameParts[nameParts.length - 1] || '';\n\n return {\n address: profile.address\n ? [\n {\n city: profile.address.city,\n country: profile.address.country || 'BR',\n line: [\n profile.address.street && profile.address.number\n ? `${profile.address.street}, ${profile.address.number}`\n : profile.address.street,\n profile.address.complement,\n ].filter(Boolean) as string[],\n postalCode: profile.address.postalCode,\n state: profile.address.state,\n },\n ]\n : undefined,\n birthDate: profile.birthDate,\n gender: profile.gender,\n id: profile.userId,\n name: [\n {\n family,\n given: given.length > 0 ? given : undefined,\n text: profile.name,\n },\n ],\n resourceType: 'Patient',\n telecom:\n [\n ...(profile.email ? [{ system: 'email' as const, value: profile.email }] : []),\n ...(profile.phone ? [{ system: 'phone' as const, value: profile.phone }] : []),\n ].length > 0\n ? [\n ...(profile.email ? [{ system: 'email' as const, value: profile.email }] : []),\n ...(profile.phone ? [{ system: 'phone' as const, value: profile.phone }] : []),\n ]\n : undefined,\n };\n}\n\n/**\n * Convert complete lab result to FHIR Bundle\n * This is the main function for exporting lab results to FHIR R4 format\n */\nexport function labResultToFHIRBundle(\n report: LabReportData,\n observations: LabObservationData[],\n userProfile: UserProfileData,\n): FHIRBundle {\n const patientId = userProfile.userId;\n\n // Convert observations\n const fhirObservations = observations.map((obs) => ({\n fullUrl: `urn:uuid:observation-${obs.reportId}-${obs.biomarkerCode}`,\n resource: labObservationToFHIR(\n { ...obs, collectionDate: report.collectionDate },\n patientId,\n report.laboratoryName,\n ),\n }));\n\n const observationIds = observations.map(\n (obs) => `observation-${obs.reportId}-${obs.biomarkerCode}`,\n );\n\n // Convert report\n const diagnosticReport = labReportToFHIR(report, patientId, observationIds);\n\n // Convert patient\n const fhirPatient = userProfileToFHIR(userProfile);\n\n return {\n entry: [\n {\n fullUrl: `urn:uuid:${patientId}`,\n resource: fhirPatient,\n },\n {\n fullUrl: `urn:uuid:diagnostic-report-${report.reportId}`,\n resource: diagnosticReport,\n },\n ...fhirObservations,\n ],\n resourceType: 'Bundle',\n type: 'collection',\n };\n}\n"]}