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