@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,917 @@
1
+ // src/units.ts
2
+ var UNIT_TO_UCUM = {
3
+ // Dimensionless / special measurements
4
+ "[pH]": "[pH]",
5
+ "{ratio}": "{ratio}",
6
+ "{specific gravity}": "{specific gravity}",
7
+ "/\xB5L": "/uL",
8
+ // Percentage
9
+ "%": "%",
10
+ // Count units
11
+ "10\xB3/\xB5L": "10*3/uL",
12
+ "10\u2076/\xB5L": "10*6/uL",
13
+ // Volume
14
+ fL: "fL",
15
+ g: "g",
16
+ // Mass concentration
17
+ "g/dL": "g/dL",
18
+ L: "L",
19
+ // Molar concentration
20
+ "mEq/L": "meq/L",
21
+ mg: "mg",
22
+ "mg/dL": "mg/dL",
23
+ mL: "mL",
24
+ "mmol/L": "mmol/L",
25
+ "mUI/mL": "m[IU]/mL",
26
+ ng: "ng",
27
+ "ng/dL": "ng/dL",
28
+ "ng/mL": "ng/mL",
29
+ "nmol/L": "nmol/L",
30
+ // Mass
31
+ pg: "pg",
32
+ "pg/mL": "pg/mL",
33
+ pH: "[pH]",
34
+ // Enzyme activity
35
+ "U/L": "U/L",
36
+ // Special units
37
+ "U/mL": "U/mL",
38
+ "UI/L": "[IU]/L",
39
+ "UI/mL": "[IU]/mL",
40
+ \u00B5g: "ug",
41
+ "\xB5g/dL": "ug/dL",
42
+ "\xB5mol/L": "umol/L",
43
+ "\xB5UI/mL": "u[IU]/mL"
44
+ };
45
+ var BIOMARKER_DEFAULT_UNIT = {
46
+ // Proteins
47
+ Albumin: "g/dL",
48
+ AlkalinePhosphatase: "U/L",
49
+ // Liver
50
+ ALT: "U/L",
51
+ AST: "U/L",
52
+ Calcium: "mg/dL",
53
+ Chloride: "mEq/L",
54
+ // Lipids
55
+ Cholesterol: "mg/dL",
56
+ // Kidney
57
+ Creatinine: "mg/dL",
58
+ eAG: "mg/dL",
59
+ Ferritin: "ng/mL",
60
+ FolicAcid: "ng/mL",
61
+ GGT: "U/L",
62
+ // Glucose/Diabetes
63
+ Glucose: "mg/dL",
64
+ HbA1c: "%",
65
+ Hct: "%",
66
+ HDL: "mg/dL",
67
+ // Hematology
68
+ Hgb: "g/dL",
69
+ Insulin: "\xB5UI/mL",
70
+ // Iron studies
71
+ Iron: "\xB5g/dL",
72
+ LDL: "mg/dL",
73
+ Magnesium: "mg/dL",
74
+ NonHDL_Cholesterol: "mg/dL",
75
+ // Urinalysis - dimensionless
76
+ pH_Urine: "[pH]",
77
+ Potassium: "mEq/L",
78
+ RDW: "%",
79
+ // Electrolytes
80
+ Sodium: "mEq/L",
81
+ SpecificGravity_Urine: "{specific gravity}",
82
+ T3Free: "pg/mL",
83
+ T4Free: "ng/dL",
84
+ TIBC: "\xB5g/dL",
85
+ TotalProtein: "g/dL",
86
+ TransferrinSaturation: "%",
87
+ Triglycerides: "mg/dL",
88
+ // Thyroid
89
+ TSH: "\xB5UI/mL",
90
+ Urea: "mg/dL",
91
+ UricAcid: "mg/dL",
92
+ // Vitamins
93
+ VitaminB12: "pg/mL",
94
+ VitaminD: "ng/mL",
95
+ VLDL: "mg/dL"
96
+ };
97
+ function unitToUCUM(unit) {
98
+ return UNIT_TO_UCUM[unit] || unit;
99
+ }
100
+ function getDefaultUnit(biomarkerCode) {
101
+ return BIOMARKER_DEFAULT_UNIT[biomarkerCode] || "";
102
+ }
103
+ var CBC_DIFF_ALIASES = {
104
+ "/ul": "/uL",
105
+ "/\xB5l": "/uL",
106
+ "10*3/ul": "K/uL",
107
+ "cells/ul": "/uL",
108
+ "cells/\xB5l": "/uL",
109
+ "k/ul": "K/uL",
110
+ "x10e3/ul": "K/uL"
111
+ };
112
+ var CBC_DIFF = {
113
+ canonicalUcum: "10*3/uL",
114
+ canonicalUnit: "K/uL",
115
+ siUcum: "10*3/uL",
116
+ siUnit: "K/uL"
117
+ };
118
+ var DEXA_KG_ALIASES = {
119
+ kg: "kg",
120
+ lb: "[lb_av]",
121
+ lbs: "[lb_av]"
122
+ };
123
+ var DEXA_KG = {
124
+ canonicalUcum: "kg",
125
+ canonicalUnit: "kg",
126
+ siUcum: "kg",
127
+ siUnit: "kg"
128
+ };
129
+ var URINE_SEDIMENT_ALIASES = {
130
+ "/hpf": "/HPF",
131
+ "/ml": "/mL"
132
+ };
133
+ var URINE_SEDIMENT = {
134
+ canonicalUcum: "/[HPF]",
135
+ canonicalUnit: "/HPF",
136
+ siUcum: "/[HPF]",
137
+ siUnit: "/HPF"
138
+ };
139
+ var PERCENTAGE_ALIASES = { "%": "%", pct: "%", percent: "%" };
140
+ var PERCENTAGE = {
141
+ canonicalUcum: "%",
142
+ canonicalUnit: "%",
143
+ siUcum: "%",
144
+ siUnit: "%"
145
+ };
146
+ var ENZYME_ALIASES = { "iu/l": "U/L", "u/l": "U/L" };
147
+ var ENZYME = {
148
+ canonicalUcum: "U/L",
149
+ canonicalUnit: "U/L",
150
+ siUcum: "U/L",
151
+ siUnit: "U/L"
152
+ };
153
+ var ELECTROLYTE_MONO_ALIASES = { "meq/l": "mEq/L", "mmol/l": "mmol/L" };
154
+ var ELECTROLYTE_MONO = {
155
+ canonicalUcum: "meq/L",
156
+ canonicalUnit: "mEq/L",
157
+ siUcum: "mmol/L",
158
+ siUnit: "mmol/L"
159
+ };
160
+ var CAC_ALIASES = { au: "AU" };
161
+ var CAC = {
162
+ canonicalUcum: "{score}",
163
+ canonicalUnit: "AU",
164
+ siUcum: "{score}",
165
+ siUnit: "AU"
166
+ };
167
+ var NMOL_L_ALIASES = { "nmol/l": "nmol/L" };
168
+ var NMOL_L = {
169
+ canonicalUcum: "nmol/L",
170
+ canonicalUnit: "nmol/L",
171
+ siUcum: "nmol/L",
172
+ siUnit: "nmol/L"
173
+ };
174
+ var BIOMARKER_UNITS = {
175
+ AFP: {
176
+ aliases: { "ng/ml": "ng/mL" },
177
+ canonicalUcum: "ng/mL",
178
+ canonicalUnit: "ng/mL",
179
+ siUcum: "ng/mL",
180
+ siUnit: "ng/mL"
181
+ },
182
+ Albumin: {
183
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
184
+ canonicalUcum: "g/dL",
185
+ canonicalUnit: "g/dL",
186
+ siUcum: "g/L",
187
+ siUnit: "g/L"
188
+ },
189
+ AlkalinePhosphatase: { aliases: ENZYME_ALIASES, ...ENZYME },
190
+ ALT: { aliases: ENZYME_ALIASES, ...ENZYME },
191
+ AMH: {
192
+ aliases: { "ng/ml": "ng/mL", "pmol/l": "pmol/L" },
193
+ canonicalUcum: "ng/mL",
194
+ canonicalUnit: "ng/mL",
195
+ molecularWeight: 12500,
196
+ siUcum: "pmol/L",
197
+ siUnit: "pmol/L"
198
+ },
199
+ Amylase: { aliases: ENZYME_ALIASES, ...ENZYME },
200
+ AntiThyroglobulin: {
201
+ aliases: { "iu/ml": "IU/mL", "ui/ml": "IU/mL" },
202
+ canonicalUcum: "[iU]/mL",
203
+ canonicalUnit: "IU/mL",
204
+ siUcum: "[iU]/mL",
205
+ siUnit: "IU/mL"
206
+ },
207
+ AntiTPO: {
208
+ aliases: { "iu/ml": "IU/mL", "ui/ml": "IU/mL" },
209
+ canonicalUcum: "[iU]/mL",
210
+ canonicalUnit: "IU/mL",
211
+ siUcum: "[iU]/mL",
212
+ siUnit: "IU/mL"
213
+ },
214
+ AoA1: {
215
+ aliases: { "mg/dl": "mg/dL" },
216
+ canonicalUcum: "mg/dL",
217
+ canonicalUnit: "mg/dL",
218
+ siUcum: "mg/dL",
219
+ siUnit: "mg/dL"
220
+ },
221
+ AorticValveCalcium: { aliases: CAC_ALIASES, ...CAC },
222
+ ApoB: {
223
+ aliases: { "mg/dl": "mg/dL" },
224
+ canonicalUcum: "mg/dL",
225
+ canonicalUnit: "mg/dL",
226
+ siUcum: "mg/dL",
227
+ siUnit: "mg/dL"
228
+ },
229
+ AST: { aliases: ENZYME_ALIASES, ...ENZYME },
230
+ Basophils: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
231
+ Basophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
232
+ BilirubinDirect: {
233
+ aliases: { "mg/dl": "mg/dL", "\xB5mol/l": "\xB5mol/L" },
234
+ canonicalUcum: "mg/dL",
235
+ canonicalUnit: "mg/dL",
236
+ molecularWeight: 584.66,
237
+ siUcum: "umol/L",
238
+ siUnit: "\xB5mol/L"
239
+ },
240
+ BilirubinIndirect: {
241
+ aliases: { "mg/dl": "mg/dL", "\xB5mol/l": "\xB5mol/L" },
242
+ canonicalUcum: "mg/dL",
243
+ canonicalUnit: "mg/dL",
244
+ molecularWeight: 584.66,
245
+ siUcum: "umol/L",
246
+ siUnit: "\xB5mol/L"
247
+ },
248
+ BilirubinTotal: {
249
+ aliases: { "mg/dl": "mg/dL", "\xB5mol/l": "\xB5mol/L" },
250
+ canonicalUcum: "mg/dL",
251
+ canonicalUnit: "mg/dL",
252
+ molecularWeight: 584.66,
253
+ siUcum: "umol/L",
254
+ siUnit: "\xB5mol/L"
255
+ },
256
+ BMC: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
257
+ BMI: {
258
+ aliases: { "kg/m2": "kg/m\xB2", "kg/m\xB2": "kg/m\xB2" },
259
+ canonicalUcum: "kg/m2",
260
+ canonicalUnit: "kg/m\xB2",
261
+ siUcum: "kg/m2",
262
+ siUnit: "kg/m\xB2"
263
+ },
264
+ BNP: {
265
+ aliases: { "pg/ml": "pg/mL" },
266
+ canonicalUcum: "pg/mL",
267
+ canonicalUnit: "pg/mL",
268
+ siUcum: "pg/mL",
269
+ siUnit: "pg/mL"
270
+ },
271
+ CA125: {
272
+ aliases: { "u/ml": "U/mL" },
273
+ canonicalUcum: "U/mL",
274
+ canonicalUnit: "U/mL",
275
+ siUcum: "U/mL",
276
+ siUnit: "U/mL"
277
+ },
278
+ CAC_LAD: { aliases: CAC_ALIASES, ...CAC },
279
+ CAC_LCX: { aliases: CAC_ALIASES, ...CAC },
280
+ CAC_LMA: { aliases: CAC_ALIASES, ...CAC },
281
+ CAC_RCA: { aliases: CAC_ALIASES, ...CAC },
282
+ Calcium: {
283
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
284
+ canonicalUcum: "mg/dL",
285
+ canonicalUnit: "mg/dL",
286
+ molecularWeight: 40.08,
287
+ siUcum: "mmol/L",
288
+ siUnit: "mmol/L"
289
+ },
290
+ CEA: {
291
+ aliases: { "ng/ml": "ng/mL" },
292
+ canonicalUcum: "ng/mL",
293
+ canonicalUnit: "ng/mL",
294
+ siUcum: "ng/mL",
295
+ siUnit: "ng/mL"
296
+ },
297
+ Chloride: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },
298
+ Cholesterol: {
299
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
300
+ canonicalUcum: "mg/dL",
301
+ canonicalUnit: "mg/dL",
302
+ molecularWeight: 386.65,
303
+ siUcum: "mmol/L",
304
+ siUnit: "mmol/L"
305
+ },
306
+ CK: { aliases: ENZYME_ALIASES, ...ENZYME },
307
+ CO2: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },
308
+ Cortisol: {
309
+ aliases: { "mcg/dl": "\xB5g/dL", "nmol/l": "nmol/L", "ug/dl": "\xB5g/dL", "\xB5g/dl": "\xB5g/dL" },
310
+ canonicalUcum: "ug/dL",
311
+ canonicalUnit: "\xB5g/dL",
312
+ molecularWeight: 362.46,
313
+ siUcum: "nmol/L",
314
+ siUnit: "nmol/L"
315
+ },
316
+ Creatinine: {
317
+ aliases: { "mg/dl": "mg/dL", "umol/l": "\xB5mol/L", "\xB5mol/l": "\xB5mol/L" },
318
+ canonicalUcum: "mg/dL",
319
+ canonicalUnit: "mg/dL",
320
+ molecularWeight: 113.12,
321
+ siUcum: "umol/L",
322
+ siUnit: "\xB5mol/L"
323
+ },
324
+ CRP: {
325
+ aliases: { "mg/dl": "mg/dL", "mg/l": "mg/L" },
326
+ canonicalUcum: "mg/L",
327
+ canonicalUnit: "mg/L",
328
+ siUcum: "mg/L",
329
+ siUnit: "mg/L"
330
+ },
331
+ DHEAS: {
332
+ aliases: { "mcg/dl": "\xB5g/dL", "ug/dl": "\xB5g/dL", "\xB5g/dl": "\xB5g/dL", "\xB5mol/l": "\xB5mol/L" },
333
+ canonicalUcum: "ug/dL",
334
+ canonicalUnit: "\xB5g/dL",
335
+ molecularWeight: 368.49,
336
+ siUcum: "umol/L",
337
+ siUnit: "\xB5mol/L"
338
+ },
339
+ DHT: {
340
+ aliases: { "ng/dl": "ng/dL", "nmol/l": "nmol/L" },
341
+ canonicalUcum: "ng/dL",
342
+ canonicalUnit: "ng/dL",
343
+ molecularWeight: 290.44,
344
+ siUcum: "nmol/L",
345
+ siUnit: "nmol/L"
346
+ },
347
+ eGFR: {
348
+ aliases: {
349
+ "ml/min/1,73 m2": "mL/min/1.73m\xB2",
350
+ "ml/min/1.73m2": "mL/min/1.73m\xB2",
351
+ "ml/min/1.73m\xB2": "mL/min/1.73m\xB2"
352
+ },
353
+ canonicalUcum: "mL/min/{1.73_m2}",
354
+ canonicalUnit: "mL/min/1.73m\xB2",
355
+ siUcum: "mL/min/{1.73_m2}",
356
+ siUnit: "mL/min/1.73m\xB2"
357
+ },
358
+ Eosinophils: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
359
+ Eosinophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
360
+ EPADPADHA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
361
+ ESR: {
362
+ aliases: { "mm/h": "mm/h", "mm/hr": "mm/h" },
363
+ canonicalUcum: "mm/h",
364
+ canonicalUnit: "mm/h",
365
+ siUcum: "mm/h",
366
+ siUnit: "mm/h"
367
+ },
368
+ Estradiol: {
369
+ aliases: { "ng/dl": "ng/dL", "pg/ml": "pg/mL" },
370
+ canonicalUcum: "pg/mL",
371
+ canonicalUnit: "pg/mL",
372
+ molecularWeight: 272.38,
373
+ siUcum: "pmol/L",
374
+ siUnit: "pmol/L"
375
+ },
376
+ FatFreeMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
377
+ FatMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
378
+ Ferritin: {
379
+ aliases: {
380
+ "mcg/l": "ng/mL",
381
+ "microg/l": "ng/mL",
382
+ "ng/ml": "ng/mL",
383
+ "\xB5g/l": "ng/mL"
384
+ },
385
+ canonicalUcum: "ng/mL",
386
+ canonicalUnit: "ng/mL",
387
+ siUcum: "ug/L",
388
+ siUnit: "\xB5g/L"
389
+ },
390
+ Folate: {
391
+ aliases: { "ng/ml": "ng/mL", "nmol/l": "nmol/L" },
392
+ canonicalUcum: "ng/mL",
393
+ canonicalUnit: "ng/mL",
394
+ molecularWeight: 441.4,
395
+ siUcum: "nmol/L",
396
+ siUnit: "nmol/L"
397
+ },
398
+ FSH: {
399
+ aliases: {
400
+ "iu/l": "mIU/mL",
401
+ "miu/ml": "mIU/mL",
402
+ "ui/l": "mIU/mL"
403
+ },
404
+ canonicalUcum: "mIU/mL",
405
+ canonicalUnit: "mIU/mL",
406
+ siUcum: "[iU]/L",
407
+ siUnit: "IU/L"
408
+ },
409
+ GGT: { aliases: ENZYME_ALIASES, ...ENZYME },
410
+ Globulin: {
411
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
412
+ canonicalUcum: "g/dL",
413
+ canonicalUnit: "g/dL",
414
+ siUcum: "g/L",
415
+ siUnit: "g/L"
416
+ },
417
+ Glucose: {
418
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
419
+ canonicalUcum: "mg/dL",
420
+ canonicalUnit: "mg/dL",
421
+ molecularWeight: 180.156,
422
+ siUcum: "mmol/L",
423
+ siUnit: "mmol/L"
424
+ },
425
+ HbA1c: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
426
+ Hct: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
427
+ HDL: {
428
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
429
+ canonicalUcum: "mg/dL",
430
+ canonicalUnit: "mg/dL",
431
+ molecularWeight: 386.65,
432
+ siUcum: "mmol/L",
433
+ siUnit: "mmol/L"
434
+ },
435
+ HDL_Large: { aliases: NMOL_L_ALIASES, ...NMOL_L },
436
+ Hgb: {
437
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
438
+ canonicalUcum: "g/dL",
439
+ canonicalUnit: "g/dL",
440
+ siUcum: "g/L",
441
+ siUnit: "g/L"
442
+ },
443
+ Homocysteine: {
444
+ aliases: { "umol/l": "\xB5mol/L", "\xB5mol/l": "\xB5mol/L" },
445
+ canonicalUcum: "umol/L",
446
+ canonicalUnit: "\xB5mol/L",
447
+ siUcum: "umol/L",
448
+ siUnit: "\xB5mol/L"
449
+ },
450
+ IgA: {
451
+ aliases: { "g/l": "g/L", "mg/dl": "mg/dL" },
452
+ canonicalUcum: "g/L",
453
+ canonicalUnit: "g/L",
454
+ siUcum: "g/L",
455
+ siUnit: "g/L"
456
+ },
457
+ IgG: {
458
+ aliases: { "g/l": "g/L", "mg/dl": "mg/dL" },
459
+ canonicalUcum: "g/L",
460
+ canonicalUnit: "g/L",
461
+ siUcum: "g/L",
462
+ siUnit: "g/L"
463
+ },
464
+ INR: {
465
+ aliases: { "{ratio}": "{ratio}" },
466
+ canonicalUcum: "{ratio}",
467
+ canonicalUnit: "{ratio}",
468
+ siUcum: "{ratio}",
469
+ siUnit: "{ratio}"
470
+ },
471
+ Insulin: {
472
+ aliases: {
473
+ "mu/l": "uIU/mL",
474
+ "uiu/ml": "uIU/mL",
475
+ "\xB5u/ml": "uIU/mL",
476
+ "\xB5ui/ml": "uIU/mL"
477
+ },
478
+ canonicalUcum: "u[iU]/mL",
479
+ canonicalUnit: "uIU/mL",
480
+ siUcum: "pmol/L",
481
+ siUnit: "pmol/L"
482
+ },
483
+ Iron: {
484
+ aliases: {
485
+ "mcg/dl": "mcg/dL",
486
+ "microg/dl": "mcg/dL",
487
+ "ug/dl": "mcg/dL",
488
+ "\xB5g/dl": "mcg/dL"
489
+ },
490
+ canonicalUcum: "ug/dL",
491
+ canonicalUnit: "mcg/dL",
492
+ siUcum: "umol/L",
493
+ siUnit: "\xB5mol/L"
494
+ },
495
+ LDL: {
496
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
497
+ canonicalUcum: "mg/dL",
498
+ canonicalUnit: "mg/dL",
499
+ molecularWeight: 386.65,
500
+ siUcum: "mmol/L",
501
+ siUnit: "mmol/L"
502
+ },
503
+ LDL_Medium: { aliases: NMOL_L_ALIASES, ...NMOL_L },
504
+ LDL_ParticleNumber: { aliases: NMOL_L_ALIASES, ...NMOL_L },
505
+ LDL_Peak_Size: {
506
+ aliases: { \u00E5: "Ao", angstrom: "Ao", ao: "Ao", nm: "nm" },
507
+ canonicalUcum: "Ao",
508
+ canonicalUnit: "Angstrom",
509
+ siUcum: "nm",
510
+ siUnit: "nm"
511
+ },
512
+ LDL_Small: { aliases: NMOL_L_ALIASES, ...NMOL_L },
513
+ Lead: {
514
+ aliases: { "mcg/dl": "\xB5g/dL", "ug/dl": "\xB5g/dL", "\xB5g/dl": "\xB5g/dL", "\xB5mol/l": "\xB5mol/L" },
515
+ canonicalUcum: "ug/dL",
516
+ canonicalUnit: "\xB5g/dL",
517
+ molecularWeight: 207.2,
518
+ siUcum: "umol/L",
519
+ siUnit: "\xB5mol/L"
520
+ },
521
+ LeanMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
522
+ Leptin: {
523
+ aliases: { "ng/ml": "ng/mL" },
524
+ canonicalUcum: "ng/mL",
525
+ canonicalUnit: "ng/mL",
526
+ siUcum: "ng/mL",
527
+ siUnit: "ng/mL"
528
+ },
529
+ Leukocytes_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },
530
+ LH: {
531
+ aliases: {
532
+ "iu/l": "mIU/mL",
533
+ "miu/ml": "mIU/mL",
534
+ "ui/l": "mIU/mL"
535
+ },
536
+ canonicalUcum: "mIU/mL",
537
+ canonicalUnit: "mIU/mL",
538
+ siUcum: "[iU]/L",
539
+ siUnit: "IU/L"
540
+ },
541
+ Lipase: { aliases: ENZYME_ALIASES, ...ENZYME },
542
+ Lipoprotein_a: {
543
+ aliases: { "mg/dl": "mg/dL", "nmol/l": "nmol/L" },
544
+ canonicalUcum: "nmol/L",
545
+ canonicalUnit: "nmol/L",
546
+ siUcum: "nmol/L",
547
+ siUnit: "nmol/L"
548
+ },
549
+ Lymphocytes: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
550
+ Lymphocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
551
+ MCH: {
552
+ aliases: { pg: "pg" },
553
+ canonicalUcum: "pg",
554
+ canonicalUnit: "pg",
555
+ siUcum: "pg",
556
+ siUnit: "pg"
557
+ },
558
+ MCHC: {
559
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
560
+ canonicalUcum: "g/dL",
561
+ canonicalUnit: "g/dL",
562
+ siUcum: "g/L",
563
+ siUnit: "g/L"
564
+ },
565
+ MCV: {
566
+ aliases: { fl: "fL" },
567
+ canonicalUcum: "fL",
568
+ canonicalUnit: "fL",
569
+ siUcum: "fL",
570
+ siUnit: "fL"
571
+ },
572
+ Mercury: {
573
+ aliases: { "mcg/l": "\xB5g/L", "nmol/l": "nmol/L", "ug/l": "\xB5g/L", "\xB5g/l": "\xB5g/L" },
574
+ canonicalUcum: "ug/L",
575
+ canonicalUnit: "\xB5g/L",
576
+ molecularWeight: 200.59,
577
+ siUcum: "nmol/L",
578
+ siUnit: "nmol/L"
579
+ },
580
+ Microalbumin_Urine: {
581
+ aliases: { "mg/l": "mg/L" },
582
+ canonicalUcum: "mg/L",
583
+ canonicalUnit: "mg/L",
584
+ siUcum: "mg/L",
585
+ siUnit: "mg/L"
586
+ },
587
+ MMA: { aliases: NMOL_L_ALIASES, ...NMOL_L },
588
+ Monocytes: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
589
+ Monocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
590
+ MPV: {
591
+ aliases: { fl: "fL" },
592
+ canonicalUcum: "fL",
593
+ canonicalUnit: "fL",
594
+ siUcum: "fL",
595
+ siUnit: "fL"
596
+ },
597
+ Myeloperoxidase: {
598
+ aliases: { "pmol/l": "pmol/L" },
599
+ canonicalUcum: "pmol/L",
600
+ canonicalUnit: "pmol/L",
601
+ siUcum: "pmol/L",
602
+ siUnit: "pmol/L"
603
+ },
604
+ Neutrophils: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
605
+ Neutrophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
606
+ // MW 386.65 = colesterol livre. Frações lipoproteicas são heterogêneas,
607
+ // mas a conversão mg/dL→mmol/L usa MW do colesterol por convenção clínica.
608
+ NonHDL_Cholesterol: {
609
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
610
+ canonicalUcum: "mg/dL",
611
+ canonicalUnit: "mg/dL",
612
+ molecularWeight: 386.65,
613
+ siUcum: "mmol/L",
614
+ siUnit: "mmol/L"
615
+ },
616
+ NTproBNP: {
617
+ aliases: { "pg/ml": "pg/mL" },
618
+ canonicalUcum: "pg/mL",
619
+ canonicalUnit: "pg/mL",
620
+ siUcum: "pg/mL",
621
+ siUnit: "pg/mL"
622
+ },
623
+ Omega3_DHA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
624
+ Omega3_DPA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
625
+ Omega3_EPA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
626
+ Omega3_Total: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
627
+ Omega6_AA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
628
+ Omega6_LA: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
629
+ Omega6_Total: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
630
+ Platelets: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
631
+ Potassium: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },
632
+ Progesterone: {
633
+ aliases: { "ng/ml": "ng/mL", "nmol/l": "nmol/L" },
634
+ canonicalUcum: "ng/mL",
635
+ canonicalUnit: "ng/mL",
636
+ molecularWeight: 314.46,
637
+ siUcum: "nmol/L",
638
+ siUnit: "nmol/L"
639
+ },
640
+ Prolactin: {
641
+ aliases: {
642
+ "microg/l": "ng/mL",
643
+ "ng/ml": "ng/mL",
644
+ "\xB5g/l": "ng/mL"
645
+ },
646
+ canonicalUcum: "ng/mL",
647
+ canonicalUnit: "ng/mL",
648
+ siUcum: "ug/L",
649
+ siUnit: "\xB5g/L"
650
+ },
651
+ ProthrombinTime: {
652
+ aliases: { s: "s", sec: "s" },
653
+ canonicalUcum: "s",
654
+ canonicalUnit: "s",
655
+ siUcum: "s",
656
+ siUnit: "s"
657
+ },
658
+ PSA: {
659
+ aliases: { "ng/ml": "ng/mL" },
660
+ canonicalUcum: "ng/mL",
661
+ canonicalUnit: "ng/mL",
662
+ siUcum: "ng/mL",
663
+ siUnit: "ng/mL"
664
+ },
665
+ PSA_Free: {
666
+ aliases: { "ng/ml": "ng/mL" },
667
+ canonicalUcum: "ng/mL",
668
+ canonicalUnit: "ng/mL",
669
+ siUcum: "ng/mL",
670
+ siUnit: "ng/mL"
671
+ },
672
+ RBC: {
673
+ aliases: {
674
+ "/ul": "/uL",
675
+ "/\xB5l": "/uL",
676
+ "10*6/ul": "M/uL",
677
+ "cells/ul": "/uL",
678
+ "m/ul": "M/uL",
679
+ "milh\xF5es/mm3": "M/uL",
680
+ "milh\xF5es/mm\xB3": "M/uL",
681
+ "x10e6/ul": "M/uL"
682
+ },
683
+ canonicalUcum: "10*6/uL",
684
+ canonicalUnit: "M/uL",
685
+ siUcum: "10*6/uL",
686
+ siUnit: "M/uL"
687
+ },
688
+ RBC_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },
689
+ RDW: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
690
+ Reticulocytes: { aliases: PERCENTAGE_ALIASES, ...PERCENTAGE },
691
+ RheumatoidFactor: {
692
+ aliases: { "iu/ml": "IU/mL", "ui/ml": "IU/mL" },
693
+ canonicalUcum: "[iU]/mL",
694
+ canonicalUnit: "IU/mL",
695
+ siUcum: "[iU]/mL",
696
+ siUnit: "IU/mL"
697
+ },
698
+ SHBG: { aliases: NMOL_L_ALIASES, ...NMOL_L },
699
+ Sodium: { aliases: ELECTROLYTE_MONO_ALIASES, ...ELECTROLYTE_MONO },
700
+ T3Free: {
701
+ aliases: { "pg/ml": "pg/mL", "pmol/l": "pmol/L" },
702
+ canonicalUcum: "pg/mL",
703
+ canonicalUnit: "pg/mL",
704
+ molecularWeight: 650.98,
705
+ siUcum: "pmol/L",
706
+ siUnit: "pmol/L"
707
+ },
708
+ T4Free: {
709
+ aliases: { "ng/dl": "ng/dL", "pmol/l": "pmol/L" },
710
+ canonicalUcum: "ng/dL",
711
+ canonicalUnit: "ng/dL",
712
+ molecularWeight: 776.87,
713
+ siUcum: "pmol/L",
714
+ siUnit: "pmol/L"
715
+ },
716
+ T4Total: {
717
+ aliases: { "mcg/dl": "\xB5g/dL", "nmol/l": "nmol/L", "ug/dl": "\xB5g/dL", "\xB5g/dl": "\xB5g/dL" },
718
+ canonicalUcum: "ug/dL",
719
+ canonicalUnit: "\xB5g/dL",
720
+ molecularWeight: 776.87,
721
+ siUcum: "nmol/L",
722
+ siUnit: "nmol/L"
723
+ },
724
+ Testosterone: {
725
+ aliases: { "ng/dl": "ng/dL", "nmol/l": "nmol/L" },
726
+ canonicalUcum: "ng/dL",
727
+ canonicalUnit: "ng/dL",
728
+ molecularWeight: 288.42,
729
+ siUcum: "nmol/L",
730
+ siUnit: "nmol/L"
731
+ },
732
+ TestosteroneFree: {
733
+ aliases: { "pg/ml": "pg/mL", "pmol/l": "pmol/L" },
734
+ canonicalUcum: "pg/mL",
735
+ canonicalUnit: "pg/mL",
736
+ molecularWeight: 288.42,
737
+ siUcum: "pmol/L",
738
+ siUnit: "pmol/L"
739
+ },
740
+ TIBC: {
741
+ aliases: {
742
+ "mcg/dl": "mcg/dL",
743
+ "microg/dl": "mcg/dL",
744
+ "ug/dl": "mcg/dL",
745
+ "\xB5g/dl": "mcg/dL"
746
+ },
747
+ canonicalUcum: "ug/dL",
748
+ canonicalUnit: "mcg/dL",
749
+ siUcum: "umol/L",
750
+ siUnit: "\xB5mol/L"
751
+ },
752
+ TotalMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
753
+ TotalProtein: {
754
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
755
+ canonicalUcum: "g/dL",
756
+ canonicalUnit: "g/dL",
757
+ siUcum: "g/L",
758
+ siUnit: "g/L"
759
+ },
760
+ Triglycerides: {
761
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
762
+ canonicalUcum: "mg/dL",
763
+ canonicalUnit: "mg/dL",
764
+ molecularWeight: 885.4,
765
+ siUcum: "mmol/L",
766
+ siUnit: "mmol/L"
767
+ },
768
+ TroponinI: {
769
+ aliases: { "ng/ml": "ng/mL" },
770
+ canonicalUcum: "ng/mL",
771
+ canonicalUnit: "ng/mL",
772
+ siUcum: "ng/mL",
773
+ siUnit: "ng/mL"
774
+ },
775
+ TroponinT: {
776
+ aliases: { "ng/l": "ng/L" },
777
+ canonicalUcum: "ng/L",
778
+ canonicalUnit: "ng/L",
779
+ siUcum: "ng/L",
780
+ siUnit: "ng/L"
781
+ },
782
+ TSH: {
783
+ aliases: {
784
+ "miu/l": "uIU/mL",
785
+ "mui/l": "uIU/mL",
786
+ "uiu/ml": "uIU/mL",
787
+ "\xB5ui/ml": "uIU/mL"
788
+ },
789
+ canonicalUcum: "u[iU]/mL",
790
+ canonicalUnit: "uIU/mL",
791
+ siUcum: "mIU/L",
792
+ siUnit: "mIU/L"
793
+ },
794
+ Urea: {
795
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
796
+ canonicalUcum: "mg/dL",
797
+ canonicalUnit: "mg/dL",
798
+ molecularWeight: 60.06,
799
+ siUcum: "mmol/L",
800
+ siUnit: "mmol/L"
801
+ },
802
+ UricAcid: {
803
+ aliases: { "mg/dl": "mg/dL", "\xB5mol/l": "\xB5mol/L" },
804
+ canonicalUcum: "mg/dL",
805
+ canonicalUnit: "mg/dL",
806
+ molecularWeight: 168.11,
807
+ siUcum: "umol/L",
808
+ siUnit: "\xB5mol/L"
809
+ },
810
+ VATMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
811
+ VATVolume: {
812
+ aliases: { cm3: "cm3", "cm\xB3": "cm3", in3: "[in_i]3", "in\xB3": "[in_i]3" },
813
+ canonicalUcum: "cm3",
814
+ canonicalUnit: "cm\xB3",
815
+ siUcum: "cm3",
816
+ siUnit: "cm\xB3"
817
+ },
818
+ VitaminB12: {
819
+ aliases: { "ng/l": "pg/mL", "pg/ml": "pg/mL" },
820
+ canonicalUcum: "pg/mL",
821
+ canonicalUnit: "pg/mL",
822
+ siUcum: "pmol/L",
823
+ siUnit: "pmol/L"
824
+ },
825
+ VitaminD: {
826
+ aliases: { "ng/ml": "ng/mL", "nmol/l": "nmol/L" },
827
+ canonicalUcum: "ng/mL",
828
+ canonicalUnit: "ng/mL",
829
+ molecularWeight: 384.64,
830
+ siUcum: "nmol/L",
831
+ siUnit: "nmol/L"
832
+ },
833
+ VLDL: {
834
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
835
+ canonicalUcum: "mg/dL",
836
+ canonicalUnit: "mg/dL",
837
+ molecularWeight: 386.65,
838
+ siUcum: "mmol/L",
839
+ siUnit: "mmol/L"
840
+ },
841
+ WBC: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF }
842
+ };
843
+ function getCanonicalUnit(code) {
844
+ return BIOMARKER_UNITS[code]?.canonicalUnit ?? null;
845
+ }
846
+ function getSIUnit(code) {
847
+ return BIOMARKER_UNITS[code]?.siUnit ?? null;
848
+ }
849
+ function normalizeUnit(unit, config) {
850
+ return config.aliases[unit.toLowerCase()] ?? config.aliases[unit] ?? unit;
851
+ }
852
+ var FIXED_FACTORS = {
853
+ "g/dL -> g/L": 10,
854
+ "g/L -> g/dL": 0.1,
855
+ "g/L -> mg/dL": 100,
856
+ "mEq/L -> mmol/L": 1,
857
+ "mg/dL -> g/L": 0.01,
858
+ "mmol/L -> mEq/L": 1,
859
+ "ng/dL -> pg/mL": 10,
860
+ "ng/mL -> \xB5g/L": 1,
861
+ "pg/mL -> ng/dL": 0.1,
862
+ "\xB5g/L -> ng/mL": 1
863
+ };
864
+ var MW_CONVERSIONS = {
865
+ "mg/dL -> mmol/L": { divideByMW: true, scale: 10 },
866
+ "mg/dL -> \xB5mol/L": { divideByMW: true, scale: 1e4 },
867
+ "mmol/L -> mg/dL": { divideByMW: false, scale: 10 },
868
+ "ng/dL -> nmol/L": { divideByMW: true, scale: 10 },
869
+ "ng/dL -> pmol/L": { divideByMW: true, scale: 1e4 },
870
+ "ng/mL -> nmol/L": { divideByMW: true, scale: 1e3 },
871
+ "ng/mL -> pmol/L": { divideByMW: true, scale: 1e6 },
872
+ "nmol/L -> ng/dL": { divideByMW: false, scale: 10 },
873
+ "nmol/L -> ng/mL": { divideByMW: false, scale: 1e3 },
874
+ "nmol/L -> \xB5g/dL": { divideByMW: false, scale: 1e4 },
875
+ "nmol/L -> \xB5g/L": { divideByMW: false, scale: 1e3 },
876
+ "pg/mL -> pmol/L": { divideByMW: true, scale: 1e3 },
877
+ "pmol/L -> ng/dL": { divideByMW: false, scale: 1e4 },
878
+ "pmol/L -> ng/mL": { divideByMW: false, scale: 1e6 },
879
+ "pmol/L -> pg/mL": { divideByMW: false, scale: 1e3 },
880
+ "\xB5g/dL -> nmol/L": { divideByMW: true, scale: 1e4 },
881
+ "\xB5g/dL -> \xB5mol/L": { divideByMW: true, scale: 10 },
882
+ "\xB5g/L -> nmol/L": { divideByMW: true, scale: 1e3 },
883
+ "\xB5mol/L -> mg/dL": { divideByMW: false, scale: 1e4 },
884
+ "\xB5mol/L -> \xB5g/dL": { divideByMW: false, scale: 10 }
885
+ };
886
+ function convertUnit(value, fromUnit, toUnit, biomarkerCode) {
887
+ const config = BIOMARKER_UNITS[biomarkerCode];
888
+ if (!config) return null;
889
+ const normFrom = normalizeUnit(fromUnit, config);
890
+ const normTo = normalizeUnit(toUnit, config);
891
+ if (normFrom === normTo) {
892
+ return { unit: normTo, value };
893
+ }
894
+ const key = `${normFrom} -> ${normTo}`;
895
+ const fixedFactor = FIXED_FACTORS[key];
896
+ if (fixedFactor !== void 0) {
897
+ return { unit: normTo, value: value * fixedFactor };
898
+ }
899
+ const mwConv = MW_CONVERSIONS[key];
900
+ if (mwConv && config.molecularWeight) {
901
+ const result = mwConv.divideByMW ? value * mwConv.scale / config.molecularWeight : value * config.molecularWeight / mwConv.scale;
902
+ return { unit: normTo, value: result };
903
+ }
904
+ return null;
905
+ }
906
+
907
+ export {
908
+ UNIT_TO_UCUM,
909
+ BIOMARKER_DEFAULT_UNIT,
910
+ unitToUCUM,
911
+ getDefaultUnit,
912
+ BIOMARKER_UNITS,
913
+ getCanonicalUnit,
914
+ getSIUnit,
915
+ convertUnit
916
+ };
917
+ //# sourceMappingURL=chunk-R4MUCMO3.js.map