@aehrc/smart-forms-renderer 0.25.2 → 0.26.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.
Files changed (79) hide show
  1. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +6 -1
  2. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  3. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +5 -2
  4. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  5. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +5 -2
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +5 -2
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +5 -2
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  11. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +9 -3
  12. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  13. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +7 -3
  14. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  15. package/lib/components/FormComponents/StringItem/StringItem.js +7 -3
  16. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  17. package/lib/components/FormComponents/TextItem/TextItem.js +7 -3
  18. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  19. package/lib/hooks/useBooleanCalculatedExpression.d.ts +5 -4
  20. package/lib/hooks/useBooleanCalculatedExpression.js +12 -7
  21. package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -1
  22. package/lib/hooks/useCodingCalculatedExpression.d.ts +4 -3
  23. package/lib/hooks/useCodingCalculatedExpression.js +14 -7
  24. package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
  25. package/lib/hooks/useDecimalCalculatedExpression.d.ts +3 -3
  26. package/lib/hooks/useDecimalCalculatedExpression.js +11 -7
  27. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  28. package/lib/hooks/useDisplayCalculatedExpression.js +8 -1
  29. package/lib/hooks/useDisplayCalculatedExpression.js.map +1 -1
  30. package/lib/hooks/useIntegerCalculatedExpression.d.ts +3 -3
  31. package/lib/hooks/useIntegerCalculatedExpression.js +11 -7
  32. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  33. package/lib/hooks/useStringCalculatedExpression.d.ts +3 -3
  34. package/lib/hooks/useStringCalculatedExpression.js +12 -7
  35. package/lib/hooks/useStringCalculatedExpression.js.map +1 -1
  36. package/lib/interfaces/calculatedExpression.interface.d.ts +1 -1
  37. package/lib/stores/questionnaireResponseStore.d.ts +3 -1
  38. package/lib/stores/questionnaireResponseStore.js +9 -1
  39. package/lib/stores/questionnaireResponseStore.js.map +1 -1
  40. package/lib/stores/questionnaireStore.js +6 -0
  41. package/lib/stores/questionnaireStore.js.map +1 -1
  42. package/lib/utils/calculatedExpression.d.ts +2 -1
  43. package/lib/utils/calculatedExpression.js +14 -8
  44. package/lib/utils/calculatedExpression.js.map +1 -1
  45. package/lib/utils/enableWhenExpression.d.ts +3 -2
  46. package/lib/utils/enableWhenExpression.js +15 -5
  47. package/lib/utils/enableWhenExpression.js.map +1 -1
  48. package/lib/utils/fhirpath.d.ts +5 -4
  49. package/lib/utils/fhirpath.js +45 -33
  50. package/lib/utils/fhirpath.js.map +1 -1
  51. package/lib/utils/initialise.js +5 -2
  52. package/lib/utils/initialise.js.map +1 -1
  53. package/lib/utils/parseInputs.js +1 -1
  54. package/lib/utils/parseInputs.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +9 -1
  57. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +5 -2
  58. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +5 -2
  59. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +5 -2
  60. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +5 -2
  61. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +14 -3
  62. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +10 -3
  63. package/src/components/FormComponents/StringItem/StringItem.tsx +10 -3
  64. package/src/components/FormComponents/TextItem/TextItem.tsx +10 -3
  65. package/src/hooks/useBooleanCalculatedExpression.ts +19 -12
  66. package/src/hooks/useCodingCalculatedExpression.ts +18 -8
  67. package/src/hooks/useDecimalCalculatedExpression.ts +26 -17
  68. package/src/hooks/useDisplayCalculatedExpression.ts +12 -1
  69. package/src/hooks/useIntegerCalculatedExpression.ts +18 -13
  70. package/src/hooks/useStringCalculatedExpression.ts +16 -13
  71. package/src/interfaces/calculatedExpression.interface.ts +1 -1
  72. package/src/stores/questionnaireResponseStore.ts +16 -2
  73. package/src/stores/questionnaireStore.ts +7 -0
  74. package/src/utils/calculatedExpression.ts +24 -10
  75. package/src/utils/enableWhenExpression.ts +22 -9
  76. package/src/utils/fhirpath.ts +62 -41
  77. package/src/utils/initialise.ts +5 -2
  78. package/src/utils/parseInputs.ts +1 -1
  79. package/src/utils/questionnaireResponseStoreUtils/updatableResponseItems.ts +62 -0
@@ -1 +1 @@
1
- {"version":3,"file":"fhirpath.js","sourceRoot":"","sources":["../../src/utils/fhirpath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fhirpath.js","sourceRoot":"","sources":["../../src/utils/fhirpath.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import { evaluateInitialEnableWhenExpressions } from './enableWhenExpression';
18
18
  import { getFirstVisibleTab } from './tabs';
19
19
  import { assignPopulatedAnswersToEnableWhen } from './enableWhen';
20
20
  import { evaluateInitialCalculatedExpressions } from './calculatedExpression';
21
+ import { createQuestionnaireResponseItemMap } from './questionnaireResponseStoreUtils/updatableResponseItems';
21
22
  /**
22
23
  * Initialise a conformant questionnaireResponse from a given questionnaire
23
24
  * optionally takes in an existing questionnaireResponse to be initialised
@@ -241,18 +242,20 @@ function createNewRepeatGroupQuestionnaireResponseItem(qItem, initialValueItems)
241
242
  }
242
243
  export function initialiseFormFromResponse(params) {
243
244
  const { questionnaireResponse, enableWhenItems, enableWhenExpressions, calculatedExpressions, variablesFhirPath, tabs } = params;
245
+ const initialResponseItemMap = createQuestionnaireResponseItemMap(questionnaireResponse);
244
246
  let updatedFhirPathContext = params.fhirPathContext;
245
247
  const { initialisedItems, linkedQuestions } = assignPopulatedAnswersToEnableWhen(enableWhenItems, questionnaireResponse);
246
248
  const evaluateInitialEnableWhenExpressionsResult = evaluateInitialEnableWhenExpressions({
247
249
  initialResponse: questionnaireResponse,
250
+ initialResponseItemMap: initialResponseItemMap,
248
251
  enableWhenExpressions: enableWhenExpressions,
249
- variablesFhirPath: variablesFhirPath,
250
- existingFhirPathContext: updatedFhirPathContext
252
+ variablesFhirPath: variablesFhirPath
251
253
  });
252
254
  const { initialEnableWhenExpressions } = evaluateInitialEnableWhenExpressionsResult;
253
255
  updatedFhirPathContext = evaluateInitialEnableWhenExpressionsResult.updatedFhirPathContext;
254
256
  const evaluateInitialCalculatedExpressionsResult = evaluateInitialCalculatedExpressions({
255
257
  initialResponse: questionnaireResponse,
258
+ initialResponseItemMap: initialResponseItemMap,
256
259
  calculatedExpressions: calculatedExpressions,
257
260
  variablesFhirPath: variablesFhirPath,
258
261
  existingFhirPathContext: updatedFhirPathContext
@@ -1 +1 @@
1
- {"version":3,"file":"initialise.js","sourceRoot":"","sources":["../../src/utils/initialise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initialise.js","sourceRoot":"","sources":["../../src/utils/initialise.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export function parseDecimalStringWithPrecision(input, precision) {
48
48
  }
49
49
  // truncate decimal digits based on precision
50
50
  const parsedDecimalPoint = input.indexOf('.');
51
- if (precision && parsedDecimalPoint !== -1) {
51
+ if (typeof precision === 'number' && parsedDecimalPoint !== -1) {
52
52
  parsedInput = parsedInput.substring(0, parsedDecimalPoint + precision + 1);
53
53
  }
54
54
  return parsedInput;
@@ -1 +1 @@
1
- {"version":3,"file":"parseInputs.js","sourceRoot":"","sources":["../../src/utils/parseInputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAa,EAAE,SAAwB;IACrF,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE/C,sDAAsD;IACtD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;QACvB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACnC,WAAW,IAAI,aAAa,CAAC;SAC9B;KACF;IAED,6CAA6C;IAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,SAAS,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;QAC1C,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;KAC5E;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,SAAiB;IACxE,OAAO,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"parseInputs.js","sourceRoot":"","sources":["../../src/utils/parseInputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAa,EAAE,SAAwB;IACrF,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IAED,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE/C,sDAAsD;IACtD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;QACvB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACnC,WAAW,IAAI,aAAa,CAAC;SAC9B;KACF;IAED,6CAA6C;IAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;QAC9D,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;KAC5E;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,SAAiB;IACxE,OAAO,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.25.2",
3
+ "version": "0.26.0",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -54,7 +54,15 @@ function BooleanItem(props: BooleanItemProps) {
54
54
  const { calcExpUpdated } = useBooleanCalculatedExpression({
55
55
  qItem: qItem,
56
56
  booleanValue: valueBoolean,
57
- onQrItemChange: onQrItemChange
57
+ onChangeByCalcExpressionBoolean: (newValueBoolean: boolean) => {
58
+ onQrItemChange({
59
+ ...createEmptyQrItem(qItem),
60
+ answer: [{ valueBoolean: newValueBoolean }]
61
+ });
62
+ },
63
+ onChangeByCalcExpressionNull: () => {
64
+ onQrItemChange(createEmptyQrItem(qItem));
65
+ }
58
66
  });
59
67
 
60
68
  // Event handlers
@@ -57,8 +57,11 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
57
57
  const { calcExpUpdated } = useCodingCalculatedExpression({
58
58
  qItem: qItem,
59
59
  valueInString: valueChoice ?? '',
60
- onChangeByCalcExpression: (newValueInString) => {
61
- handleChange(newValueInString);
60
+ onChangeByCalcExpressionString: (newValueString: string) => {
61
+ handleChange(newValueString);
62
+ },
63
+ onChangeByCalcExpressionNull: () => {
64
+ onQrItemChange(createEmptyQrItem(qItem));
62
65
  }
63
66
  });
64
67
 
@@ -65,8 +65,11 @@ function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps
65
65
  const { calcExpUpdated } = useCodingCalculatedExpression({
66
66
  qItem: qItem,
67
67
  valueInString: valueRadio ?? '',
68
- onChangeByCalcExpression: (newValueInString) => {
69
- handleChange(newValueInString);
68
+ onChangeByCalcExpressionString: (newValueString: string) => {
69
+ handleChange(newValueString);
70
+ },
71
+ onChangeByCalcExpressionNull: () => {
72
+ onQrItemChange(createEmptyQrItem(qItem));
70
73
  }
71
74
  });
72
75
 
@@ -56,8 +56,11 @@ function ChoiceSelectAnswerOptionItem(props: ChoiceSelectAnswerOptionItemProps)
56
56
  const { calcExpUpdated } = useCodingCalculatedExpression({
57
57
  qItem: qItem,
58
58
  valueInString: valueChoice ?? '',
59
- onChangeByCalcExpression: (newValueInString) => {
60
- handleChange(newValueInString);
59
+ onChangeByCalcExpressionString: (newValueString: string) => {
60
+ handleChange(newValueString);
61
+ },
62
+ onChangeByCalcExpressionNull: () => {
63
+ onQrItemChange(createEmptyQrItem(qItem));
61
64
  }
62
65
  });
63
66
 
@@ -87,13 +87,16 @@ function ChoiceSelectAnswerValueSetItem(props: ChoiceSelectAnswerValueSetItemPro
87
87
  const { calcExpUpdated } = useCodingCalculatedExpression({
88
88
  qItem: qItem,
89
89
  valueInString: valueCoding?.code ?? '',
90
- onChangeByCalcExpression: (newValueInString) => {
90
+ onChangeByCalcExpressionString: (newValueString) => {
91
91
  if (codings.length > 0) {
92
- const qrAnswer = findInAnswerOptions(answerOptions, newValueInString);
92
+ const qrAnswer = findInAnswerOptions(answerOptions, newValueString);
93
93
  onQrItemChange(
94
94
  qrAnswer ? { ...createEmptyQrItem(qItem), answer: [qrAnswer] } : createEmptyQrItem(qItem)
95
95
  );
96
96
  }
97
+ },
98
+ onChangeByCalcExpressionNull: () => {
99
+ onQrItemChange(createEmptyQrItem(qItem));
97
100
  }
98
101
  });
99
102
 
@@ -83,10 +83,21 @@ function DecimalItem(props: DecimalItemProps) {
83
83
  qItem: qItem,
84
84
  inputValue: input,
85
85
  precision: precision,
86
- setInputValue: (newInput) => {
87
- setInput(newInput);
86
+ onChangeByCalcExpressionDecimal: (newValueDecimal: number) => {
87
+ setInput(
88
+ typeof precision === 'number'
89
+ ? newValueDecimal.toFixed(precision)
90
+ : newValueDecimal.toString()
91
+ );
92
+ onQrItemChange({
93
+ ...createEmptyQrItem(qItem),
94
+ answer: [{ valueInteger: newValueDecimal }]
95
+ });
88
96
  },
89
- onQrItemChange: onQrItemChange
97
+ onChangeByCalcExpressionNull: () => {
98
+ setInput('');
99
+ onQrItemChange(createEmptyQrItem(qItem));
100
+ }
90
101
  });
91
102
 
92
103
  // Event handlers
@@ -78,10 +78,17 @@ function IntegerItem(props: IntegerItemProps) {
78
78
  const { calcExpUpdated } = useIntegerCalculatedExpression({
79
79
  qItem: qItem,
80
80
  inputValue: input,
81
- setInputValue: (newInput) => {
82
- setInput(newInput);
81
+ onChangeByCalcExpressionInteger: (newValueInteger: number) => {
82
+ setInput(newValueInteger.toString());
83
+ onQrItemChange({
84
+ ...createEmptyQrItem(qItem),
85
+ answer: [{ valueInteger: newValueInteger }]
86
+ });
83
87
  },
84
- onQrItemChange: onQrItemChange
88
+ onChangeByCalcExpressionNull: () => {
89
+ setInput('');
90
+ onQrItemChange(createEmptyQrItem(qItem));
91
+ }
85
92
  });
86
93
 
87
94
  // Event handlers
@@ -66,10 +66,17 @@ function StringItem(props: StringItemProps) {
66
66
  const { calcExpUpdated } = useStringCalculatedExpression({
67
67
  qItem: qItem,
68
68
  inputValue: input,
69
- setInputValue: (value) => {
70
- setInput(value);
69
+ onChangeByCalcExpressionString: (newValueString: string) => {
70
+ setInput(newValueString);
71
+ onQrItemChange({
72
+ ...createEmptyQrItem(qItem),
73
+ answer: [{ valueString: newValueString }]
74
+ });
71
75
  },
72
- onQrItemChange: onQrItemChange
76
+ onChangeByCalcExpressionNull: () => {
77
+ setInput('');
78
+ onQrItemChange(createEmptyQrItem(qItem));
79
+ }
73
80
  });
74
81
 
75
82
  // Event handlers
@@ -65,10 +65,17 @@ function TextItem(props: TextItemProps) {
65
65
  const { calcExpUpdated } = useStringCalculatedExpression({
66
66
  qItem: qItem,
67
67
  inputValue: input,
68
- setInputValue: (value) => {
69
- setInput(value);
68
+ onChangeByCalcExpressionString: (newValueString: string) => {
69
+ setInput(newValueString);
70
+ onQrItemChange({
71
+ ...createEmptyQrItem(qItem),
72
+ answer: [{ valueString: newValueString }]
73
+ });
70
74
  },
71
- onQrItemChange: onQrItemChange
75
+ onChangeByCalcExpressionNull: () => {
76
+ setInput('');
77
+ onQrItemChange(createEmptyQrItem(qItem));
78
+ }
72
79
  });
73
80
 
74
81
  // Event handlers
@@ -16,8 +16,7 @@
16
16
  */
17
17
 
18
18
  import { useEffect, useState } from 'react';
19
- import { createEmptyQrItem } from '../utils/qrItem';
20
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
19
+ import type { QuestionnaireItem } from 'fhir/r4';
21
20
  import { useQuestionnaireStore } from '../stores';
22
21
 
23
22
  interface UseBooleanCalculatedExpression {
@@ -27,13 +26,15 @@ interface UseBooleanCalculatedExpression {
27
26
  interface UseBooleanCalculatedExpressionProps {
28
27
  qItem: QuestionnaireItem;
29
28
  booleanValue: boolean | undefined;
30
- onQrItemChange: (qrItem: QuestionnaireResponseItem) => void;
29
+ onChangeByCalcExpressionBoolean: (newValueBoolean: boolean) => void;
30
+ onChangeByCalcExpressionNull: () => void;
31
31
  }
32
32
 
33
- function UseBooleanCalculatedExpression(
33
+ function useBooleanCalculatedExpression(
34
34
  props: UseBooleanCalculatedExpressionProps
35
35
  ): UseBooleanCalculatedExpression {
36
- const { qItem, booleanValue, onQrItemChange } = props;
36
+ const { qItem, booleanValue, onChangeByCalcExpressionBoolean, onChangeByCalcExpressionNull } =
37
+ props;
37
38
 
38
39
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
39
40
 
@@ -50,18 +51,24 @@ function UseBooleanCalculatedExpression(
50
51
  }
51
52
 
52
53
  // only update if calculated value is different from current value
53
- if (calcExpression.value !== booleanValue && typeof calcExpression.value === 'boolean') {
54
+ if (
55
+ calcExpression.value !== booleanValue &&
56
+ (typeof calcExpression.value === 'boolean' || calcExpression.value === null)
57
+ ) {
54
58
  // update ui to show calculated value changes
55
59
  setCalcExpUpdated(true);
56
60
  setTimeout(() => {
57
61
  setCalcExpUpdated(false);
58
62
  }, 500);
59
63
 
60
- // update questionnaireResponse
61
- onQrItemChange({
62
- ...createEmptyQrItem(qItem),
63
- answer: [{ valueBoolean: calcExpression.value }]
64
- });
64
+ // calculatedExpression value is null
65
+ if (calcExpression.value === null) {
66
+ onChangeByCalcExpressionNull();
67
+ return;
68
+ }
69
+
70
+ // calculatedExpression value is boolean
71
+ onChangeByCalcExpressionBoolean(calcExpression.value);
65
72
  }
66
73
  },
67
74
  // Only trigger this effect if calculatedExpression of item changes
@@ -72,4 +79,4 @@ function UseBooleanCalculatedExpression(
72
79
  return { calcExpUpdated: calcExpUpdated };
73
80
  }
74
81
 
75
- export default UseBooleanCalculatedExpression;
82
+ export default useBooleanCalculatedExpression;
@@ -26,14 +26,16 @@ interface UseCodingCalculatedExpression {
26
26
  interface UseCodingCalculatedExpressionProps {
27
27
  qItem: QuestionnaireItem;
28
28
  valueInString: string;
29
- onChangeByCalcExpression: (newValueInString: string) => void;
29
+ onChangeByCalcExpressionString: (newValueInString: string) => void;
30
+ onChangeByCalcExpressionNull: () => void;
30
31
  }
31
32
 
32
33
  // TODO use this in all choice and open choice items if possible
33
- function UseCodingCalculatedExpression(
34
+ function useCodingCalculatedExpression(
34
35
  props: UseCodingCalculatedExpressionProps
35
36
  ): UseCodingCalculatedExpression {
36
- const { qItem, valueInString, onChangeByCalcExpression } = props;
37
+ const { qItem, valueInString, onChangeByCalcExpressionString, onChangeByCalcExpressionNull } =
38
+ props;
37
39
 
38
40
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
39
41
 
@@ -52,7 +54,9 @@ function UseCodingCalculatedExpression(
52
54
  // only update if calculated value is different from current value
53
55
  if (
54
56
  calcExpression.value !== valueInString &&
55
- (typeof calcExpression.value === 'string' || typeof calcExpression.value === 'number')
57
+ (typeof calcExpression.value === 'string' ||
58
+ typeof calcExpression.value === 'number' ||
59
+ calcExpression.value === null)
56
60
  ) {
57
61
  // update ui to show calculated value changes
58
62
  setCalcExpUpdated(true);
@@ -60,13 +64,19 @@ function UseCodingCalculatedExpression(
60
64
  setCalcExpUpdated(false);
61
65
  }, 500);
62
66
 
63
- const updatedValueInString =
67
+ // calculatedExpression value is null
68
+ if (calcExpression.value === null) {
69
+ onChangeByCalcExpressionNull();
70
+ return;
71
+ }
72
+
73
+ // calculatedExpression value is a string or number
74
+ const newValueString =
64
75
  typeof calcExpression.value === 'string'
65
76
  ? calcExpression.value
66
77
  : calcExpression.value.toString();
67
78
 
68
- // update questionnaireResponse
69
- onChangeByCalcExpression(updatedValueInString);
79
+ onChangeByCalcExpressionString(newValueString);
70
80
  }
71
81
  },
72
82
  // Only trigger this effect if calculatedExpression of item changes
@@ -77,4 +87,4 @@ function UseCodingCalculatedExpression(
77
87
  return { calcExpUpdated: calcExpUpdated };
78
88
  }
79
89
 
80
- export default UseCodingCalculatedExpression;
90
+ export default useCodingCalculatedExpression;
@@ -16,8 +16,7 @@
16
16
  */
17
17
 
18
18
  import { useEffect, useState } from 'react';
19
- import { createEmptyQrItem } from '../utils/qrItem';
20
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
19
+ import type { QuestionnaireItem } from 'fhir/r4';
21
20
  import { useQuestionnaireStore } from '../stores';
22
21
 
23
22
  interface UseDecimalCalculatedExpression {
@@ -28,14 +27,20 @@ interface useDecimalCalculatedExpressionProps {
28
27
  qItem: QuestionnaireItem;
29
28
  inputValue: string;
30
29
  precision: number | null;
31
- setInputValue: (value: string) => void;
32
- onQrItemChange: (qrItem: QuestionnaireResponseItem) => void;
30
+ onChangeByCalcExpressionDecimal: (calcExpressionValue: number) => void;
31
+ onChangeByCalcExpressionNull: () => void;
33
32
  }
34
33
 
35
34
  function useDecimalCalculatedExpression(
36
35
  props: useDecimalCalculatedExpressionProps
37
36
  ): UseDecimalCalculatedExpression {
38
- const { qItem, inputValue, precision, setInputValue, onQrItemChange } = props;
37
+ const {
38
+ qItem,
39
+ inputValue,
40
+ precision,
41
+ onChangeByCalcExpressionDecimal,
42
+ onChangeByCalcExpressionNull
43
+ } = props;
39
44
 
40
45
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
41
46
 
@@ -52,10 +57,14 @@ function useDecimalCalculatedExpression(
52
57
  }
53
58
 
54
59
  // only update if calculated value is different from current value
55
- if (calcExpression.value !== inputValue && typeof calcExpression.value === 'number') {
56
- const calcExpressionValue = precision
57
- ? parseFloat(calcExpression.value.toFixed(precision))
58
- : calcExpression.value;
60
+ if (
61
+ calcExpression.value !== inputValue &&
62
+ (typeof calcExpression.value === 'number' || calcExpression.value === null)
63
+ ) {
64
+ const calcExpressionValue =
65
+ typeof calcExpression.value === 'number' && typeof precision === 'number'
66
+ ? parseFloat(calcExpression.value.toFixed(precision))
67
+ : calcExpression.value;
59
68
 
60
69
  // only update if calculated value is different from current value
61
70
  if (calcExpressionValue !== parseFloat(inputValue)) {
@@ -65,14 +74,14 @@ function useDecimalCalculatedExpression(
65
74
  setCalcExpUpdated(false);
66
75
  }, 500);
67
76
 
68
- // update questionnaireResponse
69
- setInputValue(
70
- precision ? calcExpressionValue.toFixed(precision) : calcExpressionValue.toString()
71
- );
72
- onQrItemChange({
73
- ...createEmptyQrItem(qItem),
74
- answer: [{ valueDecimal: calcExpressionValue }]
75
- });
77
+ // calculatedExpression value is null
78
+ if (calcExpressionValue === null) {
79
+ onChangeByCalcExpressionNull();
80
+ return;
81
+ }
82
+
83
+ // calculatedExpression value is a number
84
+ onChangeByCalcExpressionDecimal(calcExpressionValue);
76
85
  }
77
86
  }
78
87
  },
@@ -24,11 +24,22 @@ function useDisplayCalculatedExpression(qItem: QuestionnaireItem): string | null
24
24
  const calcExpression = calculatedExpressions[qItem.linkId]?.find(
25
25
  (exp) => exp.from === 'item._text'
26
26
  );
27
+
27
28
  if (!calcExpression) {
28
29
  return null;
29
30
  }
30
31
 
31
- if (typeof calcExpression.value === 'string' || typeof calcExpression.value === 'number') {
32
+ if (
33
+ typeof calcExpression.value === 'string' ||
34
+ typeof calcExpression.value === 'number' ||
35
+ calcExpression.value === null
36
+ ) {
37
+ // calculatedExpression value is null
38
+ if (calcExpression.value === null) {
39
+ return '';
40
+ }
41
+
42
+ // calculatedExpression value is string or number
32
43
  return typeof calcExpression.value === 'string'
33
44
  ? calcExpression.value
34
45
  : calcExpression.value.toString();
@@ -16,9 +16,8 @@
16
16
  */
17
17
 
18
18
  import { useEffect, useState } from 'react';
19
- import { createEmptyQrItem } from '../utils/qrItem';
20
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
21
- import { useQuestionnaireStore } from '../stores/questionnaireStore';
19
+ import type { QuestionnaireItem } from 'fhir/r4';
20
+ import { useQuestionnaireStore } from '../stores';
22
21
 
23
22
  interface UseIntegerCalculatedExpression {
24
23
  calcExpUpdated: boolean;
@@ -27,14 +26,15 @@ interface UseIntegerCalculatedExpression {
27
26
  interface useIntegerCalculatedExpressionProps {
28
27
  qItem: QuestionnaireItem;
29
28
  inputValue: string;
30
- setInputValue: (value: string) => void;
31
- onQrItemChange: (qrItem: QuestionnaireResponseItem) => void;
29
+ onChangeByCalcExpressionInteger: (calcExpressionValue: number) => void;
30
+ onChangeByCalcExpressionNull: () => void;
32
31
  }
33
32
 
34
33
  function useIntegerCalculatedExpression(
35
34
  props: useIntegerCalculatedExpressionProps
36
35
  ): UseIntegerCalculatedExpression {
37
- const { qItem, inputValue, setInputValue, onQrItemChange } = props;
36
+ const { qItem, inputValue, onChangeByCalcExpressionInteger, onChangeByCalcExpressionNull } =
37
+ props;
38
38
 
39
39
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
40
40
 
@@ -51,7 +51,10 @@ function useIntegerCalculatedExpression(
51
51
  }
52
52
 
53
53
  // only update if calculated value is different from current value
54
- if (calcExpression.value !== inputValue && typeof calcExpression.value === 'number') {
54
+ if (
55
+ calcExpression.value !== inputValue &&
56
+ (typeof calcExpression.value === 'number' || calcExpression.value === null)
57
+ ) {
55
58
  const calcExpressionValue = calcExpression.value;
56
59
 
57
60
  if (calcExpressionValue !== parseInt(inputValue)) {
@@ -61,12 +64,14 @@ function useIntegerCalculatedExpression(
61
64
  setCalcExpUpdated(false);
62
65
  }, 500);
63
66
 
64
- // update questionnaireResponse
65
- setInputValue(calcExpressionValue.toString());
66
- onQrItemChange({
67
- ...createEmptyQrItem(qItem),
68
- answer: [{ valueInteger: calcExpressionValue }]
69
- });
67
+ // calculatedExpression value is null
68
+ if (calcExpressionValue === null) {
69
+ onChangeByCalcExpressionNull();
70
+ return;
71
+ }
72
+
73
+ // calculatedExpression value is a number
74
+ onChangeByCalcExpressionInteger(calcExpressionValue);
70
75
  }
71
76
  }
72
77
  },