@aehrc/smart-forms-renderer 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/interfaces/enableWhen.interface.d.ts +11 -3
- package/lib/interfaces/index.d.ts +1 -1
- package/lib/interfaces/questionnaireStore.interface.d.ts +2 -2
- package/lib/setup-jest.js +1 -0
- package/lib/stores/questionnaireStore.d.ts +3 -3
- package/lib/stores/questionnaireStore.js +20 -5
- package/lib/stores/questionnaireStore.js.map +1 -1
- package/lib/stories/MedicalHistoryTable.stories.js +45 -0
- package/lib/stories/SmartFormsRenderer.stories.js +117 -0
- package/lib/utils/enableWhenExpression.d.ts +22 -5
- package/lib/utils/enableWhenExpression.js +97 -54
- package/lib/utils/enableWhenExpression.js.map +1 -1
- package/lib/utils/fhirpath.d.ts +3 -3
- package/lib/utils/initialise.d.ts +3 -3
- package/lib/utils/qItem.d.ts +2 -2
- package/lib/utils/qItem.js +8 -8
- package/lib/utils/qItem.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +5 -5
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +98 -34
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
- package/lib/utils/removeEmptyAnswers.d.ts +2 -2
- package/lib/utils/removeEmptyAnswers.js.map +1 -1
- package/lib/utils/repopulateItems.d.ts +2 -2
- package/lib/utils/tabs.d.ts +6 -6
- package/lib/utils/tabs.js +3 -18
- package/lib/utils/tabs.js.map +1 -1
- package/lib/utils/validateQuestionnaire.d.ts +2 -2
- package/lib/utils/validateQuestionnaire.js +0 -7
- package/lib/utils/validateQuestionnaire.js.map +1 -1
- package/package.json +2 -2
- package/src/interfaces/enableWhen.interface.ts +13 -3
- package/src/interfaces/index.ts +4 -2
- package/src/interfaces/questionnaireStore.interface.ts +2 -2
- package/src/stores/questionnaireStore.ts +23 -7
- package/src/utils/enableWhenExpression.ts +214 -78
- package/src/utils/fhirpath.ts +3 -3
- package/src/utils/initialise.ts +3 -3
- package/src/utils/qItem.ts +11 -11
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +1 -1
- package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +159 -39
- package/src/utils/removeEmptyAnswers.ts +4 -4
- package/src/utils/repopulateItems.ts +4 -4
- package/src/utils/tabs.ts +9 -24
- package/src/utils/validateQuestionnaire.ts +3 -11
package/lib/utils/qItem.js
CHANGED
|
@@ -19,25 +19,25 @@ import { ChoiceItemControl, OpenChoiceItemControl } from '../interfaces/choice.e
|
|
|
19
19
|
import { getOpenChoiceControlType } from './openChoice';
|
|
20
20
|
export function isHiddenByEnableWhen(params) {
|
|
21
21
|
const { linkId, enableWhenIsActivated, enableWhenItems, enableWhenExpressions, parentRepeatGroupIndex } = params;
|
|
22
|
-
const { singleItems, repeatItems } = enableWhenItems;
|
|
23
22
|
// If enableWhen is not activated, items are not hidden by enableWhen
|
|
24
23
|
if (!enableWhenIsActivated) {
|
|
25
24
|
return false;
|
|
26
25
|
}
|
|
26
|
+
// Check enableWhen items
|
|
27
|
+
const { singleItems, repeatItems } = enableWhenItems;
|
|
27
28
|
if (singleItems[linkId]) {
|
|
28
29
|
return !singleItems[linkId].isEnabled;
|
|
29
30
|
}
|
|
30
31
|
if (repeatItems[linkId] && parentRepeatGroupIndex !== undefined) {
|
|
31
32
|
return !repeatItems[linkId].enabledIndexes[parentRepeatGroupIndex];
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
34
|
+
// Check enableWhenExpressions
|
|
35
|
+
const { singleExpressions, repeatExpressions } = enableWhenExpressions;
|
|
36
|
+
if (repeatExpressions[linkId] && parentRepeatGroupIndex !== undefined) {
|
|
37
|
+
return !repeatExpressions[linkId].enabledIndexes[parentRepeatGroupIndex];
|
|
38
38
|
}
|
|
39
|
-
if (
|
|
40
|
-
return !enableWhenExpressions[linkId].
|
|
39
|
+
if (singleExpressions[linkId]) {
|
|
40
|
+
return !enableWhenExpressions.singleExpressions[linkId].isEnabled;
|
|
41
41
|
}
|
|
42
42
|
return false;
|
|
43
43
|
}
|
package/lib/utils/qItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qItem.js","sourceRoot":"","sources":["../../src/utils/qItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAWxD,MAAM,UAAU,oBAAoB,CAAC,MAAmC;IACtE,MAAM,EACJ,MAAM,EACN,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACvB,GAAG,MAAM,CAAC;IAEX,
|
|
1
|
+
{"version":3,"file":"qItem.js","sourceRoot":"","sources":["../../src/utils/qItem.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@ function createEmptyModel() {
|
|
|
74
74
|
variables: { fhirPathVariables: {}, xFhirQueryVariables: {} },
|
|
75
75
|
launchContexts: {},
|
|
76
76
|
calculatedExpressions: {},
|
|
77
|
-
enableWhenExpressions: {},
|
|
77
|
+
enableWhenExpressions: { singleExpressions: {}, repeatExpressions: {} },
|
|
78
78
|
answerExpressions: {},
|
|
79
79
|
enableWhenItems: { singleItems: {}, repeatItems: {} },
|
|
80
80
|
processedValueSetCodings: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAMH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,UAAgB,wBAAwB,CAC5C,aAA4B,EAC5B,mBAA2C,EAC3C,oBAA4B;;QAE5B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YACvB,OAAO,gBAAgB,EAAE,CAAC;SAC3B;QAED,MAAM,SAAS,GAA2B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;QACjG,MAAM,IAAI,GAAS,WAAW,CAAC,aAAa,CAAC,CAAC;QAE9C,MAAM,cAAc,GAAkC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE3F,IAAI,SAAS,GAAc,kCAAkC,CAAC,aAAa,CAAC,CAAC;QAC7E,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAEnE,MAAM,+BAA+B,GAAG,yBAAyB,CAC/D,aAAa,EACb,oBAAoB,CACrB,CAAC;QACF,IAAI,gBAAgB,GAAG,+BAA+B,CAAC,gBAAgB,CAAC;QACxE,IAAI,wBAAwB,GAAG,+BAA+B,CAAC,wBAAwB,CAAC;QACxF,MAAM,qBAAqB,GAAG,+BAA+B,CAAC,qBAAqB,CAAC;QAEpF,MAAM,4BAA4B,GAAG,sBAAsB,CACzD,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,CACrB,CAAC;QAEF,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,GACxF,4BAA4B,CAAC;QAC/B,SAAS,GAAG,4BAA4B,CAAC,SAAS,CAAC;QACnD,gBAAgB,GAAG,4BAA4B,CAAC,gBAAgB,CAAC;QAEjE,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,CACnD,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,CACrB,CAAC;QAEF,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC;QAC7C,wBAAwB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC;QAE3E,OAAO;YACL,SAAS;YACT,IAAI;YACJ,SAAS;YACT,cAAc;YACd,eAAe;YACf,qBAAqB;YACrB,qBAAqB;YACrB,iBAAiB;YACjB,wBAAwB;YACxB,qBAAqB;YACrB,eAAe,EAAE,EAAE;SACpB,CAAC;IACJ,CAAC;CAAA;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAC7D,cAAc,EAAE,EAAE;QAClB,qBAAqB,EAAE,EAAE;QACzB,qBAAqB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { Expression, Questionnaire, QuestionnaireItem } from 'fhir/r4';
|
|
1
|
+
import type { Expression, Questionnaire, QuestionnaireItem, QuestionnaireItemEnableWhen } from 'fhir/r4';
|
|
2
2
|
import type { CalculatedExpression } from '../../interfaces/calculatedExpression.interface';
|
|
3
|
-
import type {
|
|
3
|
+
import type { EnableWhenExpressions, EnableWhenItems, EnableWhenRepeatItemProperties, EnableWhenSingleItemProperties } from '../../interfaces';
|
|
4
4
|
import type { AnswerExpression } from '../../interfaces/answerExpression.interface';
|
|
5
5
|
import type { ValueSetPromise } from '../../interfaces/valueSet.interface';
|
|
6
6
|
import type { Variables } from '../../interfaces/variables.interface';
|
|
7
7
|
interface ReturnParamsRecursive {
|
|
8
8
|
variables: Variables;
|
|
9
9
|
enableWhenItems: EnableWhenItems;
|
|
10
|
-
enableWhenExpressions:
|
|
10
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
11
11
|
calculatedExpressions: Record<string, CalculatedExpression>;
|
|
12
12
|
answerExpressions: Record<string, AnswerExpression>;
|
|
13
13
|
valueSetPromises: Record<string, ValueSetPromise>;
|
|
@@ -22,13 +22,13 @@ export declare function initialiseEnableWhenItemProperties(qItem: QuestionnaireI
|
|
|
22
22
|
enableWhenItemType: 'single' | 'repeat';
|
|
23
23
|
enableWhenItemProperties: EnableWhenSingleItemProperties | EnableWhenRepeatItemProperties;
|
|
24
24
|
} | null;
|
|
25
|
-
export declare function initialiseEnableWhenRepeatItemProperties(qItem: QuestionnaireItem, questionnaire: Questionnaire, parentLinkId: string): EnableWhenRepeatItemProperties | null;
|
|
25
|
+
export declare function initialiseEnableWhenRepeatItemProperties(qItem: QuestionnaireItem, enableWhen: QuestionnaireItemEnableWhen[], questionnaire: Questionnaire, parentLinkId: string): EnableWhenRepeatItemProperties | null;
|
|
26
26
|
/**
|
|
27
27
|
* Get enableWhen items' linked items and enableBehaviour attribute and save them in an EnableWhenItemProperties object
|
|
28
28
|
*
|
|
29
29
|
* @author Sean Fong
|
|
30
30
|
*/
|
|
31
|
-
export declare function initialiseEnableWhenSingleItemProperties(qItem: QuestionnaireItem): EnableWhenSingleItemProperties
|
|
31
|
+
export declare function initialiseEnableWhenSingleItemProperties(qItem: QuestionnaireItem, enableWhen: QuestionnaireItemEnableWhen[]): EnableWhenSingleItemProperties;
|
|
32
32
|
/**
|
|
33
33
|
* Check if an enableWhenExpression extension is present
|
|
34
34
|
*
|
|
@@ -18,16 +18,26 @@ import { getAnswerExpression } from '../itemControl';
|
|
|
18
18
|
import { getTerminologyServerUrl, getValueSetPromise } from '../valueSet';
|
|
19
19
|
import { getFhirPathVariables, getXFhirQueryVariables } from './extractVariables';
|
|
20
20
|
import { getRepeatGroupParentItem } from '../misc';
|
|
21
|
+
import { checkItemIsEnabledRepeat } from '../enableWhen';
|
|
22
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
23
|
+
import { emptyResponse } from '../emptyResource';
|
|
24
|
+
import { evaluateEnableWhenRepeatExpressionInstance } from '../enableWhenExpression';
|
|
21
25
|
export function extractOtherExtensions(questionnaire, variables, valueSetPromises, terminologyServerUrl) {
|
|
22
26
|
const enableWhenItems = { singleItems: {}, repeatItems: {} };
|
|
23
|
-
const enableWhenExpressions = {
|
|
27
|
+
const enableWhenExpressions = {
|
|
28
|
+
singleExpressions: {},
|
|
29
|
+
repeatExpressions: {}
|
|
30
|
+
};
|
|
24
31
|
const calculatedExpressions = {};
|
|
25
32
|
const answerExpressions = {};
|
|
26
33
|
if (!questionnaire.item || questionnaire.item.length === 0) {
|
|
27
34
|
return {
|
|
28
35
|
variables: variables,
|
|
29
36
|
enableWhenItems: { singleItems: {}, repeatItems: {} },
|
|
30
|
-
enableWhenExpressions: {
|
|
37
|
+
enableWhenExpressions: {
|
|
38
|
+
singleExpressions: {},
|
|
39
|
+
repeatExpressions: {}
|
|
40
|
+
},
|
|
31
41
|
calculatedExpressions: {},
|
|
32
42
|
answerExpressions: {},
|
|
33
43
|
valueSetPromises: valueSetPromises
|
|
@@ -81,11 +91,17 @@ function extractExtensionsFromItemRecursive(params) {
|
|
|
81
91
|
enableWhenItemProperties;
|
|
82
92
|
}
|
|
83
93
|
}
|
|
84
|
-
const
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
94
|
+
const initialisedEnableWhenExpressions = initialiseEnableWhenExpression(item, questionnaire, parentRepeatGroupLinkId);
|
|
95
|
+
if (initialisedEnableWhenExpressions) {
|
|
96
|
+
const { enableWhenExpressionType, enableWhenExpression } = initialisedEnableWhenExpressions;
|
|
97
|
+
if (enableWhenExpressionType === 'single') {
|
|
98
|
+
enableWhenExpressions.singleExpressions[item.linkId] =
|
|
99
|
+
enableWhenExpression;
|
|
100
|
+
}
|
|
101
|
+
else if (enableWhenExpressionType === 'repeat') {
|
|
102
|
+
enableWhenExpressions.repeatExpressions[item.linkId] =
|
|
103
|
+
enableWhenExpression;
|
|
104
|
+
}
|
|
89
105
|
}
|
|
90
106
|
const calculatedExpression = getCalculatedExpression(item);
|
|
91
107
|
if (calculatedExpression) {
|
|
@@ -133,9 +149,13 @@ function extractExtensionsFromItemRecursive(params) {
|
|
|
133
149
|
* @author Sean Fong
|
|
134
150
|
*/
|
|
135
151
|
export function initialiseEnableWhenItemProperties(qItem, questionnaire, parentLinkId) {
|
|
152
|
+
const enableWhen = qItem.enableWhen;
|
|
153
|
+
if (!enableWhen) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
136
156
|
// Parent repeat group linkId exist, try to classify this item as a repeat enableWhen item
|
|
137
157
|
if (parentLinkId) {
|
|
138
|
-
const enableWhenRepeatItemProperties = initialiseEnableWhenRepeatItemProperties(qItem, questionnaire, parentLinkId);
|
|
158
|
+
const enableWhenRepeatItemProperties = initialiseEnableWhenRepeatItemProperties(qItem, enableWhen, questionnaire, parentLinkId);
|
|
139
159
|
if (enableWhenRepeatItemProperties) {
|
|
140
160
|
return {
|
|
141
161
|
enableWhenItemType: 'repeat',
|
|
@@ -144,21 +164,14 @@ export function initialiseEnableWhenItemProperties(qItem, questionnaire, parentL
|
|
|
144
164
|
}
|
|
145
165
|
}
|
|
146
166
|
// If parentLinkId is not provided or item cannot be classified as a repeat enableWhen item, classify it as a single enableWhen item
|
|
147
|
-
const enableWhenSingleItemProperties = initialiseEnableWhenSingleItemProperties(qItem);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
return null;
|
|
167
|
+
const enableWhenSingleItemProperties = initialiseEnableWhenSingleItemProperties(qItem, enableWhen);
|
|
168
|
+
return {
|
|
169
|
+
enableWhenItemType: 'single',
|
|
170
|
+
enableWhenItemProperties: enableWhenSingleItemProperties
|
|
171
|
+
};
|
|
155
172
|
}
|
|
156
|
-
export function initialiseEnableWhenRepeatItemProperties(qItem, questionnaire, parentLinkId) {
|
|
157
|
-
const
|
|
158
|
-
if (!enableWhen) {
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
const linkedItems = enableWhen.map((linkedItem) => {
|
|
173
|
+
export function initialiseEnableWhenRepeatItemProperties(qItem, enableWhen, questionnaire, parentLinkId) {
|
|
174
|
+
const linkedItemsNullable = enableWhen.map((linkedItem) => {
|
|
162
175
|
const linkedParentItem = getRepeatGroupParentItem(questionnaire, linkedItem.question);
|
|
163
176
|
// Check if parentLinkId match the linked item's parent linkId
|
|
164
177
|
if (parentLinkId === (linkedParentItem === null || linkedParentItem === void 0 ? void 0 : linkedParentItem.linkId)) {
|
|
@@ -168,34 +181,85 @@ export function initialiseEnableWhenRepeatItemProperties(qItem, questionnaire, p
|
|
|
168
181
|
return null;
|
|
169
182
|
});
|
|
170
183
|
// If any linked item is not valid, exit early
|
|
171
|
-
if (
|
|
184
|
+
if (linkedItemsNullable.some((linkedItem) => linkedItem === null)) {
|
|
172
185
|
return null;
|
|
173
186
|
}
|
|
174
|
-
|
|
187
|
+
const linkedItems = linkedItemsNullable;
|
|
188
|
+
const enableWhenRepeatItemProperties = {
|
|
175
189
|
linked: linkedItems,
|
|
176
190
|
parentLinkId: parentLinkId,
|
|
177
191
|
enabledIndexes: [false],
|
|
178
192
|
enableBehavior: qItem.enableBehavior
|
|
179
193
|
};
|
|
194
|
+
enableWhenRepeatItemProperties.enabledIndexes[0] = checkItemIsEnabledRepeat(enableWhenRepeatItemProperties, 0);
|
|
195
|
+
return enableWhenRepeatItemProperties;
|
|
180
196
|
}
|
|
181
197
|
/**
|
|
182
198
|
* Get enableWhen items' linked items and enableBehaviour attribute and save them in an EnableWhenItemProperties object
|
|
183
199
|
*
|
|
184
200
|
* @author Sean Fong
|
|
185
201
|
*/
|
|
186
|
-
export function initialiseEnableWhenSingleItemProperties(qItem) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
202
|
+
export function initialiseEnableWhenSingleItemProperties(qItem, enableWhen) {
|
|
203
|
+
return {
|
|
204
|
+
linked: enableWhen.map((linkedItem) => {
|
|
205
|
+
return { enableWhen: linkedItem };
|
|
206
|
+
}),
|
|
207
|
+
isEnabled: false,
|
|
208
|
+
enableBehavior: qItem.enableBehavior
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
function initialiseEnableWhenExpressionRepeat(enableWhenExpression, questionnaire, parentLinkId) {
|
|
212
|
+
const expression = enableWhenExpression.expression;
|
|
213
|
+
if (!expression) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
// Get the last linkId in the expression
|
|
217
|
+
const regExpLinkId = /linkId\s*=\s*'([^']+)'/g;
|
|
218
|
+
const matches = expression.replace(' ', '').match(regExpLinkId);
|
|
219
|
+
if (!matches) {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
const linkIdMatches = matches.map((match) => match.substring(match.indexOf("'") + 1, match.lastIndexOf("'")));
|
|
223
|
+
const lastLinkIdMatch = linkIdMatches[linkIdMatches.length - 1];
|
|
224
|
+
// Use the last linkId as the linkedItem, and get it's repeat group parent item's linkId
|
|
225
|
+
// If both parent linkId matches, this enableWhenExpression is a repeat enableWhenExpression
|
|
226
|
+
const linkedParentItem = getRepeatGroupParentItem(questionnaire, lastLinkIdMatch);
|
|
227
|
+
if (parentLinkId === (linkedParentItem === null || linkedParentItem === void 0 ? void 0 : linkedParentItem.linkId)) {
|
|
228
|
+
return enableWhenExpression;
|
|
196
229
|
}
|
|
197
230
|
return null;
|
|
198
231
|
}
|
|
232
|
+
function initialiseEnableWhenExpression(qItem, questionnaire, parentLinkId) {
|
|
233
|
+
const enableWhenExpression = getEnableWhenExpression(qItem);
|
|
234
|
+
if (!enableWhenExpression) {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
// Parent repeat group linkId exist, try to classify this item as a repeat enableWhen item
|
|
238
|
+
if (parentLinkId) {
|
|
239
|
+
const expressionRepeat = initialiseEnableWhenExpressionRepeat(enableWhenExpression, questionnaire, parentLinkId);
|
|
240
|
+
if (expressionRepeat) {
|
|
241
|
+
const enableWhenRepeatExpression = {
|
|
242
|
+
expression: `${expressionRepeat.expression}`,
|
|
243
|
+
parentLinkId: parentLinkId,
|
|
244
|
+
enabledIndexes: [false]
|
|
245
|
+
};
|
|
246
|
+
const { isEnabled } = evaluateEnableWhenRepeatExpressionInstance(qItem.linkId, { resource: cloneDeep(emptyResponse) }, enableWhenRepeatExpression.expression, parentLinkId, enableWhenRepeatExpression.expression.lastIndexOf('.where(linkId'), 0);
|
|
247
|
+
if (typeof isEnabled === 'boolean') {
|
|
248
|
+
enableWhenRepeatExpression.enabledIndexes[0] = isEnabled;
|
|
249
|
+
}
|
|
250
|
+
return {
|
|
251
|
+
enableWhenExpressionType: 'repeat',
|
|
252
|
+
enableWhenExpression: enableWhenRepeatExpression
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
enableWhenExpressionType: 'single',
|
|
258
|
+
enableWhenExpression: {
|
|
259
|
+
expression: `${enableWhenExpression.expression}`
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
}
|
|
199
263
|
/**
|
|
200
264
|
* Check if an enableWhenExpression extension is present
|
|
201
265
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractOtherExtensions.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/extractOtherExtensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"extractOtherExtensions.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/extractOtherExtensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAsBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0CAA0C,EAAE,MAAM,yBAAyB,CAAC;AAWrF,MAAM,UAAU,sBAAsB,CACpC,aAA4B,EAC5B,SAAoB,EACpB,gBAAiD,EACjD,oBAA4B;IAE5B,MAAM,eAAe,GAAoB,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC9E,MAAM,qBAAqB,GAA0B;QACnD,iBAAiB,EAAE,EAAE;QACrB,iBAAiB,EAAE,EAAE;KACtB,CAAC;IACF,MAAM,qBAAqB,GAAyC,EAAE,CAAC;IACvE,MAAM,iBAAiB,GAAqC,EAAE,CAAC;IAE/D,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1D,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YACrD,qBAAqB,EAAE;gBACrB,iBAAiB,EAAE,EAAE;gBACrB,iBAAiB,EAAE,EAAE;aACtB;YACD,qBAAqB,EAAE,EAAE;YACzB,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,gBAAgB;SACnC,CAAC;KACH;IAED,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,IAAI,EAAE;QAC7C,MAAM,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC;QAC9E,kCAAkC,CAAC;YACjC,aAAa;YACb,IAAI,EAAE,YAAY;YAClB,SAAS;YACT,eAAe;YACf,qBAAqB;YACrB,qBAAqB;YACrB,iBAAiB;YACjB,gBAAgB;YAChB,2BAA2B,EAAE,oBAAoB;YACjD,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC,CAAC;KACJ;IAED,OAAO;QACL,SAAS;QACT,eAAe;QACf,qBAAqB;QACrB,qBAAqB;QACrB,iBAAiB;QACjB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAeD,SAAS,kCAAkC,CACzC,MAAgD;;IAEhD,MAAM,EACJ,aAAa,EACb,IAAI,EACJ,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACxB,GAAG,MAAM,CAAC;IAEX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;IAC9D,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,4CAA4C;QAC5C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE;YAC7B,kCAAkC,iCAC7B,MAAM,KACT,IAAI,EAAE,SAAS,EACf,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,IAC9E,CAAC;SACJ;KACF;IAED,uGAAuG;IACvG,MAAM,mCAAmC,GAAG,kCAAkC,CAC5E,IAAI,EACJ,aAAa,EACb,uBAAuB,CACxB,CAAC;IACF,IAAI,mCAAmC,EAAE;QACvC,MAAM,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,mCAAmC,CAAC;QAC7F,IAAI,kBAAkB,KAAK,QAAQ,EAAE;YACnC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBACtC,wBAA0D,CAAC;SAC9D;aAAM,IAAI,kBAAkB,KAAK,QAAQ,EAAE;YAC1C,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBACtC,wBAA0D,CAAC;SAC9D;KACF;IAED,MAAM,gCAAgC,GAAG,8BAA8B,CACrE,IAAI,EACJ,aAAa,EACb,uBAAuB,CACxB,CAAC;IACF,IAAI,gCAAgC,EAAE;QACpC,MAAM,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,GAAG,gCAAgC,CAAC;QAE5F,IAAI,wBAAwB,KAAK,QAAQ,EAAE;YACzC,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClD,oBAAkD,CAAC;SACtD;aAAM,IAAI,wBAAwB,KAAK,QAAQ,EAAE;YAChD,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClD,oBAAkD,CAAC;SACtD;KACF;IAED,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,oBAAoB,EAAE;QACxB,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;YACnC,UAAU,EAAE,GAAG,oBAAoB,CAAC,UAAU,EAAE;SACjD,CAAC;KACH;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,gBAAgB,EAAE;QACpB,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;YAC/B,UAAU,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE;SAC7C,CAAC;KACH;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;IACxC,IAAI,WAAW,EAAE;QACf,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAClE,MAAM,oBAAoB,GAAG,MAAA,uBAAuB,CAAC,IAAI,CAAC,mCAAI,2BAA2B,CAAC;YAC1F,gBAAgB,CAAC,WAAW,CAAC,GAAG;gBAC9B,OAAO,EAAE,kBAAkB,CAAC,WAAW,EAAE,oBAAoB,CAAC;aAC/D,CAAC;SACH;KACF;IAED,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhF,KAAK,MAAM,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC/D,IAAI,UAAU,CAAC,IAAI,EAAE;gBACnB,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;oBAC/C,eAAe,EAAE,UAAU;iBAC5B,CAAC;aACH;SACF;KACF;IAED,OAAO;QACL,SAAS;QACT,eAAe;QACf,qBAAqB;QACrB,qBAAqB;QACrB,iBAAiB;QACjB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAChD,KAAwB,EACxB,aAA4B,EAC5B,YAAqB;IAKrB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IAED,0FAA0F;IAC1F,IAAI,YAAY,EAAE;QAChB,MAAM,8BAA8B,GAAG,wCAAwC,CAC7E,KAAK,EACL,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;QAEF,IAAI,8BAA8B,EAAE;YAClC,OAAO;gBACL,kBAAkB,EAAE,QAAQ;gBAC5B,wBAAwB,EAAE,8BAA8B;aACzD,CAAC;SACH;KACF;IAED,oIAAoI;IACpI,MAAM,8BAA8B,GAAG,wCAAwC,CAC7E,KAAK,EACL,UAAU,CACX,CAAC;IACF,OAAO;QACL,kBAAkB,EAAE,QAAQ;QAC5B,wBAAwB,EAAE,8BAA8B;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,KAAwB,EACxB,UAAyC,EACzC,aAA4B,EAC5B,YAAoB;IAEpB,MAAM,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAqC,EAAE;QAC3F,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtF,8DAA8D;QAC9D,IAAI,YAAY,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE;YAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;SACvF;QAED,2EAA2E;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC;KACb;IAED,MAAM,WAAW,GAAG,mBAAmD,CAAC;IACxE,MAAM,8BAA8B,GAAG;QACrC,MAAM,EAAE,WAA2C;QACnD,YAAY,EAAE,YAAY;QAC1B,cAAc,EAAE,CAAC,KAAK,CAAC;QACvB,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;IAEF,8BAA8B,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,wBAAwB,CACzE,8BAA8B,EAC9B,CAAC,CACF,CAAC;IAEF,OAAO,8BAA8B,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wCAAwC,CACtD,KAAwB,EACxB,UAAyC;IAEzC,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAA8B,EAAE;YAChE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;QACpC,CAAC,CAAC;QACF,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAC3C,oBAAgC,EAChC,aAA4B,EAC5B,YAAoB;IAEpB,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IAED,wCAAwC;IACxC,MAAM,YAAY,GAAG,yBAAyB,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;IACF,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEhE,wFAAwF;IACxF,4FAA4F;IAC5F,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClF,IAAI,YAAY,MAAK,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE;QAC7C,OAAO,oBAAoB,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAwB,EACxB,aAA4B,EAC5B,YAAqB;IAKrB,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IAED,0FAA0F;IAC1F,IAAI,YAAY,EAAE;QAChB,MAAM,gBAAgB,GAAG,oCAAoC,CAC3D,oBAAoB,EACpB,aAAa,EACb,YAAY,CACb,CAAC;QAEF,IAAI,gBAAgB,EAAE;YACpB,MAAM,0BAA0B,GAAG;gBACjC,UAAU,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE;gBAC5C,YAAY,EAAE,YAAY;gBAC1B,cAAc,EAAE,CAAC,KAAK,CAAC;aACxB,CAAC;YAEF,MAAM,EAAE,SAAS,EAAE,GAAG,0CAA0C,CAC9D,KAAK,CAAC,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,EACtC,0BAA0B,CAAC,UAAU,EACrC,YAAY,EACZ,0BAA0B,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,EAClE,CAAC,CACF,CAAC;YAEF,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE;gBAClC,0BAA0B,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;aAC1D;YAED,OAAO;gBACL,wBAAwB,EAAE,QAAQ;gBAClC,oBAAoB,EAAE,0BAA0B;aACjD,CAAC;SACH;KACF;IAED,OAAO;QACL,wBAAwB,EAAE,QAAQ;QAClC,oBAAoB,EAAE;YACpB,UAAU,EAAE,GAAG,oBAAoB,CAAC,UAAU,EAAE;SACjD;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAwB;;IAC9D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE;;QACvB,OAAA,SAAS,CAAC,GAAG;YACX,uFAAuF;YACzF,CAAA,MAAA,SAAS,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAA;KAAA,CAC1D,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,WAAW,CAAC,eAAe,CAAC;SACpC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAwB;;IAC9D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE;;QACvB,OAAA,SAAS,CAAC,GAAG;YACX,uFAAuF;YACzF,CAAA,MAAA,SAAS,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAA;KAAA,CAC1D,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,WAAW,CAAC,eAAe,CAAC;SACpC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces';
|
|
3
3
|
interface removeEmptyAnswersParams {
|
|
4
4
|
questionnaire: Questionnaire;
|
|
5
5
|
questionnaireResponse: QuestionnaireResponse;
|
|
6
6
|
enableWhenIsActivated: boolean;
|
|
7
7
|
enableWhenItems: EnableWhenItems;
|
|
8
|
-
enableWhenExpressions:
|
|
8
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Recursively go through the questionnaireResponse and remove qrItems whose qItems are empty in the form
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeEmptyAnswers.js","sourceRoot":"","sources":["../../src/utils/removeEmptyAnswers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"removeEmptyAnswers.js","sourceRoot":"","sources":["../../src/utils/removeEmptyAnswers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
2
|
import type { Tabs } from '../interfaces/tab.interface';
|
|
3
|
-
import type {
|
|
3
|
+
import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces';
|
|
4
4
|
export interface ItemToRepopulate {
|
|
5
5
|
qItem: QuestionnaireItem | null;
|
|
6
6
|
heading: string | null;
|
|
@@ -16,7 +16,7 @@ interface getItemsToRepopulateParams {
|
|
|
16
16
|
updatableResponse: QuestionnaireResponse;
|
|
17
17
|
enableWhenIsActivated: boolean;
|
|
18
18
|
enableWhenItems: EnableWhenItems;
|
|
19
|
-
enableWhenExpressions:
|
|
19
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
20
20
|
}
|
|
21
21
|
export declare function getItemsToRepopulate(params: getItemsToRepopulateParams): Record<string, ItemToRepopulate>;
|
|
22
22
|
export {};
|
package/lib/utils/tabs.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Tabs } from '../interfaces/tab.interface';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces';
|
|
3
3
|
import type { QuestionnaireItem } from 'fhir/r4';
|
|
4
|
-
export declare function getFirstVisibleTab(tabs: Tabs, enableWhenItems: EnableWhenItems, enableWhenExpressions:
|
|
4
|
+
export declare function getFirstVisibleTab(tabs: Tabs, enableWhenItems: EnableWhenItems, enableWhenExpressions: EnableWhenExpressions): number;
|
|
5
5
|
/**
|
|
6
6
|
* Checks if any of the items in a qItem array is a tabbed item
|
|
7
7
|
* Returns true if there is at least one tabbed item
|
|
@@ -38,7 +38,7 @@ interface constructTabsWithVisibilityParams {
|
|
|
38
38
|
tabs: Tabs;
|
|
39
39
|
enableWhenIsActivated: boolean;
|
|
40
40
|
enableWhenItems: EnableWhenItems;
|
|
41
|
-
enableWhenExpressions:
|
|
41
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
42
42
|
}
|
|
43
43
|
export declare function constructTabsWithVisibility(params: constructTabsWithVisibilityParams): {
|
|
44
44
|
linkId: string;
|
|
@@ -49,7 +49,7 @@ interface getNextVisibleTabIndexParams {
|
|
|
49
49
|
currentTabIndex: number;
|
|
50
50
|
enableWhenIsActivated: boolean;
|
|
51
51
|
enableWhenItems: EnableWhenItems;
|
|
52
|
-
enableWhenExpressions:
|
|
52
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Get index of next visible tab
|
|
@@ -63,7 +63,7 @@ export declare function getNextVisibleTabIndex(params: getNextVisibleTabIndexPar
|
|
|
63
63
|
*
|
|
64
64
|
* @author Sean Fong
|
|
65
65
|
*/
|
|
66
|
-
export declare function findNumOfVisibleTabs(tabs: Tabs, enableWhenIsActivated: boolean, enableWhenItems: EnableWhenItems, enableWhenExpressions:
|
|
66
|
+
export declare function findNumOfVisibleTabs(tabs: Tabs, enableWhenIsActivated: boolean, enableWhenItems: EnableWhenItems, enableWhenExpressions: EnableWhenExpressions): number;
|
|
67
67
|
export declare function getContextDisplays(item: QuestionnaireItem): QuestionnaireItem[];
|
|
68
68
|
interface IsTabHiddenParams {
|
|
69
69
|
qItem: QuestionnaireItem;
|
|
@@ -71,7 +71,7 @@ interface IsTabHiddenParams {
|
|
|
71
71
|
isTab: boolean;
|
|
72
72
|
enableWhenIsActivated: boolean;
|
|
73
73
|
enableWhenItems: EnableWhenItems;
|
|
74
|
-
enableWhenExpressions:
|
|
74
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
75
75
|
completedTabsCollapsed: boolean;
|
|
76
76
|
}
|
|
77
77
|
export declare function isTabHidden(params: IsTabHiddenParams): boolean;
|
package/lib/utils/tabs.js
CHANGED
|
@@ -20,6 +20,7 @@ import { structuredDataCapture } from 'fhir-sdc-helpers';
|
|
|
20
20
|
export function getFirstVisibleTab(tabs, enableWhenItems, enableWhenExpressions) {
|
|
21
21
|
// Only singleEnableWhenItems are relevant for tab operations
|
|
22
22
|
const { singleItems } = enableWhenItems;
|
|
23
|
+
const { singleExpressions } = enableWhenExpressions;
|
|
23
24
|
return Object.entries(tabs)
|
|
24
25
|
.sort(([, tabA], [, tabB]) => tabA.tabIndex - tabB.tabIndex)
|
|
25
26
|
.findIndex(([tabLinkId, tab]) => {
|
|
@@ -29,28 +30,12 @@ export function getFirstVisibleTab(tabs, enableWhenItems, enableWhenExpressions)
|
|
|
29
30
|
if (singleItems[tabLinkId]) {
|
|
30
31
|
return singleItems[tabLinkId].isEnabled;
|
|
31
32
|
}
|
|
32
|
-
if (
|
|
33
|
-
return
|
|
33
|
+
if (singleExpressions[tabLinkId]) {
|
|
34
|
+
return singleExpressions[tabLinkId].isEnabled;
|
|
34
35
|
}
|
|
35
36
|
return true;
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
|
-
/*
|
|
39
|
-
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
40
|
-
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
41
|
-
*
|
|
42
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
43
|
-
* you may not use this file except in compliance with the License.
|
|
44
|
-
* You may obtain a copy of the License at
|
|
45
|
-
*
|
|
46
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
47
|
-
*
|
|
48
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
49
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
50
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
51
|
-
* See the License for the specific language governing permissions and
|
|
52
|
-
* limitations under the License.
|
|
53
|
-
*/
|
|
54
39
|
/**
|
|
55
40
|
* Checks if any of the items in a qItem array is a tabbed item
|
|
56
41
|
* Returns true if there is at least one tabbed item
|
package/lib/utils/tabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/utils/tabs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,eAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/utils/tabs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces';
|
|
3
3
|
import type { RegexValidation } from '../interfaces/regex.interface';
|
|
4
4
|
export type InvalidType = 'regex' | 'minLength' | 'maxLength' | 'required';
|
|
5
5
|
interface ValidateQuestionnaireParams {
|
|
@@ -8,7 +8,7 @@ interface ValidateQuestionnaireParams {
|
|
|
8
8
|
invalidItems: Record<string, InvalidType>;
|
|
9
9
|
enableWhenIsActivated: boolean;
|
|
10
10
|
enableWhenItems: EnableWhenItems;
|
|
11
|
-
enableWhenExpressions:
|
|
11
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* Recursively go through the questionnaireResponse and check for un-filled required qItems
|
|
@@ -147,13 +147,6 @@ function validateSingleItem(qItem, qrItem, invalidItems) {
|
|
|
147
147
|
}
|
|
148
148
|
return invalidItems;
|
|
149
149
|
}
|
|
150
|
-
// function validateRepeatGroup(
|
|
151
|
-
// qItem: QuestionnaireItem,
|
|
152
|
-
// qrItems: QuestionnaireResponseItem,
|
|
153
|
-
// invalidLinkIds: Record<string, InvalidType>
|
|
154
|
-
// ) {
|
|
155
|
-
// return;
|
|
156
|
-
// }
|
|
157
150
|
function getInputInString(answer) {
|
|
158
151
|
if (answer.valueString) {
|
|
159
152
|
return answer.valueString;
|
|
@@ -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": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@babel/core": "^7.24.3",
|
|
56
|
-
"@storybook/addon-essentials": "^
|
|
56
|
+
"@storybook/addon-essentials": "^8.0.6",
|
|
57
57
|
"@storybook/addon-interactions": "^7.4.6",
|
|
58
58
|
"@storybook/addon-links": "^8.0.3",
|
|
59
59
|
"@storybook/addon-onboarding": "^8.0.0",
|
|
@@ -21,10 +21,20 @@ import type {
|
|
|
21
21
|
QuestionnaireResponseItemAnswer
|
|
22
22
|
} from 'fhir/r4';
|
|
23
23
|
|
|
24
|
-
export interface
|
|
24
|
+
export interface EnableWhenExpressions {
|
|
25
|
+
singleExpressions: Record<string, EnableWhenSingleExpression>;
|
|
26
|
+
repeatExpressions: Record<string, EnableWhenRepeatExpression>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface EnableWhenSingleExpression {
|
|
25
30
|
expression: string;
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
isEnabled?: boolean;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface EnableWhenRepeatExpression {
|
|
35
|
+
expression: string;
|
|
36
|
+
parentLinkId: string;
|
|
37
|
+
enabledIndexes: boolean[];
|
|
28
38
|
}
|
|
29
39
|
|
|
30
40
|
export interface EnableWhenItems {
|
package/src/interfaces/index.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export {
|
|
2
|
-
EnableWhenExpression,
|
|
3
2
|
EnableWhenItems,
|
|
4
3
|
EnableWhenSingleItemProperties,
|
|
5
4
|
EnableWhenRepeatItemProperties,
|
|
6
5
|
EnableWhenSingleLinkedItem,
|
|
7
|
-
EnableWhenRepeatLinkedItem
|
|
6
|
+
EnableWhenRepeatLinkedItem,
|
|
7
|
+
EnableWhenExpressions,
|
|
8
|
+
EnableWhenSingleExpression,
|
|
9
|
+
EnableWhenRepeatExpression
|
|
8
10
|
} from './enableWhen.interface';
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import type { Tabs } from './tab.interface';
|
|
19
19
|
import type { Variables } from './variables.interface';
|
|
20
20
|
import type { LaunchContext } from './populate.interface';
|
|
21
|
-
import type {
|
|
21
|
+
import type { EnableWhenExpressions, EnableWhenItems } from './enableWhen.interface';
|
|
22
22
|
import type { CalculatedExpression } from './calculatedExpression.interface';
|
|
23
23
|
import type { AnswerExpression } from './answerExpression.interface';
|
|
24
24
|
import type { Coding } from 'fhir/r4';
|
|
@@ -29,7 +29,7 @@ export interface QuestionnaireModel {
|
|
|
29
29
|
variables: Variables;
|
|
30
30
|
launchContexts: Record<string, LaunchContext>;
|
|
31
31
|
enableWhenItems: EnableWhenItems;
|
|
32
|
-
enableWhenExpressions:
|
|
32
|
+
enableWhenExpressions: EnableWhenExpressions;
|
|
33
33
|
calculatedExpressions: Record<string, CalculatedExpression>;
|
|
34
34
|
answerExpressions: Record<string, AnswerExpression>;
|
|
35
35
|
processedValueSetCodings: Record<string, Coding[]>;
|