@aehrc/smart-forms-renderer 0.23.1 → 0.23.2

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.
Files changed (50) hide show
  1. package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +1 -1
  2. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +7 -1
  3. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
  4. package/lib/hooks/useDecimalCalculatedExpression.js +6 -2
  5. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  6. package/lib/hooks/useDisplayCalculatedExpression.d.ts +3 -0
  7. package/lib/hooks/useDisplayCalculatedExpression.js +33 -0
  8. package/lib/hooks/useDisplayCalculatedExpression.js.map +1 -0
  9. package/lib/hooks/useIntegerCalculatedExpression.js +6 -2
  10. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  11. package/lib/hooks/useStringCalculatedExpression.js +13 -5
  12. package/lib/hooks/useStringCalculatedExpression.js.map +1 -1
  13. package/lib/hooks/useValueSetCodings.js +1 -1
  14. package/lib/hooks/useValueSetCodings.js.map +1 -1
  15. package/lib/interfaces/calculatedExpression.interface.d.ts +1 -0
  16. package/lib/interfaces/questionnaireStore.interface.d.ts +1 -1
  17. package/lib/stores/questionnaireStore.d.ts +2 -2
  18. package/lib/utils/calculatedExpression.d.ts +5 -5
  19. package/lib/utils/calculatedExpression.js +43 -29
  20. package/lib/utils/calculatedExpression.js.map +1 -1
  21. package/lib/utils/fhirpath.d.ts +2 -2
  22. package/lib/utils/getExpressionsFromItem.d.ts +20 -0
  23. package/lib/utils/getExpressionsFromItem.js +90 -0
  24. package/lib/utils/getExpressionsFromItem.js.map +1 -0
  25. package/lib/utils/initialise.d.ts +2 -2
  26. package/lib/utils/itemControl.d.ts +1 -7
  27. package/lib/utils/itemControl.js +0 -20
  28. package/lib/utils/itemControl.js.map +1 -1
  29. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.d.ts +2 -14
  30. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +6 -46
  31. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  32. package/lib/utils/removeEmptyAnswers.js +3 -0
  33. package/lib/utils/removeEmptyAnswers.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +12 -1
  36. package/src/hooks/useDecimalCalculatedExpression.ts +8 -2
  37. package/src/hooks/useDisplayCalculatedExpression.ts +40 -0
  38. package/src/hooks/useIntegerCalculatedExpression.ts +8 -2
  39. package/src/hooks/useStringCalculatedExpression.ts +19 -5
  40. package/src/hooks/useValueSetCodings.ts +1 -1
  41. package/src/interfaces/calculatedExpression.interface.ts +1 -0
  42. package/src/interfaces/questionnaireStore.interface.ts +1 -1
  43. package/src/stores/questionnaireStore.ts +1 -1
  44. package/src/utils/calculatedExpression.ts +76 -60
  45. package/src/utils/fhirpath.ts +2 -2
  46. package/src/utils/getExpressionsFromItem.ts +96 -0
  47. package/src/utils/initialise.ts +2 -2
  48. package/src/utils/itemControl.ts +1 -21
  49. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +13 -50
  50. package/src/utils/removeEmptyAnswers.ts +4 -0
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export declare const GroupCard: import("@emotion/styled").StyledComponent<import("@mui/material/Card").CardOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
3
  ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
4
- }, "style" | "children" | "className" | "sx" | "classes" | "elevation" | "variant" | "square" | "raised"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
4
+ }, "style" | "children" | "className" | "sx" | "classes" | "variant" | "elevation" | "square" | "raised"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
5
5
  elevation: number;
6
6
  isRepeated: boolean;
7
7
  }, {}, {}>;
@@ -20,14 +20,20 @@ import parse from 'html-react-parser';
20
20
  import Box from '@mui/material/Box';
21
21
  import ReactMarkdown from 'react-markdown';
22
22
  import Typography from '@mui/material/Typography';
23
+ import useDisplayCalculatedExpression from '../../../hooks/useDisplayCalculatedExpression';
23
24
  const ItemLabelText = memo(function ItemLabelText(props) {
24
25
  const { qItem, readOnly } = props;
26
+ // Use calculatedExpressionString if available
27
+ const calculatedExpressionString = useDisplayCalculatedExpression(qItem);
28
+ if (calculatedExpressionString) {
29
+ return (React.createElement(Typography, { color: readOnly ? 'text.disabled' : 'text.primary', sx: { mt: 0.25 } }, calculatedExpressionString));
30
+ }
25
31
  // parse xHTML if found
26
32
  const xHtmlString = getXHtmlString(qItem);
27
33
  if (xHtmlString) {
28
34
  return React.createElement(Box, null, parse(xHtmlString));
29
35
  }
30
- // parse xHTML if found
36
+ // parse markdown if found
31
37
  const markdownString = getMarkdownString(qItem);
32
38
  if (markdownString) {
33
39
  return (React.createElement(Box, null,
@@ -1 +1 @@
1
- {"version":3,"file":"ItemLabelText.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemLabelText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAOlD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,KAAyB;IACzE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElC,uBAAuB;IACvB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,WAAW,EAAE;QACf,OAAO,oBAAC,GAAG,QAAE,KAAK,CAAC,WAAW,CAAC,CAAO,CAAC;KACxC;IAED,uBAAuB;IACvB,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE;QAClB,OAAO,CACL,oBAAC,GAAG;YACF,oBAAC,aAAa,QAAE,cAAc,CAAiB,CAC3C,CACP,CAAC;KACH;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,OAAO,0CAAG,KAAK,CAAC,IAAI,CAAI,CAAC;KAC1B;IAED,qBAAqB;IACrB,OAAO,CACL,oBAAC,UAAU,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAC7E,KAAK,CAAC,IAAI,CACA,CACd,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ItemLabelText.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemLabelText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,8BAA8B,MAAM,+CAA+C,CAAC;AAO3F,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,KAAyB;IACzE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElC,8CAA8C;IAC9C,MAAM,0BAA0B,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IACzE,IAAI,0BAA0B,EAAE;QAC9B,OAAO,CACL,oBAAC,UAAU,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAC7E,0BAA0B,CAChB,CACd,CAAC;KACH;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,WAAW,EAAE;QACf,OAAO,oBAAC,GAAG,QAAE,KAAK,CAAC,WAAW,CAAC,CAAO,CAAC;KACxC;IAED,0BAA0B;IAC1B,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE;QAClB,OAAO,CACL,oBAAC,GAAG;YACF,oBAAC,aAAa,QAAE,cAAc,CAAiB,CAC3C,CACP,CAAC;KACH;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,OAAO,0CAAG,KAAK,CAAC,IAAI,CAAI,CAAC;KAC1B;IAED,qBAAqB;IACrB,OAAO,CACL,oBAAC,UAAU,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAC7E,KAAK,CAAC,IAAI,CACA,CACd,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -22,9 +22,13 @@ function useDecimalCalculatedExpression(props) {
22
22
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
23
23
  const [calcExpUpdated, setCalcExpUpdated] = useState(false);
24
24
  useEffect(() => {
25
- const calcExpression = calculatedExpressions[qItem.linkId];
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
+ }
26
30
  // only update if calculated value is different from current value
27
- if ((calcExpression === null || calcExpression === void 0 ? void 0 : calcExpression.value) !== inputValue && typeof (calcExpression === null || calcExpression === void 0 ? void 0 : calcExpression.value) === 'number') {
31
+ if (calcExpression.value !== inputValue && typeof calcExpression.value === 'number') {
28
32
  const value = precision
29
33
  ? parseFloat(calcExpression.value.toFixed(precision))
30
34
  : calcExpression.value;
@@ -1 +1 @@
1
- {"version":3,"file":"useDecimalCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useDecimalCalculatedExpression.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;AAclD,SAAS,8BAA8B,CACrC,KAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE9E,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,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3D,kEAAkE;QAClE,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,MAAK,UAAU,IAAI,OAAO,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAA,KAAK,QAAQ,EAAE;YACrF,MAAM,KAAK,GAAG,SAAS;gBACrB,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YAEzB,kEAAkE;YAClE,IAAI,KAAK,KAAK,UAAU,CAAC,UAAU,CAAC,EAAE;gBACpC,6CAA6C;gBAC7C,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE;oBACd,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;gBAER,+BAA+B;gBAC/B,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvE,cAAc,iCACT,iBAAiB,CAAC,KAAK,CAAC,KAC3B,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,IACjC,CAAC;aACJ;SACF;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"}
1
+ {"version":3,"file":"useDecimalCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useDecimalCalculatedExpression.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;AAclD,SAAS,8BAA8B,CACrC,KAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE9E,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,UAAU,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnF,MAAM,KAAK,GAAG,SAAS;gBACrB,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YAEzB,kEAAkE;YAClE,IAAI,KAAK,KAAK,UAAU,CAAC,UAAU,CAAC,EAAE;gBACpC,6CAA6C;gBAC7C,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE;oBACd,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;gBAER,+BAA+B;gBAC/B,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvE,cAAc,iCACT,iBAAiB,CAAC,KAAK,CAAC,KAC3B,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,IACjC,CAAC;aACJ;SACF;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,3 @@
1
+ import type { QuestionnaireItem } from 'fhir/r4';
2
+ declare function useDisplayCalculatedExpression(qItem: QuestionnaireItem): string | null;
3
+ export default useDisplayCalculatedExpression;
@@ -0,0 +1,33 @@
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 { useQuestionnaireStore } from '../stores';
18
+ function useDisplayCalculatedExpression(qItem) {
19
+ var _a;
20
+ const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
21
+ const calcExpression = (_a = calculatedExpressions[qItem.linkId]) === null || _a === void 0 ? void 0 : _a.find((exp) => exp.from === 'item._text');
22
+ if (!calcExpression) {
23
+ return null;
24
+ }
25
+ if (typeof calcExpression.value === 'string' || typeof calcExpression.value === 'number') {
26
+ return typeof calcExpression.value === 'string'
27
+ ? calcExpression.value
28
+ : calcExpression.value.toString();
29
+ }
30
+ return null;
31
+ }
32
+ export default useDisplayCalculatedExpression;
33
+ //# sourceMappingURL=useDisplayCalculatedExpression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDisplayCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useDisplayCalculatedExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGlD,SAAS,8BAA8B,CAAC,KAAwB;;IAC9D,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAEhF,MAAM,cAAc,GAAG,MAAA,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAE,IAAI,CAC9D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CACnC,CAAC;IACF,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;QACxF,OAAO,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ;YAC7C,CAAC,CAAC,cAAc,CAAC,KAAK;YACtB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KACrC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,8BAA8B,CAAC"}
@@ -22,9 +22,13 @@ function useIntegerCalculatedExpression(props) {
22
22
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
23
23
  const [calcExpUpdated, setCalcExpUpdated] = useState(false);
24
24
  useEffect(() => {
25
- const calcExpression = calculatedExpressions[qItem.linkId];
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
+ }
26
30
  // only update if calculated value is different from current value
27
- if ((calcExpression === null || calcExpression === void 0 ? void 0 : calcExpression.value) !== inputValue && typeof (calcExpression === null || calcExpression === void 0 ? void 0 : calcExpression.value) === 'number') {
31
+ if (calcExpression.value !== inputValue && typeof calcExpression.value === 'number') {
28
32
  // update ui to show calculated value changes
29
33
  setCalcExpUpdated(true);
30
34
  setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useIntegerCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useIntegerCalculatedExpression.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,8BAA8B,CAAC;AAarE,SAAS,8BAA8B,CACrC,KAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEnE,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,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3D,kEAAkE;QAClE,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,MAAK,UAAU,IAAI,OAAO,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAA,KAAK,QAAQ,EAAE;YACrF,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,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,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"}
1
+ {"version":3,"file":"useIntegerCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useIntegerCalculatedExpression.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,8BAA8B,CAAC;AAarE,SAAS,8BAA8B,CACrC,KAA0C;IAE1C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEnE,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,UAAU,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnF,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,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,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"}
@@ -16,23 +16,31 @@
16
16
  */
17
17
  import { useEffect, useState } from 'react';
18
18
  import { createEmptyQrItem } from '../utils/qrItem';
19
- import { useQuestionnaireStore } from '../stores/questionnaireStore';
19
+ import { useQuestionnaireStore } from '../stores';
20
20
  function useStringCalculatedExpression(props) {
21
21
  const { qItem, inputValue, setInputValue, onQrItemChange } = props;
22
22
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
23
23
  const [calcExpUpdated, setCalcExpUpdated] = useState(false);
24
24
  useEffect(() => {
25
- const calcExpression = calculatedExpressions[qItem.linkId];
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
+ }
26
30
  // only update if calculated value is different from current value
27
- if ((calcExpression === null || calcExpression === void 0 ? void 0 : calcExpression.value) !== inputValue && typeof (calcExpression === null || calcExpression === void 0 ? void 0 : calcExpression.value) === 'string') {
31
+ if (calcExpression.value !== inputValue &&
32
+ (typeof calcExpression.value === 'string' || typeof calcExpression.value === 'number')) {
28
33
  // update ui to show calculated value changes
29
34
  setCalcExpUpdated(true);
30
35
  setTimeout(() => {
31
36
  setCalcExpUpdated(false);
32
37
  }, 500);
38
+ const updatedInputValue = typeof calcExpression.value === 'string'
39
+ ? calcExpression.value
40
+ : calcExpression.value.toString();
33
41
  // update questionnaireResponse
34
- setInputValue(calcExpression.value);
35
- onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: calcExpression.value }] }));
42
+ setInputValue(updatedInputValue);
43
+ onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: updatedInputValue }] }));
36
44
  }
37
45
  },
38
46
  // Only trigger this effect if calculatedExpression of item changes
@@ -1 +1 @@
1
- {"version":3,"file":"useStringCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useStringCalculatedExpression.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,8BAA8B,CAAC;AAarE,SAAS,6BAA6B,CACpC,KAAyC;IAEzC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEnE,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,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3D,kEAAkE;QAClE,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,MAAK,UAAU,IAAI,OAAO,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,CAAA,KAAK,QAAQ,EAAE;YACrF,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,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,cAAc,iCACT,iBAAiB,CAAC,KAAK,CAAC,KAC3B,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,IAC/C,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,6BAA6B,CAAC"}
1
+ {"version":3,"file":"useStringCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useStringCalculatedExpression.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;AAalD,SAAS,6BAA6B,CACpC,KAAyC;IAEzC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEnE,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,UAAU;YACnC,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,iBAAiB,GACrB,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,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACjC,cAAc,iCACT,iBAAiB,CAAC,KAAK,CAAC,KAC3B,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,IAC5C,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,6BAA6B,CAAC"}
@@ -16,7 +16,7 @@
16
16
  */
17
17
  import { useEffect, useMemo, useState } from 'react';
18
18
  import { getResourceFromLaunchContext, getTerminologyServerUrl, getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
19
- import { getAnswerExpression } from '../utils/itemControl';
19
+ import { getAnswerExpression } from '../utils/getExpressionsFromItem';
20
20
  import fhirpath from 'fhirpath';
21
21
  import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
22
22
  import { useQuestionnaireStore, useSmartConfigStore, useTerminologyServerStore } from '../stores';
@@ -1 +1 @@
1
- {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["../../src/hooks/useValueSetCodings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["../../src/hooks/useValueSetCodings.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export interface CalculatedExpression {
2
2
  expression: string;
3
+ from: 'item' | 'item._text';
3
4
  value?: number | string | object;
4
5
  }
@@ -12,7 +12,7 @@ export interface QuestionnaireModel {
12
12
  launchContexts: Record<string, LaunchContext>;
13
13
  enableWhenItems: EnableWhenItems;
14
14
  enableWhenExpressions: EnableWhenExpressions;
15
- calculatedExpressions: Record<string, CalculatedExpression>;
15
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
16
16
  answerExpressions: Record<string, AnswerExpression>;
17
17
  processedValueSetCodings: Record<string, Coding[]>;
18
18
  processedValueSetUrls: Record<string, string>;
@@ -16,7 +16,7 @@ interface QuestionnaireStoreType {
16
16
  enableWhenLinkedQuestions: Record<string, string[]>;
17
17
  enableWhenIsActivated: boolean;
18
18
  enableWhenExpressions: EnableWhenExpressions;
19
- calculatedExpressions: Record<string, CalculatedExpression>;
19
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
20
20
  answerExpressions: Record<string, AnswerExpression>;
21
21
  processedValueSetCodings: Record<string, Coding[]>;
22
22
  processedValueSetUrls: Record<string, string>;
@@ -49,7 +49,7 @@ export declare const useQuestionnaireStore: import("zustand/vanilla").StoreApi<Q
49
49
  enableWhenLinkedQuestions: () => Record<string, string[]>;
50
50
  enableWhenIsActivated: () => boolean;
51
51
  enableWhenExpressions: () => EnableWhenExpressions;
52
- calculatedExpressions: () => Record<string, CalculatedExpression>;
52
+ calculatedExpressions: () => Record<string, CalculatedExpression[]>;
53
53
  answerExpressions: () => Record<string, AnswerExpression>;
54
54
  processedValueSetCodings: () => Record<string, Coding[]>;
55
55
  processedValueSetUrls: () => Record<string, string>;
@@ -2,19 +2,19 @@ import type { CalculatedExpression } from '../interfaces/calculatedExpression.in
2
2
  import type { Expression, Questionnaire, QuestionnaireResponse } from 'fhir/r4';
3
3
  interface EvaluateInitialCalculatedExpressionsParams {
4
4
  initialResponse: QuestionnaireResponse;
5
- calculatedExpressions: Record<string, CalculatedExpression>;
5
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
6
6
  variablesFhirPath: Record<string, Expression[]>;
7
7
  existingFhirPathContext: Record<string, any>;
8
8
  }
9
9
  export declare function evaluateInitialCalculatedExpressions(params: EvaluateInitialCalculatedExpressionsParams): {
10
- initialCalculatedExpressions: Record<string, CalculatedExpression>;
10
+ initialCalculatedExpressions: Record<string, CalculatedExpression[]>;
11
11
  updatedFhirPathContext: Record<string, any>;
12
12
  };
13
- export declare function evaluateCalculatedExpressions(fhirPathContext: Record<string, any>, calculatedExpressions: Record<string, CalculatedExpression>): {
13
+ export declare function evaluateCalculatedExpressions(fhirPathContext: Record<string, any>, calculatedExpressions: Record<string, CalculatedExpression[]>): {
14
14
  calculatedExpsIsUpdated: boolean;
15
- updatedCalculatedExpressions: Record<string, CalculatedExpression>;
15
+ updatedCalculatedExpressions: Record<string, CalculatedExpression[]>;
16
16
  };
17
- export declare function initialiseCalculatedExpressionValues(questionnaire: Questionnaire, populatedResponse: QuestionnaireResponse, calculatedExpressions: Record<string, CalculatedExpression>): QuestionnaireResponse;
17
+ export declare function initialiseCalculatedExpressionValues(questionnaire: Questionnaire, populatedResponse: QuestionnaireResponse, calculatedExpressions: Record<string, CalculatedExpression[]>): QuestionnaireResponse;
18
18
  /**
19
19
  * Check if an answer is a datetime in the format YYYY, YYYY-MM, YYYY-MM-DD, YYYY-MM-DDThh:mm:ss+zz:zz
20
20
  *
@@ -36,15 +36,19 @@ export function evaluateInitialCalculatedExpressions(params) {
36
36
  const initialCalculatedExpressions = Object.assign({}, calculatedExpressions);
37
37
  const updatedFhirPathContext = createFhirPathContext(initialResponse, variablesFhirPath, existingFhirPathContext);
38
38
  for (const linkId in initialCalculatedExpressions) {
39
- try {
40
- const result = fhirpath.evaluate(initialResponse, calculatedExpressions[linkId].expression, updatedFhirPathContext, fhirpath_r4_model);
41
- if (!_isEqual(calculatedExpressions[linkId].value, result[0])) {
42
- initialCalculatedExpressions[linkId].value = result[0];
39
+ const itemCalcExpressions = calculatedExpressions[linkId];
40
+ for (const calcExpression of itemCalcExpressions) {
41
+ try {
42
+ const result = fhirpath.evaluate({}, calcExpression.expression, updatedFhirPathContext, fhirpath_r4_model);
43
+ if (!_isEqual(calcExpression.value, result[0])) {
44
+ calcExpression.value = result[0];
45
+ }
46
+ }
47
+ catch (e) {
48
+ console.warn(e.message, `LinkId: ${linkId}\nExpression: ${calcExpression.expression}`);
43
49
  }
44
50
  }
45
- catch (e) {
46
- console.warn(e.message, `LinkId: ${linkId}\nExpression: ${calculatedExpressions[linkId].expression}`);
47
- }
51
+ initialCalculatedExpressions[linkId] = itemCalcExpressions;
48
52
  }
49
53
  return {
50
54
  initialCalculatedExpressions,
@@ -55,18 +59,22 @@ export function evaluateCalculatedExpressions(fhirPathContext, calculatedExpress
55
59
  const updatedCalculatedExpressions = Object.assign({}, calculatedExpressions);
56
60
  let isUpdated = false;
57
61
  for (const linkId in calculatedExpressions) {
58
- try {
59
- const result = fhirpath.evaluate('', calculatedExpressions[linkId].expression, fhirPathContext, fhirpath_r4_model);
60
- if (result.length > 0) {
61
- if (!_isEqual(calculatedExpressions[linkId].value, result[0])) {
62
- isUpdated = true;
63
- updatedCalculatedExpressions[linkId].value = result[0];
62
+ const itemCalcExpressions = calculatedExpressions[linkId];
63
+ for (const calcExpression of itemCalcExpressions) {
64
+ try {
65
+ const result = fhirpath.evaluate({}, calcExpression.expression, fhirPathContext, fhirpath_r4_model);
66
+ if (result.length > 0) {
67
+ if (!_isEqual(calcExpression.value, result[0])) {
68
+ isUpdated = true;
69
+ calcExpression.value = result[0];
70
+ }
64
71
  }
65
72
  }
73
+ catch (e) {
74
+ console.warn(e.message, `LinkId: ${linkId}\nExpression: ${calcExpression.expression}`);
75
+ }
66
76
  }
67
- catch (e) {
68
- console.warn(e.message, `LinkId: ${linkId}\nExpression: ${calculatedExpressions[linkId].expression}`);
69
- }
77
+ updatedCalculatedExpressions[linkId] = itemCalcExpressions;
70
78
  }
71
79
  return {
72
80
  calculatedExpsIsUpdated: isUpdated,
@@ -75,15 +83,21 @@ export function evaluateCalculatedExpressions(fhirPathContext, calculatedExpress
75
83
  }
76
84
  export function initialiseCalculatedExpressionValues(questionnaire, populatedResponse, calculatedExpressions) {
77
85
  var _a;
78
- const calculatedExpressionsWithValues = Object.keys(calculatedExpressions)
79
- .filter((key) => calculatedExpressions[key].value !== undefined)
80
- .reduce((mapping, key) => ((mapping[key] = calculatedExpressions[key]), mapping), {});
81
86
  if (!questionnaire.item ||
82
87
  questionnaire.item.length === 0 ||
83
88
  !populatedResponse.item ||
84
89
  populatedResponse.item.length === 0) {
85
90
  return populatedResponse;
86
91
  }
92
+ // Filter calculated expressions, only preserve key-value pairs with values
93
+ const calculatedExpressionsWithValues = {};
94
+ for (const linkId in calculatedExpressions) {
95
+ const itemCalcExpressionsWithValues = calculatedExpressions[linkId].filter((calcExpression) => calcExpression.value !== undefined);
96
+ if (itemCalcExpressionsWithValues.length > 0) {
97
+ calculatedExpressionsWithValues[linkId] = itemCalcExpressionsWithValues;
98
+ }
99
+ }
100
+ // Populate calculated expression values into QR
87
101
  const topLevelQrItems = [];
88
102
  for (const [index, topLevelQItem] of questionnaire.item.entries()) {
89
103
  const populatedTopLevelQrItem = (_a = populatedResponse.item[index]) !== null && _a !== void 0 ? _a : {
@@ -137,12 +151,16 @@ function initialiseItemCalculatedExpressionValueRecursive(qItem, qrItem, calcula
137
151
  }
138
152
  return constructSingleItem(qItem, calculatedExpressions);
139
153
  }
140
- function constructGroupItem(qItem, qrItem, calculatedExpressions) {
141
- const itemCalculatedExpression = calculatedExpressions[qItem.linkId];
142
- let calculatedExpressionAnswer;
143
- if (itemCalculatedExpression && itemCalculatedExpression.value) {
144
- calculatedExpressionAnswer = parseValueToAnswer(qItem, itemCalculatedExpression.value);
154
+ function getCalculatedExpressionAnswer(qItem, calculatedExpressions) {
155
+ var _a;
156
+ const calcExpressionFromItem = (_a = calculatedExpressions[qItem.linkId]) === null || _a === void 0 ? void 0 : _a.find((calcExpression) => calcExpression.from === 'item');
157
+ if (calcExpressionFromItem && calcExpressionFromItem.value) {
158
+ return parseValueToAnswer(qItem, calcExpressionFromItem.value);
145
159
  }
160
+ return;
161
+ }
162
+ function constructGroupItem(qItem, qrItem, calculatedExpressions) {
163
+ const calculatedExpressionAnswer = getCalculatedExpressionAnswer(qItem, calculatedExpressions);
146
164
  // If group item has an existing answer, do not overwrite it with calculated expression value
147
165
  if ((qrItem === null || qrItem === void 0 ? void 0 : qrItem.answer) && (qrItem === null || qrItem === void 0 ? void 0 : qrItem.answer.length) > 0) {
148
166
  return qrItem !== null && qrItem !== void 0 ? qrItem : null;
@@ -160,11 +178,7 @@ function constructGroupItem(qItem, qrItem, calculatedExpressions) {
160
178
  };
161
179
  }
162
180
  function constructSingleItem(qItem, calculatedExpressions) {
163
- const itemCalculatedExpression = calculatedExpressions[qItem.linkId];
164
- let calculatedExpressionAnswer;
165
- if (itemCalculatedExpression && itemCalculatedExpression.value) {
166
- calculatedExpressionAnswer = parseValueToAnswer(qItem, itemCalculatedExpression.value);
167
- }
181
+ const calculatedExpressionAnswer = getCalculatedExpressionAnswer(qItem, calculatedExpressions);
168
182
  if (!calculatedExpressionAnswer) {
169
183
  return null;
170
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { CalculatedExpression } from '../interfaces/calculatedExpression.in
3
3
  import type { EnableWhenExpressions } from '../interfaces';
4
4
  interface EvaluateUpdatedExpressionsParams {
5
5
  updatedResponse: QuestionnaireResponse;
6
- calculatedExpressions: Record<string, CalculatedExpression>;
6
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
7
7
  enableWhenExpressions: EnableWhenExpressions;
8
8
  variablesFhirPath: Record<string, Expression[]>;
9
9
  existingFhirPathContext: Record<string, any>;
@@ -11,7 +11,7 @@ interface EvaluateUpdatedExpressionsParams {
11
11
  export declare function evaluateUpdatedExpressions(params: EvaluateUpdatedExpressionsParams): {
12
12
  isUpdated: boolean;
13
13
  updatedEnableWhenExpressions: EnableWhenExpressions;
14
- updatedCalculatedExpressions: Record<string, CalculatedExpression>;
14
+ updatedCalculatedExpressions: Record<string, CalculatedExpression[]>;
15
15
  updatedFhirPathContext: Record<string, any>;
16
16
  };
17
17
  export declare function createFhirPathContext(questionnaireResponse: QuestionnaireResponse, variablesFhirPath: Record<string, Expression[]>, existingFhirPathContext: Record<string, any>): Record<string, any>;
@@ -0,0 +1,20 @@
1
+ import type { Expression, QuestionnaireItem } from 'fhir/r4';
2
+ import type { CalculatedExpression } from '../interfaces/calculatedExpression.interface';
3
+ /**
4
+ * Get enableWhenExpression.valueExpression if its present in item
5
+ *
6
+ * @author Sean Fong
7
+ */
8
+ export declare function getEnableWhenExpression(qItem: QuestionnaireItem): Expression | null;
9
+ /**
10
+ * Get calculatedExpression.valueExpression if its present in item or item._text
11
+ *
12
+ * @author Sean Fong
13
+ */
14
+ export declare function getCalculatedExpressions(qItem: QuestionnaireItem): CalculatedExpression[];
15
+ /**
16
+ * Get answerExpression.valueExpression if its present in item
17
+ *
18
+ * @author Sean Fong
19
+ */
20
+ export declare function getAnswerExpression(qItem: QuestionnaireItem): Expression | null;
@@ -0,0 +1,90 @@
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
+ * Get enableWhenExpression.valueExpression if its present in item
19
+ *
20
+ * @author Sean Fong
21
+ */
22
+ export function getEnableWhenExpression(qItem) {
23
+ var _a;
24
+ const enableWhenExpression = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => {
25
+ var _a;
26
+ return extension.url ===
27
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression' &&
28
+ ((_a = extension.valueExpression) === null || _a === void 0 ? void 0 : _a.language) === 'text/fhirpath';
29
+ });
30
+ if (enableWhenExpression === null || enableWhenExpression === void 0 ? void 0 : enableWhenExpression.valueExpression) {
31
+ return enableWhenExpression.valueExpression;
32
+ }
33
+ return null;
34
+ }
35
+ /**
36
+ * Get calculatedExpression.valueExpression if its present in item or item._text
37
+ *
38
+ * @author Sean Fong
39
+ */
40
+ export function getCalculatedExpressions(qItem) {
41
+ var _a, _b, _c;
42
+ const calculatedExpressionsInItem = findCalculatedExpressionsInExtensions((_a = qItem.extension) !== null && _a !== void 0 ? _a : [])
43
+ .map((calculatedExpression) => {
44
+ var _a, _b;
45
+ return ({
46
+ expression: (_b = (_a = calculatedExpression.valueExpression) === null || _a === void 0 ? void 0 : _a.expression) !== null && _b !== void 0 ? _b : '',
47
+ from: 'item'
48
+ });
49
+ })
50
+ .filter((calculatedExpression) => calculatedExpression.expression !== '');
51
+ const calculatedExpressionsInText = findCalculatedExpressionsInExtensions((_c = (_b = qItem._text) === null || _b === void 0 ? void 0 : _b.extension) !== null && _c !== void 0 ? _c : [])
52
+ .map((calculatedExpression) => {
53
+ var _a, _b;
54
+ return ({
55
+ expression: (_b = (_a = calculatedExpression.valueExpression) === null || _a === void 0 ? void 0 : _a.expression) !== null && _b !== void 0 ? _b : '',
56
+ from: 'item._text'
57
+ });
58
+ })
59
+ .filter((calculatedExpression) => calculatedExpression.expression !== '');
60
+ return [...calculatedExpressionsInItem, ...calculatedExpressionsInText];
61
+ }
62
+ function findCalculatedExpressionsInExtensions(extensions) {
63
+ return extensions.filter((extension) => {
64
+ var _a;
65
+ return extension.url ===
66
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-calculatedExpression' &&
67
+ ((_a = extension.valueExpression) === null || _a === void 0 ? void 0 : _a.language) === 'text/fhirpath';
68
+ });
69
+ }
70
+ /**
71
+ * Get answerExpression.valueExpression if its present in item
72
+ *
73
+ * @author Sean Fong
74
+ */
75
+ export function getAnswerExpression(qItem) {
76
+ var _a;
77
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => {
78
+ var _a;
79
+ return extension.url ===
80
+ 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-answerExpression' &&
81
+ ((_a = extension.valueExpression) === null || _a === void 0 ? void 0 : _a.language) === 'text/fhirpath';
82
+ });
83
+ if (itemControl) {
84
+ if (itemControl.valueExpression) {
85
+ return itemControl.valueExpression;
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ //# sourceMappingURL=getExpressionsFromItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExpressionsFromItem.js","sourceRoot":"","sources":["../../src/utils/getExpressionsFromItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAwB;;IAC9D,MAAM,oBAAoB,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAChD,CAAC,SAAoB,EAAE,EAAE;;QACvB,OAAA,SAAS,CAAC,GAAG;YACX,uFAAuF;YACzF,CAAA,MAAA,SAAS,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAA;KAAA,CAC1D,CAAC;IAEF,IAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,eAAe,EAAE;QACzC,OAAO,oBAAoB,CAAC,eAAe,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAwB;;IAC/D,MAAM,2BAA2B,GAAG,qCAAqC,CAAC,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,CAAC;SAC7F,GAAG,CACF,CAAC,oBAAoB,EAAwB,EAAE;;QAAC,OAAA,CAAC;YAC/C,UAAU,EAAE,MAAA,MAAA,oBAAoB,CAAC,eAAe,0CAAE,UAAU,mCAAI,EAAE;YAClE,IAAI,EAAE,MAAM;SACb,CAAC,CAAA;KAAA,CACH;SACA,MAAM,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;IAE5E,MAAM,2BAA2B,GAAG,qCAAqC,CACvE,MAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAC7B;SACE,GAAG,CACF,CAAC,oBAAoB,EAAwB,EAAE;;QAAC,OAAA,CAAC;YAC/C,UAAU,EAAE,MAAA,MAAA,oBAAoB,CAAC,eAAe,0CAAE,UAAU,mCAAI,EAAE;YAClE,IAAI,EAAE,YAAY;SACnB,CAAC,CAAA;KAAA,CACH;SACA,MAAM,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;IAE5E,OAAO,CAAC,GAAG,2BAA2B,EAAE,GAAG,2BAA2B,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,qCAAqC,CAAC,UAAuB;IACpE,OAAO,UAAU,CAAC,MAAM,CACtB,CAAC,SAAS,EAAE,EAAE;;QACZ,OAAA,SAAS,CAAC,GAAG;YACX,uFAAuF;YACzF,CAAA,MAAA,SAAS,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAA;KAAA,CAC1D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAwB;;IAC1D,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CACvC,CAAC,SAAoB,EAAE,EAAE;;QACvB,OAAA,SAAS,CAAC,GAAG;YACX,mFAAmF;YACrF,CAAA,MAAA,SAAS,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAA;KAAA,CAC1D,CAAC;IACF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,eAAe,EAAE;YAC/B,OAAO,WAAW,CAAC,eAAe,CAAC;SACpC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -13,7 +13,7 @@ export interface initialFormFromResponseParams {
13
13
  questionnaireResponse: QuestionnaireResponse;
14
14
  enableWhenItems: EnableWhenItems;
15
15
  enableWhenExpressions: EnableWhenExpressions;
16
- calculatedExpressions: Record<string, CalculatedExpression>;
16
+ calculatedExpressions: Record<string, CalculatedExpression[]>;
17
17
  variablesFhirPath: Record<string, Expression[]>;
18
18
  tabs: Tabs;
19
19
  fhirPathContext: Record<string, any>;
@@ -22,7 +22,7 @@ export declare function initialiseFormFromResponse(params: initialFormFromRespon
22
22
  initialEnableWhenItems: EnableWhenItems;
23
23
  initialEnableWhenLinkedQuestions: Record<string, string[]>;
24
24
  initialEnableWhenExpressions: EnableWhenExpressions;
25
- initialCalculatedExpressions: Record<string, CalculatedExpression>;
25
+ initialCalculatedExpressions: Record<string, CalculatedExpression[]>;
26
26
  firstVisibleTab: number;
27
27
  updatedFhirPathContext: Record<string, any>;
28
28
  };