@precisa-saude/fhir 0.8.0 → 0.9.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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-ZYSD6A2K.cjs","../src/units.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-ZYSD6A2K.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\nexport const BIOMARKER_UNITS: Record<string, BiomarkerUnitConfig> = {\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 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 Basophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n BMC: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\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 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 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_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\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 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 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 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 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 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_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 LeanMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\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 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_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\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 Monocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Neutrophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Platelets: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\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 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 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 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 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 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 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 '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/mL -> nmol/L': { divideByMW: true, scale: 1000 },\n 'nmol/L -> ng/dL': { divideByMW: false, scale: 10 },\n 'nmol/L -> ng/mL': { divideByMW: false, scale: 1000 },\n 'pg/mL -> pmol/L': { divideByMW: true, scale: 1000 },\n 'pmol/L -> pg/mL': { divideByMW: false, scale: 1000 },\n 'µmol/L -> mg/dL': { divideByMW: false, scale: 10_000 },\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"]}