@aehrc/smart-forms-renderer 0.26.2 → 0.27.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/.storybook/main.ts +1 -2
- package/.storybook/preview.ts +1 -1
- package/lib/components/FormComponents/ChoiceItems/CheckboxFields.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxFields.js +41 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.js +41 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.d.ts +10 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js +36 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.d.ts +13 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.js +46 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.d.ts +11 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.js +41 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.d.ts +16 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js +32 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
- package/lib/components/StoryWrappers/BuildFormWrapper.d.ts +7 -0
- package/{src/stories/BaseRenderer.stories.tsx → lib/components/StoryWrappers/BuildFormWrapper.js} +24 -45
- package/lib/components/StoryWrappers/BuildFormWrapper.js.map +1 -0
- package/lib/hooks/useOpenLabel.d.ts +8 -0
- package/lib/hooks/useOpenLabel.js +34 -0
- package/lib/hooks/useOpenLabel.js.map +1 -0
- package/lib/hooks/useValueSetCodings.js +22 -6
- package/lib/hooks/useValueSetCodings.js.map +1 -1
- package/lib/interfaces/lookup.interface.d.ts +6 -0
- package/lib/interfaces/lookup.interface.js +18 -0
- package/lib/interfaces/lookup.interface.js.map +1 -0
- package/lib/utils/buildForm.d.ts +8 -0
- package/lib/utils/buildForm.js +26 -0
- package/lib/utils/buildForm.js.map +1 -0
- package/lib/utils/buildForms.d.ts +0 -0
- package/lib/utils/buildForms.js +2 -0
- package/lib/utils/buildForms.js.map +1 -0
- package/lib/utils/calculatedExpression.js +1 -1
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/enableWhenExpression.d.ts +1 -0
- package/lib/utils/enableWhenExpression.js +4 -4
- package/lib/utils/enableWhenExpression.js.map +1 -1
- package/lib/utils/fhirpath.d.ts +1 -1
- package/lib/utils/fhirpath.js +6 -5
- package/lib/utils/fhirpath.js.map +1 -1
- package/lib/utils/initialise.js +5 -4
- package/lib/utils/initialise.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.d.ts +14 -0
- package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js +121 -0
- package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js.map +1 -0
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +3 -0
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/resolveValueSets.js +2 -2
- package/lib/utils/questionnaireStoreUtils/resolveValueSets.js.map +1 -1
- package/lib/utils/valueSet.d.ts +1 -1
- package/lib/utils/valueSet.js +1 -1
- package/lib/utils/valueSet.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +1 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +1 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +3 -1
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +3 -1
- package/src/hooks/useValueSetCodings.ts +12 -5
- package/src/{stories/assets/QStringItem.ts → interfaces/lookup.interface.ts} +6 -20
- package/src/utils/calculatedExpression.ts +2 -1
- package/src/utils/enableWhenExpression.ts +13 -4
- package/src/utils/fhirpath.ts +12 -6
- package/src/utils/initialise.ts +6 -4
- package/src/utils/questionnaireStoreUtils/addDisplayToCodings.ts +143 -0
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +7 -0
- package/src/utils/questionnaireStoreUtils/resolveValueSets.ts +2 -2
- package/src/utils/valueSet.ts +1 -1
|
@@ -23,7 +23,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
23
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
|
-
import { createValueSetToXFhirQueryVariableNameMap, getValueSetCodings, getValueSetPromise,
|
|
26
|
+
import { createValueSetToXFhirQueryVariableNameMap, getValueSetCodings, getValueSetPromise, resolveValueSetPromises } from '../valueSet';
|
|
27
27
|
export function resolveValueSets(variables, valueSetPromises, processedValueSetCodings, terminologyServerUrl) {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
29
|
// Create a <valueSetUrl, XFhirQueryVariableName> map
|
|
@@ -36,7 +36,7 @@ export function resolveValueSets(variables, valueSetPromises, processedValueSetC
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
// Resolve promises and store valueSet codings in preprocessedValueSetCodings AND XFhirQueryVariables
|
|
39
|
-
const resolvedPromises = yield
|
|
39
|
+
const resolvedPromises = yield resolveValueSetPromises(valueSetPromises);
|
|
40
40
|
for (const valueSetUrl in resolvedPromises) {
|
|
41
41
|
const valueSet = resolvedPromises[valueSetUrl].valueSet;
|
|
42
42
|
if (valueSet) {
|
|
@@ -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,
|
|
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,gBAAgB,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC;YAExD,IAAI,QAAQ,EAAE;gBACZ,IAAI,mCAAmC,CAAC,WAAW,CAAC,EAAE;oBACpD,6DAA6D;oBAC7D,MAAM,YAAY,GAAG,mCAAmC,CAAC,WAAW,CAAC,CAAC;oBACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;oBAC7D,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,mCACtC,QAAQ,KACX,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC,QAAQ,GAC/C,CAAC;iBACH;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;IACjD,CAAC;CAAA"}
|
package/lib/utils/valueSet.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { VariableXFhirQuery } from '../interfaces/variables.interface';
|
|
|
4
4
|
import type { ValueSetPromise } from '../interfaces/valueSet.interface';
|
|
5
5
|
export declare function getTerminologyServerUrl(qItem: QuestionnaireItem): string | undefined;
|
|
6
6
|
export declare function getValueSetPromise(url: string, terminologyServerUrl: string): Promise<ValueSet>;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function resolveValueSetPromises(valueSetPromises: Record<string, ValueSetPromise>): Promise<Record<string, ValueSetPromise>>;
|
|
8
8
|
/**
|
|
9
9
|
* Sets an array of codings with the values from a valueSet
|
|
10
10
|
*
|
package/lib/utils/valueSet.js
CHANGED
|
@@ -57,7 +57,7 @@ function addTimeoutToPromise(promise, timeoutMs) {
|
|
|
57
57
|
return Promise.race([promise, timeoutPromise]);
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
export function
|
|
60
|
+
export function resolveValueSetPromises(valueSetPromises) {
|
|
61
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
62
62
|
const newValueSetPromises = {};
|
|
63
63
|
const valueSetPromiseKeys = Object.keys(valueSetPromises);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueSet.js","sourceRoot":"","sources":["../../src/utils/valueSet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAaH,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAKnC,MAAM,yBAAyB,GAC7B,mGAAmG,CAAC;AAEtG,MAAM,6BAA6B,GAAG,UAAU,CAAC;AAEjD,MAAM,UAAU,uBAAuB,CAAC,KAAwB;;IAC9D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,4DAA4D,CACjF,CAAC;IACF,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAC,QAAQ,CAAC;KAC7B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,oBAA4B;IAC1E,IAAI,WAAW,GAAG,GAAG,CAAC;IAEtB,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;QACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACpD,oBAAoB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC3B;IAED,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAEpD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC;QAC9D,GAAG,EAAE,uBAAuB,GAAG,WAAW;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,SAAe,mBAAmB,CAAC,OAAqB,EAAE,SAAiB;;QACzE,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,SAAS,eAAe,CAAC,CAAC,CAAC;YACzE,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,kFAAkF;QAClF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACjD,CAAC;CAAA;AAED,MAAM,UAAgB,
|
|
1
|
+
{"version":3,"file":"valueSet.js","sourceRoot":"","sources":["../../src/utils/valueSet.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -67,7 +67,7 @@ function ChoiceAutocompleteField(props: ChoiceAutocompleteFieldsProps) {
|
|
|
67
67
|
id={qItem.id}
|
|
68
68
|
value={valueCoding ?? null}
|
|
69
69
|
options={options}
|
|
70
|
-
getOptionLabel={(option) => `${option.
|
|
70
|
+
getOptionLabel={(option) => option.display ?? `${option.code}`}
|
|
71
71
|
isOptionEqualToValue={(option, value) => option.id === value.id}
|
|
72
72
|
disabled={readOnly}
|
|
73
73
|
loading={loading}
|
|
@@ -56,7 +56,7 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
|
|
|
56
56
|
<Autocomplete
|
|
57
57
|
id={qItem.id}
|
|
58
58
|
options={codings}
|
|
59
|
-
getOptionLabel={(option) => `${option.
|
|
59
|
+
getOptionLabel={(option) => option.display ?? `${option.code}`}
|
|
60
60
|
value={valueCoding ?? null}
|
|
61
61
|
onChange={(_, newValue) => onSelectChange(newValue)}
|
|
62
62
|
openOnFocus
|
|
@@ -73,7 +73,9 @@ function OpenChoiceAutocompleteField(props: OpenChoiceAutocompleteFieldProps) {
|
|
|
73
73
|
id={qItem.id}
|
|
74
74
|
value={valueAutocomplete}
|
|
75
75
|
options={options}
|
|
76
|
-
getOptionLabel={(option) =>
|
|
76
|
+
getOptionLabel={(option) =>
|
|
77
|
+
typeof option === 'string' ? option : option.display ?? `${option.code}`
|
|
78
|
+
}
|
|
77
79
|
disabled={readOnly}
|
|
78
80
|
loading={loading}
|
|
79
81
|
loadingText={'Fetching results...'}
|
package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx
CHANGED
|
@@ -33,7 +33,9 @@ function OpenChoiceSelectAnswerValueSetField(props: OpenChoiceSelectAnswerValueS
|
|
|
33
33
|
id={qItem.id}
|
|
34
34
|
value={valueSelect ?? null}
|
|
35
35
|
options={options}
|
|
36
|
-
getOptionLabel={(option) =>
|
|
36
|
+
getOptionLabel={(option) =>
|
|
37
|
+
typeof option === 'string' ? option : option.display ?? `${option.code}`
|
|
38
|
+
}
|
|
37
39
|
onChange={(_, newValue) => onValueChange(newValue)}
|
|
38
40
|
onInputChange={(_, newValue) => onValueChange(newValue)}
|
|
39
41
|
freeSolo
|
|
@@ -27,6 +27,7 @@ import { getAnswerExpression } from '../utils/getExpressionsFromItem';
|
|
|
27
27
|
import fhirpath from 'fhirpath';
|
|
28
28
|
import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
|
|
29
29
|
import { useQuestionnaireStore, useSmartConfigStore, useTerminologyServerStore } from '../stores';
|
|
30
|
+
import { addDisplayToCodingArray } from '../utils/questionnaireStoreUtils/addDisplayToCodings';
|
|
30
31
|
|
|
31
32
|
export interface TerminologyError {
|
|
32
33
|
error: Error | null;
|
|
@@ -140,12 +141,18 @@ function useValueSetCodings(qItem: QuestionnaireItem): {
|
|
|
140
141
|
const promise = getValueSetPromise(valueSetUrl, terminologyServerUrl);
|
|
141
142
|
if (promise) {
|
|
142
143
|
promise
|
|
143
|
-
.then((valueSet: ValueSet) => {
|
|
144
|
+
.then(async (valueSet: ValueSet) => {
|
|
144
145
|
const codings = getValueSetCodings(valueSet);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
addDisplayToCodingArray(codings, terminologyServerUrl)
|
|
147
|
+
.then((codingsWithDisplay) => {
|
|
148
|
+
if (codingsWithDisplay.length > 0) {
|
|
149
|
+
addCodingToCache(valueSetUrl, codingsWithDisplay);
|
|
150
|
+
setCodings(codings);
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
.catch((error: Error) => {
|
|
154
|
+
setServerError(error);
|
|
155
|
+
});
|
|
149
156
|
})
|
|
150
157
|
.catch((error: Error) => {
|
|
151
158
|
setServerError(error);
|
|
@@ -15,24 +15,10 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import type {
|
|
18
|
+
import type { Coding } from 'fhir/r4';
|
|
19
19
|
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
version: '0.1.0',
|
|
26
|
-
status: 'draft',
|
|
27
|
-
publisher: 'AEHRC CSIRO',
|
|
28
|
-
date: '2024-05-01',
|
|
29
|
-
url: 'https://smartforms.csiro.au/docs/components/string',
|
|
30
|
-
item: [
|
|
31
|
-
{
|
|
32
|
-
linkId: 'name',
|
|
33
|
-
type: 'string',
|
|
34
|
-
repeats: false,
|
|
35
|
-
text: 'Name'
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
};
|
|
20
|
+
export interface CodeSystemLookupPromise {
|
|
21
|
+
promise: Promise<Parameters<any>>;
|
|
22
|
+
oldCoding: Coding;
|
|
23
|
+
newCoding?: Coding;
|
|
24
|
+
}
|
|
@@ -75,7 +75,8 @@ export function evaluateInitialCalculatedExpressions(
|
|
|
75
75
|
const updatedFhirPathContext = createFhirPathContext(
|
|
76
76
|
initialResponse,
|
|
77
77
|
initialResponseItemMap,
|
|
78
|
-
variablesFhirPath
|
|
78
|
+
variablesFhirPath,
|
|
79
|
+
existingFhirPathContext
|
|
79
80
|
);
|
|
80
81
|
|
|
81
82
|
for (const linkId in initialCalculatedExpressions) {
|
|
@@ -30,6 +30,7 @@ interface EvaluateInitialEnableWhenExpressionsParams {
|
|
|
30
30
|
initialResponseItemMap: Record<string, QuestionnaireResponseItem[]>;
|
|
31
31
|
enableWhenExpressions: EnableWhenExpressions;
|
|
32
32
|
variablesFhirPath: Record<string, Expression[]>;
|
|
33
|
+
existingFhirPathContext: Record<string, any>;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
export function evaluateInitialEnableWhenExpressions(
|
|
@@ -38,8 +39,13 @@ export function evaluateInitialEnableWhenExpressions(
|
|
|
38
39
|
initialEnableWhenExpressions: EnableWhenExpressions;
|
|
39
40
|
updatedFhirPathContext: Record<string, any>;
|
|
40
41
|
} {
|
|
41
|
-
const {
|
|
42
|
-
|
|
42
|
+
const {
|
|
43
|
+
initialResponse,
|
|
44
|
+
initialResponseItemMap,
|
|
45
|
+
enableWhenExpressions,
|
|
46
|
+
variablesFhirPath,
|
|
47
|
+
existingFhirPathContext
|
|
48
|
+
} = params;
|
|
43
49
|
|
|
44
50
|
const initialEnableWhenExpressions: EnableWhenExpressions = {
|
|
45
51
|
...enableWhenExpressions
|
|
@@ -47,7 +53,8 @@ export function evaluateInitialEnableWhenExpressions(
|
|
|
47
53
|
const updatedFhirPathContext = createFhirPathContext(
|
|
48
54
|
initialResponse,
|
|
49
55
|
initialResponseItemMap,
|
|
50
|
-
variablesFhirPath
|
|
56
|
+
variablesFhirPath,
|
|
57
|
+
existingFhirPathContext
|
|
51
58
|
);
|
|
52
59
|
|
|
53
60
|
const initialEnableWhenSingleExpressions = evaluateEnableWhenSingleExpressions(
|
|
@@ -273,6 +280,7 @@ export function mutateRepeatEnableWhenExpressionInstances(
|
|
|
273
280
|
questionnaireResponse,
|
|
274
281
|
questionnaireResponseItemMap,
|
|
275
282
|
variablesFhirPath,
|
|
283
|
+
existingFhirPathContext,
|
|
276
284
|
enableWhenExpressions,
|
|
277
285
|
parentRepeatGroupLinkId,
|
|
278
286
|
parentRepeatGroupIndex,
|
|
@@ -284,7 +292,8 @@ export function mutateRepeatEnableWhenExpressionInstances(
|
|
|
284
292
|
const updatedFhirPathContext = createFhirPathContext(
|
|
285
293
|
questionnaireResponse,
|
|
286
294
|
questionnaireResponseItemMap,
|
|
287
|
-
variablesFhirPath
|
|
295
|
+
variablesFhirPath,
|
|
296
|
+
existingFhirPathContext
|
|
288
297
|
);
|
|
289
298
|
|
|
290
299
|
let isUpdated = false;
|
package/src/utils/fhirpath.ts
CHANGED
|
@@ -62,7 +62,8 @@ export function evaluateUpdatedExpressions(params: EvaluateUpdatedExpressionsPar
|
|
|
62
62
|
const updatedFhirPathContext = createFhirPathContext(
|
|
63
63
|
updatedResponse,
|
|
64
64
|
updatedResponseItemMap,
|
|
65
|
-
variablesFhirPath
|
|
65
|
+
variablesFhirPath,
|
|
66
|
+
existingFhirPathContext
|
|
66
67
|
);
|
|
67
68
|
|
|
68
69
|
// Update enableWhenExpressions
|
|
@@ -90,15 +91,20 @@ export function evaluateUpdatedExpressions(params: EvaluateUpdatedExpressionsPar
|
|
|
90
91
|
export function createFhirPathContext(
|
|
91
92
|
questionnaireResponse: QuestionnaireResponse,
|
|
92
93
|
questionnaireResponseItemMap: Record<string, QuestionnaireResponseItem[]>,
|
|
93
|
-
variablesFhirPath: Record<string, Expression[]
|
|
94
|
+
variablesFhirPath: Record<string, Expression[]>,
|
|
95
|
+
existingFhirPathContext: Record<string, any>
|
|
94
96
|
): Record<string, any> {
|
|
97
|
+
// Add latest resource to fhirPathContext
|
|
98
|
+
let fhirPathContext: Record<string, any> = {
|
|
99
|
+
...existingFhirPathContext,
|
|
100
|
+
resource: questionnaireResponse
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// Exit early if there are no QR items
|
|
95
104
|
if (!questionnaireResponse.item) {
|
|
96
|
-
return
|
|
105
|
+
return fhirPathContext;
|
|
97
106
|
}
|
|
98
107
|
|
|
99
|
-
// Add latest resource to fhirPathContext
|
|
100
|
-
let fhirPathContext: Record<string, any> = { resource: questionnaireResponse };
|
|
101
|
-
|
|
102
108
|
// Evaluate resource-level variables
|
|
103
109
|
fhirPathContext = evaluateQuestionnaireLevelVariables(
|
|
104
110
|
questionnaireResponse,
|
package/src/utils/initialise.ts
CHANGED
|
@@ -344,10 +344,11 @@ export function initialiseFormFromResponse(params: initialFormFromResponseParams
|
|
|
344
344
|
enableWhenExpressions,
|
|
345
345
|
calculatedExpressions,
|
|
346
346
|
variablesFhirPath,
|
|
347
|
-
tabs
|
|
347
|
+
tabs,
|
|
348
|
+
fhirPathContext
|
|
348
349
|
} = params;
|
|
349
350
|
const initialResponseItemMap = createQuestionnaireResponseItemMap(questionnaireResponse);
|
|
350
|
-
let updatedFhirPathContext =
|
|
351
|
+
let updatedFhirPathContext = {};
|
|
351
352
|
|
|
352
353
|
const { initialisedItems, linkedQuestions } = assignPopulatedAnswersToEnableWhen(
|
|
353
354
|
enableWhenItems,
|
|
@@ -358,7 +359,8 @@ export function initialiseFormFromResponse(params: initialFormFromResponseParams
|
|
|
358
359
|
initialResponse: questionnaireResponse,
|
|
359
360
|
initialResponseItemMap: initialResponseItemMap,
|
|
360
361
|
enableWhenExpressions: enableWhenExpressions,
|
|
361
|
-
variablesFhirPath: variablesFhirPath
|
|
362
|
+
variablesFhirPath: variablesFhirPath,
|
|
363
|
+
existingFhirPathContext: fhirPathContext
|
|
362
364
|
});
|
|
363
365
|
const { initialEnableWhenExpressions } = evaluateInitialEnableWhenExpressionsResult;
|
|
364
366
|
updatedFhirPathContext = evaluateInitialEnableWhenExpressionsResult.updatedFhirPathContext;
|
|
@@ -368,7 +370,7 @@ export function initialiseFormFromResponse(params: initialFormFromResponseParams
|
|
|
368
370
|
initialResponseItemMap: initialResponseItemMap,
|
|
369
371
|
calculatedExpressions: calculatedExpressions,
|
|
370
372
|
variablesFhirPath: variablesFhirPath,
|
|
371
|
-
existingFhirPathContext:
|
|
373
|
+
existingFhirPathContext: fhirPathContext
|
|
372
374
|
});
|
|
373
375
|
const { initialCalculatedExpressions } = evaluateInitialCalculatedExpressionsResult;
|
|
374
376
|
updatedFhirPathContext = evaluateInitialEnableWhenExpressionsResult.updatedFhirPathContext;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type { Coding } from 'fhir/r4';
|
|
19
|
+
import type { CodeSystemLookupPromise } from '../../interfaces/lookup.interface';
|
|
20
|
+
import * as FHIR from 'fhirclient';
|
|
21
|
+
|
|
22
|
+
// Use this for QuestionnaireStore.ProcessedCodings
|
|
23
|
+
export async function addDisplayToProcessedCodings(
|
|
24
|
+
processedCodings: Record<string, Coding[]>,
|
|
25
|
+
terminologyServerUrl: string
|
|
26
|
+
): Promise<Record<string, Coding[]>> {
|
|
27
|
+
// Store code system lookup promises for codings without displays
|
|
28
|
+
const codeSystemLookupPromises: Record<string, CodeSystemLookupPromise> = {};
|
|
29
|
+
for (const key in processedCodings) {
|
|
30
|
+
const codings = processedCodings[key];
|
|
31
|
+
for (const coding of codings) {
|
|
32
|
+
if (!coding.display) {
|
|
33
|
+
const query = `system=${coding.system}&code=${coding.code}`;
|
|
34
|
+
codeSystemLookupPromises[query] = {
|
|
35
|
+
promise: getCodeSystemLookupPromise(query, terminologyServerUrl),
|
|
36
|
+
oldCoding: coding
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Resolves lookup promises in one go and assign newCodings to processedCodings
|
|
43
|
+
const resolvedCodeSystemLookupPromises = await resolveLookupPromises(codeSystemLookupPromises);
|
|
44
|
+
for (const key in processedCodings) {
|
|
45
|
+
const codings = processedCodings[key];
|
|
46
|
+
|
|
47
|
+
for (const coding of codings) {
|
|
48
|
+
const lookUpKey = `system=${coding.system}&code=${coding.code}`;
|
|
49
|
+
const resolvedLookup = resolvedCodeSystemLookupPromises[lookUpKey];
|
|
50
|
+
if (resolvedLookup?.newCoding?.display) {
|
|
51
|
+
coding.display = resolvedLookup.newCoding.display;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return processedCodings;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Use this for an array of codings
|
|
60
|
+
export async function addDisplayToCodingArray(
|
|
61
|
+
codings: Coding[],
|
|
62
|
+
terminologyServerUrl: string
|
|
63
|
+
): Promise<Coding[]> {
|
|
64
|
+
// Store code system lookup promises for codings without displays
|
|
65
|
+
const codeSystemLookupPromises: Record<string, CodeSystemLookupPromise> = {};
|
|
66
|
+
for (const coding of codings) {
|
|
67
|
+
if (!coding.display) {
|
|
68
|
+
const query = `system=${coding.system}&code=${coding.code}`;
|
|
69
|
+
codeSystemLookupPromises[query] = {
|
|
70
|
+
promise: getCodeSystemLookupPromise(query, terminologyServerUrl),
|
|
71
|
+
oldCoding: coding
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Resolves lookup promises in one go and assign newCodings to processedCodings
|
|
77
|
+
const resolvedCodeSystemLookupPromises = await resolveLookupPromises(codeSystemLookupPromises);
|
|
78
|
+
for (const coding of codings) {
|
|
79
|
+
const lookUpKey = `system=${coding.system}&code=${coding.code}`;
|
|
80
|
+
const resolvedLookup = resolvedCodeSystemLookupPromises[lookUpKey];
|
|
81
|
+
if (resolvedLookup?.newCoding?.display) {
|
|
82
|
+
coding.display = resolvedLookup.newCoding.display;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return codings;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function getCodeSystemLookupPromise(query: string, terminologyServerUrl: string) {
|
|
90
|
+
return FHIR.client({ serverUrl: terminologyServerUrl }).request({
|
|
91
|
+
url: `CodeSystem/$lookup?${query}`
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export async function resolveLookupPromises(
|
|
96
|
+
codeSystemLookupPromises: Record<string, CodeSystemLookupPromise>
|
|
97
|
+
): Promise<Record<string, CodeSystemLookupPromise>> {
|
|
98
|
+
const newCodeSystemLookupPromises: Record<string, CodeSystemLookupPromise> = {};
|
|
99
|
+
|
|
100
|
+
const lookupPromiseKeys = Object.keys(codeSystemLookupPromises);
|
|
101
|
+
const lookupPromiseValues = Object.values(codeSystemLookupPromises);
|
|
102
|
+
|
|
103
|
+
const promises = lookupPromiseValues.map((lookupPromise) => lookupPromise.promise);
|
|
104
|
+
const lookupResults = await Promise.all(promises);
|
|
105
|
+
|
|
106
|
+
for (const [i, lookupResult] of lookupResults.entries()) {
|
|
107
|
+
if (!lookupResponseIsValid(lookupResult)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const key = lookupPromiseKeys[i];
|
|
112
|
+
const lookupPromise = lookupPromiseValues[i];
|
|
113
|
+
|
|
114
|
+
if (key && lookupPromise) {
|
|
115
|
+
lookupPromise.newCoding = {
|
|
116
|
+
...lookupPromise.oldCoding,
|
|
117
|
+
display: lookupResult.parameter.find((p) => p.name === 'display')?.valueString ?? undefined
|
|
118
|
+
};
|
|
119
|
+
newCodeSystemLookupPromises[key] = lookupPromise;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return newCodeSystemLookupPromises;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface LookupResponse {
|
|
127
|
+
parameter: [DisplayParameter];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface DisplayParameter {
|
|
131
|
+
name: 'display';
|
|
132
|
+
valueString: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function lookupResponseIsValid(response: any): response is LookupResponse {
|
|
136
|
+
return (
|
|
137
|
+
response &&
|
|
138
|
+
response.resourceType === 'Parameters' &&
|
|
139
|
+
response.parameter &&
|
|
140
|
+
response.parameter.find((p: any) => p.name === 'display') &&
|
|
141
|
+
response.parameter.find((p: any) => p.name === 'display').valueString
|
|
142
|
+
);
|
|
143
|
+
}
|
|
@@ -28,6 +28,7 @@ import type { Variables } from '../../interfaces/variables.interface';
|
|
|
28
28
|
import { resolveValueSets } from './resolveValueSets';
|
|
29
29
|
import { addAdditionalVariables } from './addAdditionalVariables';
|
|
30
30
|
import { getLinkIdTypeTuples } from '../qItem';
|
|
31
|
+
import { addDisplayToProcessedCodings } from './addDisplayToCodings';
|
|
31
32
|
|
|
32
33
|
export async function createQuestionnaireModel(
|
|
33
34
|
questionnaire: Questionnaire,
|
|
@@ -76,6 +77,12 @@ export async function createQuestionnaireModel(
|
|
|
76
77
|
variables = resolveValueSetsResult.variables;
|
|
77
78
|
processedValueSetCodings = resolveValueSetsResult.processedValueSetCodings;
|
|
78
79
|
|
|
80
|
+
// In processedCodings, add display values to codings lacking them
|
|
81
|
+
processedValueSetCodings = await addDisplayToProcessedCodings(
|
|
82
|
+
processedValueSetCodings,
|
|
83
|
+
terminologyServerUrl
|
|
84
|
+
);
|
|
85
|
+
|
|
79
86
|
return {
|
|
80
87
|
itemTypes,
|
|
81
88
|
tabs,
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
createValueSetToXFhirQueryVariableNameMap,
|
|
21
21
|
getValueSetCodings,
|
|
22
22
|
getValueSetPromise,
|
|
23
|
-
|
|
23
|
+
resolveValueSetPromises
|
|
24
24
|
} from '../valueSet';
|
|
25
25
|
import type { Variables } from '../../interfaces/variables.interface';
|
|
26
26
|
import type { ValueSetPromise } from '../../interfaces/valueSet.interface';
|
|
@@ -44,7 +44,7 @@ export async function resolveValueSets(
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
// Resolve promises and store valueSet codings in preprocessedValueSetCodings AND XFhirQueryVariables
|
|
47
|
-
const resolvedPromises = await
|
|
47
|
+
const resolvedPromises = await resolveValueSetPromises(valueSetPromises);
|
|
48
48
|
|
|
49
49
|
for (const valueSetUrl in resolvedPromises) {
|
|
50
50
|
const valueSet = resolvedPromises[valueSetUrl].valueSet;
|
package/src/utils/valueSet.ts
CHANGED
|
@@ -74,7 +74,7 @@ async function addTimeoutToPromise(promise: Promise<any>, timeoutMs: number) {
|
|
|
74
74
|
return Promise.race([promise, timeoutPromise]);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
export async function
|
|
77
|
+
export async function resolveValueSetPromises(
|
|
78
78
|
valueSetPromises: Record<string, ValueSetPromise>
|
|
79
79
|
): Promise<Record<string, ValueSetPromise>> {
|
|
80
80
|
const newValueSetPromises: Record<string, ValueSetPromise> = {};
|