@aehrc/smart-forms-renderer 0.34.0 → 0.34.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 (155) hide show
  1. package/lib/components/FormComponents/BooleanItem/BooleanField.d.ts +1 -2
  2. package/lib/components/FormComponents/BooleanItem/BooleanField.js +1 -1
  3. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
  4. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +3 -3
  5. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +2 -2
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +1 -1
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +2 -2
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +1 -1
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +3 -3
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.d.ts +1 -2
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +1 -1
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +12 -5
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  19. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.d.ts +2 -2
  20. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +3 -3
  21. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
  22. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.d.ts +1 -2
  23. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +1 -1
  24. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  25. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -2
  26. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +3 -3
  27. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  28. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -2
  29. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +10 -19
  30. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  31. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +11 -8
  32. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  33. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +1 -2
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +6 -4
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
  36. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +1 -1
  37. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  38. package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +1 -1
  39. package/lib/utils/choice.d.ts +4 -4
  40. package/lib/utils/choice.js +21 -12
  41. package/lib/utils/choice.js.map +1 -1
  42. package/lib/utils/itemControl.js +5 -1
  43. package/lib/utils/itemControl.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +2 -4
  46. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +0 -3
  47. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +0 -3
  48. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +0 -3
  49. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +0 -3
  50. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +2 -12
  51. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +19 -7
  52. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +2 -10
  53. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +1 -3
  54. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +1 -5
  55. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +37 -46
  56. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +19 -11
  57. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +11 -7
  58. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +1 -1
  59. package/src/components/FormComponents/GroupItem/GroupItemView.tsx +1 -1
  60. package/src/stories/assets/questionnaires/QGroupTableTester.ts +461 -0
  61. package/src/stories/storybookWrappers/BuildFormButtonForStorybook.tsx +7 -1
  62. package/src/stories/storybookWrappers/BuildFormButtonTesterWrapperForStorybook.tsx +7 -1
  63. package/src/stories/storybookWrappers/BuildFormWrapperForStorybook.tsx +7 -1
  64. package/src/stories/storybookWrappers/FormValidationTesterWrapperForStorybook.tsx +7 -1
  65. package/src/stories/storybookWrappers/PrePopWrapperForStorybook.tsx +7 -1
  66. package/{lib/stories/index.js → src/stories/storybookWrappers/globals.ts} +2 -2
  67. package/src/stories/testing/GroupTableTester.stories.tsx +39 -0
  68. package/src/utils/choice.ts +28 -16
  69. package/src/utils/itemControl.ts +9 -1
  70. package/lib/components/FormComponents/ChoiceItems/CheckboxFields.d.ts +0 -11
  71. package/lib/components/FormComponents/ChoiceItems/CheckboxFields.js +0 -41
  72. package/lib/components/FormComponents/ChoiceItems/CheckboxFields.js.map +0 -1
  73. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.d.ts +0 -11
  74. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.js +0 -41
  75. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.js.map +0 -1
  76. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.d.ts +0 -13
  77. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.js +0 -46
  78. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.js.map +0 -1
  79. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.d.ts +0 -11
  80. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.js +0 -41
  81. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.js.map +0 -1
  82. package/lib/components/FormComponents/DateTimeItem/DateTimeField.d.ts +0 -12
  83. package/lib/components/FormComponents/DateTimeItem/DateTimeField.js +0 -34
  84. package/lib/components/FormComponents/DateTimeItem/DateTimeField.js.map +0 -1
  85. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +0 -9
  86. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +0 -60
  87. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +0 -1
  88. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.d.ts +0 -8
  89. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js +0 -57
  90. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js.map +0 -1
  91. package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.d.ts +0 -8
  92. package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js +0 -37
  93. package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js.map +0 -1
  94. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.d.ts +0 -18
  95. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js +0 -48
  96. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js.map +0 -1
  97. package/lib/components/StoryWrappers/BuildFormWrapper.d.ts +0 -7
  98. package/lib/components/StoryWrappers/BuildFormWrapper.js +0 -57
  99. package/lib/components/StoryWrappers/BuildFormWrapper.js.map +0 -1
  100. package/lib/hooks/useDisplayCalculatedExpression.d.ts +0 -3
  101. package/lib/hooks/useDisplayCalculatedExpression.js +0 -40
  102. package/lib/hooks/useDisplayCalculatedExpression.js.map +0 -1
  103. package/lib/hooks/useInitaliseFhirClient.d.ts +0 -1
  104. package/lib/hooks/useInitaliseFhirClient.js +0 -55
  105. package/lib/hooks/useInitaliseFhirClient.js.map +0 -1
  106. package/lib/hooks/useInitialiseRenderer.d.ts +0 -4
  107. package/lib/hooks/useInitialiseRenderer.js +0 -62
  108. package/lib/hooks/useInitialiseRenderer.js.map +0 -1
  109. package/lib/hooks/useNextPreviousVisibleTabs.d.ts +0 -6
  110. package/lib/hooks/useNextPreviousVisibleTabs.js +0 -63
  111. package/lib/hooks/useNextPreviousVisibleTabs.js.map +0 -1
  112. package/lib/hooks/useQueryClient.d.ts +0 -3
  113. package/lib/hooks/useQueryClient.js +0 -29
  114. package/lib/hooks/useQueryClient.js.map +0 -1
  115. package/lib/hooks/useRepeatitemState.d.ts +0 -0
  116. package/lib/hooks/useRepeatitemState.js +0 -2
  117. package/lib/hooks/useRepeatitemState.js.map +0 -1
  118. package/lib/interfaces/repopulateItems.interface.d.ts +0 -0
  119. package/lib/interfaces/repopulateItems.interface.js +0 -2
  120. package/lib/interfaces/repopulateItems.interface.js.map +0 -1
  121. package/lib/setup-jest.js +0 -1
  122. package/lib/stories/InitialiseFormWrapperForStorybook.d.ts +0 -29
  123. package/lib/stories/InitialiseFormWrapperForStorybook.js +0 -65
  124. package/lib/stories/InitialiseFormWrapperForStorybook.js.map +0 -1
  125. package/lib/stories/MedicalHistoryTable.stories.js +0 -45
  126. package/lib/stories/SmartFormsRenderer.stories.js +0 -117
  127. package/lib/stories/StorybookWrappers/BuildFormButtonForStorybook.d.ts +0 -8
  128. package/lib/stories/StorybookWrappers/BuildFormButtonForStorybook.js +0 -44
  129. package/lib/stories/StorybookWrappers/BuildFormButtonForStorybook.js.map +0 -1
  130. package/lib/stories/StorybookWrappers/BuildFormButtonTesterWrapperForStorybook.d.ts +0 -18
  131. package/lib/stories/StorybookWrappers/BuildFormButtonTesterWrapperForStorybook.js +0 -48
  132. package/lib/stories/StorybookWrappers/BuildFormButtonTesterWrapperForStorybook.js.map +0 -1
  133. package/lib/stories/StorybookWrappers/PrePopButtonForStorybook.d.ts +0 -7
  134. package/lib/stories/StorybookWrappers/PrePopButtonForStorybook.js +0 -32
  135. package/lib/stories/StorybookWrappers/PrePopButtonForStorybook.js.map +0 -1
  136. package/lib/stories/StorybookWrappers/PrePopWrapperForStorybook.d.ts +0 -21
  137. package/lib/stories/StorybookWrappers/PrePopWrapperForStorybook.js +0 -83
  138. package/lib/stories/StorybookWrappers/PrePopWrapperForStorybook.js.map +0 -1
  139. package/lib/stories/StorybookWrappers/populateCallbackForStorybook.d.ts +0 -8
  140. package/lib/stories/StorybookWrappers/populateCallbackForStorybook.js +0 -46
  141. package/lib/stories/StorybookWrappers/populateCallbackForStorybook.js.map +0 -1
  142. package/lib/stories/index.d.ts +0 -1
  143. package/lib/stories/index.js.map +0 -1
  144. package/lib/utils/buildForm.d.ts +0 -8
  145. package/lib/utils/buildForm.js +0 -26
  146. package/lib/utils/buildForm.js.map +0 -1
  147. package/lib/utils/buildForms.d.ts +0 -0
  148. package/lib/utils/buildForms.js +0 -2
  149. package/lib/utils/buildForms.js.map +0 -1
  150. /package/lib/stories/{StorybookWrappers → storybookWrappers}/InitialiseFormWrapperForStorybook.d.ts +0 -0
  151. /package/lib/stories/{StorybookWrappers → storybookWrappers}/InitialiseFormWrapperForStorybook.js +0 -0
  152. /package/lib/stories/{StorybookWrappers → storybookWrappers}/InitialiseFormWrapperForStorybook.js.map +0 -0
  153. /package/lib/stories/{StorybookWrappers → storybookWrappers}/index.d.ts +0 -0
  154. /package/lib/stories/{StorybookWrappers → storybookWrappers}/index.js +0 -0
  155. /package/lib/stories/{StorybookWrappers → storybookWrappers}/index.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"GroupItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroupItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
3
  import type { PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
4
- import { PropsWithQrRepeatGroupChangeHandler } from '../../../interfaces/renderProps.interface';
4
+ import type { PropsWithQrRepeatGroupChangeHandler } from '../../../interfaces/renderProps.interface';
5
5
  import type { Tabs } from '../../../interfaces/tab.interface';
6
6
  interface GroupItemViewProps extends PropsWithQrItemChangeHandler, PropsWithQrRepeatGroupChangeHandler, PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute {
7
7
  qItem: QuestionnaireItem;
@@ -13,17 +13,17 @@ export declare function convertCodingsToAnswerOptions(codings: Coding[]): Questi
13
13
  */
14
14
  export declare function findInAnswerOptions(options: QuestionnaireItemAnswerOption[], valueInString: string): QuestionnaireResponseItemAnswer | undefined;
15
15
  /**
16
- * Get choice control type based on certain criteria in choice items
16
+ * Compare answer option value with selected value via valueString, valueInteger, or valueCoding.code
17
17
  *
18
18
  * @author Sean Fong
19
19
  */
20
- export declare function getChoiceControlType(qItem: QuestionnaireItem): ChoiceItemControl;
20
+ export declare function compareAnswerOptionValue(option: QuestionnaireItemAnswerOption, value: QuestionnaireItemAnswerOption): boolean;
21
21
  /**
22
- * Find and return corresponding coding from AnswerValueSet based on selected answer in form
22
+ * Get choice control type based on certain criteria in choice items
23
23
  *
24
24
  * @author Sean Fong
25
25
  */
26
- export declare function findInAnswerValueSetCodings(codings: Coding[], selected: string): QuestionnaireResponseItemAnswer | undefined;
26
+ export declare function getChoiceControlType(qItem: QuestionnaireItem): ChoiceItemControl;
27
27
  /**
28
28
  * Find and return string value from selected answer
29
29
  *
@@ -45,6 +45,27 @@ export function findInAnswerOptions(options, valueInString) {
45
45
  }
46
46
  return;
47
47
  }
48
+ /**
49
+ * Compare answer option value with selected value via valueString, valueInteger, or valueCoding.code
50
+ *
51
+ * @author Sean Fong
52
+ */
53
+ export function compareAnswerOptionValue(option, value) {
54
+ var _a;
55
+ if (!value) {
56
+ return false;
57
+ }
58
+ if (value.valueString) {
59
+ return option.valueString === value.valueString;
60
+ }
61
+ if (value.valueInteger) {
62
+ return option.valueInteger === value.valueInteger;
63
+ }
64
+ if (value.valueCoding && value.valueCoding.code) {
65
+ return ((_a = option.valueCoding) === null || _a === void 0 ? void 0 : _a.code) === value.valueCoding.code;
66
+ }
67
+ return false;
68
+ }
48
69
  /**
49
70
  * Get choice control type based on certain criteria in choice items
50
71
  *
@@ -65,18 +86,6 @@ export function getChoiceControlType(qItem) {
65
86
  }
66
87
  return ChoiceItemControl.Select;
67
88
  }
68
- /**
69
- * Find and return corresponding coding from AnswerValueSet based on selected answer in form
70
- *
71
- * @author Sean Fong
72
- */
73
- export function findInAnswerValueSetCodings(codings, selected) {
74
- for (const coding of codings) {
75
- if (selected === coding.code) {
76
- return coding;
77
- }
78
- }
79
- }
80
89
  /**
81
90
  * Find and return string value from selected answer
82
91
  *
@@ -1 +1 @@
1
- {"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,10 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { structuredDataCapture } from 'fhir-sdc-helpers';
18
+ function hasDisplayCategory(qItem) {
19
+ var _a;
20
+ return !!((_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.some((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory'));
21
+ }
18
22
  function hasItemControl(qItem) {
19
23
  var _a;
20
24
  return !!((_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.some((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl'));
@@ -22,7 +26,7 @@ function hasItemControl(qItem) {
22
26
  // If all nested items are of type display and have itemControl, then they should not be rendered
23
27
  export function shouldRenderNestedItems(qItem) {
24
28
  var _a;
25
- return !((_a = qItem.item) === null || _a === void 0 ? void 0 : _a.every((childItem) => childItem.type === 'display' && hasItemControl(childItem)));
29
+ return !((_a = qItem.item) === null || _a === void 0 ? void 0 : _a.every((childItem) => childItem.type === 'display' && (hasDisplayCategory(childItem) || hasItemControl(childItem))));
26
30
  }
27
31
  /**
28
32
  * Check if the extension has an itemControl code equal to the given itemControlCode
@@ -1 +1 @@
1
- {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.34.0",
3
+ "version": "0.34.2",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -16,7 +16,6 @@
16
16
  */
17
17
 
18
18
  import React, { memo } from 'react';
19
- import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
20
19
  import Box from '@mui/material/Box';
21
20
  import Button from '@mui/material/Button';
22
21
  import { grey } from '@mui/material/colors';
@@ -29,7 +28,7 @@ import { StyledRadioGroup } from '../Item.styles';
29
28
  import { getChoiceOrientation } from '../../../utils/choice';
30
29
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
31
30
 
32
- interface BooleanFieldProps extends PropsWithIsTabledAttribute {
31
+ interface BooleanFieldProps {
33
32
  qItem: QuestionnaireItem;
34
33
  readOnly: boolean;
35
34
  valueBoolean: boolean | undefined;
@@ -39,8 +38,7 @@ interface BooleanFieldProps extends PropsWithIsTabledAttribute {
39
38
  }
40
39
 
41
40
  const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
42
- const { qItem, readOnly, valueBoolean, calcExpUpdated, isTabled, onCheckedChange, onClear } =
43
- props;
41
+ const { qItem, readOnly, valueBoolean, calcExpUpdated, onCheckedChange, onClear } = props;
44
42
 
45
43
  // defaults to horizontal, only set to vertical if explicitly set
46
44
  const orientation = getChoiceOrientation(qItem) ?? ChoiceItemOrientation.Horizontal;
@@ -96,7 +96,6 @@ function BooleanItem(props: BooleanItemProps) {
96
96
  <BooleanField
97
97
  qItem={qItem}
98
98
  readOnly={readOnly}
99
- isTabled={isTabled}
100
99
  valueBoolean={valueBoolean}
101
100
  calcExpUpdated={calcExpUpdated}
102
101
  onCheckedChange={handleValueChange}
@@ -111,7 +110,6 @@ function BooleanItem(props: BooleanItemProps) {
111
110
  <BooleanField
112
111
  qItem={qItem}
113
112
  readOnly={readOnly}
114
- isTabled={isTabled}
115
113
  valueBoolean={valueBoolean}
116
114
  calcExpUpdated={calcExpUpdated}
117
115
  onCheckedChange={handleValueChange}
@@ -128,7 +126,6 @@ function BooleanItem(props: BooleanItemProps) {
128
126
  <BooleanField
129
127
  qItem={qItem}
130
128
  readOnly={readOnly}
131
- isTabled={isTabled}
132
129
  valueBoolean={valueBoolean}
133
130
  calcExpUpdated={calcExpUpdated}
134
131
  onCheckedChange={handleValueChange}
@@ -23,7 +23,6 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
23
23
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
24
24
  import type {
25
25
  PropsWithIsRepeatedAttribute,
26
- PropsWithIsTabledAttribute,
27
26
  PropsWithParentIsReadOnlyAttribute,
28
27
  PropsWithQrItemChangeHandler,
29
28
  PropsWithShowMinimalViewAttribute
@@ -37,7 +36,6 @@ import ChoiceCheckboxAnswerOptionFields from './ChoiceCheckboxAnswerOptionFields
37
36
  interface ChoiceCheckboxAnswerOptionItemProps
38
37
  extends PropsWithQrItemChangeHandler,
39
38
  PropsWithIsRepeatedAttribute,
40
- PropsWithIsTabledAttribute,
41
39
  PropsWithShowMinimalViewAttribute,
42
40
  PropsWithParentIsReadOnlyAttribute {
43
41
  qItem: QuestionnaireItem;
@@ -49,7 +47,6 @@ function ChoiceCheckboxAnswerOptionItem(props: ChoiceCheckboxAnswerOptionItemPro
49
47
  qItem,
50
48
  qrItem,
51
49
  isRepeated,
52
- isTabled,
53
50
  showMinimalView = false,
54
51
  parentIsReadOnly,
55
52
  onQrItemChange
@@ -24,7 +24,6 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
24
24
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
25
25
  import type {
26
26
  PropsWithIsRepeatedAttribute,
27
- PropsWithIsTabledAttribute,
28
27
  PropsWithParentIsReadOnlyAttribute,
29
28
  PropsWithQrItemChangeHandler,
30
29
  PropsWithShowMinimalViewAttribute
@@ -39,7 +38,6 @@ interface ChoiceCheckboxAnswerValueSetItemProps
39
38
  extends PropsWithQrItemChangeHandler,
40
39
  PropsWithIsRepeatedAttribute,
41
40
  PropsWithShowMinimalViewAttribute,
42
- PropsWithIsTabledAttribute,
43
41
  PropsWithParentIsReadOnlyAttribute {
44
42
  qItem: QuestionnaireItem;
45
43
  qrItem: QuestionnaireResponseItem | null;
@@ -51,7 +49,6 @@ function ChoiceCheckboxAnswerValueSetItem(props: ChoiceCheckboxAnswerValueSetIte
51
49
  qItem,
52
50
  qrItem,
53
51
  isRepeated,
54
- isTabled,
55
52
  showMinimalView = false,
56
53
  parentIsReadOnly,
57
54
  onQrItemChange
@@ -70,7 +70,6 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
70
70
  qItem={qItem}
71
71
  qrItem={qrItem}
72
72
  isRepeated={isRepeated}
73
- isTabled={isTabled}
74
73
  parentIsReadOnly={parentIsReadOnly}
75
74
  onQrItemChange={onQrItemChange}
76
75
  />
@@ -83,7 +82,6 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
83
82
  qItem={qItem}
84
83
  qrItem={qrItem}
85
84
  isRepeated={qItem.repeats ?? false}
86
- isTabled={isTabled}
87
85
  showMinimalView={showMinimalView}
88
86
  parentIsReadOnly={parentIsReadOnly}
89
87
  onQrItemChange={onQrItemChange}
@@ -95,7 +93,6 @@ function ChoiceItemSwitcher(props: ChoiceItemSwitcherProps) {
95
93
  qItem={qItem}
96
94
  qrItem={qrItem}
97
95
  isRepeated={qItem.repeats ?? false}
98
- isTabled={isTabled}
99
96
  showMinimalView={showMinimalView}
100
97
  parentIsReadOnly={parentIsReadOnly}
101
98
  onQrItemChange={onQrItemChange}
@@ -21,7 +21,6 @@ import type { QuestionnaireItem, QuestionnaireItemAnswerOption } from 'fhir/r4';
21
21
  import RadioOptionList from '../ItemParts/RadioOptionList';
22
22
  import { StyledRadioGroup } from '../Item.styles';
23
23
  import { getChoiceOrientation } from '../../../utils/choice';
24
- import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
25
24
  import Box from '@mui/material/Box';
26
25
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
27
26
  import Fade from '@mui/material/Fade';
@@ -29,7 +28,7 @@ import Tooltip from '@mui/material/Tooltip';
29
28
  import Button from '@mui/material/Button';
30
29
  import { grey } from '@mui/material/colors';
31
30
 
32
- interface ChoiceRadioAnswerOptionFieldsProps extends PropsWithIsTabledAttribute {
31
+ interface ChoiceRadioAnswerOptionFieldsProps {
33
32
  qItem: QuestionnaireItem;
34
33
  options: QuestionnaireItemAnswerOption[];
35
34
  valueRadio: string | null;
@@ -40,16 +39,7 @@ interface ChoiceRadioAnswerOptionFieldsProps extends PropsWithIsTabledAttribute
40
39
  }
41
40
 
42
41
  function ChoiceRadioAnswerOptionFields(props: ChoiceRadioAnswerOptionFieldsProps) {
43
- const {
44
- qItem,
45
- options,
46
- valueRadio,
47
- readOnly,
48
- calcExpUpdated,
49
- isTabled,
50
- onCheckedChange,
51
- onClear
52
- } = props;
42
+ const { qItem, options, valueRadio, readOnly, calcExpUpdated, onCheckedChange, onClear } = props;
53
43
 
54
44
  const orientation = getChoiceOrientation(qItem) ?? ChoiceItemOrientation.Vertical;
55
45
 
@@ -16,7 +16,11 @@
16
16
  */
17
17
 
18
18
  import React from 'react';
19
- import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
19
+ import type {
20
+ QuestionnaireItem,
21
+ QuestionnaireItemAnswerOption,
22
+ QuestionnaireResponseItem
23
+ } from 'fhir/r4';
20
24
  import { findInAnswerOptions, getChoiceControlType, getQrChoiceValue } from '../../../utils/choice';
21
25
  import { createEmptyQrItem } from '../../../utils/qrItem';
22
26
  import type {
@@ -68,15 +72,25 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
68
72
  });
69
73
 
70
74
  // Event handlers
71
- function handleChange(newValue: string) {
72
- if (options.length === 0) {
75
+ function handleChange(newValue: QuestionnaireItemAnswerOption | string | null) {
76
+ // No options present or newValue is type null
77
+ if (options.length === 0 || newValue === null) {
73
78
  onQrItemChange(createEmptyQrItem(qItem));
74
79
  return;
75
80
  }
76
81
 
77
- const qrAnswer = findInAnswerOptions(options, newValue);
82
+ // newValue is type string
83
+ if (typeof newValue === 'string') {
84
+ const qrAnswer = findInAnswerOptions(options, newValue);
85
+ onQrItemChange(
86
+ qrAnswer ? { ...createEmptyQrItem(qItem), answer: [qrAnswer] } : createEmptyQrItem(qItem)
87
+ );
88
+ return;
89
+ }
90
+
91
+ // newValue is type QuestionnaireItemAnswerOption
78
92
  onQrItemChange(
79
- qrAnswer ? { ...createEmptyQrItem(qItem), answer: [qrAnswer] } : createEmptyQrItem(qItem)
93
+ newValue ? { ...createEmptyQrItem(qItem), answer: [newValue] } : createEmptyQrItem(qItem)
80
94
  );
81
95
  }
82
96
 
@@ -96,7 +110,6 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
96
110
  options={options}
97
111
  valueChoice={valueChoice}
98
112
  isRepeated={isRepeated}
99
- isTabled={isTabled}
100
113
  readOnly={readOnly}
101
114
  calcExpUpdated={calcExpUpdated}
102
115
  onFocusLinkId={() => onFocusLinkId(qItem.linkId)}
@@ -118,7 +131,6 @@ function ChoiceRadioAnswerOptionItem(props: ChoiceRadioAnswerOptionItemProps) {
118
131
  calcExpUpdated={calcExpUpdated}
119
132
  onFocusLinkId={() => onFocusLinkId(qItem.linkId)}
120
133
  onSelectChange={handleChange}
121
- onClear={handleClear}
122
134
  />
123
135
  );
124
136
  }
@@ -19,15 +19,10 @@ import React from 'react';
19
19
  import ChoiceRadioAnswerOptionFields from './ChoiceRadioAnswerOptionFields';
20
20
  import { FullWidthFormComponentBox } from '../../Box.styles';
21
21
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
22
- import type {
23
- PropsWithIsRepeatedAttribute,
24
- PropsWithIsTabledAttribute
25
- } from '../../../interfaces/renderProps.interface';
22
+ import type { PropsWithIsRepeatedAttribute } from '../../../interfaces/renderProps.interface';
26
23
  import type { QuestionnaireItem, QuestionnaireItemAnswerOption } from 'fhir/r4';
27
24
 
28
- interface ChoiceRadioAnswerOptionViewProps
29
- extends PropsWithIsRepeatedAttribute,
30
- PropsWithIsTabledAttribute {
25
+ interface ChoiceRadioAnswerOptionViewProps extends PropsWithIsRepeatedAttribute {
31
26
  qItem: QuestionnaireItem;
32
27
  options: QuestionnaireItemAnswerOption[];
33
28
  valueChoice: string | null;
@@ -44,7 +39,6 @@ function ChoiceRadioAnswerOptionView(props: ChoiceRadioAnswerOptionViewProps) {
44
39
  options,
45
40
  valueChoice,
46
41
  isRepeated,
47
- isTabled,
48
42
  readOnly,
49
43
  calcExpUpdated,
50
44
  onFocusLinkId,
@@ -58,7 +52,6 @@ function ChoiceRadioAnswerOptionView(props: ChoiceRadioAnswerOptionViewProps) {
58
52
  qItem={qItem}
59
53
  options={options}
60
54
  valueRadio={valueChoice}
61
- isTabled={isTabled}
62
55
  readOnly={readOnly}
63
56
  calcExpUpdated={calcExpUpdated}
64
57
  onCheckedChange={onCheckedChange}
@@ -78,7 +71,6 @@ function ChoiceRadioAnswerOptionView(props: ChoiceRadioAnswerOptionViewProps) {
78
71
  options={options}
79
72
  valueRadio={valueChoice}
80
73
  readOnly={readOnly}
81
- isTabled={isTabled}
82
74
  calcExpUpdated={calcExpUpdated}
83
75
  onCheckedChange={onCheckedChange}
84
76
  onClear={onClear}
@@ -25,7 +25,6 @@ import { StyledAlert } from '../../Alert.styles';
25
25
  import type { TerminologyError } from '../../../hooks/useValueSetCodings';
26
26
  import { getChoiceOrientation } from '../../../utils/choice';
27
27
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
28
- import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
29
28
  import Box from '@mui/material/Box';
30
29
  import RadioOptionList from '../ItemParts/RadioOptionList';
31
30
  import Tooltip from '@mui/material/Tooltip';
@@ -33,7 +32,7 @@ import Button from '@mui/material/Button';
33
32
  import { grey } from '@mui/material/colors';
34
33
  import Fade from '@mui/material/Fade';
35
34
 
36
- interface ChoiceRadioAnswerValueSetFieldsProps extends PropsWithIsTabledAttribute {
35
+ interface ChoiceRadioAnswerValueSetFieldsProps {
37
36
  qItem: QuestionnaireItem;
38
37
  options: QuestionnaireItemAnswerOption[];
39
38
  valueRadio: string | null;
@@ -52,7 +51,6 @@ function ChoiceRadioAnswerValueSetFields(props: ChoiceRadioAnswerValueSetFieldsP
52
51
  readOnly,
53
52
  calcExpUpdated,
54
53
  terminologyError,
55
- isTabled,
56
54
  onCheckedChange,
57
55
  onClear
58
56
  } = props;
@@ -23,7 +23,6 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
23
23
  import useValueSetCodings from '../../../hooks/useValueSetCodings';
24
24
  import type {
25
25
  PropsWithIsRepeatedAttribute,
26
- PropsWithIsTabledAttribute,
27
26
  PropsWithParentIsReadOnlyAttribute,
28
27
  PropsWithQrItemChangeHandler
29
28
  } from '../../../interfaces/renderProps.interface';
@@ -36,14 +35,13 @@ import useCodingCalculatedExpression from '../../../hooks/useCodingCalculatedExp
36
35
  interface ChoiceRadioAnswerValueSetItemProps
37
36
  extends PropsWithQrItemChangeHandler,
38
37
  PropsWithIsRepeatedAttribute,
39
- PropsWithIsTabledAttribute,
40
38
  PropsWithParentIsReadOnlyAttribute {
41
39
  qItem: QuestionnaireItem;
42
40
  qrItem: QuestionnaireResponseItem | null;
43
41
  }
44
42
 
45
43
  function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps) {
46
- const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
44
+ const { qItem, qrItem, isRepeated, parentIsReadOnly, onQrItemChange } = props;
47
45
 
48
46
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
49
47
 
@@ -95,7 +93,6 @@ function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps
95
93
  readOnly={readOnly}
96
94
  calcExpUpdated={calcExpUpdated}
97
95
  terminologyError={terminologyError}
98
- isTabled={isTabled}
99
96
  onCheckedChange={handleChange}
100
97
  onClear={handleClear}
101
98
  />
@@ -115,7 +112,6 @@ function ChoiceRadioAnswerValueSetItem(props: ChoiceRadioAnswerValueSetItemProps
115
112
  readOnly={readOnly}
116
113
  calcExpUpdated={calcExpUpdated}
117
114
  terminologyError={terminologyError}
118
- isTabled={isTabled}
119
115
  onCheckedChange={handleChange}
120
116
  onClear={handleClear}
121
117
  />
@@ -16,21 +16,22 @@
16
16
  */
17
17
 
18
18
  import React, { Fragment } from 'react';
19
- import InputAdornment from '@mui/material/InputAdornment';
20
- import MenuItem from '@mui/material/MenuItem';
21
- import Select from '@mui/material/Select';
22
19
  import type { QuestionnaireItem, QuestionnaireItemAnswerOption } from 'fhir/r4';
23
20
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
24
21
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
25
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
22
+ import { StandardTextField, TEXT_FIELD_WIDTH } from '../Textfield.styles';
23
+ import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
24
+ import Autocomplete from '@mui/material/Autocomplete';
25
+ import { getAnswerOptionLabel } from '../../../utils/openChoice';
26
+ import { compareAnswerOptionValue } from '../../../utils/choice';
26
27
 
27
28
  interface ChoiceSelectAnswerOptionFieldsProps extends PropsWithIsTabledAttribute {
28
29
  qItem: QuestionnaireItem;
29
30
  options: QuestionnaireItemAnswerOption[];
30
- valueSelect: string;
31
+ valueSelect: QuestionnaireItemAnswerOption | null;
31
32
  readOnly: boolean;
32
33
  calcExpUpdated: boolean;
33
- onSelectChange: (newValue: string) => void;
34
+ onSelectChange: (newValue: QuestionnaireItemAnswerOption | null) => void;
34
35
  }
35
36
 
36
37
  function ChoiceSelectAnswerOptionFields(props: ChoiceSelectAnswerOptionFieldsProps) {
@@ -38,49 +39,39 @@ function ChoiceSelectAnswerOptionFields(props: ChoiceSelectAnswerOptionFieldsPro
38
39
 
39
40
  const { displayUnit, displayPrompt, entryFormat } = useRenderingExtensions(qItem);
40
41
 
41
- // TODO use calcExpUpdated as updated feedback
42
-
43
42
  return (
44
- <Select
43
+ <Autocomplete
45
44
  id={qItem.id}
46
- name={qItem.text}
47
- value={valueSelect}
48
- disabled={readOnly}
49
- fullWidth
50
- placeholder={entryFormat}
51
- label={displayPrompt}
52
- endAdornment={<InputAdornment position="end">{displayUnit}</InputAdornment>}
53
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}
45
+ value={valueSelect ?? null}
46
+ options={options}
47
+ getOptionLabel={(option) => getAnswerOptionLabel(option)}
48
+ isOptionEqualToValue={(option, value) => compareAnswerOptionValue(option, value)}
49
+ onChange={(_, newValue) => onSelectChange(newValue)}
50
+ openOnFocus
51
+ autoHighlight
52
+ sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160, flexGrow: 1 }}
54
53
  size="small"
55
- onChange={(e) => onSelectChange(e.target.value)}>
56
- {options.map((option, index) => {
57
- if (option['valueCoding']) {
58
- return (
59
- <MenuItem key={option.valueCoding.code} value={option.valueCoding.code}>
60
- {option.valueCoding.display ?? option.valueCoding.code}
61
- </MenuItem>
62
- );
63
- }
64
-
65
- if (option['valueString']) {
66
- return (
67
- <MenuItem key={option.valueString} value={option.valueString}>
68
- {option.valueString}
69
- </MenuItem>
70
- );
71
- }
72
-
73
- if (option['valueInteger']) {
74
- return (
75
- <MenuItem key={option.valueInteger} value={option.valueInteger.toString()}>
76
- {option.valueInteger}
77
- </MenuItem>
78
- );
79
- }
80
-
81
- return <Fragment key={index} />;
82
- })}
83
- </Select>
54
+ disabled={readOnly}
55
+ renderInput={(params) => (
56
+ <StandardTextField
57
+ isTabled={isTabled}
58
+ label={displayPrompt}
59
+ placeholder={entryFormat}
60
+ {...params}
61
+ InputProps={{
62
+ ...params.InputProps,
63
+ endAdornment: (
64
+ <>
65
+ {params.InputProps.endAdornment}
66
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
67
+ {displayUnit}
68
+ </>
69
+ )
70
+ }}
71
+ data-test="q-item-choice-dropdown-answer-value-set-field"
72
+ />
73
+ )}
74
+ />
84
75
  );
85
76
  }
86
77