@aehrc/smart-forms-renderer 0.35.6 → 0.36.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/README.md +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +5 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/hooks/useStringCalculatedExpression.js +0 -1
- package/lib/hooks/useStringCalculatedExpression.js.map +1 -1
- package/lib/hooks/useValueSetCodings.js +0 -5
- package/lib/hooks/useValueSetCodings.js.map +1 -1
- package/lib/interfaces/initialExpression.interface.d.ts +8 -0
- package/lib/interfaces/initialExpression.interface.js +18 -0
- package/lib/interfaces/initialExpression.interface.js.map +1 -0
- package/lib/interfaces/questionnaireStore.interface.d.ts +2 -0
- package/lib/stores/questionnaireStore.d.ts +3 -0
- package/lib/stores/questionnaireStore.js +3 -0
- package/lib/stores/questionnaireStore.js.map +1 -1
- package/lib/utils/calculatedExpression.js +15 -43
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/fhirpath.js +1 -1
- package/lib/utils/fhirpath.js.map +1 -1
- package/lib/utils/getExpressionsFromItem.d.ts +6 -0
- package/lib/utils/getExpressionsFromItem.js +18 -0
- package/lib/utils/getExpressionsFromItem.js.map +1 -1
- package/lib/utils/initialise.d.ts +2 -1
- package/lib/utils/initialise.js +29 -36
- package/lib/utils/initialise.js.map +1 -1
- package/lib/utils/manageForm.d.ts +7 -1
- package/lib/utils/manageForm.js +9 -0
- package/lib/utils/manageForm.js.map +1 -1
- package/lib/utils/misc.d.ts +3 -0
- package/lib/utils/misc.js +43 -0
- package/lib/utils/misc.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +3 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +2 -0
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +14 -2
- package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/resolveValueSets.js +8 -3
- package/lib/utils/questionnaireStoreUtils/resolveValueSets.js.map +1 -1
- package/lib/utils/removeEmptyAnswers.js +23 -7
- package/lib/utils/removeEmptyAnswers.js.map +1 -1
- package/lib/utils/repopulateIntoResponse.d.ts +1 -3
- package/lib/utils/repopulateIntoResponse.js +11 -34
- package/lib/utils/repopulateIntoResponse.js.map +1 -1
- package/lib/utils/repopulateItems.d.ts +2 -2
- package/lib/utils/repopulateItems.js +32 -1
- package/lib/utils/repopulateItems.js.map +1 -1
- package/lib/utils/tabs.js +6 -4
- package/lib/utils/tabs.js.map +1 -1
- package/lib/utils/updateQr.d.ts +9 -0
- package/lib/utils/updateQr.js +55 -0
- package/lib/utils/updateQr.js.map +1 -0
- package/lib/utils/valueSet.js +4 -2
- package/lib/utils/valueSet.js.map +1 -1
- package/package.json +10 -7
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +4 -1
- package/src/hooks/useStringCalculatedExpression.ts +0 -1
- package/src/hooks/useValueSetCodings.ts +0 -6
- package/src/interfaces/initialExpression.interface.ts +25 -0
- package/src/interfaces/questionnaireStore.interface.ts +2 -0
- package/src/stores/questionnaireStore.ts +5 -0
- package/src/utils/calculatedExpression.ts +26 -60
- package/src/utils/fhirpath.ts +2 -1
- package/src/utils/getExpressionsFromItem.ts +19 -0
- package/src/utils/initialise.ts +30 -37
- package/src/utils/manageForm.ts +11 -1
- package/src/utils/misc.ts +57 -0
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +3 -0
- package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +19 -1
- package/src/utils/questionnaireStoreUtils/resolveValueSets.ts +10 -6
- package/src/utils/removeEmptyAnswers.ts +26 -7
- package/src/utils/repopulateIntoResponse.ts +16 -61
- package/src/utils/repopulateItems.ts +45 -3
- package/src/utils/tabs.ts +6 -4
- package/src/utils/updateQr.ts +88 -0
- package/src/utils/valueSet.ts +4 -2
- package/stats.html +4842 -0
- package/stats1.html +4842 -0
- package/stats3.html +4842 -0
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +0 -15
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +0 -433
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +0 -1
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +0 -3
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +0 -42
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +0 -1
- package/lib/utils/fhirpathAsyncUtils/test-questionnaire.d.ts +0 -1
- package/lib/utils/fhirpathAsyncUtils/test-questionnaire.js +0 -379
- package/lib/utils/fhirpathAsyncUtils/test-questionnaire.js.map +0 -1
- package/src/utils/fhirpathAsyncUtils/test-questionnaire.ts +0 -383
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
|
|
1
|
+
import type { Questionnaire, QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
2
|
import type Client from 'fhirclient/lib/Client';
|
|
3
3
|
/**
|
|
4
4
|
* Build the form with an initial Questionnaire and an optional filled QuestionnaireResponse.
|
|
@@ -44,3 +44,9 @@ export declare function getResponse(): QuestionnaireResponse;
|
|
|
44
44
|
* @author Sean Fong
|
|
45
45
|
*/
|
|
46
46
|
export declare function removeEmptyAnswersFromResponse(questionnaire: Questionnaire, questionnaireResponse: QuestionnaireResponse): QuestionnaireResponse;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a QuestionnaireResponseItem has either an item or an answer property.
|
|
49
|
+
*
|
|
50
|
+
* @author Sean Fong
|
|
51
|
+
*/
|
|
52
|
+
export declare function qrItemHasItemsOrAnswer(qrItem: QuestionnaireResponseItem): boolean;
|
package/lib/utils/manageForm.js
CHANGED
|
@@ -26,6 +26,7 @@ import { readEncounter, readPatient, readUser } from '../api/smartClient';
|
|
|
26
26
|
*/
|
|
27
27
|
export function buildForm(questionnaire, questionnaireResponse, readOnly, terminologyServerUrl, additionalVariables) {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
// Reset terminology server
|
|
29
30
|
if (terminologyServerUrl) {
|
|
30
31
|
terminologyServerStore.getState().setUrl(terminologyServerUrl);
|
|
31
32
|
}
|
|
@@ -105,4 +106,12 @@ export function removeEmptyAnswersFromResponse(questionnaire, questionnaireRespo
|
|
|
105
106
|
enableWhenExpressions
|
|
106
107
|
});
|
|
107
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if a QuestionnaireResponseItem has either an item or an answer property.
|
|
111
|
+
*
|
|
112
|
+
* @author Sean Fong
|
|
113
|
+
*/
|
|
114
|
+
export function qrItemHasItemsOrAnswer(qrItem) {
|
|
115
|
+
return (!!qrItem.item && qrItem.item.length > 0) || (!!qrItem.answer && qrItem.answer.length > 0);
|
|
116
|
+
}
|
|
108
117
|
//# sourceMappingURL=manageForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manageForm.js","sourceRoot":"","sources":["../../src/utils/manageForm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manageForm.js","sourceRoot":"","sources":["../../src/utils/manageForm.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/misc.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Questionnaire, QuestionnaireItem } from 'fhir/r4';
|
|
2
|
+
import type { Tabs } from '../interfaces';
|
|
2
3
|
export declare function getQuestionnaireItem(questionnaire: Questionnaire, targetLinkId: string): QuestionnaireItem | null;
|
|
3
4
|
export declare function getQuestionnaireItemRecursive(qItem: QuestionnaireItem, targetLinkId: string): QuestionnaireItem | null;
|
|
4
5
|
export declare function getParentItem(questionnaire: Questionnaire, targetLinkId: string): QuestionnaireItem | null;
|
|
5
6
|
export declare function getRepeatGroupParentItem(questionnaire: Questionnaire, targetLinkId: string): QuestionnaireItem | null;
|
|
7
|
+
export declare function getSectionHeading(questionnaire: Questionnaire, targetLinkId: string, tabs: Tabs): string | null;
|
|
8
|
+
export declare function getSectionHeadingRecursive(qItem: QuestionnaireItem, targetLinkId: string, heading: string | null, tabs: Tabs): string | null;
|
package/lib/utils/misc.js
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
import { getShortText } from './itemControl';
|
|
17
18
|
export function getQuestionnaireItem(questionnaire, targetLinkId) {
|
|
18
19
|
// Search through the top level items recursively
|
|
19
20
|
const topLevelQItems = questionnaire.item;
|
|
@@ -113,4 +114,46 @@ function getRepeatGroupParentItemRecursive(qItem, targetLinkId, repeatGroupParen
|
|
|
113
114
|
// No matching repeat group parent item found in the current item or its child items, return null
|
|
114
115
|
return null;
|
|
115
116
|
}
|
|
117
|
+
/*
|
|
118
|
+
Used for getting the tab section heading for Smart Form's re-population
|
|
119
|
+
*/
|
|
120
|
+
export function getSectionHeading(questionnaire, targetLinkId, tabs) {
|
|
121
|
+
var _a;
|
|
122
|
+
// Search through the top level items recursively
|
|
123
|
+
const topLevelQItems = questionnaire.item;
|
|
124
|
+
if (topLevelQItems) {
|
|
125
|
+
for (const topLevelQItem of topLevelQItems) {
|
|
126
|
+
const heading = (_a = topLevelQItem.text) !== null && _a !== void 0 ? _a : null;
|
|
127
|
+
const foundQItem = getSectionHeadingRecursive(topLevelQItem, targetLinkId, heading, tabs);
|
|
128
|
+
if (foundQItem) {
|
|
129
|
+
return foundQItem;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// No heading found in the questionnaire, return null
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
export function getSectionHeadingRecursive(qItem, targetLinkId, heading, tabs) {
|
|
137
|
+
var _a, _b;
|
|
138
|
+
// Target linkId found in current item
|
|
139
|
+
if (qItem.linkId === targetLinkId) {
|
|
140
|
+
return heading;
|
|
141
|
+
}
|
|
142
|
+
// Search through its child items recursively
|
|
143
|
+
const childQItems = qItem.item;
|
|
144
|
+
if (childQItems) {
|
|
145
|
+
const isTab = !!tabs[qItem.linkId];
|
|
146
|
+
if (isTab) {
|
|
147
|
+
heading = (_b = (_a = getShortText(qItem)) !== null && _a !== void 0 ? _a : qItem.text) !== null && _b !== void 0 ? _b : null;
|
|
148
|
+
}
|
|
149
|
+
for (const childQItem of childQItems) {
|
|
150
|
+
const foundHeading = getSectionHeadingRecursive(childQItem, targetLinkId, heading, tabs);
|
|
151
|
+
if (foundHeading) {
|
|
152
|
+
return foundHeading;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// No heading found in the current item or its child items, return null
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
116
159
|
//# sourceMappingURL=misc.js.map
|
package/lib/utils/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ export function createQuestionnaireModel(questionnaire, additionalVariables, ter
|
|
|
47
47
|
let processedValueSetCodings = extractContainedValueSetsResult.processedValueSetCodings;
|
|
48
48
|
const processedValueSetUrls = extractContainedValueSetsResult.processedValueSetUrls;
|
|
49
49
|
const extractOtherExtensionsResult = extractOtherExtensions(questionnaire, variables, valueSetPromises, terminologyServerUrl);
|
|
50
|
-
const { enableWhenItems, enableWhenExpressions, calculatedExpressions, answerExpressions, answerOptions } = extractOtherExtensionsResult;
|
|
50
|
+
const { enableWhenItems, enableWhenExpressions, calculatedExpressions, initialExpressions, answerExpressions, answerOptions } = extractOtherExtensionsResult;
|
|
51
51
|
variables = extractOtherExtensionsResult.variables;
|
|
52
52
|
valueSetPromises = extractOtherExtensionsResult.valueSetPromises;
|
|
53
53
|
const resolveValueSetsResult = yield resolveValueSets(variables, valueSetPromises, processedValueSetCodings, terminologyServerUrl);
|
|
@@ -65,6 +65,7 @@ export function createQuestionnaireModel(questionnaire, additionalVariables, ter
|
|
|
65
65
|
enableWhenItems,
|
|
66
66
|
enableWhenExpressions,
|
|
67
67
|
calculatedExpressions,
|
|
68
|
+
initialExpressions,
|
|
68
69
|
answerExpressions,
|
|
69
70
|
answerOptions: completeAnswerOptions,
|
|
70
71
|
processedValueSetCodings,
|
|
@@ -80,6 +81,7 @@ function createEmptyModel() {
|
|
|
80
81
|
variables: { fhirPathVariables: {}, xFhirQueryVariables: {} },
|
|
81
82
|
launchContexts: {},
|
|
82
83
|
calculatedExpressions: {},
|
|
84
|
+
initialExpressions: {},
|
|
83
85
|
enableWhenExpressions: { singleExpressions: {}, repeatExpressions: {} },
|
|
84
86
|
answerExpressions: {},
|
|
85
87
|
answerOptions: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,13 @@ import type { EnableWhenExpressions, EnableWhenItems, EnableWhenRepeatItemProper
|
|
|
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
|
+
import type { InitialExpression } from '../../interfaces/initialExpression.interface';
|
|
7
8
|
interface ReturnParamsRecursive {
|
|
8
9
|
variables: Variables;
|
|
9
10
|
enableWhenItems: EnableWhenItems;
|
|
10
11
|
enableWhenExpressions: EnableWhenExpressions;
|
|
11
12
|
calculatedExpressions: Record<string, CalculatedExpression[]>;
|
|
13
|
+
initialExpressions: Record<string, InitialExpression>;
|
|
12
14
|
answerExpressions: Record<string, AnswerExpression>;
|
|
13
15
|
valueSetPromises: Record<string, ValueSetPromise>;
|
|
14
16
|
answerOptions: Record<string, QuestionnaireItemAnswerOption[]>;
|
|
@@ -21,7 +21,7 @@ import { checkItemIsEnabledRepeat } from '../enableWhen';
|
|
|
21
21
|
import cloneDeep from 'lodash.clonedeep';
|
|
22
22
|
import { emptyResponse } from '../emptyResource';
|
|
23
23
|
import { evaluateEnableWhenRepeatExpressionInstance } from '../enableWhenExpression';
|
|
24
|
-
import { getAnswerExpression, getCalculatedExpressions, getEnableWhenExpression } from '../getExpressionsFromItem';
|
|
24
|
+
import { getAnswerExpression, getCalculatedExpressions, getEnableWhenExpression, getInitialExpression } from '../getExpressionsFromItem';
|
|
25
25
|
export function extractOtherExtensions(questionnaire, variables, valueSetPromises, terminologyServerUrl) {
|
|
26
26
|
const enableWhenItems = { singleItems: {}, repeatItems: {} };
|
|
27
27
|
const enableWhenExpressions = {
|
|
@@ -29,6 +29,7 @@ export function extractOtherExtensions(questionnaire, variables, valueSetPromise
|
|
|
29
29
|
repeatExpressions: {}
|
|
30
30
|
};
|
|
31
31
|
const calculatedExpressions = {};
|
|
32
|
+
const initialExpressions = {};
|
|
32
33
|
const answerExpressions = {};
|
|
33
34
|
const answerOptions = {};
|
|
34
35
|
if (!questionnaire.item || questionnaire.item.length === 0) {
|
|
@@ -40,6 +41,7 @@ export function extractOtherExtensions(questionnaire, variables, valueSetPromise
|
|
|
40
41
|
repeatExpressions: {}
|
|
41
42
|
},
|
|
42
43
|
calculatedExpressions: {},
|
|
44
|
+
initialExpressions: {},
|
|
43
45
|
answerExpressions: {},
|
|
44
46
|
answerOptions: {},
|
|
45
47
|
valueSetPromises: valueSetPromises
|
|
@@ -54,6 +56,7 @@ export function extractOtherExtensions(questionnaire, variables, valueSetPromise
|
|
|
54
56
|
enableWhenItems,
|
|
55
57
|
enableWhenExpressions,
|
|
56
58
|
calculatedExpressions,
|
|
59
|
+
initialExpressions,
|
|
57
60
|
answerExpressions,
|
|
58
61
|
answerOptions,
|
|
59
62
|
valueSetPromises,
|
|
@@ -66,6 +69,7 @@ export function extractOtherExtensions(questionnaire, variables, valueSetPromise
|
|
|
66
69
|
enableWhenItems,
|
|
67
70
|
enableWhenExpressions,
|
|
68
71
|
calculatedExpressions,
|
|
72
|
+
initialExpressions,
|
|
69
73
|
answerExpressions,
|
|
70
74
|
answerOptions,
|
|
71
75
|
valueSetPromises
|
|
@@ -73,7 +77,7 @@ export function extractOtherExtensions(questionnaire, variables, valueSetPromise
|
|
|
73
77
|
}
|
|
74
78
|
function extractExtensionsFromItemRecursive(params) {
|
|
75
79
|
var _a, _b;
|
|
76
|
-
const { questionnaire, item, variables, enableWhenItems, enableWhenExpressions, calculatedExpressions, answerExpressions, answerOptions, valueSetPromises, defaultTerminologyServerUrl, parentRepeatGroupLinkId } = params;
|
|
80
|
+
const { questionnaire, item, variables, enableWhenItems, enableWhenExpressions, calculatedExpressions, initialExpressions, answerExpressions, answerOptions, valueSetPromises, defaultTerminologyServerUrl, parentRepeatGroupLinkId } = params;
|
|
77
81
|
const items = item.item;
|
|
78
82
|
const isRepeatGroup = !!item.repeats && item.type === 'group';
|
|
79
83
|
if (items && items.length > 0) {
|
|
@@ -112,6 +116,13 @@ function extractExtensionsFromItemRecursive(params) {
|
|
|
112
116
|
if (calculatedExpressionsOfItem.length > 0) {
|
|
113
117
|
calculatedExpressions[item.linkId] = calculatedExpressionsOfItem;
|
|
114
118
|
}
|
|
119
|
+
// Get initialExpressions
|
|
120
|
+
const initialExpression = getInitialExpression(item);
|
|
121
|
+
if (initialExpression) {
|
|
122
|
+
initialExpressions[item.linkId] = {
|
|
123
|
+
expression: `${initialExpression.expression}`
|
|
124
|
+
};
|
|
125
|
+
}
|
|
115
126
|
// Get answerExpressions
|
|
116
127
|
const answerExpression = getAnswerExpression(item);
|
|
117
128
|
if (answerExpression) {
|
|
@@ -148,6 +159,7 @@ function extractExtensionsFromItemRecursive(params) {
|
|
|
148
159
|
enableWhenItems,
|
|
149
160
|
enableWhenExpressions,
|
|
150
161
|
calculatedExpressions,
|
|
162
|
+
initialExpressions,
|
|
151
163
|
answerExpressions,
|
|
152
164
|
answerOptions,
|
|
153
165
|
valueSetPromises
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractOtherExtensions.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/extractOtherExtensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAsBH,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;AACrF,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"extractOtherExtensions.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/extractOtherExtensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
25
25
|
};
|
|
26
26
|
import { createValueSetToXFhirQueryVariableNameMap, getValueSetCodings, getValueSetPromise, resolveValueSetPromises } from '../valueSet';
|
|
27
27
|
export function resolveValueSets(variables, valueSetPromises, processedValueSetCodings, terminologyServerUrl) {
|
|
28
|
+
var _a, _b;
|
|
28
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
30
|
// Create a <valueSetUrl, XFhirQueryVariableName> map
|
|
30
31
|
const valueSetToXFhirQueryVariableNameMap = createValueSetToXFhirQueryVariableNameMap(variables.xFhirQueryVariables);
|
|
@@ -38,13 +39,17 @@ export function resolveValueSets(variables, valueSetPromises, processedValueSetC
|
|
|
38
39
|
// Resolve promises and store valueSet codings in preprocessedValueSetCodings AND XFhirQueryVariables
|
|
39
40
|
const resolvedPromises = yield resolveValueSetPromises(valueSetPromises);
|
|
40
41
|
for (const valueSetUrl in resolvedPromises) {
|
|
41
|
-
const valueSet = resolvedPromises[valueSetUrl].valueSet;
|
|
42
|
+
const valueSet = (_a = resolvedPromises[valueSetUrl]) === null || _a === void 0 ? void 0 : _a.valueSet;
|
|
42
43
|
if (valueSet) {
|
|
43
44
|
if (valueSetToXFhirQueryVariableNameMap[valueSetUrl]) {
|
|
44
45
|
// valueSetUrl is in x-fhir-query variables, save to variable
|
|
45
46
|
const variableName = valueSetToXFhirQueryVariableNameMap[valueSetUrl];
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
if (variableName) {
|
|
48
|
+
const variable = variables.xFhirQueryVariables[variableName];
|
|
49
|
+
if (variable) {
|
|
50
|
+
variables.xFhirQueryVariables[variableName] = Object.assign(Object.assign({}, variable), { result: (_b = resolvedPromises[valueSetUrl]) === null || _b === void 0 ? void 0 : _b.valueSet });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
54
|
else {
|
|
50
55
|
// valueSetUrl is in x-fhir-query variables, save to preprocessedValueSetCodings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveValueSets.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/resolveValueSets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAGH,OAAO,EACL,yCAAyC,EACzC,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAIrB,MAAM,UAAgB,gBAAgB,CACpC,SAAoB,EACpB,gBAAiD,EACjD,wBAAkD,EAClD,oBAA4B
|
|
1
|
+
{"version":3,"file":"resolveValueSets.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/resolveValueSets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAGH,OAAO,EACL,yCAAyC,EACzC,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAIrB,MAAM,UAAgB,gBAAgB,CACpC,SAAoB,EACpB,gBAAiD,EACjD,wBAAkD,EAClD,oBAA4B;;;QAE5B,qDAAqD;QACrD,MAAM,mCAAmC,GACvC,yCAAyC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAE3E,IAAI,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,KAAK,MAAM,WAAW,IAAI,mCAAmC,EAAE;gBAC7D,gBAAgB,CAAC,WAAW,CAAC,GAAG;oBAC9B,OAAO,EAAE,kBAAkB,CAAC,WAAW,EAAE,oBAAoB,CAAC;iBAC/D,CAAC;aACH;SACF;QAED,qGAAqG;QACrG,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAEzE,KAAK,MAAM,WAAW,IAAI,gBAAgB,EAAE;YAC1C,MAAM,QAAQ,GAAG,MAAA,gBAAgB,CAAC,WAAW,CAAC,0CAAE,QAAQ,CAAC;YAEzD,IAAI,QAAQ,EAAE;gBACZ,IAAI,mCAAmC,CAAC,WAAW,CAAC,EAAE;oBACpD,6DAA6D;oBAC7D,MAAM,YAAY,GAAG,mCAAmC,CAAC,WAAW,CAAC,CAAC;oBACtE,IAAI,YAAY,EAAE;wBAChB,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;wBAC7D,IAAI,QAAQ,EAAE;4BACZ,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,mCACtC,QAAQ,KACX,MAAM,EAAE,MAAA,gBAAgB,CAAC,WAAW,CAAC,0CAAE,QAAQ,GAChD,CAAC;yBACH;qBACF;iBACF;qBAAM;oBACL,gFAAgF;oBAChF,wBAAwB,CAAC,WAAW,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;iBACtE;aACF;SACF;QAED,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC;;CAChD"}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { isHiddenByEnableWhen } from './qItem';
|
|
18
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
19
|
+
import { qrItemHasItemsOrAnswer } from './manageForm';
|
|
18
20
|
/**
|
|
19
21
|
* Recursively go through the questionnaireResponse and remove qrItems whose qItems are empty in the form
|
|
20
22
|
*
|
|
@@ -28,25 +30,39 @@ export function removeEmptyAnswers(params) {
|
|
|
28
30
|
topLevelQItems.length === 0 ||
|
|
29
31
|
!topLevelQRItems ||
|
|
30
32
|
topLevelQRItems.length === 0) {
|
|
31
|
-
|
|
33
|
+
const updatedQuestionnaireResponse = cloneDeep(questionnaireResponse);
|
|
34
|
+
delete updatedQuestionnaireResponse.item;
|
|
35
|
+
return updatedQuestionnaireResponse;
|
|
32
36
|
}
|
|
33
|
-
|
|
37
|
+
const newQuestionnaireResponse = Object.assign(Object.assign({}, questionnaireResponse), { item: [] });
|
|
38
|
+
for (const [i, topLevelQRItem] of topLevelQRItems.entries()) {
|
|
34
39
|
const qItem = topLevelQItems[i];
|
|
40
|
+
if (!qItem) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
// If QR item don't have either item.item and item.answer, continue
|
|
44
|
+
if (!qrItemHasItemsOrAnswer(topLevelQRItem)) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
35
47
|
const newTopLevelQRItem = removeEmptyAnswersFromItemRecursive({
|
|
36
48
|
qItem,
|
|
37
|
-
qrItem,
|
|
49
|
+
qrItem: topLevelQRItem,
|
|
38
50
|
enableWhenIsActivated,
|
|
39
51
|
enableWhenItems,
|
|
40
52
|
enableWhenExpressions
|
|
41
53
|
});
|
|
42
|
-
if (newTopLevelQRItem &&
|
|
43
|
-
|
|
54
|
+
if (newTopLevelQRItem && newQuestionnaireResponse.item) {
|
|
55
|
+
newQuestionnaireResponse.item.push(newTopLevelQRItem);
|
|
44
56
|
}
|
|
45
|
-
}
|
|
46
|
-
return
|
|
57
|
+
}
|
|
58
|
+
return newQuestionnaireResponse;
|
|
47
59
|
}
|
|
48
60
|
function removeEmptyAnswersFromItemRecursive(params) {
|
|
49
61
|
const { qItem, qrItem, enableWhenIsActivated, enableWhenItems, enableWhenExpressions } = params;
|
|
62
|
+
// If QR item don't have either item.item and item.answer, return null
|
|
63
|
+
if (!qrItemHasItemsOrAnswer(qrItem)) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
50
66
|
const qItems = qItem.item;
|
|
51
67
|
const qrItems = qrItem.item;
|
|
52
68
|
// Process group items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeEmptyAnswers.js","sourceRoot":"","sources":["../../src/utils/removeEmptyAnswers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"removeEmptyAnswers.js","sourceRoot":"","sources":["../../src/utils/removeEmptyAnswers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
|
|
2
1
|
import type { ItemToRepopulate } from './repopulateItems';
|
|
3
2
|
/**
|
|
4
3
|
* Re-populate checked items in the re-population dialog into the current QuestionnaireResponse
|
|
5
4
|
*
|
|
6
5
|
* @author Sean Fong
|
|
7
6
|
*/
|
|
8
|
-
export declare function repopulateResponse(checkedItemsToRepopulate: Record<string, ItemToRepopulate>): QuestionnaireResponse;
|
|
9
|
-
export declare function repopulateItemsIntoResponse(questionnaire: Questionnaire, updatableResponse: QuestionnaireResponse, checkedItemsToRepopulate: Record<string, ItemToRepopulate>): QuestionnaireResponse;
|
|
7
|
+
export declare function repopulateResponse(checkedItemsToRepopulate: Record<string, ItemToRepopulate>): import("fhir/r4").QuestionnaireResponse;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
|
|
2
2
|
import { isSpecificItemControl } from './itemControl';
|
|
3
3
|
import { questionnaireResponseStore, questionnaireStore } from '../stores';
|
|
4
|
+
import { updateQuestionnaireResponse } from './updateQr';
|
|
4
5
|
/**
|
|
5
6
|
* Re-populate checked items in the re-population dialog into the current QuestionnaireResponse
|
|
6
7
|
*
|
|
@@ -9,37 +10,7 @@ import { questionnaireResponseStore, questionnaireStore } from '../stores';
|
|
|
9
10
|
export function repopulateResponse(checkedItemsToRepopulate) {
|
|
10
11
|
const sourceQuestionnaire = questionnaireStore.getState().sourceQuestionnaire;
|
|
11
12
|
const updatableResponse = questionnaireResponseStore.getState().updatableResponse;
|
|
12
|
-
return
|
|
13
|
-
}
|
|
14
|
-
export function repopulateItemsIntoResponse(questionnaire, updatableResponse, checkedItemsToRepopulate) {
|
|
15
|
-
var _a;
|
|
16
|
-
if (!questionnaire.item ||
|
|
17
|
-
questionnaire.item.length === 0 ||
|
|
18
|
-
!updatableResponse.item ||
|
|
19
|
-
updatableResponse.item.length === 0) {
|
|
20
|
-
return updatableResponse;
|
|
21
|
-
}
|
|
22
|
-
const qItemsIndexMap = mapQItemsIndex(questionnaire);
|
|
23
|
-
const topLevelQRItemsByIndex = getQrItemsIndex(questionnaire.item, updatableResponse.item, qItemsIndexMap);
|
|
24
|
-
const topLevelQrItems = [];
|
|
25
|
-
for (const [index, topLevelQItem] of questionnaire.item.entries()) {
|
|
26
|
-
const topLevelQRItemOrItems = (_a = topLevelQRItemsByIndex[index]) !== null && _a !== void 0 ? _a : {
|
|
27
|
-
linkId: topLevelQItem.linkId,
|
|
28
|
-
text: topLevelQItem.text,
|
|
29
|
-
item: []
|
|
30
|
-
};
|
|
31
|
-
const updatedTopLevelQRItem = repopulateItemRecursive(topLevelQItem, topLevelQRItemOrItems, checkedItemsToRepopulate);
|
|
32
|
-
if (Array.isArray(updatedTopLevelQRItem)) {
|
|
33
|
-
if (updatedTopLevelQRItem.length > 0) {
|
|
34
|
-
topLevelQrItems.push(...updatedTopLevelQRItem);
|
|
35
|
-
}
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
38
|
-
if (updatedTopLevelQRItem) {
|
|
39
|
-
topLevelQrItems.push(updatedTopLevelQRItem);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return Object.assign(Object.assign({}, updatableResponse), { item: topLevelQrItems });
|
|
13
|
+
return updateQuestionnaireResponse(sourceQuestionnaire, updatableResponse, repopulateItemRecursive, checkedItemsToRepopulate);
|
|
43
14
|
}
|
|
44
15
|
function repopulateItemRecursive(qItem, qrItemOrItems, checkedItemsToRepopulate) {
|
|
45
16
|
var _a;
|
|
@@ -104,6 +75,9 @@ function constructGroupItem(qItem, qrItemOrItems, childQrItems, checkedItemsToRe
|
|
|
104
75
|
}
|
|
105
76
|
return null;
|
|
106
77
|
}
|
|
78
|
+
if (!itemToRepopulate.newQRItem) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
107
81
|
return {
|
|
108
82
|
linkId: qItem.linkId,
|
|
109
83
|
text: qItem.text,
|
|
@@ -115,9 +89,12 @@ function constructSingleItem(qItem, qrItem, checkedItemsToRepopulate) {
|
|
|
115
89
|
if (!itemToRepopulate) {
|
|
116
90
|
return qrItem !== null && qrItem !== void 0 ? qrItem : null;
|
|
117
91
|
}
|
|
118
|
-
if (qrItem) {
|
|
92
|
+
if (qrItem && itemToRepopulate.newQRItem) {
|
|
119
93
|
return Object.assign(Object.assign({}, qrItem), { answer: itemToRepopulate.newQRItem.answer });
|
|
120
94
|
}
|
|
95
|
+
if (!itemToRepopulate.newQRItem) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
121
98
|
return {
|
|
122
99
|
linkId: qItem.linkId,
|
|
123
100
|
text: qItem.text,
|
|
@@ -126,7 +103,7 @@ function constructSingleItem(qItem, qrItem, checkedItemsToRepopulate) {
|
|
|
126
103
|
}
|
|
127
104
|
function constructGridGroup(qItem, qrItem, checkedItemsToRepopulate) {
|
|
128
105
|
const itemToRepopulate = checkedItemsToRepopulate[qItem.linkId];
|
|
129
|
-
if (!itemToRepopulate) {
|
|
106
|
+
if (!itemToRepopulate || !itemToRepopulate.newQRItem) {
|
|
130
107
|
return qrItem;
|
|
131
108
|
}
|
|
132
109
|
const qrItemsToRepopulate = itemToRepopulate.newQRItem.item;
|
|
@@ -156,7 +133,7 @@ function constructGridGroup(qItem, qrItem, checkedItemsToRepopulate) {
|
|
|
156
133
|
}
|
|
157
134
|
function constructRepeatGroup(qItem, qrItems, checkedItemsToRepopulate) {
|
|
158
135
|
const itemToRepopulate = checkedItemsToRepopulate[qItem.linkId];
|
|
159
|
-
if (!itemToRepopulate) {
|
|
136
|
+
if (!itemToRepopulate || !itemToRepopulate.newQRItems) {
|
|
160
137
|
return qrItems;
|
|
161
138
|
}
|
|
162
139
|
return itemToRepopulate.newQRItems;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repopulateIntoResponse.js","sourceRoot":"","sources":["../../src/utils/repopulateIntoResponse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repopulateIntoResponse.js","sourceRoot":"","sources":["../../src/utils/repopulateIntoResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,9 @@ import type { EnableWhenExpressions, EnableWhenItems } from '../interfaces/enabl
|
|
|
16
16
|
export interface ItemToRepopulate {
|
|
17
17
|
qItem: QuestionnaireItem | null;
|
|
18
18
|
heading: string | null;
|
|
19
|
-
newQRItem
|
|
19
|
+
newQRItem?: QuestionnaireResponseItem;
|
|
20
20
|
oldQRItem?: QuestionnaireResponseItem;
|
|
21
|
-
newQRItems
|
|
21
|
+
newQRItems?: QuestionnaireResponseItem[];
|
|
22
22
|
oldQRItems?: QuestionnaireResponseItem[];
|
|
23
23
|
}
|
|
24
24
|
interface getItemsToRepopulateParams {
|
|
@@ -15,11 +15,16 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import _isEqual from 'lodash/isEqual';
|
|
18
|
+
import _intersection from 'lodash/intersection';
|
|
19
|
+
import _difference from 'lodash/difference';
|
|
18
20
|
import { containsTabs, isTabContainer } from './tabs';
|
|
19
21
|
import { getShortText, isSpecificItemControl } from './itemControl';
|
|
20
22
|
import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
|
|
21
23
|
import { isHiddenByEnableWhen } from './qItem';
|
|
22
24
|
import { questionnaireResponseStore, questionnaireStore } from '../stores';
|
|
25
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
26
|
+
import { createQuestionnaireResponseItemMap } from './questionnaireResponseStoreUtils/updatableResponseItems';
|
|
27
|
+
import { getQuestionnaireItem, getSectionHeading } from './misc';
|
|
23
28
|
/**
|
|
24
29
|
* Compare latest data from the server with the current QuestionnaireResponse and decide items to re-populate
|
|
25
30
|
*
|
|
@@ -29,10 +34,13 @@ export function generateItemsToRepopulate(populatedResponse) {
|
|
|
29
34
|
const sourceQuestionnaire = questionnaireStore.getState().sourceQuestionnaire;
|
|
30
35
|
const tabs = questionnaireStore.getState().tabs;
|
|
31
36
|
const updatableResponse = questionnaireResponseStore.getState().updatableResponse;
|
|
37
|
+
const updatableResponseItems = questionnaireResponseStore.getState().updatableResponseItems;
|
|
32
38
|
const enableWhenIsActivated = questionnaireStore.getState().enableWhenIsActivated;
|
|
33
39
|
const enableWhenItems = questionnaireStore.getState().enableWhenItems;
|
|
34
40
|
const enableWhenExpressions = questionnaireStore.getState().enableWhenExpressions;
|
|
35
|
-
|
|
41
|
+
const initialExpressions = questionnaireStore.getState().initialExpressions;
|
|
42
|
+
// This function is able to capture additions, however it is not able to capture deletions
|
|
43
|
+
const itemsToRepopulate = getItemsToRepopulate({
|
|
36
44
|
sourceQuestionnaire,
|
|
37
45
|
tabs,
|
|
38
46
|
populatedResponse,
|
|
@@ -41,6 +49,21 @@ export function generateItemsToRepopulate(populatedResponse) {
|
|
|
41
49
|
enableWhenItems,
|
|
42
50
|
enableWhenExpressions
|
|
43
51
|
});
|
|
52
|
+
// Get linkIds that are different between current QRItems and populated QRItems
|
|
53
|
+
// Doesn't work with repeat groups, but at the same time I'm not sure if it's needed, given you can't delete completely the first repeat group
|
|
54
|
+
const populatedResponseItemMap = createQuestionnaireResponseItemMap(populatedResponse);
|
|
55
|
+
const diffLinkIds = _difference(Object.keys(updatableResponseItems), Object.keys(populatedResponseItemMap));
|
|
56
|
+
const diffLinkIdsWithInitialExpressions = _intersection(Object.keys(initialExpressions), diffLinkIds);
|
|
57
|
+
for (const linkId of diffLinkIdsWithInitialExpressions) {
|
|
58
|
+
if (linkId in updatableResponseItems) {
|
|
59
|
+
itemsToRepopulate[linkId] = {
|
|
60
|
+
qItem: getQuestionnaireItem(sourceQuestionnaire, linkId),
|
|
61
|
+
heading: getSectionHeading(sourceQuestionnaire, linkId, tabs),
|
|
62
|
+
oldQRItem: updatableResponseItems[linkId][0]
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return itemsToRepopulate;
|
|
44
67
|
}
|
|
45
68
|
export function getItemsToRepopulate(params) {
|
|
46
69
|
var _a;
|
|
@@ -168,6 +191,14 @@ function getItemsToRepopulateRecursive(params) {
|
|
|
168
191
|
getSingleItemToRepopulate(qItem, qrItemOrItems, heading, itemsToRepopulate);
|
|
169
192
|
}
|
|
170
193
|
function getSingleItemToRepopulate(qItem, qrItem, heading, itemsToRepopulate) {
|
|
194
|
+
if (qItem.linkId === 'encounter-reason') {
|
|
195
|
+
console.log(cloneDeep({
|
|
196
|
+
qItem: qItem,
|
|
197
|
+
heading: heading,
|
|
198
|
+
newQRItem: qrItem,
|
|
199
|
+
newQRItems: []
|
|
200
|
+
}));
|
|
201
|
+
}
|
|
171
202
|
itemsToRepopulate[qItem.linkId] = {
|
|
172
203
|
qItem: qItem,
|
|
173
204
|
heading: heading,
|