@precisa-saude/fhir 0.38.0 → 0.38.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/biomarkers.cjs +2 -2
- package/dist/biomarkers.js +1 -1
- package/dist/{chunk-I6SPJDZ2.js → chunk-2J3V7DCF.js} +10 -2
- package/dist/{chunk-I6SPJDZ2.js.map → chunk-2J3V7DCF.js.map} +1 -1
- package/dist/{chunk-6G5NUPZI.cjs → chunk-46PNS7KW.cjs} +24 -9
- package/dist/chunk-46PNS7KW.cjs.map +1 -0
- package/dist/{chunk-3M3VH7WG.cjs → chunk-4O3QE7DU.cjs} +12 -3
- package/dist/chunk-4O3QE7DU.cjs.map +1 -0
- package/dist/{chunk-5HDQCJWQ.js → chunk-77N3LQNM.js} +3 -3
- package/dist/{chunk-5FMR2U7P.cjs → chunk-C3SMDNLC.cjs} +8 -1
- package/dist/chunk-C3SMDNLC.cjs.map +1 -0
- package/dist/{chunk-DE7ZCFMA.js → chunk-GG3MOT3C.js} +2 -2
- package/dist/{chunk-4WY5YFWA.cjs → chunk-IY6BZX2V.cjs} +11 -3
- package/dist/chunk-IY6BZX2V.cjs.map +1 -0
- package/dist/{chunk-L6I4OYGS.cjs → chunk-LUGMRMWY.cjs} +10 -10
- package/dist/{chunk-L6I4OYGS.cjs.map → chunk-LUGMRMWY.cjs.map} +1 -1
- package/dist/{chunk-FETBCXN6.cjs → chunk-NUFN24W4.cjs} +3 -3
- package/dist/{chunk-FETBCXN6.cjs.map → chunk-NUFN24W4.cjs.map} +1 -1
- package/dist/{chunk-EVWEFMOY.js → chunk-SIXIWFC5.js} +11 -2
- package/dist/chunk-SIXIWFC5.js.map +1 -0
- package/dist/{chunk-HQ26GOLI.js → chunk-SZV66GMI.js} +8 -1
- package/dist/chunk-SZV66GMI.js.map +1 -0
- package/dist/{chunk-NIYSBB33.cjs → chunk-VMID6CDC.cjs} +21 -3
- package/dist/chunk-VMID6CDC.cjs.map +1 -0
- package/dist/{chunk-I7RF7YWM.js → chunk-X2BYLSNK.js} +19 -4
- package/dist/chunk-X2BYLSNK.js.map +1 -0
- package/dist/{chunk-JFJY7ZR6.js → chunk-XVXLDN4Q.js} +21 -3
- package/dist/chunk-XVXLDN4Q.js.map +1 -0
- package/dist/cli.js +67 -3
- package/dist/converter.cjs +5 -5
- package/dist/converter.js +4 -4
- package/dist/importer.cjs +5 -5
- package/dist/importer.js +4 -4
- package/dist/index.cjs +24 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/dist/reference-ranges.cjs +4 -4
- package/dist/reference-ranges.js +3 -3
- package/dist/sources.cjs +2 -2
- package/dist/sources.js +1 -1
- package/dist/units.cjs +3 -3
- package/dist/units.js +2 -2
- package/dist/validators.cjs +4 -4
- package/dist/validators.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-3M3VH7WG.cjs.map +0 -1
- package/dist/chunk-4WY5YFWA.cjs.map +0 -1
- package/dist/chunk-5FMR2U7P.cjs.map +0 -1
- package/dist/chunk-6G5NUPZI.cjs.map +0 -1
- package/dist/chunk-EVWEFMOY.js.map +0 -1
- package/dist/chunk-HQ26GOLI.js.map +0 -1
- package/dist/chunk-I7RF7YWM.js.map +0 -1
- package/dist/chunk-JFJY7ZR6.js.map +0 -1
- package/dist/chunk-NIYSBB33.cjs.map +0 -1
- /package/dist/{chunk-5HDQCJWQ.js.map → chunk-77N3LQNM.js.map} +0 -0
- /package/dist/{chunk-DE7ZCFMA.js.map → chunk-GG3MOT3C.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-4WY5YFWA.cjs","../src/units.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-4WY5YFWA.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\nimport { BIOMARKER_DEFINITIONS } from './biomarkers';\n\n// ─── UCUM Mappings ───────────────────────────────────────────────────────────\n\n/**\n * Grafia impressa → código UCUM (Unified Code for Units of Measure).\n *\n * É a segunda fonte de `resolveUcum`, atrás de `BIOMARKER_UNITS`, e a única\n * para unidade que nenhum biomarcador configura. Cobre toda unidade declarada\n * em `biomarkers.ts`: o teste `loinc-axes.test.ts` confere isso, porque uma\n * unidade sem entrada aqui saía no FHIR como `code` sob o system do UCUM sem\n * ser UCUM (`uIU/mL`, `K/uL`, `razão`).\n *\n * `[IU]` e `[iU]` são o mesmo átomo no UCUM, nas grafias sensível e\n * insensível a caixa; esta tabela usa `[IU]` e `BIOMARKER_UNITS` usa `[iU]`.\n *\n * @see https://ucum.org/\n */\nexport const UNIT_TO_UCUM: Record<string, string> = {\n // Dimensionless / special measurements\n '[pH]': '[pH]',\n '{index}': '{index}',\n '{ratio}': '{ratio}',\n '{score}': '{score}',\n '{specific gravity}': '{specific gravity}',\n\n '/HPF': '/[HPF]',\n '/LPF': '/[LPF]',\n '/µL': '/uL',\n // Percentage\n '%': '%',\n // Count units\n '10³/µL': '10*3/uL',\n '10⁶/µL': '10*6/uL',\n Angstrom: 'Ao',\n AU: '{score}',\n cm: 'cm',\n 'cm³': 'cm3',\n deg: 'deg',\n // Volume\n fL: 'fL',\n g: 'g',\n 'g/cm²': 'g/cm2',\n\n // Mass concentration\n 'g/dL': 'g/dL',\n 'g/L': 'g/L',\n 'IU/L': '[IU]/L',\n 'IU/mL': '[IU]/mL',\n 'K/uL': '10*3/uL',\n 'kcal/d': 'kcal/d',\n kg: 'kg',\n 'kg/m2': 'kg/m2',\n 'kg/m²': 'kg/m2',\n 'kU/L': 'k[IU]/L',\n L: 'L',\n 'M/uL': '10*6/uL',\n 'mcg/dL': 'ug/dL',\n 'mcg/L': 'ug/L',\n 'mcg/mL': 'ug/mL',\n // Molar concentration\n 'mEq/L': 'meq/L',\n\n mg: 'mg',\n 'mg/dL': 'mg/dL',\n 'mg/g': 'mg/g',\n 'mg/L': 'mg/L',\n 'mIU/L': 'm[IU]/L',\n 'mIU/mL': 'm[IU]/mL',\n mL: 'mL',\n 'mL/min/1.73m²': 'mL/min/{1.73_m2}',\n mm: 'mm',\n 'mm/h': 'mm/h',\n 'mm/hr': 'mm/h',\n 'mmol/L': 'mmol/L',\n 'mUI/L': 'm[IU]/L',\n 'mUI/mL': 'm[IU]/mL',\n\n ng: 'ng',\n\n 'ng/dL': 'ng/dL',\n 'ng/L': 'ng/L',\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 'pmol/L': 'pmol/L',\n razão: '{ratio}',\n score: '{score}',\n segundos: 's',\n // Enzyme activity\n U: 'U',\n 'U/L': 'U/L',\n // Special units\n 'U/mL': 'U/mL',\n 'ug/dL': 'ug/dL',\n 'ug/L': 'ug/L',\n 'UI/L': '[IU]/L',\n\n 'UI/mL': '[IU]/mL',\n 'uIU/mL': 'u[IU]/mL',\n 'umol/L': 'umol/L',\n\n µg: 'ug',\n 'µg/dL': 'ug/dL',\n 'µg/L': 'ug/L',\n 'µmol/L': 'umol/L',\n 'µUI/mL': 'u[IU]/mL',\n índice: '{index}',\n};\n\n/**\n * Unidades adimensionais de urina, que a definição não declara porque o laudo\n * não as imprime: a densidade sai como `1.020` e o pH como `6.0`, sem unidade.\n * Quando o laudo não traz unidade, o FHIR ainda precisa de uma, e estas são\n * as do UCUM.\n */\nconst DIMENSIONLESS_DEFAULTS: Record<string, string> = {\n pH_Urine: '[pH]',\n SpecificGravity_Urine: '{specific gravity}',\n};\n\n/**\n * Unidade padrão de cada biomarcador, usada quando o laudo não imprime uma.\n *\n * Derivada de `unit` em `biomarkers.ts`, que é a fonte única. Até out/2026\n * era uma segunda tabela escrita à mão, e as duas divergiam: TSH era\n * `µUI/mL` aqui e `uIU/mL` lá, ferro era `µg/dL` aqui e `mcg/dL` lá. Duas\n * fontes para a mesma unidade é o que faz o `fhir-bio units` e o `fhir-bio\n * range` responderem coisas diferentes para o mesmo código.\n */\nexport const BIOMARKER_DEFAULT_UNIT: Record<string, string> = {\n ...Object.fromEntries(\n BIOMARKER_DEFINITIONS.filter((b) => b.unit).map((b) => [b.code, b.unit as string]),\n ),\n ...DIMENSIONLESS_DEFAULTS,\n};\n\n/**\n * Convert unit to UCUM format\n *\n * Devolve a entrada intacta quando não conhece a unidade. Para montar um\n * `Quantity` FHIR use `resolveUcum`, que diz \"não sei\" em vez de devolver\n * uma grafia qualquer como se fosse UCUM.\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// ─── UCUM syntax ─────────────────────────────────────────────────────────────\n\n/**\n * Átomos do UCUM que aparecem em laudo clínico, mais as bases do SI.\n *\n * Não é a tabela inteira do UCUM, que tem centenas de átomos. É a lista que\n * basta para dizer que `uIU/mL` não é UCUM (`IU` não é átomo; `[IU]` é) e que\n * `10*3/uL` é. Átomo fora desta lista cai em \"não é UCUM\", e o jeito certo de\n * aceitá-lo é acrescentá-lo aqui, com o laudo que o imprimiu.\n */\nconst UCUM_ATOMS = new Set([\n 'm',\n 'g',\n 's',\n 'L',\n 'l',\n 'mol',\n 'eq',\n 'U',\n 'cal',\n 'h',\n 'd',\n 'min',\n 'wk',\n 'mo',\n 'a',\n 'Ao',\n 'deg',\n 'K',\n 'A',\n 'N',\n 'Pa',\n 'J',\n 'W',\n 'Hz',\n 'V',\n 'C',\n 'osm',\n 't',\n 'u',\n 'bar',\n 'atm',\n 'rad',\n 'sr',\n 'cd',\n 'Bq',\n 'Gy',\n 'Sv',\n 'lm',\n 'lx',\n 'Cel',\n 'B',\n 'Np',\n]);\n\n/** Prefixos do UCUM, do yotta ao yocto. `da` (deca) é o único com duas letras. */\nconst UCUM_PREFIXES = new Set([\n 'Y',\n 'Z',\n 'E',\n 'P',\n 'T',\n 'G',\n 'M',\n 'k',\n 'h',\n 'da',\n 'd',\n 'c',\n 'm',\n 'u',\n 'n',\n 'p',\n 'f',\n 'a',\n 'z',\n 'y',\n]);\n\n/**\n * Um átomo com prefixo opcional: `g`, `mg`, `[IU]`, `u[IU]`, `10*3`, `%`.\n *\n * O prefixo só vale na frente de átomo métrico, e o UCUM marca essa\n * propriedade átomo a átomo. Aqui a regra é mais frouxa, prefixo na frente de\n * qualquer átomo, porque o que se quer pegar é grafia que não é UCUM de jeito\n * nenhum, e não o caso de borda `kdeg`.\n */\nfunction isUcumAtom(token: string): boolean {\n if (token === '%' || /^10\\*-?\\d+$/.test(token) || /^\\d+$/.test(token)) return true;\n // Átomo entre colchetes: `[IU]`, `[HPF]`, `[lb_av]`, `[pH]`. Com prefixo:\n // `u[IU]`, `m[IU]`, `k[IU]`.\n const bracket = /^([A-Za-z]{0,2})\\[[^[\\]{}\\s]+\\]$/.exec(token);\n if (bracket) return bracket[1] === '' || UCUM_PREFIXES.has(bracket[1] as string);\n if (UCUM_ATOMS.has(token)) return true;\n for (const prefix of UCUM_PREFIXES) {\n if (token.startsWith(prefix) && UCUM_ATOMS.has(token.slice(prefix.length))) return true;\n }\n return false;\n}\n\n/**\n * Um componente: átomo com expoente opcional e anotação opcional, ou anotação\n * sozinha. `m2`, `cm3`, `[in_i]3`, `mL{total}`, `{ratio}`.\n *\n * A anotação aceita qualquer caractere que não seja chave, que é o que a\n * especificação diz dela: texto sem interpretação. `{specific gravity}` passa\n * por isso, mesmo com espaço.\n */\nfunction isUcumComponent(token: string): boolean {\n const m = /^(.*?)(\\{[^{}]*\\})?$/.exec(token);\n if (!m) return false;\n const [, body, annotation] = m;\n if (!body) return annotation !== undefined;\n const exp = /^(.+?)([+-]?\\d+)?$/.exec(body as string);\n if (!exp) return false;\n const [, atom, exponent] = exp;\n // `10*3` termina em dígito e não tem expoente; o regex ganancioso já\n // separou errado, então tenta o token inteiro como átomo primeiro.\n if (isUcumAtom(body as string)) return true;\n if (exponent === undefined) return false;\n return isUcumAtom(atom as string);\n}\n\n/**\n * Diz se a string é sintaticamente UCUM: componentes ligados por `.` e `/`,\n * com `/` inicial permitido (`/[HPF]`).\n *\n * É sintaxe, não semântica: `K/uL` passa porque `K` é kelvin, e nada aqui sabe\n * que o laudo quis dizer milhares. É o que `resolveUcum` e `BIOMARKER_UNITS`\n * resolvem antes de a string chegar aqui. O que este check pega é o resto:\n * grafia em português, `µ` fora do ASCII, `IU` sem colchetes, `hr`.\n *\n * O `.` e o `/` só separam fora de chaves e colchetes: `mL/min/{1.73_m2}` tem\n * um ponto dentro da anotação, e `[in_i]` poderia ter um operador dentro do\n * átomo.\n */\nexport function isUcumCode(code: string): boolean {\n if (!code || /[^\\x21-\\x7E ]/.test(code)) return false;\n const terms: string[] = [];\n let current = '';\n let braces = 0;\n let inBracket = false;\n for (const ch of code) {\n if (ch === '{') braces++;\n else if (ch === '}') {\n if (braces === 0) return false;\n braces--;\n } else if (ch === '[') inBracket = true;\n else if (ch === ']') inBracket = false;\n if ((ch === '.' || ch === '/') && braces === 0 && !inBracket) {\n terms.push(current, ch);\n current = '';\n continue;\n }\n current += ch;\n }\n if (braces !== 0 || inBracket) return false;\n terms.push(current);\n // `/[HPF]` é `1/[HPF]` com o numerador implícito.\n if (terms[0] === '' && terms[1] === '/') terms[0] = '1';\n\n let expectOperand = true;\n for (const t of terms) {\n if (expectOperand) {\n if (!isUcumComponent(t)) return false;\n } else if (t !== '.' && t !== '/') {\n return false;\n }\n expectOperand = !expectOperand;\n }\n return !expectOperand;\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 // O BUN em mmol/L é expresso como ureia: cada molécula de ureia tem dois\n // nitrogênios, então a massa que entra na conversão é a de N2 (2 × 14,007),\n // e não a da ureia (60,06) usada em `Urea`. 14 mg/dL de BUN ≈ 5 mmol/L.\n BUN: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 28.0134,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\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: 'm[iU]/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 // Imunoglobulinas: canônica em mg/dL, a unidade da faixa de referência\n // (Tietz) e a que laboratórios brasileiros e americanos imprimem. g/L fica\n // como unidade SI; a conversão é exata (g/L × 100 = mg/dL, em FIXED_FACTORS).\n IgA: {\n aliases: { 'g/l': 'g/L', 'mg/dl': 'mg/dL' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n IgG: {\n aliases: { 'g/l': 'g/L', 'mg/dl': 'mg/dL' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\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: 'm[iU]/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 // Troponina T: canônica em ng/L (hs-cTnT). O ensaio convencional imprime em\n // ng/mL, que é a mesma grandeza que µg/L; converte por fator exato\n // (ng/mL × 1000 = ng/L, em FIXED_FACTORS). pg/mL é a mesma unidade que ng/L\n // e entra como alias, como em VitaminB12.\n TroponinT: {\n aliases: {\n 'mcg/l': 'ng/mL',\n 'microg/l': 'ng/mL',\n 'ng/l': 'ng/L',\n 'ng/ml': 'ng/mL',\n 'pg/ml': 'ng/L',\n 'ug/l': 'ng/mL',\n 'µg/l': 'ng/mL',\n },\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: 'm[iU]/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/L -> ng/mL': 0.001,\n 'ng/mL -> ng/L': 1000,\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\n/**\n * Código UCUM para a unidade que o laudo imprimiu, ou `undefined`.\n *\n * Ordem: a configuração do biomarcador em `BIOMARKER_UNITS` (que já sabe que\n * `K/uL` de leucócito é `10*3/uL`), depois a tabela `UNIT_TO_UCUM`, e por\n * último a própria string, se for UCUM sintaticamente válido. Fora disso é\n * `undefined`, e o conversor deixa o `Quantity` só com `unit`: unidade que\n * não se sabe traduzir não sai sob `http://unitsofmeasure.org`.\n *\n * Até out/2026 o conversor só consultava a tabela e devolvia a entrada\n * intacta quando não achava, então `uIU/mL`, `K/uL` e `razão` saíam como\n * código UCUM, e os 85 `canonicalUcum` de `BIOMARKER_UNITS` não eram lidos\n * por ninguém fora de `units.ts`.\n */\nexport function resolveUcum(unit: string, biomarkerCode?: string): string | undefined {\n if (!unit) return undefined;\n const config = biomarkerCode ? BIOMARKER_UNITS[biomarkerCode] : undefined;\n if (config) {\n const normalized = normalizeUnit(unit, config);\n if (normalized === config.canonicalUnit) return config.canonicalUcum;\n if (normalized === config.siUnit) return config.siUcum;\n }\n const mapped = UNIT_TO_UCUM[unit];\n if (mapped) return mapped;\n return isUcumCode(unit) ? unit : undefined;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-5FMR2U7P.cjs","../src/sources.ts"],"names":[],"mappings":"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","file":"/home/runner/work/fhir-brasil/fhir-brasil/packages/core/dist/chunk-5FMR2U7P.cjs","sourcesContent":[null,"/**\n * Registro de fontes bibliográficas para faixas de referência de biomarcadores.\n *\n * Exportado na API pública desde a 0.32: o campo `source` de cada faixa é uma\n * chave, e sem o registro ao lado ela não resolve para lugar nenhum. Quem\n * consome via `@precisa-saude/fhir/sources` ou pelo `fhir-bio source`.\n *\n * Todas as citações seguem o formato ABNT (NBR 6023).\n */\n\n/**\n * Referência bibliográfica completa para uma fonte de faixas de referência.\n */\nexport interface SourceReference {\n /** Citação completa em formato ABNT (NBR 6023) */\n abnt: string;\n /** DOI, quando disponível */\n doi?: string;\n /** ISBN, quando aplicável */\n isbn?: string;\n /** Chave curta usada no campo `source` de BiomarkerRangeDefinition */\n key: string;\n /** URL de acesso */\n url?: string;\n}\n\n/**\n * Registro central de todas as fontes bibliográficas utilizadas nas faixas de referência.\n *\n * Cada chave corresponde ao valor usado no campo `source` de `BiomarkerRangeDefinition`\n * (sem o sufixo de localização, ex: `'sbc-lipids-2017'` sem `':p15'`).\n */\nexport const SOURCE_REGISTRY: Record<string, SourceReference> = {\n // ---------------------------------------------------------------------------\n // Fontes internacionais — Cardiovascular\n // ---------------------------------------------------------------------------\n 'agatston-1990': {\n abnt: 'AGATSTON, A. S. et al. Quantification of coronary artery calcium using ultrafast computed tomography. Journal of the American College of Cardiology, v. 15, n. 4, p. 827-832, 1990.',\n doi: '10.1016/0735-1097(90)90282-T',\n key: 'agatston-1990',\n url: 'https://pubmed.ncbi.nlm.nih.gov/2407762/',\n },\n\n 'browning-ashwell-2010': {\n abnt: 'BROWNING, L. M.; HSIEH, S. D.; ASHWELL, M. A systematic review of waist-to-height ratio as a screening tool for the prediction of cardiovascular disease and diabetes: 0,5 could be a suitable global boundary value. Nutrition Research Reviews, v. 23, n. 2, p. 247-269, 2010.',\n doi: '10.1017/S0954422410000144',\n key: 'browning-ashwell-2010',\n url: 'https://pubmed.ncbi.nlm.nih.gov/20819243/',\n },\n\n 'castelli-ratio-1992': {\n abnt: 'CASTELLI, W. P. et al. Lipids and risk of coronary heart disease: the Framingham Study. Annals of Epidemiology, v. 2, n. 1-2, p. 23-28, 1992.',\n doi: '10.1016/1047-2797(92)90033-M',\n key: 'castelli-ratio-1992',\n url: 'https://pubmed.ncbi.nlm.nih.gov/1342260/',\n },\n\n 'caulfield-ionmobility-2008': {\n abnt: 'CAULFIELD, M. P. et al. Direct determination of lipoprotein particle sizes and concentrations by ion mobility analysis. Clinical Chemistry, v. 54, n. 8, p. 1307-1316, 2008.',\n doi: '10.1373/clinchem.2007.100586',\n key: 'caulfield-ionmobility-2008',\n url: 'https://pubmed.ncbi.nlm.nih.gov/18515257/',\n },\n\n 'contois-apoa1-1996': {\n abnt: 'CONTOIS, J. H. et al. Reference intervals for plasma apolipoprotein A-1 determined with a standardized commercial immunoturbidimetric assay: results from the Framingham Offspring Study. Clinical Chemistry, v. 42, n. 4, p. 507-514, 1996.',\n doi: '10.1093/clinchem/42.4.507',\n key: 'contois-apoa1-1996',\n url: 'https://pubmed.ncbi.nlm.nih.gov/8605666/',\n },\n\n 'ewgsop2-2019': {\n abnt: 'CRUZ-JENTOFT, A. J. et al. Sarcopenia: revised European consensus on definition and diagnosis. Age and Ageing, v. 48, n. 1, p. 16-31, 2019.',\n doi: '10.1093/ageing/afy169',\n key: 'ewgsop2-2019',\n url: 'https://pubmed.ncbi.nlm.nih.gov/30312372/',\n },\n\n 'ferreira-vitd-2017': {\n abnt: 'FERREIRA, C. E. S. et al. Posicionamento oficial da Sociedade Brasileira de Patologia Clínica/Medicina Laboratorial e da Sociedade Brasileira de Endocrinologia e Metabologia sobre intervalos de referência da vitamina D [25(OH)D]. Archives of Endocrinology and Metabolism, v. 61, n. 6, p. 527-542, 2017.',\n doi: '10.1590/2359-3997000000310',\n key: 'ferreira-vitd-2017',\n url: 'https://pubmed.ncbi.nlm.nih.gov/29412389/',\n },\n\n 'friedewald-1972': {\n abnt: 'FRIEDEWALD, W. T.; LEVY, R. I.; FREDRICKSON, D. S. Estimation of the concentration of low-density lipoprotein cholesterol in plasma, without use of the preparative ultracentrifuge. Clinical Chemistry, v. 18, n. 6, p. 499-502, 1972.',\n doi: '10.1093/clinchem/18.6.499',\n key: 'friedewald-1972',\n url: 'https://pubmed.ncbi.nlm.nih.gov/4337382/',\n },\n\n 'gallagher-bodyfat-2000': {\n abnt: 'GALLAGHER, D. et al. Healthy percentage body fat ranges: an approach for developing guidelines based on body mass index. American Journal of Clinical Nutrition, v. 72, n. 3, p. 694-701, 2000.',\n key: 'gallagher-bodyfat-2000',\n url: 'https://pubmed.ncbi.nlm.nih.gov/10966886/',\n },\n\n 'ge-corescan': {\n abnt: 'GE HEALTHCARE. enCORE Software CoreScan: Visceral Adipose Tissue (VAT) assessment. Madison: GE Medical Systems Lunar, [s. d.]. (Documentação do fabricante do DEXA Lunar Prodigy; classificação Healthy 0–52 in³, Increased Risk 52,15–112,10 in³, At Risk 112,10+ in³, equivalente a 0–852 cm³, 854–1.837 cm³, 1.837+ cm³.)',\n key: 'ge-corescan',\n url: 'https://www.gehealthcare.com/products/bone-and-metabolic-health/encore',\n },\n\n 'geloneze-brams-2009': {\n abnt: 'GELONEZE, B. et al. HOMA1-IR and HOMA2-IR indexes in identifying insulin resistance and metabolic syndrome — Brazilian Metabolic Syndrome Study (BRAMS). Arquivos Brasileiros de Endocrinologia & Metabologia, v. 53, n. 2, p. 281-287, 2009.',\n doi: '10.1590/S0004-27302009000200020',\n key: 'geloneze-brams-2009',\n url: 'https://pubmed.ncbi.nlm.nih.gov/19466221/',\n },\n\n 'george-ck-2016': {\n abnt: 'GEORGE, M. D.; MCGILL, N. K.; BAKER, J. F. Creatine kinase in the U.S. population: impact of demographics, comorbidities, and body composition on the normal range. Medicine, v. 95, n. 33, e4344, 2016.',\n doi: '10.1097/MD.0000000000004344',\n key: 'george-ck-2016',\n url: 'https://pubmed.ncbi.nlm.nih.gov/27537560/',\n },\n\n 'giannitsis-hstnt-2010': {\n abnt: 'GIANNITSIS, E. et al. Analytical validation of a high-sensitivity cardiac troponin T assay. Clinical Chemistry, v. 56, n. 2, p. 254-261, 2010.',\n doi: '10.1373/clinchem.2009.132654',\n key: 'giannitsis-hstnt-2010',\n url: 'https://pubmed.ncbi.nlm.nih.gov/19959623/',\n },\n\n 'glis-2024': {\n abnt: 'KIRK, B. et al. The conceptual definition of sarcopenia: Delphi consensus from the Global Leadership Initiative in Sarcopenia (GLIS). Age and Ageing, v. 53, n. 3, afae052, 2024.',\n doi: '10.1093/ageing/afae052',\n key: 'glis-2024',\n url: 'https://pubmed.ncbi.nlm.nih.gov/38520141/',\n },\n // ---------------------------------------------------------------------------\n // Fontes internacionais — Ácidos graxos ômega\n // ---------------------------------------------------------------------------\n 'harris-omega3-2004': {\n abnt: 'HARRIS, W. S.; VON SCHACKY, C. The Omega-3 Index: a new risk factor for death from coronary heart disease? Preventive Medicine, v. 39, n. 1, p. 212-220, 2004.',\n doi: '10.1016/j.ypmed.2004.02.030',\n key: 'harris-omega3-2004',\n url: 'https://pubmed.ncbi.nlm.nih.gov/15208005/',\n },\n\n // ---------------------------------------------------------------------------\n // Referência laboratorial geral\n // ---------------------------------------------------------------------------\n 'kalaria-ck-ri-2026': {\n abnt: 'KALARIA, T. et al. Age, sex and ethnicity changes in creatine kinase and sex- and ethnicity-specific reference intervals of creatine kinase. Clinical Medicine, v. 26, n. 4, p. 100596, 2026.',\n doi: '10.1016/j.clinme.2026.100596',\n key: 'kalaria-ck-ri-2026',\n url: 'https://pubmed.ncbi.nlm.nih.gov/42142664/',\n },\n\n // ---------------------------------------------------------------------------\n // Fontes internacionais — Nefrologia\n // ---------------------------------------------------------------------------\n 'kdigo-ckd-2024': {\n abnt: 'KIDNEY DISEASE: IMPROVING GLOBAL OUTCOMES (KDIGO) CKD Work Group. KDIGO 2024 Clinical Practice Guideline for the Evaluation and Management of Chronic Kidney Disease. Kidney International, v. 105, n. 4S, p. S117-S314, 2024.',\n doi: '10.1016/j.kint.2023.10.018',\n key: 'kdigo-ckd-2024',\n url: 'https://pubmed.ncbi.nlm.nih.gov/38490803/',\n },\n\n 'keller-tni-2013': {\n abnt: 'KELLER, T. et al. Defining a reference population to determine the 99th percentile of a contemporary sensitive cardiac troponin I assay. International Journal of Cardiology, v. 167, n. 4, p. 1423-1429, 2013.',\n doi: '10.1016/j.ijcard.2012.04.063',\n key: 'keller-tni-2013',\n url: 'https://pubmed.ncbi.nlm.nih.gov/22560907/',\n },\n\n 'kelly-dxa-2009': {\n abnt: 'KELLY, T. L. et al. Dual energy X-ray absorptiometry body composition reference values from NHANES. PLoS One, v. 4, n. 9, e7038, 2009.',\n doi: '10.1371/journal.pone.0007038',\n key: 'kelly-dxa-2009',\n url: 'https://pubmed.ncbi.nlm.nih.gov/19753111/',\n },\n\n 'khetarpal-apociii-2016': {\n abnt: 'KHETARPAL, S. A. et al. Why is apolipoprotein CIII emerging as a novel therapeutic target to reduce the burden of cardiovascular disease? Current Atherosclerosis Reports, v. 18, n. 10, p. 59, 2016.',\n key: 'khetarpal-apociii-2016',\n url: 'https://pmc.ncbi.nlm.nih.gov/articles/PMC5018018/',\n },\n\n 'klee-bhb-2020': {\n abnt: 'KLEE, P. et al. Test validation, method comparison and reference range for the measurement of β-hydroxybutyrate in peripheral blood samples. Practical Laboratory Medicine, v. 18, e00146, 2020.',\n doi: '10.1016/j.plabm.2019.e00146',\n key: 'klee-bhb-2020',\n url: 'https://pmc.ncbi.nlm.nih.gov/articles/PMC6999181/',\n },\n\n 'maisel-bnp-2002': {\n abnt: 'MAISEL, A. S. et al. Rapid measurement of B-type natriuretic peptide in the emergency diagnosis of heart failure. New England Journal of Medicine, v. 347, n. 3, p. 161-167, 2002.',\n doi: '10.1056/NEJMoa020233',\n key: 'maisel-bnp-2002',\n url: 'https://pubmed.ncbi.nlm.nih.gov/12124404/',\n },\n\n 'meuwese-mpo-2007': {\n abnt: 'MEUWESE, M. C. et al. Serum myeloperoxidase levels are associated with the future risk of coronary artery disease in apparently healthy individuals: the EPIC-Norfolk Prospective Population Study. Journal of the American College of Cardiology, v. 50, n. 2, p. 159-165, 2007.',\n doi: '10.1016/j.jacc.2007.03.033',\n key: 'meuwese-mpo-2007',\n url: 'https://pubmed.ncbi.nlm.nih.gov/17616301/',\n },\n\n // ---------------------------------------------------------------------------\n // Fontes internacionais — Marcadores metabólicos e inflamatórios\n // ---------------------------------------------------------------------------\n 'nemeth-adma-2017': {\n abnt: 'NEMETH, B. et al. The issue of plasma asymmetric dimethylarginine reference range: a systematic review and meta-analysis. PLoS One, v. 12, n. 5, e0177493, 2017.',\n doi: '10.1371/journal.pone.0177493',\n key: 'nemeth-adma-2017',\n url: 'https://pubmed.ncbi.nlm.nih.gov/28494019/',\n },\n\n // ---------------------------------------------------------------------------\n // Fontes brasileiras — Metais pesados (NR-7)\n // ---------------------------------------------------------------------------\n 'nr7-pcmso-2020': {\n abnt: 'BRASIL. Ministério do Trabalho e Emprego. NR-7 — PCMSO, Quadro 1: Indicadores biológicos. Portaria n. 6.734, de 9 de março de 2020. Diário Oficial da União, Brasília, 13 mar. 2020.',\n key: 'nr7-pcmso-2020',\n url: 'https://www.gov.br/trabalho-e-emprego/pt-br/assuntos/inspecao-do-trabalho/seguranca-e-saude-no-trabalho/sst-portarias/2022/portaria-no-567-de-10-de-marco-de-2022-alteracoes-na-nr-7.pdf',\n },\n\n 'ofenheimer-vat-2020': {\n abnt: 'OFENHEIMER, A. et al. Reference values of body composition parameters and visceral adipose tissue (VAT) by DXA in adults aged 18-81 years: results from the LEAD cohort. European Journal of Clinical Nutrition, v. 74, p. 1181-1191, 2020.',\n doi: '10.1038/s41430-020-0596-5',\n key: 'ofenheimer-vat-2020',\n url: 'https://pubmed.ncbi.nlm.nih.gov/32123345/',\n },\n\n 'pns-bioquimica-2019': {\n abnt: 'SZWARCWALD, C. L. et al. Valores de referência para exames laboratoriais de colesterol, hemoglobina glicosilada e creatinina da população adulta brasileira. Revista Brasileira de Epidemiologia, v. 22, supl. 2, e190002.supl.2, 2019.',\n doi: '10.1590/1980-549720190002.supl.2',\n key: 'pns-bioquimica-2019',\n url: 'https://pubmed.ncbi.nlm.nih.gov/31596373/',\n },\n\n // ---------------------------------------------------------------------------\n // Pesquisa Nacional de Saúde (PNS) — Intervalos de referência brasileiros\n // ---------------------------------------------------------------------------\n 'pns-hemograma-2019': {\n abnt: 'ROSENFELD, L. G. et al. Valores de referência para exames laboratoriais de hemograma da população adulta brasileira: Pesquisa Nacional de Saúde. Revista Brasileira de Epidemiologia, v. 22, supl. 2, e190003.supl.2, 2019.',\n doi: '10.1590/1980-549720190003.supl.2',\n key: 'pns-hemograma-2019',\n url: 'https://pubmed.ncbi.nlm.nih.gov/31596374/',\n },\n\n 'pns-renal-2019': {\n abnt: 'MALTA, D. C. et al. Evaluation of renal function in the Brazilian adult population, according to laboratory criteria from the National Health Survey. Revista Brasileira de Epidemiologia, v. 22, supl. 2, e190010.supl.2, 2019.',\n doi: '10.1590/1980-549720190010.supl.2',\n key: 'pns-renal-2019',\n url: 'https://pubmed.ncbi.nlm.nih.gov/31596381/',\n },\n\n 'rumberger-cac-1999': {\n abnt: 'RUMBERGER, J. A. et al. Electron beam computed tomographic coronary calcium scanning: a review and guidelines for use in asymptomatic persons. Mayo Clinic Proceedings, v. 74, n. 3, p. 243-252, 1999.',\n doi: '10.4065/74.3.243',\n key: 'rumberger-cac-1999',\n url: 'https://pubmed.ncbi.nlm.nih.gov/10089993/',\n },\n\n 'sbc-ic-2018': {\n abnt: 'ROHDE, L. E. P. et al. Diretriz Brasileira de Insuficiência Cardíaca Crônica e Aguda. Arquivos Brasileiros de Cardiologia, São Paulo, v. 111, n. 3, p. 436-539, set. 2018.',\n doi: '10.5935/abc.20180190',\n key: 'sbc-ic-2018',\n url: 'https://pubmed.ncbi.nlm.nih.gov/30379264/',\n },\n\n // ---------------------------------------------------------------------------\n // Sociedade Brasileira de Cardiologia\n // ---------------------------------------------------------------------------\n 'sbc-lipids-2017': {\n abnt: 'FALUDI, A. A. et al. Atualização da Diretriz Brasileira de Dislipidemias e Prevenção da Aterosclerose – 2017. Arquivos Brasileiros de Cardiologia, São Paulo, v. 109, n. 2, supl. 1, p. 1-76, ago. 2017.',\n doi: '10.5935/abc.20170121',\n key: 'sbc-lipids-2017',\n url: 'https://www.scielo.br/j/abc/a/whBsCyzTDzGYJcsBY7YVkWn/?lang=pt',\n },\n\n 'sbc-lipids-2025': {\n abnt: 'RACHED, F. H. et al. Diretriz Brasileira de Dislipidemias e Prevenção da Aterosclerose – 2025. Arquivos Brasileiros de Cardiologia, São Paulo, v. 122, n. 9, e20250640, out. 2025.',\n doi: '10.36660/abc.20250640',\n key: 'sbc-lipids-2025',\n url: 'https://pmc.ncbi.nlm.nih.gov/articles/PMC12674852/',\n },\n\n // ---------------------------------------------------------------------------\n // Sociedade Brasileira de Diabetes\n // ---------------------------------------------------------------------------\n 'sbd-diabetes-2024': {\n // Chave mantida como 'sbd-diabetes-2024' para compatibilidade com\n // consumidores publicados; a diretriz correspondente é o documento vivo\n // de diretriz.diabetes.org.br, cuja edição citada quando este registro foi\n // atualizado é \"Edição 2025\". Semelhante ao caso de sbpc-ml-2021 abaixo.\n abnt: 'SOCIEDADE BRASILEIRA DE DIABETES (SBD). Diretriz da Sociedade Brasileira de Diabetes — Edição 2025. São Paulo: SBD, 2025.',\n doi: '10.29327/5660187',\n isbn: '978-65-272-1932-3',\n key: 'sbd-diabetes-2024',\n url: 'https://diretriz.diabetes.org.br',\n },\n\n // ---------------------------------------------------------------------------\n // Sociedade Brasileira de Endocrinologia e Metabologia\n // ---------------------------------------------------------------------------\n 'sbem-thyroid-2013': {\n abnt: 'SGARBI, J. A. et al. Consenso brasileiro para a abordagem clínica e tratamento do hipotireoidismo subclínico em adultos. Arquivos Brasileiros de Endocrinologia & Metabologia, v. 57, n. 3, p. 166-183, 2013.',\n doi: '10.1590/S0004-27302013000300003',\n key: 'sbem-thyroid-2013',\n url: 'https://pubmed.ncbi.nlm.nih.gov/23681263/',\n },\n 'sbem-vitamind-2014': {\n abnt: 'MAEDA, S. S. et al. Recomendações da Sociedade Brasileira de Endocrinologia e Metabologia (SBEM) para o diagnóstico e tratamento da hipovitaminose D. Arquivos Brasileiros de Endocrinologia & Metabologia, v. 58, n. 5, p. 411-433, 2014.',\n doi: '10.1590/0004-2730000003388',\n key: 'sbem-vitamind-2014',\n url: 'https://pubmed.ncbi.nlm.nih.gov/25166032/',\n },\n\n // ---------------------------------------------------------------------------\n // Sociedade Brasileira de Patologia Clínica / Medicina Laboratorial\n // ---------------------------------------------------------------------------\n 'sbpc-ml-2021': {\n // Chave mantida como 'sbpc-ml-2021' para compatibilidade com consumidores;\n // a edição autoritativa é de 2020 (verificada na Biblioteca Digital SBPC/ML\n // em 2026-04-18). Ano na citação ABNT reflete a edição real.\n abnt: 'SOCIEDADE BRASILEIRA DE PATOLOGIA CLÍNICA/MEDICINA LABORATORIAL (SBPC/ML). Recomendações da Sociedade Brasileira de Patologia Clínica/Medicina Laboratorial (SBPC/ML): Boas Práticas em Laboratório Clínico. São Paulo: SBPC/ML, 2020.',\n key: 'sbpc-ml-2021',\n url: 'https://bibliotecasbpc.org.br/index.php?P=4&C=0.2.443',\n },\n\n 'schumann-ifcc-ldh-2002': {\n abnt: 'SCHUMANN, G.; KLAUKE, R. New IFCC reference procedures for the determination of catalytic activity concentrations of five enzymes in serum: preliminary upper reference limits obtained in hospitalized subjects. Clinica Chimica Acta, v. 327, n. 1-2, p. 69-79, 2003.',\n doi: '10.1016/S0009-8981(02)00341-8',\n key: 'schumann-ifcc-ldh-2002',\n url: 'https://pubmed.ncbi.nlm.nih.gov/12482620/',\n },\n\n 'schwedhelm-sdma-2011': {\n abnt: 'SCHWEDHELM, E. et al. Plasma symmetric dimethylarginine reference limits from the Framingham Offspring Cohort. Clinical Chemistry and Laboratory Medicine, v. 49, n. 11, p. 1907-1910, 2011.',\n doi: '10.1515/CCLM.2011.679',\n key: 'schwedhelm-sdma-2011',\n url: 'https://pubmed.ncbi.nlm.nih.gov/21864208/',\n },\n\n 'selhub-homocysteine-1999': {\n abnt: 'SELHUB, J. et al. Serum total homocysteine concentrations in the third National Health and Nutrition Examination Survey (1991-1994): population reference ranges and contribution of vitamin status to high serum concentrations. Annals of Internal Medicine, v. 131, n. 5, p. 331-339, 1999.',\n doi: '10.7326/0003-4819-131-5-199909070-00003',\n key: 'selhub-homocysteine-1999',\n url: 'https://pubmed.ncbi.nlm.nih.gov/10475885/',\n },\n\n 'simopoulos-omega-ratio-2002': {\n abnt: 'SIMOPOULOS, A. P. The importance of the ratio of omega-6/omega-3 essential fatty acids. Biomedicine & Pharmacotherapy, v. 56, n. 8, p. 365-379, 2002.',\n doi: '10.1016/S0753-3322(02)00253-6',\n key: 'simopoulos-omega-ratio-2002',\n url: 'https://pubmed.ncbi.nlm.nih.gov/12442909/',\n },\n\n // ---------------------------------------------------------------------------\n // Fontes internacionais — Marcadores tumorais\n // ---------------------------------------------------------------------------\n 'sturgeon-nacb-2008': {\n abnt: 'STURGEON, C. M. et al. National Academy of Clinical Biochemistry Laboratory Medicine Practice Guidelines for use of tumor markers in testicular, prostate, colorectal, breast, and ovarian cancers. Clinical Chemistry, v. 54, n. 12, p. e11-e79, 2008.',\n doi: '10.1373/clinchem.2008.105601',\n key: 'sturgeon-nacb-2008',\n url: 'https://pubmed.ncbi.nlm.nih.gov/19042984/',\n },\n\n 'tietz-7ed-2015': {\n abnt: 'BURTIS, C. A.; BRUNS, D. E. Tietz Fundamentals of Clinical Chemistry and Molecular Diagnostics. 7. ed. St. Louis: Elsevier Saunders, 2015.',\n isbn: '978-1-4557-4165-6',\n key: 'tietz-7ed-2015',\n },\n\n 'torrissen-omega3-dbs-2025': {\n abnt: 'TORRISSEN, M. et al. Global variations in omega-3 fatty acid status and omega-6:omega-3 ratios: insights from > 500,000 whole-blood dried blood spot samples. Lipids in Health and Disease, v. 24, n. 1, p. 260, 2025.',\n doi: '10.1186/s12944-025-02676-6',\n key: 'torrissen-omega3-dbs-2025',\n url: 'https://pubmed.ncbi.nlm.nih.gov/40783537/',\n },\n // ---------------------------------------------------------------------------\n // Fontes internacionais — Coagulação\n // ---------------------------------------------------------------------------\n 'wells-ddimer-2003': {\n abnt: 'WELLS, P. S. et al. Evaluation of D-dimer in the diagnosis of suspected deep-vein thrombosis. New England Journal of Medicine, v. 349, p. 1227-1235, 2003.',\n doi: '10.1056/NEJMoa023153',\n key: 'wells-ddimer-2003',\n url: 'https://pubmed.ncbi.nlm.nih.gov/14507948/',\n },\n\n // ---------------------------------------------------------------------------\n // Fontes internacionais — OMS\n // ---------------------------------------------------------------------------\n 'who-iron-2020': {\n abnt: 'WORLD HEALTH ORGANIZATION. WHO guideline on use of ferritin concentrations to assess iron status in individuals and populations. Geneva: WHO, 2020.',\n isbn: '978-92-4-000012-4',\n key: 'who-iron-2020',\n url: 'https://www.who.int/publications/i/item/9789240000124',\n },\n\n 'who-obesity-2000': {\n abnt: 'WORLD HEALTH ORGANIZATION. Obesity: preventing and managing the global epidemic. WHO Technical Report Series, n. 894. Geneva: WHO, 2000.',\n isbn: '92-4-120894-5',\n key: 'who-obesity-2000',\n },\n\n 'who-osteoporosis-1994': {\n abnt: 'WHO STUDY GROUP. Assessment of fracture risk and its application to screening for postmenopausal osteoporosis. WHO Technical Report Series, n. 843. Geneva: WHO, 1994.',\n key: 'who-osteoporosis-1994',\n url: 'https://pubmed.ncbi.nlm.nih.gov/7941614/',\n },\n};\n\n/**\n * Extrai a chave de fonte de um valor `source` que pode conter localizador.\n *\n * @example\n * extractSourceKey('sbc-lipids-2017:p15') // 'sbc-lipids-2017'\n * extractSourceKey('sbpc-ml-2021') // 'sbpc-ml-2021'\n */\nexport function extractSourceKey(source: string): string {\n return source.split(':')[0] ?? source;\n}\n"]}
|