@aehrc/smart-forms-renderer 1.0.0-alpha.13 → 1.0.0-alpha.14

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.
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { getInputInvalidType, ValidationResult } from '../utils/validateQuestionnaire';
18
- import { getMaxValue, getMaxValueFeedback, getMinValue, getMinValueFeedback, getRegexValidation } from '../utils/itemControl';
18
+ import { getMaxQuantityValue, getMaxQuantityValueFeedback, getMaxValue, getMaxValueFeedback, getMinQuantityValue, getMinQuantityValueFeedback, getMinValue, getMinValueFeedback, getRegexValidation } from '../utils/itemControl';
19
19
  import { structuredDataCapture } from 'fhir-sdc-helpers';
20
20
  function useValidationFeedback(qItem, input) {
21
21
  const regexValidation = getRegexValidation(qItem);
@@ -24,6 +24,8 @@ function useValidationFeedback(qItem, input) {
24
24
  const maxDecimalPlaces = structuredDataCapture.getMaxDecimalPlaces(qItem);
25
25
  const minValue = getMinValue(qItem);
26
26
  const maxValue = getMaxValue(qItem);
27
+ const minQuantityValue = getMinQuantityValue(qItem); // gets the minQuantity value from the questionnaire item
28
+ const maxQuantityValue = getMaxQuantityValue(qItem); // gets the maxQuantity value from the questionnaire item
27
29
  const invalidType = getInputInvalidType({
28
30
  qItem,
29
31
  input,
@@ -32,11 +34,16 @@ function useValidationFeedback(qItem, input) {
32
34
  maxLength,
33
35
  maxDecimalPlaces,
34
36
  minValue,
35
- maxValue
37
+ maxValue,
38
+ minQuantityValue,
39
+ maxQuantityValue // Max Quantity validation type
36
40
  });
37
41
  if (!invalidType) {
38
42
  return '';
39
43
  }
44
+ else {
45
+ //invalid type exists, so we proceed
46
+ }
40
47
  if (invalidType === ValidationResult.regex && regexValidation) {
41
48
  return `Input should match the specified regex ${regexValidation.expression}`;
42
49
  }
@@ -64,6 +71,16 @@ function useValidationFeedback(qItem, input) {
64
71
  const maxValueFeedback = getMaxValueFeedback(qItem);
65
72
  return maxValueFeedback !== null && maxValueFeedback !== void 0 ? maxValueFeedback : `Input exceeds permitted maximum value of ${maxValue}.`;
66
73
  }
74
+ // Test min quantity
75
+ if (invalidType === ValidationResult.minQuantityValue && typeof minQuantityValue === 'number') {
76
+ const minQuantityFeedback = getMinQuantityValueFeedback(qItem); // get the feedback for minQuantity if it exists
77
+ return (minQuantityFeedback !== null && minQuantityFeedback !== void 0 ? minQuantityFeedback : `Input is lower than the expected minimum quantity value of ${minQuantityValue}.`);
78
+ }
79
+ // Test max quantity
80
+ if (invalidType === ValidationResult.maxQuantityValue && typeof maxQuantityValue === 'number') {
81
+ const maxQuantityFeedback = getMaxQuantityValueFeedback(qItem); // get the feedback for maxQuantity if it exists
82
+ return (maxQuantityFeedback !== null && maxQuantityFeedback !== void 0 ? maxQuantityFeedback : `Input exceeds permitted maximum quantity value of ${maxQuantityValue}.`);
83
+ }
67
84
  return '';
68
85
  }
69
86
  export default useValidationFeedback;
@@ -1 +1 @@
1
- {"version":3,"file":"useValidationFeedback.js","sourceRoot":"","sources":["../../src/hooks/useValidationFeedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvF,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,SAAS,qBAAqB,CAAC,KAAwB,EAAE,KAAa;IACpE,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACtC,KAAK;QACL,KAAK;QACL,eAAe;QACf,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,WAAW,KAAK,gBAAgB,CAAC,KAAK,IAAI,eAAe,EAAE;QAC7D,OAAO,0CAA0C,eAAe,CAAC,UAAU,EAAE,CAAC;KAC/E;IAED,2BAA2B;IAC3B,IAAI,WAAW,KAAK,gBAAgB,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAC/E,OAAO,kBAAkB,SAAS,cAAc,CAAC;KAClD;IAED,2BAA2B;IAC3B,IAAI,WAAW,KAAK,gBAAgB,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAC/E,OAAO,4CAA4C,SAAS,GAAG,CAAC;KACjE;IAED,gCAAgC;IAChC,IAAI,WAAW,KAAK,gBAAgB,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;QAC7F,OAAO,iDAAiD,gBAAgB,GAAG,CAAC;KAC7E;IAED,iBAAiB;IACjB,IACE,WAAW,KAAK,gBAAgB,CAAC,QAAQ;QACzC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,EAC9D;QACA,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,qDAAqD,QAAQ,GAAG,CAAC;KAC7F;IAED,iBAAiB;IACjB,IACE,WAAW,KAAK,gBAAgB,CAAC,QAAQ;QACzC,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,EAC9D;QACA,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,4CAA4C,QAAQ,GAAG,CAAC;KACpF;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"useValidationFeedback.js","sourceRoot":"","sources":["../../src/hooks/useValidationFeedback.ts"],"names":[],"mappings":"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"}
@@ -104,3 +104,39 @@ export declare function getMinValue(qItem: QuestionnaireItem): string | number |
104
104
  export declare function getMinValueFeedback(qItem: QuestionnaireItem): string | null;
105
105
  export declare function getMaxValue(qItem: QuestionnaireItem): string | number | undefined;
106
106
  export declare function getMaxValueFeedback(qItem: QuestionnaireItem): string | null;
107
+ /**
108
+ * Check if the item has a sdc-questionnaire-minQuantity and minQuantity extension
109
+ * @author Janardhan Vignarajan
110
+ * @export
111
+ * @param {QuestionnaireItem} qItem
112
+ * @return {*} {(number | undefined)}
113
+ */
114
+ export declare function getMinQuantityValue(qItem: QuestionnaireItem): number | undefined;
115
+ /**
116
+ * Check if the item has a sdc-questionnaire-minQuantity feedback extension
117
+ *
118
+ * @author Janardhan Vignarajan
119
+ * @export
120
+ * @param {QuestionnaireItem} qItem
121
+ * @return {*}
122
+ */
123
+ export declare function getMinQuantityValueFeedback(qItem: QuestionnaireItem): string | null;
124
+ /**
125
+ * Check if the item has a sdc-questionnaire-maxQuantity extension
126
+ *
127
+ * @author Janardhan Vignarajan
128
+ * @export
129
+ * @param {QuestionnaireItem} qItem
130
+ * @return {*} {(number | undefined)}
131
+ */
132
+ export declare function getMaxQuantityValue(qItem: QuestionnaireItem): number | undefined;
133
+ /**
134
+ * Check if the item has a sdc-questionnaire-maxQuantity Feedback extension
135
+ *
136
+ * @author Janardhan Vignarajan
137
+
138
+ * @export
139
+ * @param {QuestionnaireItem} qItem
140
+ * @return {*}
141
+ */
142
+ export declare function getMaxQuantityValueFeedback(qItem: QuestionnaireItem): string | null;
@@ -374,4 +374,86 @@ export function getMaxValueFeedback(qItem) {
374
374
  }
375
375
  return null;
376
376
  }
377
+ /**
378
+ * Check if the item has a sdc-questionnaire-minQuantity and minQuantity extension
379
+ * @author Janardhan Vignarajan
380
+ * @export
381
+ * @param {QuestionnaireItem} qItem
382
+ * @return {*} {(number | undefined)}
383
+ */
384
+ export function getMinQuantityValue(qItem) {
385
+ var _a;
386
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url ===
387
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-minQuantity');
388
+ if (itemControl && itemControl.valueQuantity) {
389
+ //check if valueQuantity exists in the extension
390
+ if (typeof itemControl.valueQuantity.value === 'number') {
391
+ //check if valueQuantity.value exists in the extension
392
+ return itemControl.valueQuantity.value;
393
+ }
394
+ }
395
+ return undefined;
396
+ }
397
+ /**
398
+ * Check if the item has a sdc-questionnaire-minQuantity feedback extension
399
+ *
400
+ * @author Janardhan Vignarajan
401
+ * @export
402
+ * @param {QuestionnaireItem} qItem
403
+ * @return {*}
404
+ */
405
+ export function getMinQuantityValueFeedback(qItem) {
406
+ var _a;
407
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url ===
408
+ 'https://smartforms.csiro.au/ig/StructureDefinition/minQuantityValue-feedback');
409
+ if (itemControl) {
410
+ const extensionString = itemControl.valueString;
411
+ if (extensionString) {
412
+ return extensionString;
413
+ }
414
+ }
415
+ return null;
416
+ }
417
+ /**
418
+ * Check if the item has a sdc-questionnaire-maxQuantity extension
419
+ *
420
+ * @author Janardhan Vignarajan
421
+ * @export
422
+ * @param {QuestionnaireItem} qItem
423
+ * @return {*} {(number | undefined)}
424
+ */
425
+ export function getMaxQuantityValue(qItem) {
426
+ var _a;
427
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url ===
428
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-maxQuantity');
429
+ if (itemControl && itemControl.valueQuantity) {
430
+ //check if valueQuantity exists in the extension
431
+ if (typeof itemControl.valueQuantity.value === 'number') {
432
+ //check if valueQuantity.value exists in the extension
433
+ return itemControl.valueQuantity.value;
434
+ }
435
+ }
436
+ return undefined;
437
+ }
438
+ /**
439
+ * Check if the item has a sdc-questionnaire-maxQuantity Feedback extension
440
+ *
441
+ * @author Janardhan Vignarajan
442
+
443
+ * @export
444
+ * @param {QuestionnaireItem} qItem
445
+ * @return {*}
446
+ */
447
+ export function getMaxQuantityValueFeedback(qItem) {
448
+ var _a;
449
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url ===
450
+ 'https://smartforms.csiro.au/ig/StructureDefinition/maxQuantityValue-feedback');
451
+ if (itemControl) {
452
+ const extensionString = itemControl.valueString;
453
+ if (extensionString) {
454
+ return extensionString;
455
+ }
456
+ }
457
+ return null;
458
+ }
377
459
  //# sourceMappingURL=itemControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEzD,SAAS,kBAAkB,CAAC,KAAwB;;IAClD,OAAO,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAC5B,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,uEAAuE,CAC5F,CAAA,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;;IAC9C,OAAO,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAC5B,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,mEAAmE,CACxF,CAAA,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAC,KAAwB;;IAC9D,OAAO,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,CACvB,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAC/F,CAAA,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAwB,EAAE,eAAuB;;IACrF,MAAM,WAAW,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,IAAI,CACxC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,mEAAmE,CACxF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,MAAM,IAAI,GAAG,MAAA,MAAA,WAAW,CAAC,oBAAoB,0CAAE,MAAM,0CAAE,IAAI,CACzD,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CACpD,CAAC;QACF,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAwB,EACxB,eAAuB;;IAEvB,MAAM,eAAe,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAC3C,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,uEAAuE,CAC5F,CAAC;IACF,IAAI,eAAe,EAAE;QACnB,MAAM,IAAI,GAAG,MAAA,MAAA,eAAe,CAAC,oBAAoB,0CAAE,MAAM,0CAAE,IAAI,CAC7D,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,CACpD,CAAC;QACF,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;;IACnD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4EAA4E,CACjG,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;;IACzD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,8DAA8D,CACnF,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;;IACvD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4EAA4E,CACjG,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,OAAO,WAAW,CAAC,YAAY,CAAC;SACjC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAwB;;IACrD,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC;SACpB;KACF;IAED,IAAI,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,EAAE;QAC1B,WAAW,GAAG,2BAA2B,CAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,CAAC,CAAC;QAClE,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC;SACpB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,UAAuB;IACjE,MAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAClC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,yDAAyD,CAC9E,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAwB;;IACxD,MAAM,WAAW,GAAG,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,0CAAE,IAAI,CAC9C,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,aAAa,EAAE;YAC7B,OAAO,WAAW,CAAC,aAAa,CAAC;SAClC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;gBAC9E,MAAM,UAAU,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC9D;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAwB;;IACtD,oDAAoD;IACpD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IACF,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE;QAC1C,OAAO,WAAW,CAAC;KACpB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;;IACzD,iDAAiD;IACjD,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;gBAC5E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IAED,oDAAoD;IACpD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IACF,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE;QAC1C,OAAO,MAAA,WAAW,CAAC,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;KAC9C;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC7E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC7E,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAwB;IACjE,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,yBAAyB,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE;gBACxF,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAwB;IAC5D,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;gBAC/E,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC9C,IAAI,WAAW,EAAE;oBACf,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;iBAC/B;gBAED,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;aAC5B;SACF;KACF;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,sCAAsC;IACtC,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,WAAW,EAAE;QACf,OAAO,EAAE,UAAU,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAChE;IAED,uEAAuE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;QACxB,OAAO,EAAE,UAAU,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CAAC;KACjG;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAwB;;IACrD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,+CAA+C,CAC5F,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;QAChD,IAAI,eAAe,EAAE;YACnB,IAAI,WAAW,CAAC;YAChB,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACxC,WAAW,GAAG,eAAe,CAAC,SAAS,CACrC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,MAAM,EACzD,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAClC,CAAC;aACH;iBAAM;gBACL,WAAW,GAAG,eAAe,CAAC;aAC/B;YAED,OAAO,WAAW,CAAC;SACpB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAwB;;IAClD,QAAQ,KAAK,CAAC,IAAI,EAAE;QAClB,KAAK,SAAS;YACZ,OAAO,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3D,KAAK,SAAS;YACZ,uEAAuE;YACvE,OAAO,CACL,MAAA,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,mCACjD,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAClD,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,UAAU;YACb,qEAAqE;YACrE,OAAO,CACL,MAAA,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,CAAC,mCAClD,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAC/C,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,sEAAsE,CAC3F,CAAC;IACF,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;QAChD,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAwB;;IAClD,QAAQ,KAAK,CAAC,IAAI,EAAE;QAClB,KAAK,SAAS;YACZ,OAAO,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3D,KAAK,SAAS;YACZ,uEAAuE;YACvE,OAAO,CACL,MAAA,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,mCACjD,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAClD,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACxD,KAAK,UAAU;YACb,qEAAqE;YACrE,OAAO,CACL,MAAA,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,CAAC,mCAClD,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAC/C,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,sEAAsE,CAC3F,CAAC;IACF,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;QAChD,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG;QACb,8EAA8E,CACjF,CAAC;IAEF,IAAI,WAAW,IAAI,WAAW,CAAC,aAAa,EAAE;QAC5C,gDAAgD;QAChD,IAAI,OAAO,WAAW,CAAC,aAAa,CAAC,KAAK,KAAK,QAAQ,EAAE;YACvD,sDAAsD;YACtD,OAAO,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;SACxC;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAwB;;IAClE,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG;QACb,8EAA8E,CACjF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;QAChD,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG;QACb,8EAA8E,CACjF,CAAC;IAEF,IAAI,WAAW,IAAI,WAAW,CAAC,aAAa,EAAE;QAC5C,gDAAgD;QAChD,IAAI,OAAO,WAAW,CAAC,aAAa,CAAC,KAAK,KAAK,QAAQ,EAAE;YACvD,sDAAsD;YACtD,OAAO,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;SACxC;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAwB;;IAClE,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG;QACb,8EAA8E,CACjF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;QAChD,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -39,7 +39,9 @@ export declare enum ValidationResult {
39
39
  minValueIncompatUnits = "minValueIncompatUnits",
40
40
  maxValueIncompatUnits = "maxValueIncompatUnits",
41
41
  invalidUnit = "invalidUnit",
42
- invalidUnitValueSet = "invalidUnitValueSet"
42
+ invalidUnitValueSet = "invalidUnitValueSet",
43
+ minQuantityValue = "minQuantityValue",
44
+ maxQuantityValue = "maxQuantityValue"
43
45
  }
44
46
  interface ValidateQuestionnaireParams {
45
47
  questionnaire: Questionnaire;
@@ -61,6 +63,8 @@ interface GetInputInvalidTypeParams {
61
63
  maxDecimalPlaces?: number;
62
64
  minValue?: string | number;
63
65
  maxValue?: string | number;
66
+ minQuantityValue?: number;
67
+ maxQuantityValue?: number;
64
68
  }
65
69
  export declare function getInputInvalidType(getInputInvalidTypeParams: GetInputInvalidTypeParams): ValidationResult | null;
66
70
  export {};
@@ -16,7 +16,7 @@
16
16
  */
17
17
  import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
18
18
  import { isHiddenByEnableWhen } from './qItem';
19
- import { getDecimalPrecision, getMaxValue, getMinValue, getRegexString, getRegexValidation, getShortText } from './itemControl';
19
+ import { getDecimalPrecision, getMaxQuantityValue, getMaxValue, getMinQuantityValue, getMinValue, getRegexString, getRegexValidation, getShortText } from './itemControl';
20
20
  import { structuredDataCapture } from 'fhir-sdc-helpers';
21
21
  import { parseDecimalStringToFloat } from './parseInputs';
22
22
  import dayjs from 'dayjs';
@@ -61,7 +61,9 @@ export var ValidationResult;
61
61
  ValidationResult["minValueIncompatUnits"] = "minValueIncompatUnits";
62
62
  ValidationResult["maxValueIncompatUnits"] = "maxValueIncompatUnits";
63
63
  ValidationResult["invalidUnit"] = "invalidUnit";
64
- ValidationResult["invalidUnitValueSet"] = "invalidUnitValueSet"; // The unit provided was not in the provided valueset
64
+ ValidationResult["invalidUnitValueSet"] = "invalidUnitValueSet";
65
+ ValidationResult["minQuantityValue"] = "minQuantityValue";
66
+ ValidationResult["maxQuantityValue"] = "maxQuantityValue"; // Maximum Quantity value constraint violated
65
67
  })(ValidationResult || (ValidationResult = {}));
66
68
  /**
67
69
  * Recursively go through the questionnaireResponse and check for un-filled required qItems
@@ -234,11 +236,15 @@ function validateSingleItem(qItem, qrItem, invalidItems, locationExpression) {
234
236
  return invalidItems;
235
237
  }
236
238
  }
237
- // Validate regex, maxLength and minLength
239
+ // Validate regex, maxLength and minLength, maxQuantity and minQuantity
238
240
  if (qrItem.answer) {
239
241
  for (const [i, answer] of qrItem.answer.entries()) {
240
242
  // Your code here, you can use 'index' and 'answer' as needed
241
- if (answer.valueString || answer.valueInteger || answer.valueDecimal || answer.valueUri) {
243
+ if (answer.valueString ||
244
+ answer.valueInteger ||
245
+ answer.valueDecimal ||
246
+ answer.valueUri ||
247
+ answer.valueQuantity) {
242
248
  const invalidInputType = getInputInvalidType({
243
249
  qItem,
244
250
  input: getInputInString(answer),
@@ -247,10 +253,15 @@ function validateSingleItem(qItem, qrItem, invalidItems, locationExpression) {
247
253
  maxLength: qItem.maxLength,
248
254
  maxDecimalPlaces: structuredDataCapture.getMaxDecimalPlaces(qItem),
249
255
  minValue: getMinValue(qItem),
250
- maxValue: getMaxValue(qItem)
256
+ maxValue: getMaxValue(qItem),
257
+ minQuantityValue: getMinQuantityValue(qItem),
258
+ maxQuantityValue: getMaxQuantityValue(qItem)
251
259
  });
252
260
  if (invalidInputType) {
253
261
  invalidItems[qItem.linkId] = createValidationOperationOutcome(invalidInputType, qItem, qrItem, i, locationExpression, (_b = invalidItems[qItem.linkId]) === null || _b === void 0 ? void 0 : _b.issue);
262
+ } // if not invalid input types found
263
+ else {
264
+ //do nothing
254
265
  }
255
266
  }
256
267
  }
@@ -273,39 +284,63 @@ function getInputInString(answer) {
273
284
  else if (answer.valueUri) {
274
285
  return answer.valueUri;
275
286
  }
287
+ else if (answer.valueQuantity && answer.valueQuantity.value) {
288
+ // return the valueQuantity as string
289
+ return answer.valueQuantity.value.toString();
290
+ }
276
291
  return '';
277
292
  }
278
293
  export function getInputInvalidType(getInputInvalidTypeParams) {
279
294
  var _a, _b;
280
- const { qItem, input, regexValidation, minLength, maxLength, maxDecimalPlaces, minValue, maxValue } = getInputInvalidTypeParams;
295
+ const { qItem, input, regexValidation, minLength, maxLength, maxDecimalPlaces, minValue, maxValue, minQuantityValue, maxQuantityValue } = getInputInvalidTypeParams;
281
296
  if (input) {
282
297
  if (regexValidation && !regexValidation.expression.test(input)) {
283
298
  return ValidationResult.regex;
284
299
  }
285
- if (minLength && input.length < minLength) {
300
+ if (minLength !== undefined && input.length < minLength) {
286
301
  return ValidationResult.minLength;
287
302
  }
288
- if (maxLength && input.length > maxLength) {
303
+ if (maxLength !== undefined && input.length > maxLength) {
289
304
  return ValidationResult.maxLength;
290
305
  }
291
- if (maxDecimalPlaces) {
306
+ if (maxDecimalPlaces !== undefined) {
292
307
  const decimalPlaces = (_b = (_a = input.split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
293
308
  if (decimalPlaces > maxDecimalPlaces) {
294
309
  return ValidationResult.maxDecimalPlaces;
295
310
  }
296
311
  }
297
- if (minValue) {
312
+ if (minValue !== undefined) {
298
313
  const minValueError = checkMinValue(qItem, input, minValue);
299
314
  if (minValueError !== null) {
300
315
  return ValidationResult.minValue;
301
316
  }
302
317
  }
303
- if (maxValue) {
318
+ if (maxValue !== undefined) {
304
319
  const maxValueError = checkMaxValue(qItem, input, maxValue);
305
320
  if (maxValueError !== null) {
306
321
  return ValidationResult.maxValue;
307
322
  }
308
323
  }
324
+ // if minQuantityValue exists then check the value and validate
325
+ if (minQuantityValue !== undefined) {
326
+ const minQuantityValueError = checkMinQuantityValue(qItem, input, minQuantityValue);
327
+ if (minQuantityValueError !== null) {
328
+ return ValidationResult.minQuantityValue;
329
+ }
330
+ else {
331
+ // No error, do nothing
332
+ }
333
+ }
334
+ // if maxQuantityValue exists then check the value and validate
335
+ if (maxQuantityValue !== undefined) {
336
+ const maxQuantityValueError = checkMaxQuantityValue(qItem, input, maxQuantityValue);
337
+ if (maxQuantityValueError !== null) {
338
+ return ValidationResult.maxQuantityValue;
339
+ }
340
+ else {
341
+ // No error, do nothing
342
+ }
343
+ }
309
344
  }
310
345
  return null;
311
346
  }
@@ -389,6 +424,54 @@ function checkMaxValue(qItem, input, maxValue) {
389
424
  }
390
425
  return null;
391
426
  }
427
+ /**
428
+ * Checks for Minimum Quantity Value and returns the validation results
429
+ *
430
+ * @param {QuestionnaireItem} qItem
431
+ * @param {string} input
432
+ * @param {number} minQuantityValue
433
+ * @return {*} {(ValidationResult.minQuantityValue | null)}
434
+ */
435
+ function checkMinQuantityValue(qItem, input, minQuantityValue) {
436
+ switch (qItem.type) {
437
+ case 'quantity':
438
+ const precision = getDecimalPrecision(qItem);
439
+ const decimalValue = precision
440
+ ? parseDecimalStringToFloat(input, precision)
441
+ : parseFloat(input);
442
+ if (decimalValue < minQuantityValue) {
443
+ return ValidationResult.minQuantityValue;
444
+ }
445
+ break;
446
+ default:
447
+ return null;
448
+ }
449
+ return null;
450
+ }
451
+ /**
452
+ * Checks for Maxmim Quantity Value and returns the validation results
453
+ *
454
+ * @param {QuestionnaireItem} qItem
455
+ * @param {string} input
456
+ * @param {number} maxQuantityValue
457
+ * @return {*} {(ValidationResult.maxQuantityValue | null)}
458
+ */
459
+ function checkMaxQuantityValue(qItem, input, maxQuantityValue) {
460
+ switch (qItem.type) {
461
+ case 'quantity':
462
+ const precision = getDecimalPrecision(qItem);
463
+ const decimalValue = precision
464
+ ? parseDecimalStringToFloat(input, precision)
465
+ : parseFloat(input);
466
+ if (decimalValue > maxQuantityValue) {
467
+ return ValidationResult.maxQuantityValue;
468
+ }
469
+ break;
470
+ default:
471
+ return null;
472
+ }
473
+ return null;
474
+ }
392
475
  function createValidationOperationOutcome(error, qItem, qrItem, answerIndex, locationExpression, existingOperationOutcomeIssues = []) {
393
476
  return {
394
477
  resourceType: 'OperationOutcome',
@@ -396,7 +479,7 @@ function createValidationOperationOutcome(error, qItem, qrItem, answerIndex, loc
396
479
  };
397
480
  }
398
481
  function createValidationOperationOutcomeIssue(error, qItem, qrItem, answerIndex, locationExpression) {
399
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
482
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
400
483
  const errorCodeSystem = 'http://fhir.forms-lab.com/CodeSystem/errors';
401
484
  let detailsText = '';
402
485
  let fieldDisplayText = (_d = (_c = (_b = (_a = qrItem === null || qrItem === void 0 ? void 0 : qrItem.text) !== null && _a !== void 0 ? _a : getShortText(qItem)) !== null && _b !== void 0 ? _b : qItem === null || qItem === void 0 ? void 0 : qItem.text) !== null && _c !== void 0 ? _c : qItem.linkId) !== null && _d !== void 0 ? _d : qrItem.linkId;
@@ -541,6 +624,44 @@ function createValidationOperationOutcomeIssue(error, qItem, qrItem, answerIndex
541
624
  }
542
625
  };
543
626
  }
627
+ //Validation result error handling for min quantity extension
628
+ case ValidationResult.minQuantityValue: {
629
+ detailsText = `${fieldDisplayText}: Expected the minimum value ${getMinQuantityValue(qItem)}, received '${getInputInString((_m = qrItem.answer) === null || _m === void 0 ? void 0 : _m[answerIndex])}'`;
630
+ return {
631
+ severity: 'error',
632
+ code: 'business-rule',
633
+ expression: [locationExpression],
634
+ details: {
635
+ coding: [
636
+ {
637
+ system: errorCodeSystem,
638
+ code: error,
639
+ display: 'Too small'
640
+ }
641
+ ],
642
+ text: detailsText
643
+ }
644
+ };
645
+ }
646
+ //Validation result error handling for max quantity extension
647
+ case ValidationResult.maxQuantityValue: {
648
+ detailsText = `${fieldDisplayText}: Exceeded the maximum value ${getMaxQuantityValue(qItem)}, received '${getInputInString((_o = qrItem.answer) === null || _o === void 0 ? void 0 : _o[answerIndex])}'`;
649
+ return {
650
+ severity: 'error',
651
+ code: 'business-rule',
652
+ expression: [locationExpression],
653
+ details: {
654
+ coding: [
655
+ {
656
+ system: errorCodeSystem,
657
+ code: error,
658
+ display: 'Too big'
659
+ }
660
+ ],
661
+ text: detailsText
662
+ }
663
+ };
664
+ }
544
665
  // mark unknown issues as fatal
545
666
  default: {
546
667
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"validateQuestionnaire.js","sourceRoot":"","sources":["../../src/utils/validateQuestionnaire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateQuestionnaire.js","sourceRoot":"","sources":["../../src/utils/validateQuestionnaire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "1.0.0-alpha.13",
3
+ "version": "1.0.0-alpha.14",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -18,8 +18,12 @@
18
18
  import { getInputInvalidType, ValidationResult } from '../utils/validateQuestionnaire';
19
19
  import type { QuestionnaireItem } from 'fhir/r4';
20
20
  import {
21
+ getMaxQuantityValue,
22
+ getMaxQuantityValueFeedback,
21
23
  getMaxValue,
22
24
  getMaxValueFeedback,
25
+ getMinQuantityValue,
26
+ getMinQuantityValueFeedback,
23
27
  getMinValue,
24
28
  getMinValueFeedback,
25
29
  getRegexValidation
@@ -33,6 +37,8 @@ function useValidationFeedback(qItem: QuestionnaireItem, input: string): string
33
37
  const maxDecimalPlaces = structuredDataCapture.getMaxDecimalPlaces(qItem);
34
38
  const minValue = getMinValue(qItem);
35
39
  const maxValue = getMaxValue(qItem);
40
+ const minQuantityValue = getMinQuantityValue(qItem); // gets the minQuantity value from the questionnaire item
41
+ const maxQuantityValue = getMaxQuantityValue(qItem); // gets the maxQuantity value from the questionnaire item
36
42
 
37
43
  const invalidType = getInputInvalidType({
38
44
  qItem,
@@ -42,11 +48,15 @@ function useValidationFeedback(qItem: QuestionnaireItem, input: string): string
42
48
  maxLength,
43
49
  maxDecimalPlaces,
44
50
  minValue,
45
- maxValue
51
+ maxValue,
52
+ minQuantityValue, // Min Quantity validation type
53
+ maxQuantityValue // Max Quantity validation type
46
54
  });
47
55
 
48
56
  if (!invalidType) {
49
57
  return '';
58
+ } else {
59
+ //invalid type exists, so we proceed
50
60
  }
51
61
 
52
62
  if (invalidType === ValidationResult.regex && regexValidation) {
@@ -86,6 +96,23 @@ function useValidationFeedback(qItem: QuestionnaireItem, input: string): string
86
96
  return maxValueFeedback ?? `Input exceeds permitted maximum value of ${maxValue}.`;
87
97
  }
88
98
 
99
+ // Test min quantity
100
+ if (invalidType === ValidationResult.minQuantityValue && typeof minQuantityValue === 'number') {
101
+ const minQuantityFeedback = getMinQuantityValueFeedback(qItem); // get the feedback for minQuantity if it exists
102
+ return (
103
+ minQuantityFeedback ??
104
+ `Input is lower than the expected minimum quantity value of ${minQuantityValue}.`
105
+ );
106
+ }
107
+
108
+ // Test max quantity
109
+ if (invalidType === ValidationResult.maxQuantityValue && typeof maxQuantityValue === 'number') {
110
+ const maxQuantityFeedback = getMaxQuantityValueFeedback(qItem); // get the feedback for maxQuantity if it exists
111
+ return (
112
+ maxQuantityFeedback ??
113
+ `Input exceeds permitted maximum quantity value of ${maxQuantityValue}.`
114
+ );
115
+ }
89
116
  return '';
90
117
  }
91
118
 
@@ -470,3 +470,101 @@ export function getMaxValueFeedback(qItem: QuestionnaireItem) {
470
470
 
471
471
  return null;
472
472
  }
473
+
474
+ /**
475
+ * Check if the item has a sdc-questionnaire-minQuantity and minQuantity extension
476
+ * @author Janardhan Vignarajan
477
+ * @export
478
+ * @param {QuestionnaireItem} qItem
479
+ * @return {*} {(number | undefined)}
480
+ */
481
+ export function getMinQuantityValue(qItem: QuestionnaireItem): number | undefined {
482
+ const itemControl = qItem.extension?.find(
483
+ (extension: Extension) =>
484
+ extension.url ===
485
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-minQuantity'
486
+ );
487
+
488
+ if (itemControl && itemControl.valueQuantity) {
489
+ //check if valueQuantity exists in the extension
490
+ if (typeof itemControl.valueQuantity.value === 'number') {
491
+ //check if valueQuantity.value exists in the extension
492
+ return itemControl.valueQuantity.value;
493
+ }
494
+ }
495
+ return undefined;
496
+ }
497
+
498
+ /**
499
+ * Check if the item has a sdc-questionnaire-minQuantity feedback extension
500
+ *
501
+ * @author Janardhan Vignarajan
502
+ * @export
503
+ * @param {QuestionnaireItem} qItem
504
+ * @return {*}
505
+ */
506
+ export function getMinQuantityValueFeedback(qItem: QuestionnaireItem) {
507
+ const itemControl = qItem.extension?.find(
508
+ (extension: Extension) =>
509
+ extension.url ===
510
+ 'https://smartforms.csiro.au/ig/StructureDefinition/minQuantityValue-feedback'
511
+ );
512
+ if (itemControl) {
513
+ const extensionString = itemControl.valueString;
514
+ if (extensionString) {
515
+ return extensionString;
516
+ }
517
+ }
518
+
519
+ return null;
520
+ }
521
+
522
+ /**
523
+ * Check if the item has a sdc-questionnaire-maxQuantity extension
524
+ *
525
+ * @author Janardhan Vignarajan
526
+ * @export
527
+ * @param {QuestionnaireItem} qItem
528
+ * @return {*} {(number | undefined)}
529
+ */
530
+ export function getMaxQuantityValue(qItem: QuestionnaireItem): number | undefined {
531
+ const itemControl = qItem.extension?.find(
532
+ (extension: Extension) =>
533
+ extension.url ===
534
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-maxQuantity'
535
+ );
536
+
537
+ if (itemControl && itemControl.valueQuantity) {
538
+ //check if valueQuantity exists in the extension
539
+ if (typeof itemControl.valueQuantity.value === 'number') {
540
+ //check if valueQuantity.value exists in the extension
541
+ return itemControl.valueQuantity.value;
542
+ }
543
+ }
544
+ return undefined;
545
+ }
546
+
547
+ /**
548
+ * Check if the item has a sdc-questionnaire-maxQuantity Feedback extension
549
+ *
550
+ * @author Janardhan Vignarajan
551
+
552
+ * @export
553
+ * @param {QuestionnaireItem} qItem
554
+ * @return {*}
555
+ */
556
+ export function getMaxQuantityValueFeedback(qItem: QuestionnaireItem) {
557
+ const itemControl = qItem.extension?.find(
558
+ (extension: Extension) =>
559
+ extension.url ===
560
+ 'https://smartforms.csiro.au/ig/StructureDefinition/maxQuantityValue-feedback'
561
+ );
562
+ if (itemControl) {
563
+ const extensionString = itemControl.valueString;
564
+ if (extensionString) {
565
+ return extensionString;
566
+ }
567
+ }
568
+
569
+ return null;
570
+ }
@@ -29,7 +29,9 @@ import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces/enabl
29
29
  import { isHiddenByEnableWhen } from './qItem';
30
30
  import {
31
31
  getDecimalPrecision,
32
+ getMaxQuantityValue,
32
33
  getMaxValue,
34
+ getMinQuantityValue,
33
35
  getMinValue,
34
36
  getRegexString,
35
37
  getRegexValidation,
@@ -80,7 +82,9 @@ export enum ValidationResult {
80
82
  minValueIncompatUnits = 'minValueIncompatUnits', // The units provided in the Quantity cannot be converted to the min Quantity units
81
83
  maxValueIncompatUnits = 'maxValueIncompatUnits', // The units provided in the Quantity cannot be converted to the max Quantity units
82
84
  invalidUnit = 'invalidUnit', // The unit provided was not among the list selected (or did not have all the properties defined in the unit coding)
83
- invalidUnitValueSet = 'invalidUnitValueSet' // The unit provided was not in the provided valueset
85
+ invalidUnitValueSet = 'invalidUnitValueSet', // The unit provided was not in the provided valueset
86
+ minQuantityValue = 'minQuantityValue', // Minimum Quantity value constraint violated
87
+ maxQuantityValue = 'maxQuantityValue' // Maximum Quantity value constraint violated
84
88
  }
85
89
 
86
90
  interface ValidateQuestionnaireParams {
@@ -339,11 +343,17 @@ function validateSingleItem(
339
343
  }
340
344
  }
341
345
 
342
- // Validate regex, maxLength and minLength
346
+ // Validate regex, maxLength and minLength, maxQuantity and minQuantity
343
347
  if (qrItem.answer) {
344
348
  for (const [i, answer] of qrItem.answer.entries()) {
345
349
  // Your code here, you can use 'index' and 'answer' as needed
346
- if (answer.valueString || answer.valueInteger || answer.valueDecimal || answer.valueUri) {
350
+ if (
351
+ answer.valueString ||
352
+ answer.valueInteger ||
353
+ answer.valueDecimal ||
354
+ answer.valueUri ||
355
+ answer.valueQuantity
356
+ ) {
347
357
  const invalidInputType = getInputInvalidType({
348
358
  qItem,
349
359
  input: getInputInString(answer),
@@ -352,7 +362,9 @@ function validateSingleItem(
352
362
  maxLength: qItem.maxLength,
353
363
  maxDecimalPlaces: structuredDataCapture.getMaxDecimalPlaces(qItem),
354
364
  minValue: getMinValue(qItem),
355
- maxValue: getMaxValue(qItem)
365
+ maxValue: getMaxValue(qItem),
366
+ minQuantityValue: getMinQuantityValue(qItem),
367
+ maxQuantityValue: getMaxQuantityValue(qItem)
356
368
  });
357
369
 
358
370
  if (invalidInputType) {
@@ -364,6 +376,9 @@ function validateSingleItem(
364
376
  locationExpression,
365
377
  invalidItems[qItem.linkId]?.issue
366
378
  );
379
+ } // if not invalid input types found
380
+ else {
381
+ //do nothing
367
382
  }
368
383
  }
369
384
  }
@@ -385,6 +400,9 @@ function getInputInString(answer?: QuestionnaireResponseItemAnswer) {
385
400
  return answer.valueDecimal.toString();
386
401
  } else if (answer.valueUri) {
387
402
  return answer.valueUri;
403
+ } else if (answer.valueQuantity && answer.valueQuantity.value) {
404
+ // return the valueQuantity as string
405
+ return answer.valueQuantity.value.toString();
388
406
  }
389
407
 
390
408
  return '';
@@ -399,6 +417,8 @@ interface GetInputInvalidTypeParams {
399
417
  maxDecimalPlaces?: number;
400
418
  minValue?: string | number;
401
419
  maxValue?: string | number;
420
+ minQuantityValue?: number;
421
+ maxQuantityValue?: number;
402
422
  }
403
423
 
404
424
  export function getInputInvalidType(
@@ -412,7 +432,9 @@ export function getInputInvalidType(
412
432
  maxLength,
413
433
  maxDecimalPlaces,
414
434
  minValue,
415
- maxValue
435
+ maxValue,
436
+ minQuantityValue,
437
+ maxQuantityValue
416
438
  } = getInputInvalidTypeParams;
417
439
 
418
440
  if (input) {
@@ -420,34 +442,53 @@ export function getInputInvalidType(
420
442
  return ValidationResult.regex;
421
443
  }
422
444
 
423
- if (minLength && input.length < minLength) {
445
+ if (minLength !== undefined && input.length < minLength) {
424
446
  return ValidationResult.minLength;
425
447
  }
426
448
 
427
- if (maxLength && input.length > maxLength) {
449
+ if (maxLength !== undefined && input.length > maxLength) {
428
450
  return ValidationResult.maxLength;
429
451
  }
430
452
 
431
- if (maxDecimalPlaces) {
453
+ if (maxDecimalPlaces !== undefined) {
432
454
  const decimalPlaces = input.split('.')[1]?.length ?? 0;
433
455
  if (decimalPlaces > maxDecimalPlaces) {
434
456
  return ValidationResult.maxDecimalPlaces;
435
457
  }
436
458
  }
437
459
 
438
- if (minValue) {
460
+ if (minValue !== undefined) {
439
461
  const minValueError = checkMinValue(qItem, input, minValue);
440
462
  if (minValueError !== null) {
441
463
  return ValidationResult.minValue;
442
464
  }
443
465
  }
444
466
 
445
- if (maxValue) {
467
+ if (maxValue !== undefined) {
446
468
  const maxValueError = checkMaxValue(qItem, input, maxValue);
447
469
  if (maxValueError !== null) {
448
470
  return ValidationResult.maxValue;
449
471
  }
450
472
  }
473
+
474
+ // if minQuantityValue exists then check the value and validate
475
+ if (minQuantityValue !== undefined) {
476
+ const minQuantityValueError = checkMinQuantityValue(qItem, input, minQuantityValue);
477
+ if (minQuantityValueError !== null) {
478
+ return ValidationResult.minQuantityValue;
479
+ } else {
480
+ // No error, do nothing
481
+ }
482
+ }
483
+ // if maxQuantityValue exists then check the value and validate
484
+ if (maxQuantityValue !== undefined) {
485
+ const maxQuantityValueError = checkMaxQuantityValue(qItem, input, maxQuantityValue);
486
+ if (maxQuantityValueError !== null) {
487
+ return ValidationResult.maxQuantityValue;
488
+ } else {
489
+ // No error, do nothing
490
+ }
491
+ }
451
492
  }
452
493
 
453
494
  return null;
@@ -547,6 +588,71 @@ function checkMaxValue(
547
588
  return null;
548
589
  }
549
590
 
591
+ /**
592
+ * Checks for Minimum Quantity Value and returns the validation results
593
+ *
594
+ * @param {QuestionnaireItem} qItem
595
+ * @param {string} input
596
+ * @param {number} minQuantityValue
597
+ * @return {*} {(ValidationResult.minQuantityValue | null)}
598
+ */
599
+ function checkMinQuantityValue(
600
+ qItem: QuestionnaireItem,
601
+ input: string,
602
+ minQuantityValue: number
603
+ ): ValidationResult.minQuantityValue | null {
604
+ switch (qItem.type) {
605
+ case 'quantity':
606
+ const precision = getDecimalPrecision(qItem);
607
+ const decimalValue = precision
608
+ ? parseDecimalStringToFloat(input, precision)
609
+ : parseFloat(input);
610
+
611
+ if (decimalValue < minQuantityValue) {
612
+ return ValidationResult.minQuantityValue;
613
+ }
614
+
615
+ break;
616
+ default:
617
+ return null;
618
+ }
619
+
620
+ return null;
621
+ }
622
+
623
+ /**
624
+ * Checks for Maxmim Quantity Value and returns the validation results
625
+ *
626
+ * @param {QuestionnaireItem} qItem
627
+ * @param {string} input
628
+ * @param {number} maxQuantityValue
629
+ * @return {*} {(ValidationResult.maxQuantityValue | null)}
630
+ */
631
+ function checkMaxQuantityValue(
632
+ qItem: QuestionnaireItem,
633
+ input: string,
634
+ maxQuantityValue: number
635
+ ): ValidationResult.maxQuantityValue | null {
636
+ switch (qItem.type) {
637
+ case 'quantity':
638
+ const precision = getDecimalPrecision(qItem);
639
+ const decimalValue = precision
640
+ ? parseDecimalStringToFloat(input, precision)
641
+ : parseFloat(input);
642
+
643
+ if (decimalValue > maxQuantityValue) {
644
+ return ValidationResult.maxQuantityValue;
645
+ }
646
+
647
+ break;
648
+
649
+ default:
650
+ return null;
651
+ }
652
+
653
+ return null;
654
+ }
655
+
550
656
  function createValidationOperationOutcome(
551
657
  error: ValidationResult,
552
658
  qItem: QuestionnaireItem,
@@ -736,6 +842,49 @@ function createValidationOperationOutcomeIssue(
736
842
  }
737
843
  };
738
844
  }
845
+ //Validation result error handling for min quantity extension
846
+ case ValidationResult.minQuantityValue: {
847
+ detailsText = `${fieldDisplayText}: Expected the minimum value ${getMinQuantityValue(
848
+ qItem
849
+ )}, received '${getInputInString(qrItem.answer?.[answerIndex])}'`;
850
+ return {
851
+ severity: 'error',
852
+ code: 'business-rule',
853
+ expression: [locationExpression],
854
+ details: {
855
+ coding: [
856
+ {
857
+ system: errorCodeSystem,
858
+ code: error,
859
+ display: 'Too small'
860
+ }
861
+ ],
862
+ text: detailsText
863
+ }
864
+ };
865
+ }
866
+ //Validation result error handling for max quantity extension
867
+
868
+ case ValidationResult.maxQuantityValue: {
869
+ detailsText = `${fieldDisplayText}: Exceeded the maximum value ${getMaxQuantityValue(
870
+ qItem
871
+ )}, received '${getInputInString(qrItem.answer?.[answerIndex])}'`;
872
+ return {
873
+ severity: 'error',
874
+ code: 'business-rule',
875
+ expression: [locationExpression],
876
+ details: {
877
+ coding: [
878
+ {
879
+ system: errorCodeSystem,
880
+ code: error,
881
+ display: 'Too big'
882
+ }
883
+ ],
884
+ text: detailsText
885
+ }
886
+ };
887
+ }
739
888
 
740
889
  // mark unknown issues as fatal
741
890
  default: {