@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.
- package/lib/hooks/useValidationFeedback.js +19 -2
- package/lib/hooks/useValidationFeedback.js.map +1 -1
- package/lib/utils/itemControl.d.ts +36 -0
- package/lib/utils/itemControl.js +82 -0
- package/lib/utils/itemControl.js.map +1 -1
- package/lib/utils/validateQuestionnaire.d.ts +5 -1
- package/lib/utils/validateQuestionnaire.js +133 -12
- package/lib/utils/validateQuestionnaire.js.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useValidationFeedback.ts +28 -1
- package/src/utils/itemControl.ts +98 -0
- package/src/utils/validateQuestionnaire.ts +159 -10
|
@@ -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;
|
|
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;
|
package/lib/utils/itemControl.js
CHANGED
|
@@ -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":"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"}
|
|
@@ -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";
|
|
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 ||
|
|
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
|
@@ -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
|
|
package/src/utils/itemControl.ts
CHANGED
|
@@ -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 (
|
|
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: {
|