fhir-dosage-utils 1.10.0 → 1.10.2
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/main.js +173 -332
- package/dist/main.js.map +1 -1
- package/dist/module.js +173 -332
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +1 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/main.js
CHANGED
@@ -18,40 +18,44 @@ function $parcel$interopDefault(a) {
|
|
18
18
|
$parcel$defineInteropFlag(module.exports);
|
19
19
|
|
20
20
|
$parcel$export(module.exports, "default", () => $882b6d93070905b3$export$2e2bcd8739ae039);
|
21
|
-
// Classe(s)
|
22
21
|
|
23
22
|
|
24
|
-
|
23
|
+
function $3d60081b7152576d$export$e7321bf46d18757f(val) {
|
24
|
+
return val !== undefined;
|
25
|
+
}
|
26
|
+
function $3d60081b7152576d$export$3b3497187fd4cc1a(...args) {
|
27
|
+
return args.every($3d60081b7152576d$export$e7321bf46d18757f);
|
28
|
+
}
|
29
|
+
function $3d60081b7152576d$export$cbff5d1bcc7ff30a(...args) {
|
30
|
+
return !args.some($3d60081b7152576d$export$e7321bf46d18757f);
|
31
|
+
}
|
32
|
+
|
33
|
+
|
25
34
|
function $1c57f108974f2805$export$b1a6aed91fad1636({ quantity: quantity }) {
|
26
|
-
if (quantity.code
|
27
|
-
if (quantity.unit
|
35
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(quantity.code)) return quantity.code;
|
36
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(quantity.unit)) return quantity.unit;
|
28
37
|
return "";
|
29
38
|
}
|
30
39
|
|
31
40
|
|
32
|
-
|
41
|
+
|
33
42
|
function $7642ff4865ae4b0f$export$d9ff4a623e416a11(array) {
|
34
|
-
return array
|
43
|
+
return !(0, $3d60081b7152576d$export$e7321bf46d18757f)(array) || array.length === 0;
|
35
44
|
}
|
36
45
|
|
37
46
|
|
47
|
+
|
38
48
|
function $a6c648898dc8c3b6$export$f478f96b98da13a4({ code: code }) {
|
39
|
-
|
40
|
-
if (
|
41
|
-
// Take text first
|
42
|
-
if (code.text !== undefined) return code.text;
|
43
|
-
// If empty, skip it
|
49
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(code)) return undefined;
|
50
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(code.text)) return code.text;
|
44
51
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(code.coding)) return undefined;
|
45
|
-
// Take first coding; display first then code
|
46
52
|
let firstCode = code.coding[0];
|
47
53
|
return firstCode.display || firstCode.code;
|
48
54
|
}
|
49
55
|
|
50
56
|
|
51
|
-
// Functions
|
52
57
|
|
53
58
|
function $34ebae8ac5b52fcd$export$30c337e25ab8e95b({ extensions: extensions }) {
|
54
|
-
// If no extensions, skip it
|
55
59
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(extensions)) return undefined;
|
56
60
|
// KIS implementation : print it as provided, without doing anything
|
57
61
|
// Extensions have so many cases btw, that having a basic function does the trick
|
@@ -97,18 +101,12 @@ const $99ea7fa882fd33ad$export$38cd8db2db178f58 = {
|
|
97
101
|
|
98
102
|
|
99
103
|
class $868b4eaa4f62b9f7$export$f807d9a22ff8372d {
|
100
|
-
// Set up lib, according provided parameters
|
101
104
|
constructor(userConfig, i18nConfig){
|
102
|
-
// User config
|
103
105
|
this.config = {
|
104
|
-
// default attributes
|
105
106
|
...(0, $99ea7fa882fd33ad$export$38cd8db2db178f58),
|
106
|
-
// attributes set by user
|
107
107
|
...userConfig
|
108
108
|
};
|
109
|
-
// I18N config
|
110
109
|
this.i18nConfig = {
|
111
|
-
// default attributes
|
112
110
|
fallbackLng: "en",
|
113
111
|
lng: this.config.language,
|
114
112
|
ns: [
|
@@ -119,7 +117,6 @@ class $868b4eaa4f62b9f7$export$f807d9a22ff8372d {
|
|
119
117
|
"quantityComparator"
|
120
118
|
],
|
121
119
|
defaultNS: "common",
|
122
|
-
// attributes set by user
|
123
120
|
...i18nConfig
|
124
121
|
};
|
125
122
|
this.i18nInstance = (0, ($parcel$interopDefault($8zHUo$i18next))).createInstance();
|
@@ -187,55 +184,41 @@ class $868b4eaa4f62b9f7$export$f807d9a22ff8372d {
|
|
187
184
|
}
|
188
185
|
|
189
186
|
|
190
|
-
|
191
|
-
// To avoid circular dependancies issue, let's have a single place for exports and imports
|
192
|
-
// Functions
|
193
|
-
// Types
|
187
|
+
|
194
188
|
function $5461d5c8b4bc074f$export$76d408d587da5203(dos, key) {
|
195
|
-
|
196
|
-
if (dos.doseAndRate === undefined) return undefined;
|
189
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(dos.doseAndRate)) return undefined;
|
197
190
|
// Find the first entry that match criteria
|
198
|
-
let doseAndRate = dos.doseAndRate.find((s)=>s[key]
|
199
|
-
|
200
|
-
if (doseAndRate === undefined) return undefined;
|
201
|
-
// return property
|
191
|
+
let doseAndRate = dos.doseAndRate.find((s)=>(0, $3d60081b7152576d$export$e7321bf46d18757f)(s[key]));
|
192
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(doseAndRate)) return undefined;
|
202
193
|
return doseAndRate[key];
|
203
194
|
}
|
204
195
|
|
205
196
|
|
206
|
-
|
207
|
-
// Type
|
197
|
+
|
208
198
|
function $6ce94eb09701f53d$export$e9106be159f8c977({ quantity: quantity, config: config, i18next: i18next }) {
|
209
|
-
// extract function for the unit display from config
|
210
199
|
const { fromFHIRQuantityUnitToString: fromFHIRQuantityUnitToString, language: language } = config;
|
211
|
-
// Compute the result
|
212
200
|
let unit = fromFHIRQuantityUnitToString({
|
213
201
|
language: language,
|
214
202
|
quantity: quantity
|
215
203
|
});
|
216
204
|
let value = quantity.value || 1;
|
217
|
-
|
205
|
+
let comparatorCode = quantity.comparator;
|
218
206
|
let quantityString = unit.length === 0 ? i18next.t("amount.quantity.withoutUnit", {
|
219
207
|
quantity: value
|
220
208
|
}) : i18next.t("amount.quantity.withUnit", {
|
221
209
|
quantity: value,
|
222
210
|
unit: unit
|
223
211
|
});
|
224
|
-
|
225
|
-
let
|
226
|
-
let comparatorString = comparatorCode !== undefined ? i18next.t(`quantityComparator:${comparatorCode}`) : undefined;
|
227
|
-
// If no comparator, print it
|
228
|
-
if (comparatorString === undefined) return quantityString;
|
229
|
-
else // concatenate comparator and quantity
|
212
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(comparatorCode)) return quantityString;
|
213
|
+
let comparatorString = i18next.t(`quantityComparator:${comparatorCode}`);
|
230
214
|
return `${comparatorString} ${quantityString}`;
|
231
215
|
}
|
232
216
|
|
233
217
|
|
218
|
+
|
234
219
|
function $5ab57a471c359130$export$7de3722258b87db9({ config: config, dos: dos, i18next: i18next }) {
|
235
220
|
let doseQuantity = (0, $5461d5c8b4bc074f$export$76d408d587da5203)(dos, "doseQuantity");
|
236
|
-
|
237
|
-
if (doseQuantity === undefined) return undefined;
|
238
|
-
// Otherwise rendering it
|
221
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(doseQuantity)) return undefined;
|
239
222
|
return i18next.t("fields.doseQuantity", {
|
240
223
|
quantityText: (0, $6ce94eb09701f53d$export$e9106be159f8c977)({
|
241
224
|
quantity: doseQuantity,
|
@@ -246,50 +229,51 @@ function $5ab57a471c359130$export$7de3722258b87db9({ config: config, dos: dos, i
|
|
246
229
|
}
|
247
230
|
|
248
231
|
|
249
|
-
|
250
|
-
|
232
|
+
|
233
|
+
function $c3b3b5857aef7d44$export$aace639f4c93bb3d(quantity) {
|
234
|
+
return [
|
235
|
+
quantity?.unit,
|
236
|
+
quantity?.code
|
237
|
+
].some((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
238
|
+
}
|
239
|
+
|
240
|
+
|
241
|
+
|
251
242
|
function $9ee880701f47723b$var$transformQuantityUnitToString(i18next, quantity, config) {
|
252
243
|
let quantityValue = quantity.value;
|
253
|
-
// If common units from HL7, do the job
|
254
244
|
if (quantity.system === "http://hl7.org/fhir/ValueSet/duration-units") {
|
255
245
|
let code = quantity.code;
|
256
246
|
return i18next.t(`unitsOfTime:withoutCount.${code}`, {
|
257
247
|
count: quantityValue
|
258
248
|
});
|
259
249
|
}
|
260
|
-
// otherwise, it is UCUM, ... so let the user do the job
|
261
250
|
return config.fromFHIRQuantityUnitToString({
|
262
251
|
language: config.language,
|
263
252
|
quantity: quantity
|
264
253
|
});
|
265
254
|
}
|
266
255
|
function $9ee880701f47723b$export$be17d167ed50d870({ range: range, config: config, i18next: i18next }) {
|
267
|
-
// Extract params
|
268
256
|
const { low: low, high: high } = range;
|
269
257
|
const lowValue = low?.value;
|
270
258
|
const highValue = high?.value;
|
271
|
-
// prepare unit display
|
272
259
|
let quantityUnit = high || low;
|
273
|
-
let
|
274
|
-
// Four cases
|
260
|
+
let hasQuantityUnit = (0, $c3b3b5857aef7d44$export$aace639f4c93bb3d)(quantityUnit);
|
275
261
|
// 1. If we have a empty object, return undefined
|
276
|
-
if (lowValue
|
277
|
-
|
278
|
-
let
|
279
|
-
let technicalKey = hasUnit ? "withUnit" : "withoutUnit";
|
262
|
+
if ((0, $3d60081b7152576d$export$cbff5d1bcc7ff30a)(lowValue, highValue)) return undefined;
|
263
|
+
let unit = hasQuantityUnit ? $9ee880701f47723b$var$transformQuantityUnitToString(i18next, quantityUnit, config) : "";
|
264
|
+
let technicalKey = hasQuantityUnit ? "withUnit" : "withoutUnit";
|
280
265
|
// 2. Both low & high are present
|
281
|
-
if (lowValue
|
266
|
+
if ((0, $3d60081b7152576d$export$3b3497187fd4cc1a)(lowValue, highValue)) return i18next.t(`amount.range.${technicalKey}.lowAndHigh`, {
|
282
267
|
low: lowValue,
|
283
268
|
high: highValue,
|
284
269
|
unit: unit
|
285
270
|
});
|
286
271
|
// 3. Only high is present
|
287
|
-
if (
|
272
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(highValue)) return i18next.t(`amount.range.${technicalKey}.onlyHigh`, {
|
288
273
|
high: highValue,
|
289
274
|
unit: unit
|
290
275
|
});
|
291
276
|
// 4. Only low is present
|
292
|
-
// Warning, this case is kind dangerous and clinically unsafe so minimal effort on this ...
|
293
277
|
return i18next.t(`amount.range.${technicalKey}.onlyLow`, {
|
294
278
|
low: lowValue,
|
295
279
|
unit: unit
|
@@ -298,31 +282,28 @@ function $9ee880701f47723b$export$be17d167ed50d870({ range: range, config: confi
|
|
298
282
|
|
299
283
|
|
300
284
|
|
285
|
+
|
301
286
|
function $9a073aa5b09aa778$export$4cd16590995531a9({ dos: dos, config: config, i18next: i18next }) {
|
302
287
|
let doseRange = (0, $5461d5c8b4bc074f$export$76d408d587da5203)(dos, "doseRange");
|
303
|
-
|
304
|
-
if (doseRange === undefined) return undefined;
|
305
|
-
// Turn range into a text
|
288
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(doseRange)) return undefined;
|
306
289
|
const text = (0, $9ee880701f47723b$export$be17d167ed50d870)({
|
307
290
|
range: doseRange,
|
308
291
|
config: config,
|
309
292
|
i18next: i18next
|
310
293
|
});
|
311
|
-
|
312
|
-
if (text === undefined) return undefined;
|
294
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(text)) return undefined;
|
313
295
|
return i18next.t("fields.doseRange", {
|
314
296
|
rangeText: text
|
315
297
|
});
|
316
298
|
}
|
317
299
|
|
318
300
|
|
319
|
-
|
301
|
+
|
320
302
|
|
321
303
|
|
322
304
|
function $052c79abb28cba29$export$4e24ef8c7997cc56({ dos: dos, config: config, i18next: i18next }) {
|
323
305
|
let rateQuantity = (0, $5461d5c8b4bc074f$export$76d408d587da5203)(dos, "rateQuantity");
|
324
|
-
|
325
|
-
if (rateQuantity === undefined) return undefined;
|
306
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(rateQuantity)) return undefined;
|
326
307
|
return i18next.t("fields.rateQuantity", {
|
327
308
|
quantityText: (0, $6ce94eb09701f53d$export$e9106be159f8c977)({
|
328
309
|
quantity: rateQuantity,
|
@@ -333,48 +314,35 @@ function $052c79abb28cba29$export$4e24ef8c7997cc56({ dos: dos, config: config, i
|
|
333
314
|
}
|
334
315
|
|
335
316
|
|
336
|
-
|
317
|
+
|
337
318
|
|
338
319
|
|
339
320
|
function $703b645b55481398$export$d3dd7d3522271dba({ dos: dos, config: config, i18next: i18next }) {
|
340
321
|
let rateRange = (0, $5461d5c8b4bc074f$export$76d408d587da5203)(dos, "rateRange");
|
341
|
-
|
342
|
-
if (rateRange === undefined) return undefined;
|
343
|
-
// Turn range into a text
|
322
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(rateRange)) return undefined;
|
344
323
|
const rangeText = (0, $9ee880701f47723b$export$be17d167ed50d870)({
|
345
324
|
range: rateRange,
|
346
325
|
config: config,
|
347
326
|
i18next: i18next
|
348
327
|
});
|
349
|
-
|
350
|
-
if (rangeText === undefined) return undefined;
|
351
|
-
// return the final string
|
328
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(rangeText)) return undefined;
|
352
329
|
return i18next.t("fields.rateRange", {
|
353
330
|
rangeText: rangeText
|
354
331
|
});
|
355
332
|
}
|
356
333
|
|
357
334
|
|
358
|
-
// Functions
|
359
335
|
|
360
|
-
|
361
|
-
|
362
|
-
return [
|
363
|
-
quantity?.unit,
|
364
|
-
quantity?.code
|
365
|
-
].some((field)=>field !== undefined);
|
366
|
-
}
|
336
|
+
|
337
|
+
|
367
338
|
// To cover all nasty cases of denominator
|
368
339
|
function $7895e9944cc835ce$var$fromDenominatorToString({ config: config, i18next: i18next, quantity: quantity }) {
|
369
|
-
let hasUnitDenominator = $
|
340
|
+
let hasUnitDenominator = (0, $c3b3b5857aef7d44$export$aace639f4c93bb3d)(quantity);
|
370
341
|
let value = quantity.value;
|
371
|
-
// If no unit, it is quite simple
|
372
342
|
if (!hasUnitDenominator) return `:${value}`;
|
373
|
-
// Get correct linkword (depending of the quantity value)
|
374
343
|
let linkword = i18next.t("amount.ratio.denominatorLinkword", {
|
375
344
|
count: value
|
376
345
|
});
|
377
|
-
// Get quantity text (depending of the quantity value)
|
378
346
|
let quantityText = value !== 1 ? (0, $6ce94eb09701f53d$export$e9106be159f8c977)({
|
379
347
|
quantity: quantity,
|
380
348
|
config: config,
|
@@ -383,21 +351,15 @@ function $7895e9944cc835ce$var$fromDenominatorToString({ config: config, i18next
|
|
383
351
|
quantity: quantity,
|
384
352
|
language: config.language
|
385
353
|
});
|
386
|
-
// Concatenate all computed parts
|
387
354
|
// The space before is intentional so that numerator and denominator are well printed regardless of situation
|
388
355
|
return ` ${linkword} ${quantityText}`;
|
389
356
|
}
|
390
357
|
function $7895e9944cc835ce$export$fdc6e9cbd31555fb({ ratio: ratio, config: config, i18next: i18next }) {
|
391
|
-
// Extract params
|
392
358
|
const { denominator: denominator, numerator: numerator } = ratio;
|
393
|
-
// quantity
|
394
359
|
let quantityNumerator = numerator?.value;
|
395
360
|
let quantityDenominator = denominator?.value;
|
396
|
-
// Collect results
|
397
361
|
const parts = [];
|
398
|
-
|
399
|
-
if (quantityNumerator !== undefined) {
|
400
|
-
// Reuse the quantity to string translation
|
362
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(quantityNumerator)) {
|
401
363
|
const numeratorString = (0, $6ce94eb09701f53d$export$e9106be159f8c977)({
|
402
364
|
quantity: numerator,
|
403
365
|
config: config,
|
@@ -405,9 +367,7 @@ function $7895e9944cc835ce$export$fdc6e9cbd31555fb({ ratio: ratio, config: confi
|
|
405
367
|
});
|
406
368
|
parts.push(numeratorString);
|
407
369
|
}
|
408
|
-
|
409
|
-
if (quantityDenominator !== undefined) {
|
410
|
-
// Several cases exist for that, let use a proper function for that
|
370
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(quantityDenominator)) {
|
411
371
|
const denominatorString = $7895e9944cc835ce$var$fromDenominatorToString({
|
412
372
|
config: config,
|
413
373
|
i18next: i18next,
|
@@ -415,55 +375,47 @@ function $7895e9944cc835ce$export$fdc6e9cbd31555fb({ ratio: ratio, config: confi
|
|
415
375
|
});
|
416
376
|
parts.push(denominatorString);
|
417
377
|
}
|
418
|
-
// Concatenate the result
|
419
378
|
return parts.length > 0 ? parts.join("") : undefined;
|
420
379
|
}
|
421
380
|
|
422
381
|
|
423
382
|
|
383
|
+
|
424
384
|
function $301791f33da707fa$export$b71cfd2510242de2({ dos: dos, config: config, i18next: i18next }) {
|
425
385
|
let rateRatio = (0, $5461d5c8b4bc074f$export$76d408d587da5203)(dos, "rateRatio");
|
426
|
-
|
427
|
-
if (rateRatio === undefined) return undefined;
|
428
|
-
// Turn ratio to text
|
386
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(rateRatio)) return undefined;
|
429
387
|
const ratioText = (0, $7895e9944cc835ce$export$fdc6e9cbd31555fb)({
|
430
388
|
config: config,
|
431
389
|
i18next: i18next,
|
432
390
|
ratio: rateRatio
|
433
391
|
});
|
434
|
-
if (
|
392
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(ratioText)) return undefined;
|
435
393
|
return i18next.t("fields.rateRatio", {
|
436
394
|
ratioText: ratioText
|
437
395
|
});
|
438
396
|
}
|
439
397
|
|
440
398
|
|
441
|
-
|
442
|
-
|
443
|
-
if (dos.timing?.repeat
|
444
|
-
return dos.timing.repeat;
|
399
|
+
|
400
|
+
function $cc064cd9e69cf2cf$export$59de929dfa9e850b(dos, key) {
|
401
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(dos.timing?.repeat)) return undefined;
|
402
|
+
return dos.timing.repeat[key];
|
445
403
|
}
|
446
404
|
|
447
405
|
|
406
|
+
|
448
407
|
function $1270a8f06113f53a$export$675ae45fa2875f4a({ dos: dos, i18next: i18next }) {
|
449
|
-
let
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
let duration = repeat.duration;
|
454
|
-
let max = repeat.durationMax;
|
455
|
-
let unit = repeat.durationUnit;
|
456
|
-
// Do nothing if no unit, I am not a wizard
|
457
|
-
if (unit === undefined) return undefined;
|
408
|
+
let duration = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "duration");
|
409
|
+
let max = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "durationMax");
|
410
|
+
let unit = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "durationUnit");
|
411
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(unit)) return undefined;
|
458
412
|
return [
|
459
|
-
|
460
|
-
duration !== undefined && i18next.t("fields.duration", {
|
413
|
+
(0, $3d60081b7152576d$export$e7321bf46d18757f)(duration) && i18next.t("fields.duration", {
|
461
414
|
durationText: i18next.t(`unitsOfTime:withCount.${unit}`, {
|
462
415
|
count: duration
|
463
416
|
})
|
464
417
|
}),
|
465
|
-
|
466
|
-
max !== undefined && i18next.t("fields.durationMax", {
|
418
|
+
(0, $3d60081b7152576d$export$e7321bf46d18757f)(max) && i18next.t("fields.durationMax", {
|
467
419
|
durationMaxText: i18next.t(`unitsOfTime:withCount.${unit}`, {
|
468
420
|
count: max
|
469
421
|
})
|
@@ -473,23 +425,18 @@ function $1270a8f06113f53a$export$675ae45fa2875f4a({ dos: dos, i18next: i18next
|
|
473
425
|
|
474
426
|
|
475
427
|
|
428
|
+
|
476
429
|
function $bc43734b944260d2$export$d663412e0c469ce2({ dos: dos, i18next: i18next }) {
|
477
|
-
let
|
478
|
-
|
479
|
-
if (
|
480
|
-
// Pickup the repeat interesting attributes
|
481
|
-
let frequency = repeat.frequency;
|
482
|
-
let max = repeat.frequencyMax;
|
483
|
-
// Do nothing if no frequency / frequencyMax, I am not a wizard
|
484
|
-
if (frequency === undefined && max === undefined) return undefined;
|
485
|
-
// Three cases
|
430
|
+
let frequency = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "frequency");
|
431
|
+
let max = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "frequencyMax");
|
432
|
+
if ((0, $3d60081b7152576d$export$cbff5d1bcc7ff30a)(frequency, max)) return undefined;
|
486
433
|
// 1. Frequency and frequencyMax are present
|
487
|
-
if (frequency
|
434
|
+
if ((0, $3d60081b7152576d$export$3b3497187fd4cc1a)(frequency, max)) return i18next.t("fields.frequency.withfrequencyMax", {
|
488
435
|
count: max,
|
489
436
|
frequency: frequency
|
490
437
|
});
|
491
438
|
// 2. Only frequencyMax is present
|
492
|
-
if (
|
439
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(max)) return i18next.t("fields.frequencyMax.frequencyMax", {
|
493
440
|
count: max
|
494
441
|
});
|
495
442
|
// 3. Only frequency is present
|
@@ -500,19 +447,14 @@ function $bc43734b944260d2$export$d663412e0c469ce2({ dos: dos, i18next: i18next
|
|
500
447
|
|
501
448
|
|
502
449
|
|
450
|
+
|
503
451
|
function $b9825dd9e0a2e687$export$aa31b783699f637({ dos: dos, i18next: i18next }) {
|
504
|
-
let
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
let period = repeat.period;
|
509
|
-
let max = repeat.periodMax;
|
510
|
-
let unit = repeat.periodUnit;
|
511
|
-
// Do nothing if no unit, I am not a wizard
|
512
|
-
if (unit === undefined) return undefined;
|
513
|
-
// Three cases
|
452
|
+
let period = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "period");
|
453
|
+
let max = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "periodMax");
|
454
|
+
let unit = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "periodUnit");
|
455
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(unit)) return undefined;
|
514
456
|
// 1. period and periodMax are present
|
515
|
-
if (period
|
457
|
+
if ((0, $3d60081b7152576d$export$3b3497187fd4cc1a)(period, max)) return i18next.t("fields.periodMax.withPeriod", {
|
516
458
|
period: period,
|
517
459
|
count: max,
|
518
460
|
unit: i18next.t(`unitsOfTime:withoutCount.${unit}`, {
|
@@ -520,7 +462,7 @@ function $b9825dd9e0a2e687$export$aa31b783699f637({ dos: dos, i18next: i18next }
|
|
520
462
|
})
|
521
463
|
});
|
522
464
|
// 2. Only periodMax is present
|
523
|
-
if (
|
465
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(max)) return i18next.t("fields.periodMax.onlyPeriodMax", {
|
524
466
|
count: max,
|
525
467
|
unit: i18next.t(`unitsOfTime:withoutCount.${unit}`, {
|
526
468
|
count: max
|
@@ -536,16 +478,13 @@ function $b9825dd9e0a2e687$export$aa31b783699f637({ dos: dos, i18next: i18next }
|
|
536
478
|
}
|
537
479
|
|
538
480
|
|
539
|
-
// Functions
|
540
481
|
const $93b58b7d2ead3b95$var$linkworsdMap = {
|
541
482
|
and: "linkwords.and",
|
542
483
|
then: "linkwords.then"
|
543
484
|
};
|
544
485
|
function $93b58b7d2ead3b95$export$826742c1df3eca39(i18next, arr, linkWord = "and") {
|
545
|
-
// Split the array into two parts: all entries except the last one, and the last
|
546
486
|
const firstString = arr.slice(0, -1).join(", ");
|
547
487
|
const lastString = arr.slice(-1).join("");
|
548
|
-
// concatenate the result
|
549
488
|
const linkWordTechnicalKey = $93b58b7d2ead3b95$var$linkworsdMap[linkWord];
|
550
489
|
const linkWordAsString = arr.length > 1 ? ` ${i18next.t(linkWordTechnicalKey)} ` : "";
|
551
490
|
const finalString = firstString + linkWordAsString + lastString;
|
@@ -555,6 +494,7 @@ function $93b58b7d2ead3b95$export$826742c1df3eca39(i18next, arr, linkWord = "and
|
|
555
494
|
|
556
495
|
|
557
496
|
|
497
|
+
|
558
498
|
// Function to extract times
|
559
499
|
function $7a065f861a4b61f2$var$extractTime(minutes) {
|
560
500
|
let days = Math.floor(minutes / 1440);
|
@@ -566,67 +506,45 @@ function $7a065f861a4b61f2$var$extractTime(minutes) {
|
|
566
506
|
minutes: remainingMinutes
|
567
507
|
};
|
568
508
|
}
|
569
|
-
// Function to transform offset into a string
|
570
509
|
function $7a065f861a4b61f2$var$transformOffset(i18next, offset) {
|
571
|
-
if (offset
|
572
|
-
// extract days / hours / minutes from it
|
510
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(offset) || offset <= 0) return undefined;
|
573
511
|
let time = $7a065f861a4b61f2$var$extractTime(offset);
|
574
|
-
// generate part
|
575
512
|
let subParts = [
|
576
|
-
// days
|
577
513
|
time.days > 0 ? i18next.t("unitsOfTime:withCount.d", {
|
578
514
|
count: time.days
|
579
515
|
}) : undefined,
|
580
|
-
// hours
|
581
516
|
time.hours > 0 ? i18next.t("unitsOfTime:withCount.h", {
|
582
517
|
count: time.hours
|
583
518
|
}) : undefined,
|
584
|
-
// minutes
|
585
519
|
time.minutes > 0 ? i18next.t("unitsOfTime:withCount.min", {
|
586
520
|
count: time.minutes
|
587
521
|
}) : undefined
|
588
|
-
].filter((
|
522
|
+
].filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
589
523
|
return subParts.join(" ");
|
590
524
|
}
|
591
|
-
// Function to transform when[] into a string
|
592
525
|
function $7a065f861a4b61f2$var$transformWhen(i18next, when) {
|
593
|
-
// Only run when array is not empty
|
594
526
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(when)) return undefined;
|
595
|
-
// Turn it into a string
|
596
527
|
const whens = when.map((whenCode)=>i18next.t(`eventTiming:${whenCode}`));
|
597
528
|
return (0, $93b58b7d2ead3b95$export$826742c1df3eca39)(i18next, whens);
|
598
529
|
}
|
599
530
|
function $7a065f861a4b61f2$export$433fa514f44031f3({ dos: dos, i18next: i18next }) {
|
600
|
-
let
|
601
|
-
|
602
|
-
if (
|
603
|
-
// Pickup the repeat interesting attributes
|
604
|
-
let offset = repeat.offset;
|
605
|
-
let when = repeat.when;
|
606
|
-
// If both are undefined, don't do anything
|
607
|
-
if (offset === undefined && when === undefined) return undefined;
|
531
|
+
let offset = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "offset");
|
532
|
+
let when = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "when");
|
533
|
+
if ((0, $3d60081b7152576d$export$cbff5d1bcc7ff30a)(offset, when)) return undefined;
|
608
534
|
return [
|
609
|
-
// offset part
|
610
535
|
$7a065f861a4b61f2$var$transformOffset(i18next, offset),
|
611
|
-
// when part
|
612
536
|
$7a065f861a4b61f2$var$transformWhen(i18next, when)
|
613
|
-
].filter((
|
537
|
+
].filter((0, $3d60081b7152576d$export$e7321bf46d18757f)).join(" ");
|
614
538
|
}
|
615
539
|
|
616
540
|
|
617
|
-
// Function
|
618
541
|
|
619
542
|
|
620
543
|
|
621
544
|
function $46f2142e76cf7e45$export$f6325e43097e9543({ dos: dos, i18next: i18next }) {
|
622
|
-
let
|
623
|
-
// If empty, return undefined
|
624
|
-
if (repeat === undefined) return undefined;
|
625
|
-
// Pickup the repeat interesting attributes
|
626
|
-
let dayOfWeek = repeat.dayOfWeek;
|
545
|
+
let dayOfWeek = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "dayOfWeek");
|
627
546
|
// If empty, skip it
|
628
547
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(dayOfWeek)) return undefined;
|
629
|
-
// Turn it into a string
|
630
548
|
const dayOfWeeks = dayOfWeek.map((dayCode)=>i18next.t(`daysOfWeek:${dayCode}`));
|
631
549
|
const dayOfWeeksAsString = (0, $93b58b7d2ead3b95$export$826742c1df3eca39)(i18next, dayOfWeeks);
|
632
550
|
return i18next.t("fields.dayOfWeek.dayOfWeek", {
|
@@ -636,7 +554,6 @@ function $46f2142e76cf7e45$export$f6325e43097e9543({ dos: dos, i18next: i18next
|
|
636
554
|
}
|
637
555
|
|
638
556
|
|
639
|
-
// Functions
|
640
557
|
|
641
558
|
|
642
559
|
|
@@ -645,19 +562,12 @@ function $46f2142e76cf7e45$export$f6325e43097e9543({ dos: dos, i18next: i18next
|
|
645
562
|
* There is no date specified. Seconds must be provided due to schema type constraints but may be zero-filled
|
646
563
|
* and may be ignored at receiver discretion
|
647
564
|
*/ function $a846209a7dd119d4$var$formatString(time) {
|
648
|
-
// Split the time string by ":"
|
649
565
|
var parts = time.split(":");
|
650
|
-
// Check if the last part (seconds) is "00", if so, remove it
|
651
566
|
if (parts.length > 2 && parts[2] === "00") parts.pop();
|
652
|
-
// Join the remaining parts with ":"
|
653
567
|
return parts.join(":");
|
654
568
|
}
|
655
569
|
function $a846209a7dd119d4$export$ee205fa48981886d({ dos: dos, i18next: i18next }) {
|
656
|
-
let
|
657
|
-
// If empty, return undefined
|
658
|
-
if (repeat === undefined) return undefined;
|
659
|
-
// Pickup the repeat interesting attributes
|
660
|
-
let timeOfDay = repeat.timeOfDay;
|
570
|
+
let timeOfDay = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "timeOfDay");
|
661
571
|
// If empty, skip it
|
662
572
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(timeOfDay)) return undefined;
|
663
573
|
// Turn it into a string
|
@@ -670,18 +580,17 @@ function $a846209a7dd119d4$export$ee205fa48981886d({ dos: dos, i18next: i18next
|
|
670
580
|
}
|
671
581
|
|
672
582
|
|
673
|
-
|
583
|
+
|
674
584
|
|
675
585
|
// Turn a list of codeable concept into a string
|
676
586
|
function $ee04e2a8ed39962f$var$fromCodeableConceptArrayToString(i18next, codes, config) {
|
677
587
|
const codesAsString = codes.map((code)=>config.fromCodeableConceptToString({
|
678
588
|
code: code,
|
679
589
|
language: config.language
|
680
|
-
})).filter((
|
590
|
+
})).filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
681
591
|
return (0, $93b58b7d2ead3b95$export$826742c1df3eca39)(i18next, codesAsString);
|
682
592
|
}
|
683
593
|
function $ee04e2a8ed39962f$export$5c69a2202525487a({ dos: dos, config: config, i18next: i18next }) {
|
684
|
-
// Pickup the interesting attributes
|
685
594
|
let asNeededBoolean = dos.asNeededBoolean;
|
686
595
|
let asNeededCodeableConcept = dos.asNeededCodeableConcept;
|
687
596
|
let asNeededFor = dos.asNeededFor;
|
@@ -693,7 +602,6 @@ function $ee04e2a8ed39962f$export$5c69a2202525487a({ dos: dos, config: config, i
|
|
693
602
|
if (codeableList.length > 0) return i18next.t("fields.asNeededFor", {
|
694
603
|
reasons: $ee04e2a8ed39962f$var$fromCodeableConceptArrayToString(i18next, codeableList, config)
|
695
604
|
});
|
696
|
-
// merge boolean to make it simpler
|
697
605
|
let booleanValue = [
|
698
606
|
asNeededBoolean,
|
699
607
|
asNeeded
|
@@ -702,9 +610,8 @@ function $ee04e2a8ed39962f$export$5c69a2202525487a({ dos: dos, config: config, i
|
|
702
610
|
}
|
703
611
|
|
704
612
|
|
705
|
-
// Functions
|
706
613
|
|
707
|
-
|
614
|
+
|
708
615
|
function $9d632517596957df$var$transformDurationToString(i18next, duration, config) {
|
709
616
|
let quantity = duration.value;
|
710
617
|
// If common units from HL7, do the job
|
@@ -713,23 +620,17 @@ function $9d632517596957df$var$transformDurationToString(i18next, duration, conf
|
|
713
620
|
return i18next.t(`unitsOfTime:withCount.${code}`, {
|
714
621
|
count: quantity
|
715
622
|
});
|
716
|
-
} else {
|
717
|
-
// otherwise, it is UCUM, ... so let the user do the job
|
718
|
-
let unit = config.fromFHIRQuantityUnitToString({
|
719
|
-
language: config.language,
|
720
|
-
quantity: duration
|
721
|
-
});
|
722
|
-
return `${quantity} ${unit}`;
|
723
623
|
}
|
624
|
+
// otherwise, it is UCUM, ... so let the user do the job
|
625
|
+
let unit = config.fromFHIRQuantityUnitToString({
|
626
|
+
language: config.language,
|
627
|
+
quantity: duration
|
628
|
+
});
|
629
|
+
return `${quantity} ${unit}`;
|
724
630
|
}
|
725
631
|
function $9d632517596957df$export$b927a06bc51aea32({ dos: dos, config: config, i18next: i18next }) {
|
726
|
-
let
|
727
|
-
|
728
|
-
if (repeat === undefined) return undefined;
|
729
|
-
// Pickup the repeat interesting attributes
|
730
|
-
let boundsDuration = repeat.boundsDuration;
|
731
|
-
// Do nothing if no boundsDuration, I am not a wizard
|
732
|
-
if (boundsDuration === undefined) return undefined;
|
632
|
+
let boundsDuration = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "boundsDuration");
|
633
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(boundsDuration)) return undefined;
|
733
634
|
let durationText = $9d632517596957df$var$transformDurationToString(i18next, boundsDuration, config);
|
734
635
|
return i18next.t("fields.boundsDuration", {
|
735
636
|
durationText: durationText
|
@@ -737,26 +638,18 @@ function $9d632517596957df$export$b927a06bc51aea32({ dos: dos, config: config, i
|
|
737
638
|
}
|
738
639
|
|
739
640
|
|
740
|
-
|
641
|
+
|
741
642
|
|
742
643
|
|
743
644
|
function $2da391a8a8345a3d$export$8c667cbf7bebaa93({ dos: dos, config: config, i18next: i18next }) {
|
744
|
-
let
|
745
|
-
|
746
|
-
if (repeat === undefined) return undefined;
|
747
|
-
// Pickup the repeat interesting attributes
|
748
|
-
let boundsRange = repeat.boundsRange;
|
749
|
-
// Do nothing if no boundsRange, I am not a wizard
|
750
|
-
if (boundsRange === undefined) return undefined;
|
751
|
-
// Turn range into a text
|
645
|
+
let boundsRange = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "boundsRange");
|
646
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(boundsRange)) return undefined;
|
752
647
|
const rangeText = (0, $9ee880701f47723b$export$be17d167ed50d870)({
|
753
648
|
range: boundsRange,
|
754
649
|
config: config,
|
755
650
|
i18next: i18next
|
756
651
|
});
|
757
|
-
|
758
|
-
if (rangeText === undefined) return undefined;
|
759
|
-
// return the final string
|
652
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(rangeText)) return undefined;
|
760
653
|
return i18next.t("fields.boundsRange", {
|
761
654
|
rangeText: rangeText
|
762
655
|
});
|
@@ -764,23 +657,18 @@ function $2da391a8a8345a3d$export$8c667cbf7bebaa93({ dos: dos, config: config, i
|
|
764
657
|
|
765
658
|
|
766
659
|
|
660
|
+
|
767
661
|
function $39470eb799331038$export$498ca7f558a02e67({ dos: dos, i18next: i18next }) {
|
768
|
-
let
|
769
|
-
|
770
|
-
if (
|
771
|
-
// Pickup the repeat interesting attributes
|
772
|
-
let count = repeat.count;
|
773
|
-
let countMax = repeat.countMax;
|
774
|
-
// Do nothing if no count, I am not a wizard
|
775
|
-
if (count === undefined && countMax === undefined) return undefined;
|
776
|
-
// Three cases
|
662
|
+
let count = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "count");
|
663
|
+
let countMax = (0, $cc064cd9e69cf2cf$export$59de929dfa9e850b)(dos, "countMax");
|
664
|
+
if ((0, $3d60081b7152576d$export$cbff5d1bcc7ff30a)(count, countMax)) return undefined;
|
777
665
|
// 1. Both count & countMax are present
|
778
|
-
if (count
|
666
|
+
if ((0, $3d60081b7152576d$export$3b3497187fd4cc1a)(count, countMax)) return i18next.t("fields.countMax.countMax", {
|
779
667
|
count: countMax,
|
780
668
|
low: count
|
781
669
|
});
|
782
670
|
// 2. Only countMax is present
|
783
|
-
if (
|
671
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(countMax)) return i18next.t("fields.count.count", {
|
784
672
|
count: countMax
|
785
673
|
});
|
786
674
|
// 3. Only count is present
|
@@ -790,14 +678,27 @@ function $39470eb799331038$export$498ca7f558a02e67({ dos: dos, i18next: i18next
|
|
790
678
|
}
|
791
679
|
|
792
680
|
|
793
|
-
// Functions
|
794
681
|
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
682
|
+
|
683
|
+
const $208be5279f5e6c65$var$strategies = {
|
684
|
+
yearOnly: ({ config: config, date: date })=>new Intl.DateTimeFormat(config.language, {
|
685
|
+
year: "numeric"
|
686
|
+
}).format(date),
|
687
|
+
// e.g. 2024-03 => May 2024
|
688
|
+
yearAndMonthOnly: ({ config: config, date: date })=>new Intl.DateTimeFormat(config.language, {
|
689
|
+
year: "numeric",
|
690
|
+
month: "long"
|
691
|
+
}).format(date),
|
692
|
+
dateOnly: ({ config: config, date: date })=>new Intl.DateTimeFormat(config.language, {
|
693
|
+
...$208be5279f5e6c65$var$generateDateStyleFormatOptions(config.dateTimeFormatOptions)
|
694
|
+
}).format(date),
|
695
|
+
dateTime: ({ config: config, date: date })=>new Intl.DateTimeFormat(config.language, {
|
696
|
+
...$208be5279f5e6c65$var$generateDateStyleFormatOptions(config.dateTimeFormatOptions),
|
697
|
+
...$208be5279f5e6c65$var$generateTimeStyleFormatOptions(config.dateTimeFormatOptions)
|
698
|
+
}).format(date)
|
699
|
+
};
|
799
700
|
function $208be5279f5e6c65$var$generateDateStyleFormatOptions(options) {
|
800
|
-
if (options.dateStyle
|
701
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(options.dateStyle)) return {
|
801
702
|
dateStyle: options.dateStyle
|
802
703
|
};
|
803
704
|
const defaults = {
|
@@ -810,9 +711,8 @@ function $208be5279f5e6c65$var$generateDateStyleFormatOptions(options) {
|
|
810
711
|
...defaults
|
811
712
|
};
|
812
713
|
}
|
813
|
-
// Function to clean up the params for timeStyle situation
|
814
714
|
function $208be5279f5e6c65$var$generateTimeStyleFormatOptions(options) {
|
815
|
-
if (options.timeStyle
|
715
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(options.timeStyle)) return {
|
816
716
|
timeStyle: options.timeStyle
|
817
717
|
};
|
818
718
|
const defaults = {
|
@@ -825,65 +725,32 @@ function $208be5279f5e6c65$var$generateTimeStyleFormatOptions(options) {
|
|
825
725
|
...defaults
|
826
726
|
};
|
827
727
|
}
|
728
|
+
function $208be5279f5e6c65$var$fromDateToMappedDate(datetime) {
|
729
|
+
let date = new Date(datetime);
|
730
|
+
let hasTimePart = datetime.includes("T");
|
731
|
+
let hyphensCount = datetime.split("-").length - 1;
|
732
|
+
let hasMonths = hyphensCount >= 1;
|
733
|
+
let hasDays = hyphensCount >= 2;
|
734
|
+
return {
|
735
|
+
date: date,
|
736
|
+
hasTimePart: hasTimePart,
|
737
|
+
hasMonths: hasMonths,
|
738
|
+
hasDays: hasDays
|
739
|
+
};
|
740
|
+
}
|
828
741
|
function $208be5279f5e6c65$export$a77f8869772ffca4({ config: config, datetimes: datetimes }) {
|
829
|
-
|
830
|
-
// prepare data for algorithm below
|
831
|
-
const entries = datetimes.map((datetime)=>{
|
832
|
-
// Convert it to date
|
833
|
-
let date = new Date(datetime);
|
834
|
-
// other properties
|
835
|
-
let hasTimePart = datetime.includes("T");
|
836
|
-
let hyphensCount = datetime.split("-").length - 1;
|
837
|
-
let hasMonths = hyphensCount >= 1;
|
838
|
-
let hasDays = hyphensCount >= 2;
|
839
|
-
return {
|
840
|
-
date: date,
|
841
|
-
hasTimePart: hasTimePart,
|
842
|
-
hasMonths: hasMonths,
|
843
|
-
hasDays: hasDays
|
844
|
-
};
|
845
|
-
});
|
846
|
-
// Time to do the magic
|
742
|
+
const entries = datetimes.map($208be5279f5e6c65$var$fromDateToMappedDate);
|
847
743
|
const result = entries.map(({ date: date, hasTimePart: hasTimePart, hasMonths: hasMonths, hasDays: hasDays })=>{
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
});
|
853
|
-
return df1.format(date);
|
854
|
-
}
|
855
|
-
// If only year and month are defined, print it nicely (e.g. 2024-03 => May 2024 )
|
856
|
-
if (!hasDays) {
|
857
|
-
let df2 = new Intl.DateTimeFormat(config.language, {
|
858
|
-
year: "numeric",
|
859
|
-
month: "long"
|
860
|
-
});
|
861
|
-
return df2.format(date);
|
862
|
-
}
|
863
|
-
// If only year / month and days are defined, print it according
|
864
|
-
if (!hasTimePart) {
|
865
|
-
let df3 = new Intl.DateTimeFormat(config.language, {
|
866
|
-
// retrieve value from user
|
867
|
-
// and fallback if dateStyle is not defined
|
868
|
-
...$208be5279f5e6c65$var$generateDateStyleFormatOptions(options)
|
869
|
-
});
|
870
|
-
return df3.format(date);
|
871
|
-
}
|
872
|
-
// Otherwise, we have a full datetime
|
873
|
-
let df4 = new Intl.DateTimeFormat(config.language, {
|
874
|
-
// retrieve value from user
|
875
|
-
// and fallback if dateStyle / timeStyle is not defined
|
876
|
-
...$208be5279f5e6c65$var$generateDateStyleFormatOptions(options),
|
877
|
-
...$208be5279f5e6c65$var$generateTimeStyleFormatOptions(options)
|
744
|
+
const chosenStrategy = !hasMonths ? "yearOnly" : !hasDays ? "yearAndMonthOnly" : !hasTimePart ? "dateOnly" : "dateTime";
|
745
|
+
return $208be5279f5e6c65$var$strategies[chosenStrategy]({
|
746
|
+
config: config,
|
747
|
+
date: date
|
878
748
|
});
|
879
|
-
return df4.format(date);
|
880
749
|
});
|
881
750
|
return result;
|
882
751
|
}
|
883
752
|
function $208be5279f5e6c65$export$4699e913d5b6ffeb({ config: config, datetime: datetime }) {
|
884
|
-
|
885
|
-
if (datetime === undefined) return undefined;
|
886
|
-
// Invoke previous function, and pick up the first entry
|
753
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(datetime)) return undefined;
|
887
754
|
const result = $208be5279f5e6c65$export$a77f8869772ffca4({
|
888
755
|
config: config,
|
889
756
|
datetimes: [
|
@@ -896,10 +763,8 @@ function $208be5279f5e6c65$export$4699e913d5b6ffeb({ config: config, datetime: d
|
|
896
763
|
|
897
764
|
|
898
765
|
function $3bceb6a4d7bec96e$export$3c2848bc0f0e3783({ dos: dos, config: config, i18next: i18next }) {
|
899
|
-
// If empty, return undefined
|
900
766
|
let events = dos.timing?.event;
|
901
767
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(events)) return undefined;
|
902
|
-
// List to string
|
903
768
|
let eventList = (0, $208be5279f5e6c65$export$a77f8869772ffca4)({
|
904
769
|
config: config,
|
905
770
|
datetimes: events
|
@@ -912,26 +777,23 @@ function $3bceb6a4d7bec96e$export$3c2848bc0f0e3783({ dos: dos, config: config, i
|
|
912
777
|
}
|
913
778
|
|
914
779
|
|
915
|
-
|
780
|
+
|
916
781
|
|
917
782
|
|
918
783
|
function $6c156f35df44ca41$export$21e3522d6e713036({ dos: dos, config: config, i18next: i18next }) {
|
919
|
-
// If empty, return undefined
|
920
784
|
if ((0, $7642ff4865ae4b0f$export$d9ff4a623e416a11)(dos.additionalInstruction)) return undefined;
|
921
|
-
// Turn it into strings
|
922
785
|
let additionalInstructions = dos.additionalInstruction.map((instruction)=>config.fromCodeableConceptToString({
|
923
786
|
code: instruction,
|
924
787
|
language: config.language
|
925
|
-
})).filter((
|
788
|
+
})).filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
926
789
|
return (0, $93b58b7d2ead3b95$export$826742c1df3eca39)(i18next, additionalInstructions);
|
927
790
|
}
|
928
791
|
|
929
792
|
|
930
|
-
|
793
|
+
|
931
794
|
|
932
795
|
function $e021f207f5cc63d0$export$6e78f21a88fc25ea({ dos: dos, config: config, i18next: i18next }) {
|
933
|
-
|
934
|
-
if (dos.maxDosePerLifetime === undefined) return undefined;
|
796
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(dos.maxDosePerLifetime)) return undefined;
|
935
797
|
const maxDosePerLifetime = dos.maxDosePerLifetime;
|
936
798
|
return i18next.t("fields.maxDosePerLifetime", {
|
937
799
|
quantityText: (0, $6ce94eb09701f53d$export$e9106be159f8c977)({
|
@@ -943,11 +805,10 @@ function $e021f207f5cc63d0$export$6e78f21a88fc25ea({ dos: dos, config: config, i
|
|
943
805
|
}
|
944
806
|
|
945
807
|
|
946
|
-
|
808
|
+
|
947
809
|
|
948
810
|
function $9ad44f2c84a9bdf4$export$58c8a9e040283a66({ dos: dos, config: config, i18next: i18next }) {
|
949
|
-
|
950
|
-
if (dos.maxDosePerAdministration === undefined) return undefined;
|
811
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(dos.maxDosePerAdministration)) return undefined;
|
951
812
|
const maxDosePerAdministration = dos.maxDosePerAdministration;
|
952
813
|
return i18next.t("fields.maxDosePerAdministration", {
|
953
814
|
quantityText: (0, $6ce94eb09701f53d$export$e9106be159f8c977)({
|
@@ -959,11 +820,10 @@ function $9ad44f2c84a9bdf4$export$58c8a9e040283a66({ dos: dos, config: config, i
|
|
959
820
|
}
|
960
821
|
|
961
822
|
|
962
|
-
|
823
|
+
|
963
824
|
|
964
825
|
function $45256d2a188dcbd7$export$75a89431d80a701a({ dos: dos, config: config, i18next: i18next }) {
|
965
|
-
|
966
|
-
if (dos.timing?.repeat?.boundsPeriod === undefined) return undefined;
|
826
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(dos.timing?.repeat?.boundsPeriod)) return undefined;
|
967
827
|
// Generate the string version of them
|
968
828
|
const boundsPeriod = dos.timing.repeat.boundsPeriod;
|
969
829
|
let start = (0, $208be5279f5e6c65$export$4699e913d5b6ffeb)({
|
@@ -974,14 +834,13 @@ function $45256d2a188dcbd7$export$75a89431d80a701a({ dos: dos, config: config, i
|
|
974
834
|
config: config,
|
975
835
|
datetime: boundsPeriod.end
|
976
836
|
});
|
977
|
-
// Three cases
|
978
837
|
// 1. Both start and end are present
|
979
|
-
if (start
|
838
|
+
if ((0, $3d60081b7152576d$export$3b3497187fd4cc1a)(start, end)) return i18next.t("fields.boundsPeriod.startAndEnd", {
|
980
839
|
start: start,
|
981
840
|
end: end
|
982
841
|
});
|
983
842
|
// 2. Only start is present
|
984
|
-
if (
|
843
|
+
if ((0, $3d60081b7152576d$export$e7321bf46d18757f)(start)) return i18next.t("fields.boundsPeriod.onlyStart", {
|
985
844
|
start: start
|
986
845
|
});
|
987
846
|
// 3. Only end is present
|
@@ -993,12 +852,11 @@ function $45256d2a188dcbd7$export$75a89431d80a701a({ dos: dos, config: config, i
|
|
993
852
|
|
994
853
|
|
995
854
|
|
855
|
+
|
996
856
|
function $39ffdeadc450f558$export$346b11a8cb220f02({ dos: dos, config: config, i18next: i18next }) {
|
997
|
-
|
998
|
-
if (dos.maxDosePerPeriod === undefined) return undefined;
|
857
|
+
if (!(0, $3d60081b7152576d$export$e7321bf46d18757f)(dos.maxDosePerPeriod)) return undefined;
|
999
858
|
const maxDosePerPeriod = dos.maxDosePerPeriod;
|
1000
|
-
// In R4, it was a single object
|
1001
|
-
// In R5, it is an array
|
859
|
+
// In R4, it was a single object / In R5, it is an array
|
1002
860
|
// So better to have a generic approach
|
1003
861
|
const values = Array.isArray(maxDosePerPeriod) ? maxDosePerPeriod : [
|
1004
862
|
maxDosePerPeriod
|
@@ -1012,7 +870,7 @@ function $39ffdeadc450f558$export$346b11a8cb220f02({ dos: dos, config: config, i
|
|
1012
870
|
i18next: i18next,
|
1013
871
|
ratio: period
|
1014
872
|
});
|
1015
|
-
}).filter((
|
873
|
+
}).filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
1016
874
|
const maxDosePerPeriodText = (0, $93b58b7d2ead3b95$export$826742c1df3eca39)(i18next, valuesAsString);
|
1017
875
|
return i18next.t("fields.maxDosePerPeriod", {
|
1018
876
|
count: values.length,
|
@@ -1023,7 +881,7 @@ function $39ffdeadc450f558$export$346b11a8cb220f02({ dos: dos, config: config, i
|
|
1023
881
|
|
1024
882
|
|
1025
883
|
|
1026
|
-
|
884
|
+
|
1027
885
|
const $2c21ace90ecdbde6$var$displayOrders = {
|
1028
886
|
additionalInstruction: (input)=>(0, $6c156f35df44ca41$export$21e3522d6e713036)(input),
|
1029
887
|
asNeeded: (input)=>(0, $ee04e2a8ed39962f$export$5c69a2202525487a)(input),
|
@@ -1049,7 +907,7 @@ const $2c21ace90ecdbde6$var$displayOrders = {
|
|
1049
907
|
let subParts = [
|
1050
908
|
(0, $bc43734b944260d2$export$d663412e0c469ce2)(input),
|
1051
909
|
(0, $b9825dd9e0a2e687$export$aa31b783699f637)(input)
|
1052
|
-
].filter((
|
910
|
+
].filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
1053
911
|
return subParts.length > 0 ? subParts.join(" ") : undefined;
|
1054
912
|
},
|
1055
913
|
maxDosePerAdministration: (input)=>(0, $9ad44f2c84a9bdf4$export$58c8a9e040283a66)(input),
|
@@ -1093,18 +951,17 @@ const $2c21ace90ecdbde6$var$displayOrders = {
|
|
1093
951
|
})
|
1094
952
|
};
|
1095
953
|
function $2c21ace90ecdbde6$export$9f330b4bf8c0975c({ entry: entry, ...args }) {
|
1096
|
-
// Use map to provide a result without iterate on each key
|
1097
954
|
return $2c21ace90ecdbde6$var$displayOrders[entry](args);
|
1098
955
|
}
|
1099
956
|
|
1100
957
|
|
1101
958
|
|
1102
959
|
|
960
|
+
|
1103
961
|
const $74b0cf9d3dbd5b46$var$defaultI18NConfig = {
|
1104
962
|
backend: {
|
1105
963
|
backends: [
|
1106
|
-
(0, ($parcel$interopDefault($8zHUo$i18nextresourcestobackend)))(
|
1107
|
-
async (lng, ns)=>import(`./locales/${lng}/${ns}.json`))
|
964
|
+
(0, ($parcel$interopDefault($8zHUo$i18nextresourcestobackend)))(async (lng, ns)=>import(`./locales/${lng}/${ns}.json`))
|
1108
965
|
]
|
1109
966
|
}
|
1110
967
|
};
|
@@ -1119,35 +976,22 @@ class $74b0cf9d3dbd5b46$export$1c191bca55f84a03 extends (0, $868b4eaa4f62b9f7$ex
|
|
1119
976
|
/**
|
1120
977
|
* Does this array of Dosage objects contains only "sequential" instructions ?
|
1121
978
|
*/ containsOnlySequentialInstructions(dosages) {
|
1122
|
-
|
1123
|
-
let sequencesNumbers = dosages.map((d)=>d.sequence).filter((s)=>s !== undefined);
|
1124
|
-
// 2. Convert it to a Set
|
979
|
+
let sequencesNumbers = dosages.map((d)=>d.sequence).filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
1125
980
|
let encounteredSequenceNumbers = new Set(sequencesNumbers);
|
1126
|
-
// 3. We have a "sequential" situation in two cases
|
1127
|
-
// A) No sequence number were provided
|
1128
|
-
// B) All sequence numbers are different
|
1129
981
|
return encounteredSequenceNumbers.size === 0 || encounteredSequenceNumbers.size === dosages.length;
|
1130
982
|
}
|
1131
983
|
/**
|
1132
984
|
* Turn this array of Dosage objects into a data structure useful to handle "sequential" and "concurrent" instructions (cf. "sequence" property).
|
1133
985
|
* @returns {Dosage[][]} - A two-dimensional array where each inner array contains Dosage objects belonging to the same sequence numberr.
|
1134
986
|
*/ groupBySequence(dosages) {
|
1135
|
-
// Prepare variables
|
1136
987
|
let groups = {};
|
1137
988
|
let sequences = new Set();
|
1138
989
|
for(let idx = 0; idx < dosages.length; idx++){
|
1139
|
-
// Get dosage object
|
1140
990
|
const dosage = dosages[idx];
|
1141
|
-
// Get the sequence number (normally, in real world, it should be present in this case)
|
1142
|
-
// If no sequence number, assume it is idx + 1
|
1143
991
|
let sequenceNr = dosage.sequence || idx + 1;
|
1144
|
-
// Retrieve of create previous entries for this sequence number
|
1145
992
|
let localGroup = groups[sequenceNr] || [];
|
1146
|
-
// Add entry
|
1147
993
|
localGroup.push(dosage);
|
1148
|
-
// Pushback result
|
1149
994
|
groups[sequenceNr] = localGroup;
|
1150
|
-
// For reminder of the parsed sequence
|
1151
995
|
sequences.add(sequenceNr);
|
1152
996
|
}
|
1153
997
|
// By using the Set values, we are sure it is returned in the way Dosages were written
|
@@ -1162,20 +1006,17 @@ class $74b0cf9d3dbd5b46$export$1c191bca55f84a03 extends (0, $868b4eaa4f62b9f7$ex
|
|
1162
1006
|
* From a single dosage, extract specific field(s) requested by user.
|
1163
1007
|
* Some use cases could request to split part of the object for given needs (quantity and timing separately)
|
1164
1008
|
*/ getFields(dos, ...order) {
|
1165
|
-
// iterate on each key and generate a string from each part
|
1166
1009
|
let parts = order.map((entry)=>(0, $2c21ace90ecdbde6$export$9f330b4bf8c0975c)({
|
1167
1010
|
config: this.config,
|
1168
1011
|
dos: dos,
|
1169
1012
|
entry: entry,
|
1170
1013
|
i18next: this.i18nInstance
|
1171
|
-
})).filter((
|
1172
|
-
// Join each part with a separator
|
1014
|
+
})).filter((0, $3d60081b7152576d$export$e7321bf46d18757f));
|
1173
1015
|
return parts.join(this.config.displaySeparator);
|
1174
1016
|
}
|
1175
1017
|
/**
|
1176
1018
|
* Turn a FHIR Dosage object into text
|
1177
1019
|
*/ fromDosageToText(dos) {
|
1178
|
-
// iterate on each key and generate a string from each part
|
1179
1020
|
let order = this.config.displayOrder;
|
1180
1021
|
return this.getFields(dos, ...order);
|
1181
1022
|
}
|