@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.
- package/lib/components/FormComponents/BooleanItem/BooleanField.d.ts +1 -2
- package/lib/components/FormComponents/BooleanItem/BooleanField.js +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +3 -3
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.d.ts +1 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +12 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.d.ts +1 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +10 -19
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +11 -8
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +1 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +6 -4
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +1 -1
- package/lib/utils/choice.d.ts +4 -4
- package/lib/utils/choice.js +21 -12
- package/lib/utils/choice.js.map +1 -1
- package/lib/utils/itemControl.js +5 -1
- package/lib/utils/itemControl.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FormComponents/BooleanItem/BooleanField.tsx +2 -4
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +0 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +0 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +0 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +0 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +2 -12
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +19 -7
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +2 -10
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +1 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +1 -5
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +37 -46
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +19 -11
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +11 -7
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +1 -1
- package/src/components/FormComponents/GroupItem/GroupItemView.tsx +1 -1
- package/src/stories/assets/questionnaires/QGroupTableTester.ts +461 -0
- package/src/stories/storybookWrappers/BuildFormButtonForStorybook.tsx +7 -1
- package/src/stories/storybookWrappers/BuildFormButtonTesterWrapperForStorybook.tsx +7 -1
- package/src/stories/storybookWrappers/BuildFormWrapperForStorybook.tsx +7 -1
- package/src/stories/storybookWrappers/FormValidationTesterWrapperForStorybook.tsx +7 -1
- package/src/stories/storybookWrappers/PrePopWrapperForStorybook.tsx +7 -1
- package/{lib/stories/index.js → src/stories/storybookWrappers/globals.ts} +2 -2
- package/src/stories/testing/GroupTableTester.stories.tsx +39 -0
- package/src/utils/choice.ts +28 -16
- package/src/utils/itemControl.ts +9 -1
- package/lib/components/FormComponents/ChoiceItems/CheckboxFields.d.ts +0 -11
- package/lib/components/FormComponents/ChoiceItems/CheckboxFields.js +0 -41
- package/lib/components/FormComponents/ChoiceItems/CheckboxFields.js.map +0 -1
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.d.ts +0 -11
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.js +0 -41
- package/lib/components/FormComponents/ChoiceItems/CheckboxOptionFields.js.map +0 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.d.ts +0 -13
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.js +0 -46
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetView.js.map +0 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.d.ts +0 -11
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.js +0 -41
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFields.js.map +0 -1
- package/lib/components/FormComponents/DateTimeItem/DateTimeField.d.ts +0 -12
- package/lib/components/FormComponents/DateTimeItem/DateTimeField.js +0 -34
- package/lib/components/FormComponents/DateTimeItem/DateTimeField.js.map +0 -1
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.d.ts +0 -9
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +0 -60
- package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +0 -1
- package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.d.ts +0 -8
- package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js +0 -57
- package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js.map +0 -1
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.d.ts +0 -8
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js +0 -37
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js.map +0 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.d.ts +0 -18
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js +0 -48
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js.map +0 -1
- package/lib/components/StoryWrappers/BuildFormWrapper.d.ts +0 -7
- package/lib/components/StoryWrappers/BuildFormWrapper.js +0 -57
- package/lib/components/StoryWrappers/BuildFormWrapper.js.map +0 -1
- package/lib/hooks/useDisplayCalculatedExpression.d.ts +0 -3
- package/lib/hooks/useDisplayCalculatedExpression.js +0 -40
- package/lib/hooks/useDisplayCalculatedExpression.js.map +0 -1
- package/lib/hooks/useInitaliseFhirClient.d.ts +0 -1
- package/lib/hooks/useInitaliseFhirClient.js +0 -55
- package/lib/hooks/useInitaliseFhirClient.js.map +0 -1
- package/lib/hooks/useInitialiseRenderer.d.ts +0 -4
- package/lib/hooks/useInitialiseRenderer.js +0 -62
- package/lib/hooks/useInitialiseRenderer.js.map +0 -1
- package/lib/hooks/useNextPreviousVisibleTabs.d.ts +0 -6
- package/lib/hooks/useNextPreviousVisibleTabs.js +0 -63
- package/lib/hooks/useNextPreviousVisibleTabs.js.map +0 -1
- package/lib/hooks/useQueryClient.d.ts +0 -3
- package/lib/hooks/useQueryClient.js +0 -29
- package/lib/hooks/useQueryClient.js.map +0 -1
- package/lib/hooks/useRepeatitemState.d.ts +0 -0
- package/lib/hooks/useRepeatitemState.js +0 -2
- package/lib/hooks/useRepeatitemState.js.map +0 -1
- package/lib/interfaces/repopulateItems.interface.d.ts +0 -0
- package/lib/interfaces/repopulateItems.interface.js +0 -2
- package/lib/interfaces/repopulateItems.interface.js.map +0 -1
- package/lib/setup-jest.js +0 -1
- package/lib/stories/InitialiseFormWrapperForStorybook.d.ts +0 -29
- package/lib/stories/InitialiseFormWrapperForStorybook.js +0 -65
- package/lib/stories/InitialiseFormWrapperForStorybook.js.map +0 -1
- package/lib/stories/MedicalHistoryTable.stories.js +0 -45
- package/lib/stories/SmartFormsRenderer.stories.js +0 -117
- package/lib/stories/StorybookWrappers/BuildFormButtonForStorybook.d.ts +0 -8
- package/lib/stories/StorybookWrappers/BuildFormButtonForStorybook.js +0 -44
- package/lib/stories/StorybookWrappers/BuildFormButtonForStorybook.js.map +0 -1
- package/lib/stories/StorybookWrappers/BuildFormButtonTesterWrapperForStorybook.d.ts +0 -18
- package/lib/stories/StorybookWrappers/BuildFormButtonTesterWrapperForStorybook.js +0 -48
- package/lib/stories/StorybookWrappers/BuildFormButtonTesterWrapperForStorybook.js.map +0 -1
- package/lib/stories/StorybookWrappers/PrePopButtonForStorybook.d.ts +0 -7
- package/lib/stories/StorybookWrappers/PrePopButtonForStorybook.js +0 -32
- package/lib/stories/StorybookWrappers/PrePopButtonForStorybook.js.map +0 -1
- package/lib/stories/StorybookWrappers/PrePopWrapperForStorybook.d.ts +0 -21
- package/lib/stories/StorybookWrappers/PrePopWrapperForStorybook.js +0 -83
- package/lib/stories/StorybookWrappers/PrePopWrapperForStorybook.js.map +0 -1
- package/lib/stories/StorybookWrappers/populateCallbackForStorybook.d.ts +0 -8
- package/lib/stories/StorybookWrappers/populateCallbackForStorybook.js +0 -46
- package/lib/stories/StorybookWrappers/populateCallbackForStorybook.js.map +0 -1
- package/lib/stories/index.d.ts +0 -1
- package/lib/stories/index.js.map +0 -1
- package/lib/utils/buildForm.d.ts +0 -8
- package/lib/utils/buildForm.js +0 -26
- package/lib/utils/buildForm.js.map +0 -1
- package/lib/utils/buildForms.d.ts +0 -0
- package/lib/utils/buildForms.js +0 -2
- package/lib/utils/buildForms.js.map +0 -1
- /package/lib/stories/{StorybookWrappers → storybookWrappers}/InitialiseFormWrapperForStorybook.d.ts +0 -0
- /package/lib/stories/{StorybookWrappers → storybookWrappers}/InitialiseFormWrapperForStorybook.js +0 -0
- /package/lib/stories/{StorybookWrappers → storybookWrappers}/InitialiseFormWrapperForStorybook.js.map +0 -0
- /package/lib/stories/{StorybookWrappers → storybookWrappers}/index.d.ts +0 -0
- /package/lib/stories/{StorybookWrappers → storybookWrappers}/index.js +0 -0
- /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":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAY/C,SAAS,iBAAiB,CAAC,KAA6B;IACtD,MAAM,EACJ,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACtB,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,YAAY,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,IAAI,kBAAkB,EAAE;QACtB,MAAM,OAAO,GAAG,aAAa,CAAC;QAE9B,mEAAmE;QACnE,8EAA8E;QAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC5C,OAAO,sEAA8B,CAAC;SACvC;QAED,IAAI,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAC1C,OAAO,CACL,oBAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;SACH;QAED,OAAO,CACL,oBAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;KACH;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC;IAC7B,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,UAAU,EAAE;QACd,OAAO,CACL,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EACtB,kBAAkB,EAAE,kBAAkB,
|
|
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;
|
package/lib/utils/choice.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
|
20
|
+
export declare function compareAnswerOptionValue(option: QuestionnaireItemAnswerOption, value: QuestionnaireItemAnswerOption): boolean;
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
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
|
|
26
|
+
export declare function getChoiceControlType(qItem: QuestionnaireItem): ChoiceItemControl;
|
|
27
27
|
/**
|
|
28
28
|
* Find and return string value from selected answer
|
|
29
29
|
*
|
package/lib/utils/choice.js
CHANGED
|
@@ -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
|
*
|
package/lib/utils/choice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAiB;IAC7D,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,MAAM,EAAiC,EAAE,CAAC,CAAC;QAC1C,WAAW,EAAE;YACX,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAwC,EACxC,aAAqB;IAErB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,IAAI,aAAa,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC7C,OAAO;oBACL,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;aACH;SACF;QAED,IAAI,MAAM,CAAC,WAAW,EAAE;YACtB,IAAI,aAAa,KAAK,MAAM,CAAC,WAAW,EAAE;gBACxC,OAAO;oBACL,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;aACH;SACF;QAED,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,IAAI,aAAa,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;gBACpD,OAAO;oBACL,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC;aACH;SACF;KACF;IAED,OAAO;AACT,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/itemControl.js
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,SAAS,cAAc,CAAC,KAAwB;;IAC9C,OAAO,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAC5B,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,mEAAmE,CACxF,CAAA,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAC,KAAwB;;IAC9D,OAAO,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,CACvB,CAAC,SAAS,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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
|
|
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,
|
|
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
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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:
|
|
31
|
+
valueSelect: QuestionnaireItemAnswerOption | null;
|
|
31
32
|
readOnly: boolean;
|
|
32
33
|
calcExpUpdated: boolean;
|
|
33
|
-
onSelectChange: (newValue:
|
|
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
|
-
<
|
|
43
|
+
<Autocomplete
|
|
45
44
|
id={qItem.id}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
56
|
-
{
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
|