@precisa-saude/fhir 0.31.3 → 0.31.5

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.
@@ -2638,13 +2638,30 @@ var BIOMARKER_DEFINITIONS = [
2638
2638
  // Regional Body Composition (DEXA)
2639
2639
  // Note: No official LOINC codes exist for regional lean/fat mass measurements
2640
2640
  // Hidden from UI for now - may be shown in future regional breakdown view
2641
+ //
2642
+ // "Arms Total" e "Legs Total" são a linha dos dois membros somados na tabela
2643
+ // de equilíbrio muscular do laudo da Live Lean (GE Lunar Prodigy). Conferido
2644
+ // em cinco laudos: a massa gorda e a magra dessa linha são a soma do lado
2645
+ // direito com o esquerdo, e são o mesmo número das colunas "Arms Fat" e
2646
+ // "Arms Lean" da tabela de tendência e da linha "Arms" da tabela regional.
2647
+ // O modelo nomeia a linha "Arms Total Fat Mass", e sem o nome ela virava
2648
+ // `UNKNOWN_`, enquanto a mesma medida em outra página ia para `ArmsFatMass`:
2649
+ // a série do gráfico partia em dois códigos. O `codeAliases` cobre o que já
2650
+ // foi gravado assim.
2651
+ //
2652
+ // As outras colunas da mesma linha ficam sem código de propósito. "Fat %" e
2653
+ // "Lean %" são percentual do membro, e "Total Mass" é a massa do membro;
2654
+ // o catálogo não tem código regional para nenhum dos dois. "Right Arm" e
2655
+ // "Left Arm" são um lado só, e "Arms Difference" é direito menos esquerdo.
2641
2656
  {
2642
2657
  category: "composicao-corporal",
2643
2658
  code: "ArmsLeanMass",
2659
+ codeAliases: ["UNKNOWN_Arms_Total_Lean_Mass"],
2644
2660
  hidden: true,
2645
2661
  names: {
2646
2662
  en: [
2647
2663
  "Arms Lean Mass",
2664
+ "Arms Total Lean Mass",
2648
2665
  "Arms Lean",
2649
2666
  "Arms Lean Tissue",
2650
2667
  "Arm Lean Mass",
@@ -2671,10 +2688,12 @@ var BIOMARKER_DEFINITIONS = [
2671
2688
  {
2672
2689
  category: "composicao-corporal",
2673
2690
  code: "ArmsFatMass",
2691
+ codeAliases: ["UNKNOWN_Arms_Total_Fat_Mass"],
2674
2692
  hidden: true,
2675
2693
  names: {
2676
2694
  en: [
2677
2695
  "Arms Fat Mass",
2696
+ "Arms Total Fat Mass",
2678
2697
  "Arms Fat",
2679
2698
  "Arms Fat Tissue",
2680
2699
  "Arm Fat Mass",
@@ -2702,10 +2721,12 @@ var BIOMARKER_DEFINITIONS = [
2702
2721
  {
2703
2722
  category: "composicao-corporal",
2704
2723
  code: "LegsLeanMass",
2724
+ codeAliases: ["UNKNOWN_Legs_Total_Lean_Mass"],
2705
2725
  hidden: true,
2706
2726
  names: {
2707
2727
  en: [
2708
2728
  "Legs Lean Mass",
2729
+ "Legs Total Lean Mass",
2709
2730
  "Legs Lean",
2710
2731
  "Legs Lean Tissue",
2711
2732
  "Leg Lean Mass",
@@ -2732,10 +2753,12 @@ var BIOMARKER_DEFINITIONS = [
2732
2753
  {
2733
2754
  category: "composicao-corporal",
2734
2755
  code: "LegsFatMass",
2756
+ codeAliases: ["UNKNOWN_Legs_Total_Fat_Mass"],
2735
2757
  hidden: true,
2736
2758
  names: {
2737
2759
  en: [
2738
2760
  "Legs Fat Mass",
2761
+ "Legs Total Fat Mass",
2739
2762
  "Legs Fat",
2740
2763
  "Legs Fat Tissue",
2741
2764
  "Leg Fat Mass",
@@ -3314,10 +3337,17 @@ function isCacDocument(matchedCodes) {
3314
3337
  function normalizeText(text) {
3315
3338
  return text.replace(/[_\-/]/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/g, " ").trim();
3316
3339
  }
3340
+ function foldText(text) {
3341
+ return text.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[_\-/,]/g, " ").replace(/\s+/g, " ").trim();
3342
+ }
3317
3343
  var normalizedNameToCodeMap = /* @__PURE__ */ new Map();
3344
+ var foldedNameToCodeMap = /* @__PURE__ */ new Map();
3318
3345
  for (const def of BIOMARKER_DEFINITIONS) {
3319
3346
  for (const name of [...def.names.en, ...def.names.pt]) {
3320
3347
  normalizedNameToCodeMap.set(normalizeText(name), def.code);
3348
+ const folded = foldText(name);
3349
+ const owner = foldedNameToCodeMap.get(folded);
3350
+ foldedNameToCodeMap.set(folded, owner === void 0 || owner === def.code ? def.code : null);
3321
3351
  }
3322
3352
  }
3323
3353
  function findCodeByName(name) {
@@ -3328,8 +3358,11 @@ function findCodeByName(name) {
3328
3358
  if (canonical) {
3329
3359
  return canonical;
3330
3360
  }
3331
- const normalized = normalizeText(name);
3332
- return normalizedNameToCodeMap.get(normalized);
3361
+ const normalized = normalizedNameToCodeMap.get(normalizeText(name));
3362
+ if (normalized) {
3363
+ return normalized;
3364
+ }
3365
+ return _nullishCoalesce(foldedNameToCodeMap.get(foldText(name)), () => ( void 0));
3333
3366
  }
3334
3367
  function validateLoincNameMatch(loinc, name) {
3335
3368
  const loincCode = loincToCode(loinc);
@@ -3411,4 +3444,4 @@ function getBiomarkersForCategories(categories, options) {
3411
3444
 
3412
3445
 
3413
3446
  exports.BIOMARKER_DEFINITIONS = BIOMARKER_DEFINITIONS; exports.loincToCode = loincToCode; exports.codeToLoinc = codeToLoinc; exports.isValidLoinc = isValidLoinc; exports.isValidCode = isValidCode; exports.normalizeCode = normalizeCode; exports.getSexForCode = getSexForCode; exports.getDefinitionsBySex = getDefinitionsBySex; exports.getDefinitionByCode = getDefinitionByCode; exports.getDefinitionByLoinc = getDefinitionByLoinc; exports.getAllDefinitions = getAllDefinitions; exports.getVisibleDefinitions = getVisibleDefinitions; exports.getAllCodes = getAllCodes; exports.getAllLoincCodes = getAllLoincCodes; exports.generateLLMReference = generateLLMReference; exports.toBiomarkerTests = toBiomarkerTests; exports.getAllSearchPatterns = getAllSearchPatterns; exports.generateFilteredLLMReference = generateFilteredLLMReference; exports.DEXA_INDICATOR_CODES = DEXA_INDICATOR_CODES; exports.DEXA_CATEGORIES = DEXA_CATEGORIES; exports.generateDexaFullReference = generateDexaFullReference; exports.isDexaDocument = isDexaDocument; exports.CAC_INDICATOR_CODES = CAC_INDICATOR_CODES; exports.generateCacFullReference = generateCacFullReference; exports.isCacDocument = isCacDocument; exports.findCodeByName = findCodeByName; exports.validateLoincNameMatch = validateLoincNameMatch; exports.isBiomarkerVisible = isBiomarkerVisible; exports.filterVisibleBiomarkers = filterVisibleBiomarkers; exports.getBiomarkersByCategory = getBiomarkersByCategory; exports.getBiomarkersForCategories = getBiomarkersForCategories;
3414
- //# sourceMappingURL=chunk-R5S7URXW.cjs.map
3447
+ //# sourceMappingURL=chunk-QOXTLPQ2.cjs.map