@precisa-saude/fhir 0.17.4 → 0.19.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.
- package/dist/biomarkers.cjs +2 -2
- package/dist/biomarkers.js +1 -1
- package/dist/{chunk-R6FI2RNB.cjs → chunk-6HKQY6VO.cjs} +6 -6
- package/dist/chunk-6HKQY6VO.cjs.map +1 -0
- package/dist/{chunk-NAUVJPLC.js → chunk-EXG2IU2O.js} +4 -4
- package/dist/chunk-EXG2IU2O.js.map +1 -0
- package/dist/{chunk-NP4YZFUI.cjs → chunk-J3QVVVVH.cjs} +3 -3
- package/dist/{chunk-NP4YZFUI.cjs.map → chunk-J3QVVVVH.cjs.map} +1 -1
- package/dist/{chunk-LPYXISLF.js → chunk-LCXTQE2B.js} +2 -2
- package/dist/{chunk-CBGEU6SG.cjs → chunk-MMO356YH.cjs} +13 -1
- package/dist/chunk-MMO356YH.cjs.map +1 -0
- package/dist/{chunk-7O6VUA2B.js → chunk-MTWOF55H.js} +287 -2
- package/dist/chunk-MTWOF55H.js.map +1 -0
- package/dist/{chunk-LR2OUVOA.js → chunk-XTEKGGYQ.js} +13 -1
- package/dist/{chunk-LR2OUVOA.js.map → chunk-XTEKGGYQ.js.map} +1 -1
- package/dist/{chunk-ONRVND6U.cjs → chunk-Z5VH5QGC.cjs} +287 -2
- package/dist/chunk-Z5VH5QGC.cjs.map +1 -0
- package/dist/cli.js +301 -4
- package/dist/converter.cjs +3 -3
- package/dist/converter.js +2 -2
- package/dist/importer.cjs +3 -3
- package/dist/importer.d.cts +13 -1
- package/dist/importer.d.ts +13 -1
- package/dist/importer.js +2 -2
- package/dist/index.cjs +6 -6
- package/dist/index.js +4 -4
- package/dist/reference-ranges.cjs +2 -2
- package/dist/reference-ranges.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-7O6VUA2B.js.map +0 -1
- package/dist/chunk-CBGEU6SG.cjs.map +0 -1
- package/dist/chunk-NAUVJPLC.js.map +0 -1
- package/dist/chunk-ONRVND6U.cjs.map +0 -1
- package/dist/chunk-R6FI2RNB.cjs.map +0 -1
- /package/dist/{chunk-LPYXISLF.js.map → chunk-LCXTQE2B.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -2038,10 +2038,20 @@ var BIOMARKER_DEFINITIONS = [
|
|
|
2038
2038
|
},
|
|
2039
2039
|
unit: "kg"
|
|
2040
2040
|
},
|
|
2041
|
+
// Sem `loinc` de propósito. A entrada apontava para 73964-9, cujo nome
|
|
2042
|
+
// oficial é "Body muscle mass Calculated", e massa magra não é massa
|
|
2043
|
+
// muscular: em DEXA, massa magra é tudo que não é gordura nem mineral
|
|
2044
|
+
// ósseo, incluindo órgãos, água e tecido conjuntivo. Massa muscular é um
|
|
2045
|
+
// subconjunto dela.
|
|
2046
|
+
//
|
|
2047
|
+
// O campo sai em bundle FHIR, então a aproximação não ficava só aqui — um
|
|
2048
|
+
// consumidor externo leria massa muscular onde escrevemos massa magra. Não
|
|
2049
|
+
// há LOINC para massa magra (busca por "lean body mass" só devolve códigos
|
|
2050
|
+
// de urina ajustados por LBM), então o certo é não ter código, como já se
|
|
2051
|
+
// faz com FatFreeMass. Quem quer massa muscular usa MuscleMass, abaixo.
|
|
2041
2052
|
{
|
|
2042
2053
|
category: "composicao-corporal",
|
|
2043
2054
|
code: "LeanMass",
|
|
2044
|
-
loinc: "73964-9",
|
|
2045
2055
|
names: {
|
|
2046
2056
|
en: ["Lean Mass", "Lean Body Mass", "Lean Tissue Mass", "Total Lean Mass", "LBM"],
|
|
2047
2057
|
pt: ["Massa Magra", "Massa Corporal Magra", "Tecido Magro", "Massa Magra Total"]
|
|
@@ -2210,6 +2220,281 @@ var BIOMARKER_DEFINITIONS = [
|
|
|
2210
2220
|
},
|
|
2211
2221
|
unit: "kg"
|
|
2212
2222
|
},
|
|
2223
|
+
// ===========================================================================
|
|
2224
|
+
// Composição corporal por bioimpedância, adipometria e antropometria
|
|
2225
|
+
// ===========================================================================
|
|
2226
|
+
//
|
|
2227
|
+
// POLÍTICA DE `loinc` AUSENTE, e o que ela custa
|
|
2228
|
+
//
|
|
2229
|
+
// Várias entradas abaixo não têm `loinc`. Isso não é pendência esquecida: é
|
|
2230
|
+
// o resultado de procurar e não achar, e a decisão tem consequência que
|
|
2231
|
+
// vale enunciar uma vez.
|
|
2232
|
+
//
|
|
2233
|
+
// O que muda sem o código: a observação continua sendo exportada em FHIR e
|
|
2234
|
+
// continua aparecendo para o usuário, mas o `Observation.code` sai só com o
|
|
2235
|
+
// nosso código interno, sem identificador interoperável. Um consumidor
|
|
2236
|
+
// externo consegue ler o valor e a unidade, e não consegue mapear a medida
|
|
2237
|
+
// para o vocabulário dele sem acordo bilateral. Na prática: exibível
|
|
2238
|
+
// sempre, comparável entre sistemas só quando há LOINC.
|
|
2239
|
+
//
|
|
2240
|
+
// Por que ainda assim é o certo: código errado é pior que código ausente.
|
|
2241
|
+
// Ausente o consumidor sabe que precisa perguntar; errado ele integra com
|
|
2242
|
+
// confiança e erra em silêncio. Esta mesma PR corrige um caso desses, em
|
|
2243
|
+
// que `LeanMass` apontava para "Body muscle mass" e o IG publicava massa
|
|
2244
|
+
// muscular sob o rótulo de massa magra.
|
|
2245
|
+
//
|
|
2246
|
+
// Como preencher depois: quando a LOINC publicar o conceito, basta somar o
|
|
2247
|
+
// campo `loinc` — o código interno não muda, e as observações já gravadas
|
|
2248
|
+
// não precisam ser reescritas, porque a chave é o nosso código.
|
|
2249
|
+
//
|
|
2250
|
+
// Todos os códigos aqui foram conferidos na API pública da NLM (Clinical
|
|
2251
|
+
// Table Search Service), e a ausência só foi registrada depois de tentar
|
|
2252
|
+
// múltiplas formulações: "total body water" não devolve nada, "body water"
|
|
2253
|
+
// devolve os dois códigos abaixo.
|
|
2254
|
+
//
|
|
2255
|
+
// As 12 entradas sem código, e o motivo de cada uma:
|
|
2256
|
+
//
|
|
2257
|
+
// VisceralFatLevel índice de 1 a 20; 73707-2 é área, outra grandeza
|
|
2258
|
+
// ResidualMass conceito de fracionamento antropométrico, não LOINC
|
|
2259
|
+
// BasalMetabolicRate candidatos são índice ou RMR medido, ver nota local
|
|
2260
|
+
// ExtracellularWater "extracellular water" não devolve nada
|
|
2261
|
+
// IntracellularWater "intracellular water" não devolve nada
|
|
2262
|
+
// ECWToTBWRatio razão derivada, sem conceito próprio
|
|
2263
|
+
// WaistToHeightRatio "waist to height" não devolve nada
|
|
2264
|
+
// ConicityIndex índice derivado, sem conceito próprio
|
|
2265
|
+
// SkinfoldSubscapular LOINC só tem tríceps, coxa e cintura
|
|
2266
|
+
// SkinfoldSuprailiac idem
|
|
2267
|
+
// SkinfoldChest idem
|
|
2268
|
+
// SkinfoldMidaxillary idem
|
|
2269
|
+
// Bioimpedância (BIA)
|
|
2270
|
+
{
|
|
2271
|
+
category: "composicao-corporal",
|
|
2272
|
+
code: "TotalBodyWater",
|
|
2273
|
+
loinc: "101683-1",
|
|
2274
|
+
names: {
|
|
2275
|
+
en: ["Total Body Water", "Body Water", "TBW", "Total Water"],
|
|
2276
|
+
pt: ["\xC1gua Corporal Total", "\xC1gua Corporal", "ACT", "\xC1gua Total"]
|
|
2277
|
+
},
|
|
2278
|
+
unit: "L"
|
|
2279
|
+
},
|
|
2280
|
+
{
|
|
2281
|
+
category: "composicao-corporal",
|
|
2282
|
+
code: "BodyWaterPct",
|
|
2283
|
+
loinc: "101684-9",
|
|
2284
|
+
names: {
|
|
2285
|
+
en: ["Body Water Percentage", "Percentage of Body Water", "% Body Water", "Water %"],
|
|
2286
|
+
pt: ["Percentual de \xC1gua Corporal", "% \xC1gua Corporal", "\xC1gua Corporal %"]
|
|
2287
|
+
},
|
|
2288
|
+
unit: "%"
|
|
2289
|
+
},
|
|
2290
|
+
{
|
|
2291
|
+
category: "composicao-corporal",
|
|
2292
|
+
code: "MuscleMass",
|
|
2293
|
+
loinc: "73964-9",
|
|
2294
|
+
names: {
|
|
2295
|
+
en: ["Muscle Mass", "Skeletal Muscle Mass", "SMM", "Body Muscle Mass"],
|
|
2296
|
+
pt: [
|
|
2297
|
+
"Massa Muscular",
|
|
2298
|
+
"Massa Muscular Esquel\xE9tica",
|
|
2299
|
+
"MME",
|
|
2300
|
+
"Massa Muscular Corporal",
|
|
2301
|
+
"M\xFAsculo"
|
|
2302
|
+
]
|
|
2303
|
+
},
|
|
2304
|
+
unit: "kg"
|
|
2305
|
+
},
|
|
2306
|
+
{
|
|
2307
|
+
category: "composicao-corporal",
|
|
2308
|
+
code: "PhaseAngle",
|
|
2309
|
+
loinc: "107160-4",
|
|
2310
|
+
names: {
|
|
2311
|
+
en: ["Phase Angle", "Whole Body Phase Angle", "PhA", "AnglePhase"],
|
|
2312
|
+
pt: ["\xC2ngulo de Fase", "\xC2ngulo de Fase Corporal"]
|
|
2313
|
+
},
|
|
2314
|
+
unit: "deg"
|
|
2315
|
+
},
|
|
2316
|
+
// O nível de gordura visceral do InBody e similares é um índice
|
|
2317
|
+
// adimensional de 1 a 20, e NÃO é o mesmo que VATMass ou VATVolume, que
|
|
2318
|
+
// vêm de DEXA em massa e volume. LOINC 73707-2 é "Visceral fat [Area]", em
|
|
2319
|
+
// área, então também não serve. Fica sem código, com unidade vazia, para
|
|
2320
|
+
// não ser confundido com nenhum dos três.
|
|
2321
|
+
{
|
|
2322
|
+
category: "composicao-corporal",
|
|
2323
|
+
code: "VisceralFatLevel",
|
|
2324
|
+
names: {
|
|
2325
|
+
en: ["Visceral Fat Level", "Visceral Fat Index", "VFL"],
|
|
2326
|
+
pt: ["N\xEDvel de Gordura Visceral", "\xCDndice de Gordura Visceral", "Gordura Visceral N\xEDvel"]
|
|
2327
|
+
},
|
|
2328
|
+
unit: ""
|
|
2329
|
+
},
|
|
2330
|
+
// Compartimentos de água. Sem LOINC: busca por "extracellular water" e
|
|
2331
|
+
// "intracellular water" não devolve nada, ao contrário de "body water",
|
|
2332
|
+
// que rendeu os dois códigos usados acima.
|
|
2333
|
+
{
|
|
2334
|
+
category: "composicao-corporal",
|
|
2335
|
+
code: "ExtracellularWater",
|
|
2336
|
+
names: {
|
|
2337
|
+
en: ["Extracellular Water", "ECW"],
|
|
2338
|
+
pt: ["\xC1gua Extracelular", "AEC"]
|
|
2339
|
+
},
|
|
2340
|
+
unit: "L"
|
|
2341
|
+
},
|
|
2342
|
+
{
|
|
2343
|
+
category: "composicao-corporal",
|
|
2344
|
+
code: "IntracellularWater",
|
|
2345
|
+
names: {
|
|
2346
|
+
en: ["Intracellular Water", "ICW"],
|
|
2347
|
+
pt: ["\xC1gua Intracelular", "AIC"]
|
|
2348
|
+
},
|
|
2349
|
+
unit: "L"
|
|
2350
|
+
},
|
|
2351
|
+
// Razão entre água extracelular e total. É o marcador de retenção hídrica
|
|
2352
|
+
// e de estado inflamatório que os aparelhos de bioimpedância reportam, e
|
|
2353
|
+
// vem adimensional.
|
|
2354
|
+
{
|
|
2355
|
+
category: "composicao-corporal",
|
|
2356
|
+
code: "ECWToTBWRatio",
|
|
2357
|
+
names: {
|
|
2358
|
+
en: ["ECW/TBW", "ECW_TBW", "ECW to TBW Ratio", "Extracellular Water Ratio"],
|
|
2359
|
+
pt: ["Rela\xE7\xE3o AEC/ACT", "Raz\xE3o \xC1gua Extracelular"]
|
|
2360
|
+
},
|
|
2361
|
+
unit: ""
|
|
2362
|
+
},
|
|
2363
|
+
{
|
|
2364
|
+
category: "composicao-corporal",
|
|
2365
|
+
code: "ResidualMass",
|
|
2366
|
+
names: {
|
|
2367
|
+
en: ["Residual Mass", "Residual Weight"],
|
|
2368
|
+
pt: ["Massa Residual", "Peso Residual"]
|
|
2369
|
+
},
|
|
2370
|
+
unit: "kg"
|
|
2371
|
+
},
|
|
2372
|
+
// Sem `loinc` até alguém decidir com a definição completa em mãos. Os
|
|
2373
|
+
// candidatos não servem como estão: 50042-1 é "Basal metabolic rate
|
|
2374
|
+
// index", um índice e não kcal/dia; 82278-3 é "Measured RMR", medido por
|
|
2375
|
+
// calorimetria indireta, enquanto o aparelho de bioimpedância *estima* a
|
|
2376
|
+
// partir da massa magra; 82286-6 "Predicted RMR" é o mais próximo, mas
|
|
2377
|
+
// ainda é RMR e não TMB. Colocar qualquer um deles repetiria o erro que
|
|
2378
|
+
// esta mesma PR corrige em LeanMass.
|
|
2379
|
+
{
|
|
2380
|
+
category: "composicao-corporal",
|
|
2381
|
+
code: "BasalMetabolicRate",
|
|
2382
|
+
names: {
|
|
2383
|
+
en: ["Basal Metabolic Rate", "BMR"],
|
|
2384
|
+
pt: ["Taxa Metab\xF3lica Basal", "TMB", "Metabolismo Basal", "Gasto Energ\xE9tico Basal"]
|
|
2385
|
+
},
|
|
2386
|
+
unit: "kcal/d"
|
|
2387
|
+
},
|
|
2388
|
+
// Antropometria
|
|
2389
|
+
{
|
|
2390
|
+
category: "composicao-corporal",
|
|
2391
|
+
code: "WaistCircumference",
|
|
2392
|
+
// 8280-0 é a medida em si. 56086-2, que parecia o óbvio pela busca, é
|
|
2393
|
+
// "Adult Waist Circumference Protocol", um protocolo PhenX e não um
|
|
2394
|
+
// resultado.
|
|
2395
|
+
loinc: "8280-0",
|
|
2396
|
+
names: {
|
|
2397
|
+
en: ["Waist Circumference", "Abdominal Circumference", "Waist"],
|
|
2398
|
+
pt: [
|
|
2399
|
+
"Circunfer\xEAncia de Cintura",
|
|
2400
|
+
"Circunfer\xEAncia Abdominal",
|
|
2401
|
+
"Per\xEDmetro Abdominal",
|
|
2402
|
+
"Cintura"
|
|
2403
|
+
]
|
|
2404
|
+
},
|
|
2405
|
+
unit: "cm"
|
|
2406
|
+
},
|
|
2407
|
+
{
|
|
2408
|
+
category: "composicao-corporal",
|
|
2409
|
+
code: "WaistToHeightRatio",
|
|
2410
|
+
names: {
|
|
2411
|
+
en: ["Waist to Height Ratio", "Waist-to-Height Ratio", "WHtR"],
|
|
2412
|
+
pt: ["Raz\xE3o Cintura-Altura", "Rela\xE7\xE3o Cintura-Estatura", "RCEst"]
|
|
2413
|
+
},
|
|
2414
|
+
unit: ""
|
|
2415
|
+
},
|
|
2416
|
+
{
|
|
2417
|
+
category: "composicao-corporal",
|
|
2418
|
+
code: "ConicityIndex",
|
|
2419
|
+
names: {
|
|
2420
|
+
en: ["Conicity Index", "C Index"],
|
|
2421
|
+
pt: ["\xCDndice de Conicidade", "\xCDndice C"]
|
|
2422
|
+
},
|
|
2423
|
+
unit: ""
|
|
2424
|
+
},
|
|
2425
|
+
// Dobras cutâneas (adipometria)
|
|
2426
|
+
//
|
|
2427
|
+
// A LOINC tem apenas três sítios: tríceps, coxa e cintura. Os outros quatro
|
|
2428
|
+
// que os protocolos brasileiros medem ficam sem código, e é por ausência
|
|
2429
|
+
// confirmada, não por falta de busca. Entram individualmente porque o
|
|
2430
|
+
// protocolo de somatório varia (Pollock 3 ou 7 dobras, Faulkner, Guedes) e
|
|
2431
|
+
// guardar só a soma perderia o dado de origem.
|
|
2432
|
+
{
|
|
2433
|
+
category: "composicao-corporal",
|
|
2434
|
+
code: "SkinfoldTriceps",
|
|
2435
|
+
loinc: "8354-3",
|
|
2436
|
+
names: {
|
|
2437
|
+
en: ["Triceps Skinfold", "Tricipital Skinfold", "Skin Fold Thickness Triceps"],
|
|
2438
|
+
pt: ["Dobra Tricipital", "Dobra Cut\xE2nea Tricipital", "Tricipital", "DCT"]
|
|
2439
|
+
},
|
|
2440
|
+
unit: "mm"
|
|
2441
|
+
},
|
|
2442
|
+
{
|
|
2443
|
+
category: "composicao-corporal",
|
|
2444
|
+
code: "SkinfoldThigh",
|
|
2445
|
+
loinc: "8353-5",
|
|
2446
|
+
names: {
|
|
2447
|
+
en: ["Thigh Skinfold", "Skin Fold Thickness Thigh"],
|
|
2448
|
+
pt: ["Dobra da Coxa", "Dobra Cut\xE2nea Coxa", "Coxa"]
|
|
2449
|
+
},
|
|
2450
|
+
unit: "mm"
|
|
2451
|
+
},
|
|
2452
|
+
{
|
|
2453
|
+
category: "composicao-corporal",
|
|
2454
|
+
code: "SkinfoldAbdominal",
|
|
2455
|
+
loinc: "8355-0",
|
|
2456
|
+
names: {
|
|
2457
|
+
en: ["Abdominal Skinfold", "Waist Skinfold", "Skin Fold Thickness Waist"],
|
|
2458
|
+
pt: ["Dobra Abdominal", "Dobra Cut\xE2nea Abdominal", "Abdominal"]
|
|
2459
|
+
},
|
|
2460
|
+
unit: "mm"
|
|
2461
|
+
},
|
|
2462
|
+
{
|
|
2463
|
+
category: "composicao-corporal",
|
|
2464
|
+
code: "SkinfoldSubscapular",
|
|
2465
|
+
names: {
|
|
2466
|
+
en: ["Subscapular Skinfold"],
|
|
2467
|
+
pt: ["Dobra Subescapular", "Dobra Cut\xE2nea Subescapular", "Subescapular"]
|
|
2468
|
+
},
|
|
2469
|
+
unit: "mm"
|
|
2470
|
+
},
|
|
2471
|
+
{
|
|
2472
|
+
category: "composicao-corporal",
|
|
2473
|
+
code: "SkinfoldSuprailiac",
|
|
2474
|
+
names: {
|
|
2475
|
+
en: ["Suprailiac Skinfold", "Supra-iliac Skinfold"],
|
|
2476
|
+
pt: ["Dobra Supra-il\xEDaca", "Dobra Cut\xE2nea Supra-il\xEDaca", "Supra-il\xEDaca", "Suprailiaca"]
|
|
2477
|
+
},
|
|
2478
|
+
unit: "mm"
|
|
2479
|
+
},
|
|
2480
|
+
{
|
|
2481
|
+
category: "composicao-corporal",
|
|
2482
|
+
code: "SkinfoldChest",
|
|
2483
|
+
names: {
|
|
2484
|
+
en: ["Chest Skinfold", "Pectoral Skinfold"],
|
|
2485
|
+
pt: ["Dobra Peitoral", "Dobra Cut\xE2nea Peitoral", "Peitoral", "Dobra Tor\xE1cica"]
|
|
2486
|
+
},
|
|
2487
|
+
unit: "mm"
|
|
2488
|
+
},
|
|
2489
|
+
{
|
|
2490
|
+
category: "composicao-corporal",
|
|
2491
|
+
code: "SkinfoldMidaxillary",
|
|
2492
|
+
names: {
|
|
2493
|
+
en: ["Midaxillary Skinfold", "Mid-axillary Skinfold"],
|
|
2494
|
+
pt: ["Dobra Axilar M\xE9dia", "Dobra Cut\xE2nea Axilar M\xE9dia", "Axilar M\xE9dia"]
|
|
2495
|
+
},
|
|
2496
|
+
unit: "mm"
|
|
2497
|
+
},
|
|
2213
2498
|
// Regional Body Composition (DEXA)
|
|
2214
2499
|
// Note: No official LOINC codes exist for regional lean/fat mass measurements
|
|
2215
2500
|
// Hidden from UI for now - may be shown in future regional breakdown view
|
|
@@ -3888,8 +4173,8 @@ function validateFHIRImportBundle(data) {
|
|
|
3888
4173
|
}
|
|
3889
4174
|
|
|
3890
4175
|
// src/importer.ts
|
|
3891
|
-
var MAX_OBSERVATIONS =
|
|
3892
|
-
var MAX_FILE_SIZE =
|
|
4176
|
+
var MAX_OBSERVATIONS = 5e3;
|
|
4177
|
+
var MAX_FILE_SIZE = 15 * 1024 * 1024;
|
|
3893
4178
|
function extractLoincCode(observation) {
|
|
3894
4179
|
if (!observation.code?.coding) return void 0;
|
|
3895
4180
|
const loincCoding = observation.code.coding.find((c) => c.system === "http://loinc.org");
|
|
@@ -5643,6 +5928,18 @@ var biomarkerRangeDefinitions = {
|
|
|
5643
5928
|
}
|
|
5644
5929
|
]
|
|
5645
5930
|
},
|
|
5931
|
+
// Revisão sistemática de 78 estudos, catorze países, incluindo população
|
|
5932
|
+
// centro-americana: o limite médio ficou em 0,50 para homens e para
|
|
5933
|
+
// mulheres, e é o mesmo para os dois sexos, daí não haver variantes.
|
|
5934
|
+
//
|
|
5935
|
+
// Só `max`. O limite inferior não entra porque a revisão não estabelece
|
|
5936
|
+
// piso, e inventar um transformaria em alteração um valor que a fonte não
|
|
5937
|
+
// classifica.
|
|
5938
|
+
WaistToHeightRatio: {
|
|
5939
|
+
default: { max: 0.5, unit: "" },
|
|
5940
|
+
direction: "lower-better",
|
|
5941
|
+
source: "browning-ashwell-2010"
|
|
5942
|
+
},
|
|
5646
5943
|
AndroidGynoidRatio: {
|
|
5647
5944
|
default: { max: 1.2, min: 0.5, optimalMax: 1, optimalMin: 0.6, unit: "" },
|
|
5648
5945
|
direction: "lower-better",
|
|
@@ -6192,7 +6489,7 @@ async function main() {
|
|
|
6192
6489
|
strict: false
|
|
6193
6490
|
});
|
|
6194
6491
|
if (values.version) {
|
|
6195
|
-
process.stdout.write(`${"0.
|
|
6492
|
+
process.stdout.write(`${"0.19.0"}
|
|
6196
6493
|
`);
|
|
6197
6494
|
return;
|
|
6198
6495
|
}
|
package/dist/converter.cjs
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
7
|
-
require('./chunk-
|
|
6
|
+
var _chunkJ3QVVVVHcjs = require('./chunk-J3QVVVVH.cjs');
|
|
7
|
+
require('./chunk-Z5VH5QGC.cjs');
|
|
8
8
|
require('./chunk-MJ254F5K.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
exports.labObservationToFHIR =
|
|
14
|
+
exports.labObservationToFHIR = _chunkJ3QVVVVHcjs.labObservationToFHIR; exports.labReportToFHIR = _chunkJ3QVVVVHcjs.labReportToFHIR; exports.labResultToFHIRBundle = _chunkJ3QVVVVHcjs.labResultToFHIRBundle; exports.userProfileToFHIR = _chunkJ3QVVVVHcjs.userProfileToFHIR;
|
|
15
15
|
//# sourceMappingURL=converter.cjs.map
|
package/dist/converter.js
CHANGED
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
labReportToFHIR,
|
|
4
4
|
labResultToFHIRBundle,
|
|
5
5
|
userProfileToFHIR
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-LCXTQE2B.js";
|
|
7
|
+
import "./chunk-MTWOF55H.js";
|
|
8
8
|
import "./chunk-R4MUCMO3.js";
|
|
9
9
|
export {
|
|
10
10
|
labObservationToFHIR,
|
package/dist/importer.cjs
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
require('./chunk-
|
|
7
|
+
var _chunk6HKQY6VOcjs = require('./chunk-6HKQY6VO.cjs');
|
|
8
|
+
require('./chunk-Z5VH5QGC.cjs');
|
|
9
9
|
require('./chunk-3ILBFLVQ.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
@@ -13,5 +13,5 @@ require('./chunk-3ILBFLVQ.cjs');
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
exports.MAX_FILE_SIZE =
|
|
16
|
+
exports.MAX_FILE_SIZE = _chunk6HKQY6VOcjs.MAX_FILE_SIZE; exports.MAX_OBSERVATIONS = _chunk6HKQY6VOcjs.MAX_OBSERVATIONS; exports.extractObservationsFromBundle = _chunk6HKQY6VOcjs.extractObservationsFromBundle; exports.mapFHIRObservationToInternal = _chunk6HKQY6VOcjs.mapFHIRObservationToInternal; exports.processImportBundle = _chunk6HKQY6VOcjs.processImportBundle;
|
|
17
17
|
//# sourceMappingURL=importer.cjs.map
|
package/dist/importer.d.cts
CHANGED
|
@@ -35,7 +35,19 @@ interface FHIRImportResult {
|
|
|
35
35
|
skipped: SkippedEntry[];
|
|
36
36
|
totalProcessed: number;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Limites de importação.
|
|
40
|
+
*
|
|
41
|
+
* Uma Observation exportada ocupa cerca de 1,25KB em JSON compacto e 2,75KB
|
|
42
|
+
* quando o arquivo vem indentado, medido sobre um histórico real de 998
|
|
43
|
+
* Observations em 61 laudos. Nesse tamanho, 5000 Observations dão 6,0MB
|
|
44
|
+
* compactos ou 13,1MB indentados, e por isso o teto de arquivo é 15MB: cobre
|
|
45
|
+
* as duas formas com folga.
|
|
46
|
+
*
|
|
47
|
+
* Na densidade desse mesmo histórico (16 Observations por laudo), 5000
|
|
48
|
+
* equivalem a cerca de 300 laudos.
|
|
49
|
+
*/
|
|
50
|
+
declare const MAX_OBSERVATIONS = 5000;
|
|
39
51
|
declare const MAX_FILE_SIZE: number;
|
|
40
52
|
/**
|
|
41
53
|
* Extract Observation resources from a FHIR Bundle
|
package/dist/importer.d.ts
CHANGED
|
@@ -35,7 +35,19 @@ interface FHIRImportResult {
|
|
|
35
35
|
skipped: SkippedEntry[];
|
|
36
36
|
totalProcessed: number;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Limites de importação.
|
|
40
|
+
*
|
|
41
|
+
* Uma Observation exportada ocupa cerca de 1,25KB em JSON compacto e 2,75KB
|
|
42
|
+
* quando o arquivo vem indentado, medido sobre um histórico real de 998
|
|
43
|
+
* Observations em 61 laudos. Nesse tamanho, 5000 Observations dão 6,0MB
|
|
44
|
+
* compactos ou 13,1MB indentados, e por isso o teto de arquivo é 15MB: cobre
|
|
45
|
+
* as duas formas com folga.
|
|
46
|
+
*
|
|
47
|
+
* Na densidade desse mesmo histórico (16 Observations por laudo), 5000
|
|
48
|
+
* equivalem a cerca de 300 laudos.
|
|
49
|
+
*/
|
|
50
|
+
declare const MAX_OBSERVATIONS = 5000;
|
|
39
51
|
declare const MAX_FILE_SIZE: number;
|
|
40
52
|
/**
|
|
41
53
|
* Extract Observation resources from a FHIR Bundle
|
package/dist/importer.js
CHANGED
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
extractObservationsFromBundle,
|
|
5
5
|
mapFHIRObservationToInternal,
|
|
6
6
|
processImportBundle
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-EXG2IU2O.js";
|
|
8
|
+
import "./chunk-MTWOF55H.js";
|
|
9
9
|
import "./chunk-N3ZCOLG2.js";
|
|
10
10
|
export {
|
|
11
11
|
MAX_FILE_SIZE,
|
package/dist/index.cjs
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkJ3QVVVVHcjs = require('./chunk-J3QVVVVH.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunk6HKQY6VOcjs = require('./chunk-6HKQY6VO.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -43,7 +43,7 @@ var _chunkR6FI2RNBcjs = require('./chunk-R6FI2RNB.cjs');
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
var
|
|
46
|
+
var _chunkZ5VH5QGCcjs = require('./chunk-Z5VH5QGC.cjs');
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
|
|
@@ -51,7 +51,7 @@ var _chunkONRVND6Ucjs = require('./chunk-ONRVND6U.cjs');
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
var
|
|
54
|
+
var _chunkMMO356YHcjs = require('./chunk-MMO356YH.cjs');
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
|
|
@@ -228,7 +228,7 @@ function interventionToFHIRObservation(intervention, patientId) {
|
|
|
228
228
|
}
|
|
229
229
|
function interventionsToFHIRBundle(interventions, userProfile) {
|
|
230
230
|
const patientId = userProfile.userId;
|
|
231
|
-
const fhirPatient =
|
|
231
|
+
const fhirPatient = _chunkJ3QVVVVHcjs.userProfileToFHIR.call(void 0, userProfile);
|
|
232
232
|
const entries = interventions.map((intervention) => {
|
|
233
233
|
const isMedication = intervention.type === "medication" || intervention.type === "supplement";
|
|
234
234
|
const resource = isMedication ? interventionToFHIRMedicationStatement(intervention, patientId) : interventionToFHIRObservation(intervention, patientId);
|
|
@@ -691,5 +691,5 @@ function cnsToFHIRIdentifier(cns) {
|
|
|
691
691
|
|
|
692
692
|
|
|
693
693
|
|
|
694
|
-
exports.AGE_BRACKETS = AGE_BRACKETS; exports.BIOMARKER_DEFAULT_UNIT = _chunkMJ254F5Kcjs.BIOMARKER_DEFAULT_UNIT; exports.BIOMARKER_DEFINITIONS =
|
|
694
|
+
exports.AGE_BRACKETS = AGE_BRACKETS; exports.BIOMARKER_DEFAULT_UNIT = _chunkMJ254F5Kcjs.BIOMARKER_DEFAULT_UNIT; exports.BIOMARKER_DEFINITIONS = _chunkZ5VH5QGCcjs.BIOMARKER_DEFINITIONS; exports.BIOMARKER_UNITS = _chunkMJ254F5Kcjs.BIOMARKER_UNITS; exports.BODY_FAT_ZONES = BODY_FAT_ZONES; exports.CAC_INDICATOR_CODES = _chunkZ5VH5QGCcjs.CAC_INDICATOR_CODES; exports.CATEGORY_GROUPS = CATEGORY_GROUPS; exports.CATEGORY_SCREENING_INTERVALS = CATEGORY_SCREENING_INTERVALS; exports.DEXA_CATEGORIES = _chunkZ5VH5QGCcjs.DEXA_CATEGORIES; exports.DEXA_INDICATOR_CODES = _chunkZ5VH5QGCcjs.DEXA_INDICATOR_CODES; exports.MAX_FILE_SIZE = _chunk6HKQY6VOcjs.MAX_FILE_SIZE; exports.MAX_OBSERVATIONS = _chunk6HKQY6VOcjs.MAX_OBSERVATIONS; exports.T_SCORE_ZONES = T_SCORE_ZONES; exports.UNIT_TO_UCUM = _chunkMJ254F5Kcjs.UNIT_TO_UCUM; exports.ZONE_DEFS = ZONE_DEFS; exports.applyFallbackReferenceRanges = _chunkMMO356YHcjs.applyFallbackReferenceRanges; exports.biomarkerRangeDefinitions = _chunkMMO356YHcjs.biomarkerRangeDefinitions; exports.calculateNextScreeningDate = calculateNextScreeningDate; exports.cnsToFHIRIdentifier = cnsToFHIRIdentifier; exports.codeToLoinc = _chunkZ5VH5QGCcjs.codeToLoinc; exports.convertUnit = _chunkMJ254F5Kcjs.convertUnit; exports.cpfToFHIRIdentifier = cpfToFHIRIdentifier; exports.defaultReferenceRanges = _chunkMMO356YHcjs.defaultReferenceRanges; exports.extractObservationsFromBundle = _chunk6HKQY6VOcjs.extractObservationsFromBundle; exports.filterVisibleBiomarkers = _chunkZ5VH5QGCcjs.filterVisibleBiomarkers; exports.findCodeByName = _chunkZ5VH5QGCcjs.findCodeByName; exports.formatCNS = formatCNS; exports.formatCPF = formatCPF; exports.generateCacFullReference = _chunkZ5VH5QGCcjs.generateCacFullReference; exports.generateDexaFullReference = _chunkZ5VH5QGCcjs.generateDexaFullReference; exports.generateFilteredLLMReference = _chunkZ5VH5QGCcjs.generateFilteredLLMReference; exports.generateLLMReference = _chunkZ5VH5QGCcjs.generateLLMReference; exports.getAllCodes = _chunkZ5VH5QGCcjs.getAllCodes; exports.getAllDefinitions = _chunkZ5VH5QGCcjs.getAllDefinitions; exports.getAllLoincCodes = _chunkZ5VH5QGCcjs.getAllLoincCodes; exports.getAllSearchPatterns = _chunkZ5VH5QGCcjs.getAllSearchPatterns; exports.getBiomarkersByCategory = _chunkZ5VH5QGCcjs.getBiomarkersByCategory; exports.getBiomarkersForCategories = _chunkZ5VH5QGCcjs.getBiomarkersForCategories; exports.getCanonicalUnit = _chunkMJ254F5Kcjs.getCanonicalUnit; exports.getCategoriesByInterval = getCategoriesByInterval; exports.getCategoryGroup = getCategoryGroup; exports.getDaysUntilScreening = getDaysUntilScreening; exports.getDefaultUnit = _chunkMJ254F5Kcjs.getDefaultUnit; exports.getDefinitionByCode = _chunkZ5VH5QGCcjs.getDefinitionByCode; exports.getDefinitionByLoinc = _chunkZ5VH5QGCcjs.getDefinitionByLoinc; exports.getDefinitionsBySex = _chunkZ5VH5QGCcjs.getDefinitionsBySex; exports.getDueCategories = getDueCategories; exports.getFallbackReferenceRange = _chunkMMO356YHcjs.getFallbackReferenceRange; exports.getRangeDirection = _chunkMMO356YHcjs.getRangeDirection; exports.getReferenceRange = _chunkMMO356YHcjs.getReferenceRange; exports.getSIUnit = _chunkMJ254F5Kcjs.getSIUnit; exports.getScreeningInterval = getScreeningInterval; exports.getSexForCode = _chunkZ5VH5QGCcjs.getSexForCode; exports.getVisibleDefinitions = _chunkZ5VH5QGCcjs.getVisibleDefinitions; exports.interventionToFHIRMedicationStatement = interventionToFHIRMedicationStatement; exports.interventionToFHIRObservation = interventionToFHIRObservation; exports.interventionsToFHIRBundle = interventionsToFHIRBundle; exports.isBiomarkerVisible = _chunkZ5VH5QGCcjs.isBiomarkerVisible; exports.isCacDocument = _chunkZ5VH5QGCcjs.isCacDocument; exports.isDexaDocument = _chunkZ5VH5QGCcjs.isDexaDocument; exports.isScreeningDue = isScreeningDue; exports.isValidCode = _chunkZ5VH5QGCcjs.isValidCode; exports.isValidLoinc = _chunkZ5VH5QGCcjs.isValidLoinc; exports.labObservationToFHIR = _chunkJ3QVVVVHcjs.labObservationToFHIR; exports.labReportToFHIR = _chunkJ3QVVVVHcjs.labReportToFHIR; exports.labResultToFHIRBundle = _chunkJ3QVVVVHcjs.labResultToFHIRBundle; exports.listMappedSubcategories = listMappedSubcategories; exports.loincToCode = _chunkZ5VH5QGCcjs.loincToCode; exports.mapFHIRObservationToInternal = _chunk6HKQY6VOcjs.mapFHIRObservationToInternal; exports.normalizeCode = _chunkZ5VH5QGCcjs.normalizeCode; exports.plural = plural; exports.pluralCount = pluralCount; exports.pluralPhrase = pluralPhrase; exports.pluralPhraseCount = pluralPhraseCount; exports.processImportBundle = _chunk6HKQY6VOcjs.processImportBundle; exports.toBiomarkerTests = _chunkZ5VH5QGCcjs.toBiomarkerTests; exports.unitToUCUM = _chunkMJ254F5Kcjs.unitToUCUM; exports.userProfileToFHIR = _chunkJ3QVVVVHcjs.userProfileToFHIR; exports.validateCNS = validateCNS; exports.validateCPF = validateCPF; exports.validateFHIRDiagnosticReport = _chunk3ILBFLVQcjs.validateFHIRDiagnosticReport; exports.validateFHIRImportBundle = _chunk3ILBFLVQcjs.validateFHIRImportBundle; exports.validateFHIRObservation = _chunk3ILBFLVQcjs.validateFHIRObservation; exports.validateLoincNameMatch = _chunkZ5VH5QGCcjs.validateLoincNameMatch;
|
|
695
695
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.js
CHANGED
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
labReportToFHIR,
|
|
4
4
|
labResultToFHIRBundle,
|
|
5
5
|
userProfileToFHIR
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LCXTQE2B.js";
|
|
7
7
|
import {
|
|
8
8
|
MAX_FILE_SIZE,
|
|
9
9
|
MAX_OBSERVATIONS,
|
|
10
10
|
extractObservationsFromBundle,
|
|
11
11
|
mapFHIRObservationToInternal,
|
|
12
12
|
processImportBundle
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-EXG2IU2O.js";
|
|
14
14
|
import {
|
|
15
15
|
BIOMARKER_DEFINITIONS,
|
|
16
16
|
CAC_INDICATOR_CODES,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
normalizeCode,
|
|
44
44
|
toBiomarkerTests,
|
|
45
45
|
validateLoincNameMatch
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-MTWOF55H.js";
|
|
47
47
|
import {
|
|
48
48
|
applyFallbackReferenceRanges,
|
|
49
49
|
biomarkerRangeDefinitions,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
getFallbackReferenceRange,
|
|
52
52
|
getRangeDirection,
|
|
53
53
|
getReferenceRange
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-XTEKGGYQ.js";
|
|
55
55
|
import {
|
|
56
56
|
BIOMARKER_DEFAULT_UNIT,
|
|
57
57
|
BIOMARKER_UNITS,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkMMO356YHcjs = require('./chunk-MMO356YH.cjs');
|
|
9
9
|
require('./chunk-MJ254F5K.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
@@ -14,5 +14,5 @@ require('./chunk-MJ254F5K.cjs');
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
exports.applyFallbackReferenceRanges =
|
|
17
|
+
exports.applyFallbackReferenceRanges = _chunkMMO356YHcjs.applyFallbackReferenceRanges; exports.biomarkerRangeDefinitions = _chunkMMO356YHcjs.biomarkerRangeDefinitions; exports.defaultReferenceRanges = _chunkMMO356YHcjs.defaultReferenceRanges; exports.getFallbackReferenceRange = _chunkMMO356YHcjs.getFallbackReferenceRange; exports.getRangeDirection = _chunkMMO356YHcjs.getRangeDirection; exports.getReferenceRange = _chunkMMO356YHcjs.getReferenceRange;
|
|
18
18
|
//# sourceMappingURL=reference-ranges.cjs.map
|
package/dist/reference-ranges.js
CHANGED
package/package.json
CHANGED