@aehrc/smart-forms-renderer 0.23.2 → 0.24.1
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/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.d.ts +13 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +31 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +13 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +31 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -0
- package/lib/hooks/useBooleanCalculatedExpression.d.ts +11 -0
- package/lib/hooks/useBooleanCalculatedExpression.js +47 -0
- package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -0
- package/lib/hooks/useCodingCalculatedExpression.d.ts +11 -0
- package/lib/hooks/useCodingCalculatedExpression.js +51 -0
- package/lib/hooks/useCodingCalculatedExpression.js.map +1 -0
- package/lib/utils/enableWhen.js +11 -10
- package/lib/utils/enableWhen.js.map +1 -1
- package/package.json +1 -1
- package/src/utils/enableWhen.ts +32 -10
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
|
|
3
|
+
import type { QuestionnaireItem } from 'fhir/r4';
|
|
4
|
+
interface ChoiceRadioAnswerOptionViewProps extends PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
valueChoice: string | null;
|
|
7
|
+
readOnly: boolean;
|
|
8
|
+
calcExpUpdated: boolean;
|
|
9
|
+
onCheckedChange: (linkId: string) => void;
|
|
10
|
+
onFocusLinkId: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare function ChoiceRadioAnswerOptionView(props: ChoiceRadioAnswerOptionViewProps): React.JSX.Element;
|
|
13
|
+
export default ChoiceRadioAnswerOptionView;
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import ChoiceRadioAnswerOptionFields from './ChoiceRadioAnswerOptionFields';
|
|
19
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
20
|
+
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
21
|
+
function ChoiceRadioAnswerOptionView(props) {
|
|
22
|
+
const { qItem, valueChoice, isRepeated, isTabled, readOnly, calcExpUpdated, onFocusLinkId, onCheckedChange } = props;
|
|
23
|
+
if (isRepeated) {
|
|
24
|
+
return (React.createElement(ChoiceRadioAnswerOptionFields, { qItem: qItem, valueRadio: valueChoice, isTabled: isTabled, readOnly: readOnly, calcExpUpdated: calcExpUpdated, onCheckedChange: onCheckedChange }));
|
|
25
|
+
}
|
|
26
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-choice-radio-answer-option-box", "data-linkid": qItem.linkId, onClick: onFocusLinkId },
|
|
27
|
+
React.createElement(ItemFieldGrid, { qItem: qItem, readOnly: readOnly },
|
|
28
|
+
React.createElement(ChoiceRadioAnswerOptionFields, { qItem: qItem, valueRadio: valueChoice, readOnly: readOnly, isTabled: isTabled, calcExpUpdated: calcExpUpdated, onCheckedChange: onCheckedChange }))));
|
|
29
|
+
}
|
|
30
|
+
export default ChoiceRadioAnswerOptionView;
|
|
31
|
+
//# sourceMappingURL=ChoiceRadioAnswerOptionView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceRadioAnswerOptionView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAkBvD,SAAS,2BAA2B,CAAC,KAAuC;IAC1E,MAAM,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACb,eAAe,EAChB,GAAG,KAAK,CAAC;IAEV,IAAI,UAAU,EAAE;QACd,OAAO,CACL,oBAAC,6BAA6B,IAC5B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,GAChC,CACH,CAAC;KACH;IAED,OAAO,CACL,oBAAC,yBAAyB,iBACd,uCAAuC,iBACpC,KAAK,CAAC,MAAM,EACzB,OAAO,EAAE,aAAa;QACtB,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;YAC7C,oBAAC,6BAA6B,IAC5B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,GAChC,CACY,CACU,CAC7B,CAAC;AACJ,CAAC;AAED,eAAe,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
|
|
3
|
+
import type { QuestionnaireItem } from 'fhir/r4';
|
|
4
|
+
interface ChoiceSelectAnswerOptionViewProps extends PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
valueChoice: string | null;
|
|
7
|
+
readOnly: boolean;
|
|
8
|
+
calcExpUpdated: boolean;
|
|
9
|
+
onSelectChange: (linkId: string) => void;
|
|
10
|
+
onFocusLinkId: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare function ChoiceSelectAnswerOptionView(props: ChoiceSelectAnswerOptionViewProps): React.JSX.Element;
|
|
13
|
+
export default ChoiceSelectAnswerOptionView;
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
import React from 'react';
|
|
18
|
+
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
19
|
+
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
20
|
+
import ChoiceSelectAnswerOptionFields from './ChoiceSelectAnswerOptionFields';
|
|
21
|
+
function ChoiceSelectAnswerOptionView(props) {
|
|
22
|
+
const { qItem, valueChoice, isRepeated, isTabled, readOnly, calcExpUpdated, onFocusLinkId, onSelectChange } = props;
|
|
23
|
+
if (isRepeated) {
|
|
24
|
+
return (React.createElement(ChoiceSelectAnswerOptionFields, { qItem: qItem, valueSelect: valueChoice !== null && valueChoice !== void 0 ? valueChoice : '', readOnly: readOnly, calcExpUpdated: calcExpUpdated, isTabled: isTabled, onSelectChange: onSelectChange }));
|
|
25
|
+
}
|
|
26
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-choice-select-answer-option-box", "data-linkid": qItem.linkId, onClick: onFocusLinkId },
|
|
27
|
+
React.createElement(ItemFieldGrid, { qItem: qItem, readOnly: readOnly },
|
|
28
|
+
React.createElement(ChoiceSelectAnswerOptionFields, { qItem: qItem, valueSelect: valueChoice !== null && valueChoice !== void 0 ? valueChoice : '', readOnly: readOnly, calcExpUpdated: calcExpUpdated, isTabled: isTabled, onSelectChange: onSelectChange }))));
|
|
29
|
+
}
|
|
30
|
+
export default ChoiceSelectAnswerOptionView;
|
|
31
|
+
//# sourceMappingURL=ChoiceSelectAnswerOptionView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoiceSelectAnswerOptionView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAMvD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAa9E,SAAS,4BAA4B,CAAC,KAAwC;IAC5E,MAAM,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACb,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,IAAI,UAAU,EAAE;QACd,OAAO,CACL,oBAAC,8BAA8B,IAC7B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAC9B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,OAAO,CACL,oBAAC,yBAAyB,iBACd,wCAAwC,iBACrC,KAAK,CAAC,MAAM,EACzB,OAAO,EAAE,aAAa;QACtB,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;YAC7C,oBAAC,8BAA8B,IAC7B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAC9B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,CACY,CACU,CAC7B,CAAC;AACJ,CAAC;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
|
+
interface UseBooleanCalculatedExpression {
|
|
3
|
+
calcExpUpdated: boolean;
|
|
4
|
+
}
|
|
5
|
+
interface UseBooleanCalculatedExpressionProps {
|
|
6
|
+
qItem: QuestionnaireItem;
|
|
7
|
+
booleanValue: boolean | undefined;
|
|
8
|
+
onQrItemChange: (qrItem: QuestionnaireResponseItem) => void;
|
|
9
|
+
}
|
|
10
|
+
declare function UseBooleanCalculatedExpression(props: UseBooleanCalculatedExpressionProps): UseBooleanCalculatedExpression;
|
|
11
|
+
export default UseBooleanCalculatedExpression;
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
import { useEffect, useState } from 'react';
|
|
18
|
+
import { createEmptyQrItem } from '../utils/qrItem';
|
|
19
|
+
import { useQuestionnaireStore } from '../stores';
|
|
20
|
+
function UseBooleanCalculatedExpression(props) {
|
|
21
|
+
const { qItem, booleanValue, onQrItemChange } = props;
|
|
22
|
+
const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
|
|
23
|
+
const [calcExpUpdated, setCalcExpUpdated] = useState(false);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
var _a;
|
|
26
|
+
const calcExpression = (_a = calculatedExpressions[qItem.linkId]) === null || _a === void 0 ? void 0 : _a.find((exp) => exp.from === 'item');
|
|
27
|
+
if (!calcExpression) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// only update if calculated value is different from current value
|
|
31
|
+
if (calcExpression.value !== booleanValue && typeof calcExpression.value === 'boolean') {
|
|
32
|
+
// update ui to show calculated value changes
|
|
33
|
+
setCalcExpUpdated(true);
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
setCalcExpUpdated(false);
|
|
36
|
+
}, 500);
|
|
37
|
+
// update questionnaireResponse
|
|
38
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueBoolean: calcExpression.value }] }));
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
// Only trigger this effect if calculatedExpression of item changes
|
|
42
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
43
|
+
[calculatedExpressions]);
|
|
44
|
+
return { calcExpUpdated: calcExpUpdated };
|
|
45
|
+
}
|
|
46
|
+
export default UseBooleanCalculatedExpression;
|
|
47
|
+
//# sourceMappingURL=useBooleanCalculatedExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBooleanCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useBooleanCalculatedExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAYlD,SAAS,8BAA8B,CACrC,KAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEtD,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAEhF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,CACP,GAAG,EAAE;;QACH,MAAM,cAAc,GAAG,MAAA,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,IAAI,CAC9D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAC7B,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO;SACR;QAED,kEAAkE;QAClE,IAAI,cAAc,CAAC,KAAK,KAAK,YAAY,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE;YACtF,6CAA6C;YAC7C,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE;gBACd,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,+BAA+B;YAC/B,cAAc,iCACT,iBAAiB,CAAC,KAAK,CAAC,KAC3B,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,IAChD,CAAC;SACJ;IACH,CAAC;IACD,mEAAmE;IACnE,uDAAuD;IACvD,CAAC,qBAAqB,CAAC,CACxB,CAAC;IAEF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC5C,CAAC;AAED,eAAe,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { QuestionnaireItem } from 'fhir/r4';
|
|
2
|
+
interface UseCodingCalculatedExpression {
|
|
3
|
+
calcExpUpdated: boolean;
|
|
4
|
+
}
|
|
5
|
+
interface UseCodingCalculatedExpressionProps {
|
|
6
|
+
qItem: QuestionnaireItem;
|
|
7
|
+
valueInString: string;
|
|
8
|
+
onChangeByCalcExpression: (newValueInString: string) => void;
|
|
9
|
+
}
|
|
10
|
+
declare function UseCodingCalculatedExpression(props: UseCodingCalculatedExpressionProps): UseCodingCalculatedExpression;
|
|
11
|
+
export default UseCodingCalculatedExpression;
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
import { useEffect, useState } from 'react';
|
|
18
|
+
import { useQuestionnaireStore } from '../stores';
|
|
19
|
+
// TODO use this in all choice and open choice items if possible
|
|
20
|
+
function UseCodingCalculatedExpression(props) {
|
|
21
|
+
const { qItem, valueInString, onChangeByCalcExpression } = props;
|
|
22
|
+
const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
|
|
23
|
+
const [calcExpUpdated, setCalcExpUpdated] = useState(false);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
var _a;
|
|
26
|
+
const calcExpression = (_a = calculatedExpressions[qItem.linkId]) === null || _a === void 0 ? void 0 : _a.find((exp) => exp.from === 'item');
|
|
27
|
+
if (!calcExpression) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// only update if calculated value is different from current value
|
|
31
|
+
if (calcExpression.value !== valueInString &&
|
|
32
|
+
(typeof calcExpression.value === 'string' || typeof calcExpression.value === 'number')) {
|
|
33
|
+
// update ui to show calculated value changes
|
|
34
|
+
setCalcExpUpdated(true);
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
setCalcExpUpdated(false);
|
|
37
|
+
}, 500);
|
|
38
|
+
const updatedValueInString = typeof calcExpression.value === 'string'
|
|
39
|
+
? calcExpression.value
|
|
40
|
+
: calcExpression.value.toString();
|
|
41
|
+
// update questionnaireResponse
|
|
42
|
+
onChangeByCalcExpression(updatedValueInString);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
// Only trigger this effect if calculatedExpression of item changes
|
|
46
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
|
+
[calculatedExpressions]);
|
|
48
|
+
return { calcExpUpdated: calcExpUpdated };
|
|
49
|
+
}
|
|
50
|
+
export default UseCodingCalculatedExpression;
|
|
51
|
+
//# sourceMappingURL=useCodingCalculatedExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCodingCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useCodingCalculatedExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAYlD,gEAAgE;AAChE,SAAS,6BAA6B,CACpC,KAAyC;IAEzC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,GAAG,KAAK,CAAC;IAEjE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAEhF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,CACP,GAAG,EAAE;;QACH,MAAM,cAAc,GAAG,MAAA,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,IAAI,CAC9D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAC7B,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO;SACR;QAED,kEAAkE;QAClE,IACE,cAAc,CAAC,KAAK,KAAK,aAAa;YACtC,CAAC,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,CAAC,EACtF;YACA,6CAA6C;YAC7C,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE;gBACd,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,MAAM,oBAAoB,GACxB,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ;gBACtC,CAAC,CAAC,cAAc,CAAC,KAAK;gBACtB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAEtC,+BAA+B;YAC/B,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;SAChD;IACH,CAAC;IACD,mEAAmE;IACnE,uDAAuD;IACvD,CAAC,qBAAqB,CAAC,CACxB,CAAC;IAEF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC5C,CAAC;AAED,eAAe,6BAA6B,CAAC"}
|
package/lib/utils/enableWhen.js
CHANGED
|
@@ -47,34 +47,35 @@ export function createEnableWhenLinkedQuestions(enableWhenItems) {
|
|
|
47
47
|
*/
|
|
48
48
|
export function isEnabledAnswerTypeSwitcher(enableWhen, answer) {
|
|
49
49
|
var _a, _b;
|
|
50
|
-
if (enableWhen
|
|
50
|
+
if (typeof enableWhen.answerBoolean === 'boolean' && enableWhen.operator === 'exists') {
|
|
51
51
|
return answerOperatorSwitcher(enableWhen.answerBoolean, answer, enableWhen.operator);
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
if (typeof enableWhen.answerBoolean === 'boolean' && typeof answer.valueBoolean === 'boolean') {
|
|
54
54
|
return answerOperatorSwitcher(enableWhen.answerBoolean, answer.valueBoolean, enableWhen.operator);
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
if (typeof enableWhen.answerDecimal === 'number' && typeof answer.valueDecimal === 'number') {
|
|
57
57
|
return answerOperatorSwitcher(enableWhen.answerDecimal, answer.valueDecimal, enableWhen.operator);
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
if (typeof enableWhen.answerInteger === 'number' && typeof answer.valueInteger === 'number') {
|
|
60
60
|
return answerOperatorSwitcher(enableWhen.answerInteger, answer.valueInteger, enableWhen.operator);
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
if (typeof enableWhen.answerDate === 'string' && typeof answer.valueDate === 'string') {
|
|
63
63
|
return answerOperatorSwitcher(enableWhen.answerDate, answer.valueDate, enableWhen.operator);
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
if (typeof enableWhen.answerDateTime === 'string' && typeof answer.valueDateTime === 'string') {
|
|
66
66
|
return answerOperatorSwitcher(enableWhen.answerDateTime, answer.valueDateTime, enableWhen.operator);
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
if (typeof enableWhen.answerTime === 'string' && typeof answer.valueTime === 'string') {
|
|
69
69
|
return answerOperatorSwitcher(enableWhen.answerTime, answer.valueTime, enableWhen.operator);
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
if (typeof enableWhen.answerString === 'string' && typeof answer.valueString === 'string') {
|
|
72
72
|
return answerOperatorSwitcher(enableWhen.answerString, answer.valueString, enableWhen.operator);
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
if (typeof ((_a = enableWhen.answerCoding) === null || _a === void 0 ? void 0 : _a.code) === 'string' &&
|
|
75
|
+
typeof ((_b = answer.valueCoding) === null || _b === void 0 ? void 0 : _b.code) === 'string') {
|
|
75
76
|
return answerOperatorSwitcher(enableWhen.answerCoding.code, answer.valueCoding.code, enableWhen.operator);
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
if (enableWhen.answerQuantity && answer.valueQuantity) {
|
|
78
79
|
return answerOperatorSwitcher(enableWhen.answerQuantity, answer.valueQuantity, enableWhen.operator);
|
|
79
80
|
}
|
|
80
81
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableWhen.js","sourceRoot":"","sources":["../../src/utils/enableWhen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAOzC;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,eAAgC;IAC9E,MAAM,kBAAkB,GAA6B,EAAE,CAAC;IAExD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;QAC9C,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YAC1B,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;oBAChC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;iBAClC;gBAED,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACjD,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC1C;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAAuC,EACvC,MAAuC;;IAEvC,IAAI,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"enableWhen.js","sourceRoot":"","sources":["../../src/utils/enableWhen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/utils/enableWhen.ts
CHANGED
|
@@ -68,51 +68,73 @@ export function isEnabledAnswerTypeSwitcher(
|
|
|
68
68
|
enableWhen: QuestionnaireItemEnableWhen,
|
|
69
69
|
answer: QuestionnaireResponseItemAnswer
|
|
70
70
|
): boolean {
|
|
71
|
-
if (enableWhen
|
|
71
|
+
if (typeof enableWhen.answerBoolean === 'boolean' && enableWhen.operator === 'exists') {
|
|
72
72
|
return answerOperatorSwitcher(enableWhen.answerBoolean, answer, enableWhen.operator);
|
|
73
|
-
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (typeof enableWhen.answerBoolean === 'boolean' && typeof answer.valueBoolean === 'boolean') {
|
|
74
76
|
return answerOperatorSwitcher(
|
|
75
77
|
enableWhen.answerBoolean,
|
|
76
78
|
answer.valueBoolean,
|
|
77
79
|
enableWhen.operator
|
|
78
80
|
);
|
|
79
|
-
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (typeof enableWhen.answerDecimal === 'number' && typeof answer.valueDecimal === 'number') {
|
|
80
84
|
return answerOperatorSwitcher(
|
|
81
85
|
enableWhen.answerDecimal,
|
|
82
86
|
answer.valueDecimal,
|
|
83
87
|
enableWhen.operator
|
|
84
88
|
);
|
|
85
|
-
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (typeof enableWhen.answerInteger === 'number' && typeof answer.valueInteger === 'number') {
|
|
86
92
|
return answerOperatorSwitcher(
|
|
87
93
|
enableWhen.answerInteger,
|
|
88
94
|
answer.valueInteger,
|
|
89
95
|
enableWhen.operator
|
|
90
96
|
);
|
|
91
|
-
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (typeof enableWhen.answerDate === 'string' && typeof answer.valueDate === 'string') {
|
|
92
100
|
return answerOperatorSwitcher(enableWhen.answerDate, answer.valueDate, enableWhen.operator);
|
|
93
|
-
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (typeof enableWhen.answerDateTime === 'string' && typeof answer.valueDateTime === 'string') {
|
|
94
104
|
return answerOperatorSwitcher(
|
|
95
105
|
enableWhen.answerDateTime,
|
|
96
106
|
answer.valueDateTime,
|
|
97
107
|
enableWhen.operator
|
|
98
108
|
);
|
|
99
|
-
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (typeof enableWhen.answerTime === 'string' && typeof answer.valueTime === 'string') {
|
|
100
112
|
return answerOperatorSwitcher(enableWhen.answerTime, answer.valueTime, enableWhen.operator);
|
|
101
|
-
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (typeof enableWhen.answerString === 'string' && typeof answer.valueString === 'string') {
|
|
102
116
|
return answerOperatorSwitcher(enableWhen.answerString, answer.valueString, enableWhen.operator);
|
|
103
|
-
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (
|
|
120
|
+
typeof enableWhen.answerCoding?.code === 'string' &&
|
|
121
|
+
typeof answer.valueCoding?.code === 'string'
|
|
122
|
+
) {
|
|
104
123
|
return answerOperatorSwitcher(
|
|
105
124
|
enableWhen.answerCoding.code,
|
|
106
125
|
answer.valueCoding.code,
|
|
107
126
|
enableWhen.operator
|
|
108
127
|
);
|
|
109
|
-
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (enableWhen.answerQuantity && answer.valueQuantity) {
|
|
110
131
|
return answerOperatorSwitcher(
|
|
111
132
|
enableWhen.answerQuantity,
|
|
112
133
|
answer.valueQuantity,
|
|
113
134
|
enableWhen.operator
|
|
114
135
|
);
|
|
115
136
|
}
|
|
137
|
+
|
|
116
138
|
return false;
|
|
117
139
|
}
|
|
118
140
|
|