@precisa-saude/fhir 0.1.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.
Files changed (72) hide show
  1. package/README.md +85 -0
  2. package/dist/biomarkers.cjs +67 -0
  3. package/dist/biomarkers.cjs.map +1 -0
  4. package/dist/biomarkers.d.cts +226 -0
  5. package/dist/biomarkers.d.ts +226 -0
  6. package/dist/biomarkers.js +67 -0
  7. package/dist/biomarkers.js.map +1 -0
  8. package/dist/chunk-2EVQ2ESB.cjs +2692 -0
  9. package/dist/chunk-2EVQ2ESB.cjs.map +1 -0
  10. package/dist/chunk-2X6MT5KE.cjs +1464 -0
  11. package/dist/chunk-2X6MT5KE.cjs.map +1 -0
  12. package/dist/chunk-3ILBFLVQ.cjs +63 -0
  13. package/dist/chunk-3ILBFLVQ.cjs.map +1 -0
  14. package/dist/chunk-FDOBUUGY.js +1464 -0
  15. package/dist/chunk-FDOBUUGY.js.map +1 -0
  16. package/dist/chunk-GFXKYXHW.cjs +436 -0
  17. package/dist/chunk-GFXKYXHW.cjs.map +1 -0
  18. package/dist/chunk-I6H35QXI.js +2692 -0
  19. package/dist/chunk-I6H35QXI.js.map +1 -0
  20. package/dist/chunk-N3ZCOLG2.js +63 -0
  21. package/dist/chunk-N3ZCOLG2.js.map +1 -0
  22. package/dist/chunk-O25F6G3K.cjs +153 -0
  23. package/dist/chunk-O25F6G3K.cjs.map +1 -0
  24. package/dist/chunk-S6VJHXJF.js +153 -0
  25. package/dist/chunk-S6VJHXJF.js.map +1 -0
  26. package/dist/chunk-UIDSSWBJ.js +251 -0
  27. package/dist/chunk-UIDSSWBJ.js.map +1 -0
  28. package/dist/chunk-VPMT4MRS.js +436 -0
  29. package/dist/chunk-VPMT4MRS.js.map +1 -0
  30. package/dist/chunk-Z6YE6FJ4.cjs +251 -0
  31. package/dist/chunk-Z6YE6FJ4.cjs.map +1 -0
  32. package/dist/converter-C-QpCcTL.d.ts +99 -0
  33. package/dist/converter-Dee-qjBV.d.cts +99 -0
  34. package/dist/converter.cjs +15 -0
  35. package/dist/converter.cjs.map +1 -0
  36. package/dist/converter.d.cts +2 -0
  37. package/dist/converter.d.ts +2 -0
  38. package/dist/converter.js +15 -0
  39. package/dist/converter.js.map +1 -0
  40. package/dist/fhir-types-D9hUzGrc.d.cts +129 -0
  41. package/dist/fhir-types-D9hUzGrc.d.ts +129 -0
  42. package/dist/importer.cjs +17 -0
  43. package/dist/importer.cjs.map +1 -0
  44. package/dist/importer.d.cts +60 -0
  45. package/dist/importer.d.ts +60 -0
  46. package/dist/importer.js +17 -0
  47. package/dist/importer.js.map +1 -0
  48. package/dist/index.cjs +540 -0
  49. package/dist/index.cjs.map +1 -0
  50. package/dist/index.d.cts +163 -0
  51. package/dist/index.d.ts +163 -0
  52. package/dist/index.js +540 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/reference-ranges.cjs +18 -0
  55. package/dist/reference-ranges.cjs.map +1 -0
  56. package/dist/reference-ranges.d.cts +106 -0
  57. package/dist/reference-ranges.d.ts +106 -0
  58. package/dist/reference-ranges.js +18 -0
  59. package/dist/reference-ranges.js.map +1 -0
  60. package/dist/units.cjs +19 -0
  61. package/dist/units.cjs.map +1 -0
  62. package/dist/units.d.cts +46 -0
  63. package/dist/units.d.ts +46 -0
  64. package/dist/units.js +19 -0
  65. package/dist/units.js.map +1 -0
  66. package/dist/validators.cjs +11 -0
  67. package/dist/validators.cjs.map +1 -0
  68. package/dist/validators.d.cts +23 -0
  69. package/dist/validators.d.ts +23 -0
  70. package/dist/validators.js +11 -0
  71. package/dist/validators.js.map +1 -0
  72. package/package.json +105 -0
@@ -0,0 +1,436 @@
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 BIOMARKER_UNITS = {
140
+ Albumin: {
141
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
142
+ canonicalUcum: "g/dL",
143
+ canonicalUnit: "g/dL",
144
+ siUcum: "g/L",
145
+ siUnit: "g/L"
146
+ },
147
+ AntiThyroglobulin: {
148
+ aliases: { "iu/ml": "IU/mL", "ui/ml": "IU/mL" },
149
+ canonicalUcum: "[iU]/mL",
150
+ canonicalUnit: "IU/mL",
151
+ siUcum: "[iU]/mL",
152
+ siUnit: "IU/mL"
153
+ },
154
+ Basophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
155
+ BMC: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
156
+ Cholesterol: {
157
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
158
+ canonicalUcum: "mg/dL",
159
+ canonicalUnit: "mg/dL",
160
+ molecularWeight: 386.65,
161
+ siUcum: "mmol/L",
162
+ siUnit: "mmol/L"
163
+ },
164
+ Creatinine: {
165
+ aliases: { "mg/dl": "mg/dL", "umol/l": "\xB5mol/L", "\xB5mol/l": "\xB5mol/L" },
166
+ canonicalUcum: "mg/dL",
167
+ canonicalUnit: "mg/dL",
168
+ molecularWeight: 113.12,
169
+ siUcum: "umol/L",
170
+ siUnit: "\xB5mol/L"
171
+ },
172
+ CRP: {
173
+ aliases: { "mg/dl": "mg/dL", "mg/l": "mg/L" },
174
+ canonicalUcum: "mg/L",
175
+ canonicalUnit: "mg/L",
176
+ siUcum: "mg/L",
177
+ siUnit: "mg/L"
178
+ },
179
+ eGFR: {
180
+ aliases: {
181
+ "ml/min/1,73 m2": "mL/min/1.73m\xB2",
182
+ "ml/min/1.73m2": "mL/min/1.73m\xB2",
183
+ "ml/min/1.73m\xB2": "mL/min/1.73m\xB2"
184
+ },
185
+ canonicalUcum: "mL/min/{1.73_m2}",
186
+ canonicalUnit: "mL/min/1.73m\xB2",
187
+ siUcum: "mL/min/{1.73_m2}",
188
+ siUnit: "mL/min/1.73m\xB2"
189
+ },
190
+ Eosinophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
191
+ Estradiol: {
192
+ // TODO: ng/dL ≠ pg/mL (1 ng/dL = 10 pg/mL) — display-only alias for now
193
+ aliases: { "ng/dl": "pg/mL", "pg/ml": "pg/mL" },
194
+ canonicalUcum: "pg/mL",
195
+ canonicalUnit: "pg/mL",
196
+ siUcum: "pmol/L",
197
+ siUnit: "pmol/L"
198
+ },
199
+ FatFreeMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
200
+ FatMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
201
+ Ferritin: {
202
+ aliases: {
203
+ "mcg/l": "ng/mL",
204
+ "microg/l": "ng/mL",
205
+ "ng/ml": "ng/mL",
206
+ "\xB5g/l": "ng/mL"
207
+ },
208
+ canonicalUcum: "ng/mL",
209
+ canonicalUnit: "ng/mL",
210
+ siUcum: "ug/L",
211
+ siUnit: "\xB5g/L"
212
+ },
213
+ FSH: {
214
+ aliases: {
215
+ "iu/l": "mIU/mL",
216
+ "miu/ml": "mIU/mL",
217
+ "ui/l": "mIU/mL"
218
+ },
219
+ canonicalUcum: "mIU/mL",
220
+ canonicalUnit: "mIU/mL",
221
+ siUcum: "[iU]/L",
222
+ siUnit: "IU/L"
223
+ },
224
+ Glucose: {
225
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
226
+ canonicalUcum: "mg/dL",
227
+ canonicalUnit: "mg/dL",
228
+ molecularWeight: 180.156,
229
+ siUcum: "mmol/L",
230
+ siUnit: "mmol/L"
231
+ },
232
+ HDL: {
233
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
234
+ canonicalUcum: "mg/dL",
235
+ canonicalUnit: "mg/dL",
236
+ molecularWeight: 386.65,
237
+ siUcum: "mmol/L",
238
+ siUnit: "mmol/L"
239
+ },
240
+ Hgb: {
241
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
242
+ canonicalUcum: "g/dL",
243
+ canonicalUnit: "g/dL",
244
+ siUcum: "g/L",
245
+ siUnit: "g/L"
246
+ },
247
+ Insulin: {
248
+ aliases: {
249
+ "mu/l": "uIU/mL",
250
+ "uiu/ml": "uIU/mL",
251
+ "\xB5u/ml": "uIU/mL",
252
+ "\xB5ui/ml": "uIU/mL"
253
+ },
254
+ canonicalUcum: "u[iU]/mL",
255
+ canonicalUnit: "uIU/mL",
256
+ siUcum: "pmol/L",
257
+ siUnit: "pmol/L"
258
+ },
259
+ Iron: {
260
+ aliases: {
261
+ "mcg/dl": "mcg/dL",
262
+ "microg/dl": "mcg/dL",
263
+ "ug/dl": "mcg/dL",
264
+ "\xB5g/dl": "mcg/dL"
265
+ },
266
+ canonicalUcum: "ug/dL",
267
+ canonicalUnit: "mcg/dL",
268
+ siUcum: "umol/L",
269
+ siUnit: "\xB5mol/L"
270
+ },
271
+ LDL: {
272
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
273
+ canonicalUcum: "mg/dL",
274
+ canonicalUnit: "mg/dL",
275
+ molecularWeight: 386.65,
276
+ siUcum: "mmol/L",
277
+ siUnit: "mmol/L"
278
+ },
279
+ LDL_Peak_Size: {
280
+ aliases: { \u00E5: "Ao", angstrom: "Ao", ao: "Ao", nm: "nm" },
281
+ canonicalUcum: "Ao",
282
+ canonicalUnit: "Angstrom",
283
+ siUcum: "nm",
284
+ siUnit: "nm"
285
+ },
286
+ LeanMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
287
+ Leukocytes_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },
288
+ LH: {
289
+ aliases: {
290
+ "iu/l": "mIU/mL",
291
+ "miu/ml": "mIU/mL",
292
+ "ui/l": "mIU/mL"
293
+ },
294
+ canonicalUcum: "mIU/mL",
295
+ canonicalUnit: "mIU/mL",
296
+ siUcum: "[iU]/L",
297
+ siUnit: "IU/L"
298
+ },
299
+ Lipoprotein_a: {
300
+ aliases: { "mg/dl": "mg/dL", "nmol/l": "nmol/L" },
301
+ canonicalUcum: "nmol/L",
302
+ canonicalUnit: "nmol/L",
303
+ siUcum: "nmol/L",
304
+ siUnit: "nmol/L"
305
+ },
306
+ Lymphocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
307
+ MCHC: {
308
+ aliases: { "g/dl": "g/dL", "g/l": "g/L" },
309
+ canonicalUcum: "g/dL",
310
+ canonicalUnit: "g/dL",
311
+ siUcum: "g/L",
312
+ siUnit: "g/L"
313
+ },
314
+ Monocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
315
+ Neutrophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
316
+ Platelets: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },
317
+ Prolactin: {
318
+ aliases: {
319
+ "microg/l": "ng/mL",
320
+ "ng/ml": "ng/mL",
321
+ "\xB5g/l": "ng/mL"
322
+ },
323
+ canonicalUcum: "ng/mL",
324
+ canonicalUnit: "ng/mL",
325
+ siUcum: "ug/L",
326
+ siUnit: "\xB5g/L"
327
+ },
328
+ RBC: {
329
+ aliases: {
330
+ "/ul": "/uL",
331
+ "/\xB5l": "/uL",
332
+ "10*6/ul": "M/uL",
333
+ "cells/ul": "/uL",
334
+ "m/ul": "M/uL",
335
+ "milh\xF5es/mm3": "M/uL",
336
+ "milh\xF5es/mm\xB3": "M/uL",
337
+ "x10e6/ul": "M/uL"
338
+ },
339
+ canonicalUcum: "10*6/uL",
340
+ canonicalUnit: "M/uL",
341
+ siUcum: "10*6/uL",
342
+ siUnit: "M/uL"
343
+ },
344
+ RBC_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },
345
+ TestosteroneFree: {
346
+ // TODO: pmol/L ≠ pg/mL (needs MW conversion) — display-only alias for now
347
+ aliases: { "pg/ml": "pg/mL", "pmol/l": "pg/mL" },
348
+ canonicalUcum: "pg/mL",
349
+ canonicalUnit: "pg/mL",
350
+ molecularWeight: 288.42,
351
+ siUcum: "pmol/L",
352
+ siUnit: "pmol/L"
353
+ },
354
+ TIBC: {
355
+ aliases: {
356
+ "mcg/dl": "mcg/dL",
357
+ "microg/dl": "mcg/dL",
358
+ "ug/dl": "mcg/dL",
359
+ "\xB5g/dl": "mcg/dL"
360
+ },
361
+ canonicalUcum: "ug/dL",
362
+ canonicalUnit: "mcg/dL",
363
+ siUcum: "umol/L",
364
+ siUnit: "\xB5mol/L"
365
+ },
366
+ TotalMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
367
+ Triglycerides: {
368
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
369
+ canonicalUcum: "mg/dL",
370
+ canonicalUnit: "mg/dL",
371
+ molecularWeight: 885.4,
372
+ siUcum: "mmol/L",
373
+ siUnit: "mmol/L"
374
+ },
375
+ TSH: {
376
+ aliases: {
377
+ "miu/l": "uIU/mL",
378
+ "mui/l": "uIU/mL",
379
+ "uiu/ml": "uIU/mL",
380
+ "\xB5ui/ml": "uIU/mL"
381
+ },
382
+ canonicalUcum: "u[iU]/mL",
383
+ canonicalUnit: "uIU/mL",
384
+ siUcum: "mIU/L",
385
+ siUnit: "mIU/L"
386
+ },
387
+ Urea: {
388
+ aliases: { "mg/dl": "mg/dL", "mmol/l": "mmol/L" },
389
+ canonicalUcum: "mg/dL",
390
+ canonicalUnit: "mg/dL",
391
+ molecularWeight: 60.06,
392
+ siUcum: "mmol/L",
393
+ siUnit: "mmol/L"
394
+ },
395
+ VATMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },
396
+ VATVolume: {
397
+ aliases: { cm3: "cm3", "cm\xB3": "cm3", in3: "[in_i]3", "in\xB3": "[in_i]3" },
398
+ canonicalUcum: "cm3",
399
+ canonicalUnit: "cm\xB3",
400
+ siUcum: "cm3",
401
+ siUnit: "cm\xB3"
402
+ },
403
+ VitaminB12: {
404
+ aliases: { "ng/l": "pg/mL", "pg/ml": "pg/mL" },
405
+ canonicalUcum: "pg/mL",
406
+ canonicalUnit: "pg/mL",
407
+ siUcum: "pmol/L",
408
+ siUnit: "pmol/L"
409
+ },
410
+ VitaminD: {
411
+ aliases: { "ng/ml": "ng/mL", "nmol/l": "nmol/L" },
412
+ canonicalUcum: "ng/mL",
413
+ canonicalUnit: "ng/mL",
414
+ molecularWeight: 384.64,
415
+ siUcum: "nmol/L",
416
+ siUnit: "nmol/L"
417
+ },
418
+ WBC: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF }
419
+ };
420
+ function getCanonicalUnit(code) {
421
+ return BIOMARKER_UNITS[code]?.canonicalUnit ?? null;
422
+ }
423
+ function getSIUnit(code) {
424
+ return BIOMARKER_UNITS[code]?.siUnit ?? null;
425
+ }
426
+
427
+ export {
428
+ UNIT_TO_UCUM,
429
+ BIOMARKER_DEFAULT_UNIT,
430
+ unitToUCUM,
431
+ getDefaultUnit,
432
+ BIOMARKER_UNITS,
433
+ getCanonicalUnit,
434
+ getSIUnit
435
+ };
436
+ //# sourceMappingURL=chunk-VPMT4MRS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/units.ts"],"sourcesContent":["/**\n * Unit Mappings and Biomarker Unit Definitions\n *\n * Maps units to UCUM format, provides default units for biomarkers,\n * and defines canonical/SI unit configurations with aliases.\n */\n\n// ─── UCUM Mappings ───────────────────────────────────────────────────────────\n\n/**\n * Map units to UCUM (Unified Code for Units of Measure)\n * See: https://ucum.org/\n */\nexport const UNIT_TO_UCUM: Record<string, string> = {\n // Dimensionless / special measurements\n '[pH]': '[pH]',\n '{ratio}': '{ratio}',\n '{specific gravity}': '{specific gravity}',\n\n '/µL': '/uL',\n // Percentage\n '%': '%',\n // Count units\n '10³/µL': '10*3/uL',\n '10⁶/µL': '10*6/uL',\n // Volume\n fL: 'fL',\n g: 'g',\n\n // Mass concentration\n 'g/dL': 'g/dL',\n L: 'L',\n // Molar concentration\n 'mEq/L': 'meq/L',\n\n mg: 'mg',\n 'mg/dL': 'mg/dL',\n mL: 'mL',\n 'mmol/L': 'mmol/L',\n 'mUI/mL': 'm[IU]/mL',\n\n ng: 'ng',\n\n 'ng/dL': 'ng/dL',\n 'ng/mL': 'ng/mL',\n 'nmol/L': 'nmol/L',\n // Mass\n pg: 'pg',\n\n 'pg/mL': 'pg/mL',\n pH: '[pH]',\n // Enzyme activity\n 'U/L': 'U/L',\n // Special units\n 'U/mL': 'U/mL',\n 'UI/L': '[IU]/L',\n\n 'UI/mL': '[IU]/mL',\n\n µg: 'ug',\n 'µg/dL': 'ug/dL',\n 'µmol/L': 'umol/L',\n 'µUI/mL': 'u[IU]/mL',\n};\n\n/**\n * Default units for biomarkers when source data doesn't provide one\n * These are the most common units used in Brazilian labs\n */\nexport const BIOMARKER_DEFAULT_UNIT: Record<string, string> = {\n // Proteins\n Albumin: 'g/dL',\n AlkalinePhosphatase: 'U/L',\n // Liver\n ALT: 'U/L',\n AST: 'U/L',\n\n Calcium: 'mg/dL',\n Chloride: 'mEq/L',\n // Lipids\n Cholesterol: 'mg/dL',\n // Kidney\n Creatinine: 'mg/dL',\n eAG: 'mg/dL',\n Ferritin: 'ng/mL',\n\n FolicAcid: 'ng/mL',\n GGT: 'U/L',\n // Glucose/Diabetes\n Glucose: 'mg/dL',\n\n HbA1c: '%',\n Hct: '%',\n\n HDL: 'mg/dL',\n // Hematology\n Hgb: 'g/dL',\n Insulin: 'µUI/mL',\n\n // Iron studies\n Iron: 'µg/dL',\n LDL: 'mg/dL',\n Magnesium: 'mg/dL',\n NonHDL_Cholesterol: 'mg/dL',\n\n // Urinalysis - dimensionless\n pH_Urine: '[pH]',\n Potassium: 'mEq/L',\n RDW: '%',\n // Electrolytes\n Sodium: 'mEq/L',\n SpecificGravity_Urine: '{specific gravity}',\n\n T3Free: 'pg/mL',\n T4Free: 'ng/dL',\n TIBC: 'µg/dL',\n TotalProtein: 'g/dL',\n\n TransferrinSaturation: '%',\n Triglycerides: 'mg/dL',\n // Thyroid\n TSH: 'µUI/mL',\n\n Urea: 'mg/dL',\n UricAcid: 'mg/dL',\n\n // Vitamins\n VitaminB12: 'pg/mL',\n VitaminD: 'ng/mL',\n VLDL: 'mg/dL',\n};\n\n/**\n * Convert unit to UCUM format\n */\nexport function unitToUCUM(unit: string): string {\n return UNIT_TO_UCUM[unit] || unit;\n}\n\n/**\n * Get default unit for a biomarker code\n * @param biomarkerCode - The biomarker code (e.g., \"Glucose\", \"HbA1c\")\n * @returns The default unit or empty string if not found\n */\nexport function getDefaultUnit(biomarkerCode: string): string {\n return BIOMARKER_DEFAULT_UNIT[biomarkerCode] || '';\n}\n\n// ─── Biomarker Unit Configurations ───────────────────────────────────────────\n\n/** Biomarker unit definitions — canonical units match reference-ranges.ts (BR conventional). */\n\nexport interface BiomarkerUnitConfig {\n aliases: Record<string, string>;\n canonicalUcum: string;\n canonicalUnit: string;\n molecularWeight?: number;\n siUcum: string;\n siUnit: string;\n}\n\nconst CBC_DIFF_ALIASES: Record<string, string> = {\n '/ul': '/uL',\n '/µl': '/uL',\n '10*3/ul': 'K/uL',\n 'cells/ul': '/uL',\n 'cells/µl': '/uL',\n 'k/ul': 'K/uL',\n 'x10e3/ul': 'K/uL',\n};\nconst CBC_DIFF: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: '10*3/uL',\n canonicalUnit: 'K/uL',\n siUcum: '10*3/uL',\n siUnit: 'K/uL',\n};\nconst DEXA_KG_ALIASES: Record<string, string> = {\n kg: 'kg',\n lb: '[lb_av]',\n lbs: '[lb_av]',\n};\nconst DEXA_KG: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: 'kg',\n canonicalUnit: 'kg',\n siUcum: 'kg',\n siUnit: 'kg',\n};\n\n/**\n * Urine sediment units — Brazilian automated analyzers (Sysmex UF-series)\n * report in /mL while manual microscopy uses /HPF. Canonical unit is /HPF.\n */\nconst URINE_SEDIMENT_ALIASES: Record<string, string> = {\n '/hpf': '/HPF',\n '/ml': '/mL',\n};\nconst URINE_SEDIMENT: Omit<BiomarkerUnitConfig, 'aliases'> = {\n canonicalUcum: '/[HPF]',\n canonicalUnit: '/HPF',\n siUcum: '/[HPF]',\n siUnit: '/HPF',\n};\n\nexport const BIOMARKER_UNITS: Record<string, BiomarkerUnitConfig> = {\n Albumin: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n AntiThyroglobulin: {\n aliases: { 'iu/ml': 'IU/mL', 'ui/ml': 'IU/mL' },\n canonicalUcum: '[iU]/mL',\n canonicalUnit: 'IU/mL',\n siUcum: '[iU]/mL',\n siUnit: 'IU/mL',\n },\n Basophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n BMC: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n Cholesterol: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n Creatinine: {\n aliases: { 'mg/dl': 'mg/dL', 'umol/l': 'µmol/L', 'µmol/l': 'µmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 113.12,\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n CRP: {\n aliases: { 'mg/dl': 'mg/dL', 'mg/l': 'mg/L' },\n canonicalUcum: 'mg/L',\n canonicalUnit: 'mg/L',\n siUcum: 'mg/L',\n siUnit: 'mg/L',\n },\n eGFR: {\n aliases: {\n 'ml/min/1,73 m2': 'mL/min/1.73m²',\n 'ml/min/1.73m2': 'mL/min/1.73m²',\n 'ml/min/1.73m²': 'mL/min/1.73m²',\n },\n canonicalUcum: 'mL/min/{1.73_m2}',\n canonicalUnit: 'mL/min/1.73m²',\n siUcum: 'mL/min/{1.73_m2}',\n siUnit: 'mL/min/1.73m²',\n },\n Eosinophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Estradiol: {\n // TODO: ng/dL ≠ pg/mL (1 ng/dL = 10 pg/mL) — display-only alias for now\n aliases: { 'ng/dl': 'pg/mL', 'pg/ml': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n FatFreeMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n FatMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n Ferritin: {\n aliases: {\n 'mcg/l': 'ng/mL',\n 'microg/l': 'ng/mL',\n 'ng/ml': 'ng/mL',\n 'µg/l': 'ng/mL',\n },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ug/L',\n siUnit: 'µg/L',\n },\n FSH: {\n aliases: {\n 'iu/l': 'mIU/mL',\n 'miu/ml': 'mIU/mL',\n 'ui/l': 'mIU/mL',\n },\n canonicalUcum: 'mIU/mL',\n canonicalUnit: 'mIU/mL',\n siUcum: '[iU]/L',\n siUnit: 'IU/L',\n },\n Glucose: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 180.156,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n HDL: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n Hgb: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n Insulin: {\n aliases: {\n 'mu/l': 'uIU/mL',\n 'uiu/ml': 'uIU/mL',\n 'µu/ml': 'uIU/mL',\n 'µui/ml': 'uIU/mL',\n },\n canonicalUcum: 'u[iU]/mL',\n canonicalUnit: 'uIU/mL',\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n Iron: {\n aliases: {\n 'mcg/dl': 'mcg/dL',\n 'microg/dl': 'mcg/dL',\n 'ug/dl': 'mcg/dL',\n 'µg/dl': 'mcg/dL',\n },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'mcg/dL',\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n LDL: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 386.65,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n LDL_Peak_Size: {\n aliases: { å: 'Ao', angstrom: 'Ao', ao: 'Ao', nm: 'nm' },\n canonicalUcum: 'Ao',\n canonicalUnit: 'Angstrom',\n siUcum: 'nm',\n siUnit: 'nm',\n },\n LeanMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n Leukocytes_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },\n LH: {\n aliases: {\n 'iu/l': 'mIU/mL',\n 'miu/ml': 'mIU/mL',\n 'ui/l': 'mIU/mL',\n },\n canonicalUcum: 'mIU/mL',\n canonicalUnit: 'mIU/mL',\n siUcum: '[iU]/L',\n siUnit: 'IU/L',\n },\n Lipoprotein_a: {\n aliases: { 'mg/dl': 'mg/dL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'nmol/L',\n canonicalUnit: 'nmol/L',\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n Lymphocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n MCHC: {\n aliases: { 'g/dl': 'g/dL', 'g/l': 'g/L' },\n canonicalUcum: 'g/dL',\n canonicalUnit: 'g/dL',\n siUcum: 'g/L',\n siUnit: 'g/L',\n },\n Monocytes_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Neutrophils_Abs: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Platelets: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n Prolactin: {\n aliases: {\n 'microg/l': 'ng/mL',\n 'ng/ml': 'ng/mL',\n 'µg/l': 'ng/mL',\n },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n siUcum: 'ug/L',\n siUnit: 'µg/L',\n },\n RBC: {\n aliases: {\n '/ul': '/uL',\n '/µl': '/uL',\n '10*6/ul': 'M/uL',\n 'cells/ul': '/uL',\n 'm/ul': 'M/uL',\n 'milhões/mm3': 'M/uL',\n 'milhões/mm³': 'M/uL',\n 'x10e6/ul': 'M/uL',\n },\n canonicalUcum: '10*6/uL',\n canonicalUnit: 'M/uL',\n siUcum: '10*6/uL',\n siUnit: 'M/uL',\n },\n RBC_Urine: { aliases: URINE_SEDIMENT_ALIASES, ...URINE_SEDIMENT },\n TestosteroneFree: {\n // TODO: pmol/L ≠ pg/mL (needs MW conversion) — display-only alias for now\n aliases: { 'pg/ml': 'pg/mL', 'pmol/l': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n molecularWeight: 288.42,\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n TIBC: {\n aliases: {\n 'mcg/dl': 'mcg/dL',\n 'microg/dl': 'mcg/dL',\n 'ug/dl': 'mcg/dL',\n 'µg/dl': 'mcg/dL',\n },\n canonicalUcum: 'ug/dL',\n canonicalUnit: 'mcg/dL',\n siUcum: 'umol/L',\n siUnit: 'µmol/L',\n },\n TotalMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n Triglycerides: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 885.4,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n TSH: {\n aliases: {\n 'miu/l': 'uIU/mL',\n 'mui/l': 'uIU/mL',\n 'uiu/ml': 'uIU/mL',\n 'µui/ml': 'uIU/mL',\n },\n canonicalUcum: 'u[iU]/mL',\n canonicalUnit: 'uIU/mL',\n siUcum: 'mIU/L',\n siUnit: 'mIU/L',\n },\n Urea: {\n aliases: { 'mg/dl': 'mg/dL', 'mmol/l': 'mmol/L' },\n canonicalUcum: 'mg/dL',\n canonicalUnit: 'mg/dL',\n molecularWeight: 60.06,\n siUcum: 'mmol/L',\n siUnit: 'mmol/L',\n },\n VATMass: { aliases: DEXA_KG_ALIASES, ...DEXA_KG },\n VATVolume: {\n aliases: { cm3: 'cm3', 'cm³': 'cm3', in3: '[in_i]3', 'in³': '[in_i]3' },\n canonicalUcum: 'cm3',\n canonicalUnit: 'cm³',\n siUcum: 'cm3',\n siUnit: 'cm³',\n },\n VitaminB12: {\n aliases: { 'ng/l': 'pg/mL', 'pg/ml': 'pg/mL' },\n canonicalUcum: 'pg/mL',\n canonicalUnit: 'pg/mL',\n siUcum: 'pmol/L',\n siUnit: 'pmol/L',\n },\n VitaminD: {\n aliases: { 'ng/ml': 'ng/mL', 'nmol/l': 'nmol/L' },\n canonicalUcum: 'ng/mL',\n canonicalUnit: 'ng/mL',\n molecularWeight: 384.64,\n siUcum: 'nmol/L',\n siUnit: 'nmol/L',\n },\n WBC: { aliases: CBC_DIFF_ALIASES, ...CBC_DIFF },\n};\n\n/**\n * Get the canonical unit for a biomarker code.\n */\nexport function getCanonicalUnit(code: string): string | null {\n return BIOMARKER_UNITS[code]?.canonicalUnit ?? null;\n}\n\n/**\n * Get the SI unit for a biomarker code.\n */\nexport function getSIUnit(code: string): string | null {\n return BIOMARKER_UNITS[code]?.siUnit ?? null;\n}\n"],"mappings":"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","names":[]}