@aehrc/smart-forms-renderer 0.7.0 → 0.7.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/README.md +5 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +3 -2
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridGroup.js +2 -2
- package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
- package/lib/components/FormComponents/GridGroup/GridRow.js +2 -2
- package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupChildItemSwitcher.d.ts +10 -0
- package/lib/components/FormComponents/GroupItem/GroupChildItemSwitcher.js +73 -0
- package/lib/components/FormComponents/GroupItem/GroupChildItemSwitcher.js.map +1 -0
- package/lib/components/FormComponents/GroupItem/GroupItem.js +3 -3
- package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/ItemSwitcher.d.ts +10 -0
- package/lib/components/FormComponents/GroupItem/ItemSwitcher.js +81 -0
- package/lib/components/FormComponents/GroupItem/ItemSwitcher.js.map +1 -0
- package/lib/components/FormComponents/GroupItem/TopLevelGroupItemSwitcher.d.ts +10 -0
- package/lib/components/FormComponents/GroupItem/TopLevelGroupItemSwitcher.js +45 -0
- package/lib/components/FormComponents/GroupItem/TopLevelGroupItemSwitcher.js.map +1 -0
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +3 -2
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +4 -3
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/index.d.ts +1 -0
- package/lib/{theme/overrides/Typography.js → components/FormComponents/RepeatGroup/index.js} +2 -15
- package/lib/components/FormComponents/RepeatGroup/index.js.map +1 -0
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/index.d.ts +1 -0
- package/lib/components/FormComponents/SingleItem/index.js +18 -0
- package/lib/components/FormComponents/SingleItem/index.js.map +1 -0
- package/lib/components/FormComponents/StringItem/StringItem.js +3 -2
- package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
- package/lib/components/FormComponents/Tables/QItemGroupTable.js +7 -5
- package/lib/components/FormComponents/Tables/QItemGroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/QItemGroupTableRow.js +2 -2
- package/lib/components/FormComponents/Tables/QItemGroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/Tables/index.d.ts +1 -0
- package/lib/components/FormComponents/Tables/index.js +18 -0
- package/lib/components/FormComponents/Tables/index.js.map +1 -0
- package/lib/components/FormComponents/TextItem/TextItem.js +3 -2
- package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
- package/lib/components/FormComponents/index.d.ts +3 -0
- package/lib/components/FormComponents/index.js +20 -0
- package/lib/components/FormComponents/index.js.map +1 -0
- package/lib/components/Renderer/BaseRenderer.js +26 -14
- package/lib/components/Renderer/BaseRenderer.js.map +1 -1
- package/lib/components/Renderer/FormBodyCollapsible.js +2 -2
- package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
- package/lib/components/Renderer/FormBodyTabbed.js +2 -2
- package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
- package/lib/components/Renderer/FormTopLevelItem.d.ts +4 -4
- package/lib/components/Renderer/FormTopLevelItem.js +14 -1
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/hooks/useDecimalUpdateFromProp.d.ts +2 -0
- package/lib/{utils/isHidden.js → hooks/useDecimalUpdateFromProp.js} +12 -13
- package/lib/hooks/useDecimalUpdateFromProp.js.map +1 -0
- package/lib/hooks/useInitialiseRepeatAnswers.d.ts +2 -2
- package/lib/hooks/useInitialiseRepeatAnswers.js +21 -15
- package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatGroups.d.ts +2 -1
- package/lib/hooks/useInitialiseRepeatGroups.js +21 -15
- package/lib/hooks/useInitialiseRepeatGroups.js.map +1 -1
- package/lib/hooks/useIntegerUpdateFromProp.d.ts +2 -0
- package/lib/hooks/useIntegerUpdateFromProp.js +29 -0
- package/lib/hooks/useIntegerUpdateFromProp.js.map +1 -0
- package/lib/hooks/useNumberInput.d.ts +3 -0
- package/lib/hooks/useNumberInput.js +31 -0
- package/lib/hooks/useNumberInput.js.map +1 -0
- package/lib/hooks/useNumberUpdateFromProp.d.ts +2 -0
- package/lib/hooks/useNumberUpdateFromProp.js +29 -0
- package/lib/hooks/useNumberUpdateFromProp.js.map +1 -0
- package/lib/hooks/useRepeatItemState.d.ts +5 -0
- package/lib/hooks/useRepeatItemState.js +35 -0
- package/lib/hooks/useRepeatItemState.js.map +1 -0
- package/lib/hooks/useRepeatItemUpdateFromProp.d.ts +2 -0
- package/lib/hooks/useRepeatItemUpdateFromProp.js +29 -0
- package/lib/hooks/useRepeatItemUpdateFromProp.js.map +1 -0
- package/lib/hooks/useStringField.d.ts +2 -0
- package/lib/hooks/useStringField.js +29 -0
- package/lib/hooks/useStringField.js.map +1 -0
- package/lib/hooks/useStringInput.d.ts +3 -0
- package/lib/hooks/useStringInput.js +31 -0
- package/lib/hooks/useStringInput.js.map +1 -0
- package/lib/hooks/useStringUpdateFromProp.d.ts +2 -0
- package/lib/hooks/useStringUpdateFromProp.js +29 -0
- package/lib/hooks/useStringUpdateFromProp.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.js +27 -0
- package/lib/index.js.map +1 -1
- package/lib/interfaces/questionnaireStore.interface.d.ts +1 -0
- package/lib/stores/useQuestionnaireResponseStore.d.ts +1 -1
- package/lib/stores/useQuestionnaireResponseStore.js +15 -10
- package/lib/stores/useQuestionnaireResponseStore.js.map +1 -1
- package/lib/stores/useQuestionnaireStore.d.ts +2 -1
- package/lib/stores/useQuestionnaireStore.js +5 -2
- package/lib/stores/useQuestionnaireStore.js.map +1 -1
- package/lib/theme/overrides/Overrides.js +1 -2
- package/lib/theme/overrides/Overrides.js.map +1 -1
- package/lib/utils/calculatedExpression.js +2 -2
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/formChanges.d.ts +18 -0
- package/lib/utils/formChanges.js +91 -0
- package/lib/utils/formChanges.js.map +1 -0
- package/lib/utils/formChangesOld.d.ts +18 -0
- package/lib/utils/formChangesOld.js +91 -0
- package/lib/utils/formChangesOld.js.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +18 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/mapItem.d.ts +2 -2
- package/lib/utils/mapItem.js +3 -3
- package/lib/utils/mapItem.js.map +1 -1
- package/lib/utils/qItem.d.ts +2 -0
- package/lib/utils/qItem.js +22 -0
- package/lib/utils/qItem.js.map +1 -1
- package/lib/utils/qrItem.d.ts +1 -1
- package/lib/utils/qrItem.js +92 -93
- package/lib/utils/qrItem.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +4 -0
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -1
- package/lib/utils/repopulate.d.ts +9 -0
- package/lib/utils/repopulate.js +133 -0
- package/lib/utils/repopulate.js.map +1 -0
- package/lib/utils/repopulateGenerateItems.d.ts +9 -0
- package/lib/utils/repopulateGenerateItems.js +133 -0
- package/lib/utils/repopulateGenerateItems.js.map +1 -0
- package/lib/utils/repopulateIntoResponse.d.ts +3 -0
- package/lib/utils/repopulateIntoResponse.js +92 -0
- package/lib/utils/repopulateIntoResponse.js.map +1 -0
- package/lib/utils/repopulateItems.d.ts +9 -0
- package/lib/utils/repopulateItems.js +131 -0
- package/lib/utils/repopulateItems.js.map +1 -0
- package/lib/utils/repopulateRepeatGroup.d.ts +4 -0
- package/lib/utils/repopulateRepeatGroup.js +54 -0
- package/lib/utils/repopulateRepeatGroup.js.map +1 -0
- package/package.json +3 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +1 -1
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +3 -2
- package/src/components/FormComponents/GridGroup/GridGroup.tsx +2 -2
- package/src/components/FormComponents/GridGroup/GridRow.tsx +2 -2
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +3 -3
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +3 -2
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +4 -3
- package/src/{theme/overrides/Backdrop.ts → components/FormComponents/RepeatGroup/index.ts} +1 -17
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +1 -1
- package/src/components/FormComponents/SingleItem/index.ts +18 -0
- package/src/components/FormComponents/StringItem/StringItem.tsx +3 -2
- package/src/components/FormComponents/Tables/QItemGroupTable.tsx +15 -6
- package/src/components/FormComponents/Tables/QItemGroupTableRow.tsx +2 -2
- package/src/components/FormComponents/Tables/index.ts +18 -0
- package/src/components/FormComponents/TextItem/TextItem.tsx +3 -2
- package/src/components/FormComponents/index.ts +20 -0
- package/src/components/Renderer/BaseRenderer.tsx +39 -18
- package/src/components/Renderer/FormBodyCollapsible.tsx +2 -2
- package/src/components/Renderer/FormBodyTabbed.tsx +2 -2
- package/src/components/Renderer/FormTopLevelItem.tsx +33 -4
- package/src/components/index.ts +1 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useInitialiseRepeatAnswers.ts +28 -17
- package/src/hooks/useInitialiseRepeatGroups.ts +28 -17
- package/src/hooks/useNumberInput.ts +37 -0
- package/src/hooks/useStringInput.ts +37 -0
- package/src/index.ts +43 -0
- package/src/interfaces/questionnaireStore.interface.ts +1 -0
- package/src/stores/useQuestionnaireResponseStore.ts +14 -10
- package/src/stores/useQuestionnaireStore.ts +10 -3
- package/src/theme/overrides/Overrides.ts +0 -2
- package/src/utils/calculatedExpression.ts +2 -2
- package/src/utils/formChanges.ts +141 -0
- package/src/utils/index.ts +18 -0
- package/src/utils/mapItem.ts +6 -4
- package/src/utils/qItem.ts +29 -0
- package/src/utils/qrItem.ts +104 -94
- package/src/utils/questionnaireStoreUtils/createQuestionaireModel.ts +4 -0
- package/src/utils/repopulateIntoResponse.ts +153 -0
- package/src/utils/repopulateItems.ts +207 -0
- package/src/utils/repopulateRepeatGroup.ts +68 -0
- package/lib/theme/overrides/Typography.d.ts +0 -13
- package/lib/theme/overrides/Typography.js.map +0 -1
- package/lib/utils/isHidden.d.ts +0 -3
- package/lib/utils/isHidden.js.map +0 -1
|
@@ -34,6 +34,7 @@ import cloneDeep from 'lodash.clonedeep';
|
|
|
34
34
|
import useTerminologyServerStore from './useTerminologyServerStore';
|
|
35
35
|
const useQuestionnaireStore = create()((set, get) => ({
|
|
36
36
|
sourceQuestionnaire: cloneDeep(emptyQuestionnaire),
|
|
37
|
+
itemTypes: {},
|
|
37
38
|
tabs: {},
|
|
38
39
|
currentTabIndex: 0,
|
|
39
40
|
variables: { fhirPathVariables: {}, xFhirQueryVariables: {} },
|
|
@@ -59,6 +60,7 @@ const useQuestionnaireStore = create()((set, get) => ({
|
|
|
59
60
|
});
|
|
60
61
|
set({
|
|
61
62
|
sourceQuestionnaire: questionnaire,
|
|
63
|
+
itemTypes: questionnaireModel.itemTypes,
|
|
62
64
|
tabs: questionnaireModel.tabs,
|
|
63
65
|
currentTabIndex: firstVisibleTab,
|
|
64
66
|
variables: questionnaireModel.variables,
|
|
@@ -74,6 +76,7 @@ const useQuestionnaireStore = create()((set, get) => ({
|
|
|
74
76
|
}),
|
|
75
77
|
destroySourceQuestionnaire: () => set({
|
|
76
78
|
sourceQuestionnaire: cloneDeep(emptyQuestionnaire),
|
|
79
|
+
itemTypes: {},
|
|
77
80
|
tabs: {},
|
|
78
81
|
currentTabIndex: 0,
|
|
79
82
|
variables: { fhirPathVariables: {}, xFhirQueryVariables: {} },
|
|
@@ -123,7 +126,7 @@ const useQuestionnaireStore = create()((set, get) => ({
|
|
|
123
126
|
addCodingToCache: (valueSetUrl, codings) => set(() => ({
|
|
124
127
|
cachedValueSetCodings: Object.assign(Object.assign({}, get().cachedValueSetCodings), { [valueSetUrl]: codings })
|
|
125
128
|
})),
|
|
126
|
-
updatePopulatedProperties: (populatedResponse) => {
|
|
129
|
+
updatePopulatedProperties: (populatedResponse, persistTabIndex) => {
|
|
127
130
|
const initialCalculatedExpressions = evaluateInitialCalculatedExpressions({
|
|
128
131
|
initialResponse: populatedResponse,
|
|
129
132
|
calculatedExpressions: get().calculatedExpressions,
|
|
@@ -143,7 +146,7 @@ const useQuestionnaireStore = create()((set, get) => ({
|
|
|
143
146
|
enableWhenLinkedQuestions: initialEnableWhenLinkedQuestions,
|
|
144
147
|
enableWhenExpressions: initialEnableWhenExpressions,
|
|
145
148
|
calculatedExpressions: initialCalculatedExpressions,
|
|
146
|
-
currentTabIndex: firstVisibleTab
|
|
149
|
+
currentTabIndex: persistTabIndex ? get().currentTabIndex : firstVisibleTab
|
|
147
150
|
}));
|
|
148
151
|
return updatedResponse;
|
|
149
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuestionnaireStore.js","sourceRoot":"","sources":["../../src/stores/useQuestionnaireStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAajC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EACL,oCAAoC,EACpC,oCAAoC,EACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"useQuestionnaireStore.js","sourceRoot":"","sources":["../../src/stores/useQuestionnaireStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,12 +19,11 @@ import Paper from './Paper';
|
|
|
19
19
|
import Input from './Input';
|
|
20
20
|
import Table from './Table';
|
|
21
21
|
import Button from './Button';
|
|
22
|
-
import Backdrop from './Backdrop';
|
|
23
22
|
import Autocomplete from './Autocomplete';
|
|
24
23
|
import Accordion from './Accordion';
|
|
25
24
|
import SpeedDial from './SpeedDial';
|
|
26
25
|
function ComponentsOverrides(theme) {
|
|
27
|
-
return Object.assign(Accordion(theme), Card(theme), Table(theme), Input(theme), Paper(), Button(theme),
|
|
26
|
+
return Object.assign(Accordion(theme), Card(theme), Table(theme), Input(theme), Paper(), Button(theme), Autocomplete(theme), SpeedDial(theme));
|
|
28
27
|
}
|
|
29
28
|
export default ComponentsOverrides;
|
|
30
29
|
//# sourceMappingURL=Overrides.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../../src/theme/overrides/Overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../../src/theme/overrides/Overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC,SAAS,mBAAmB,CAAC,KAAY;IACvC,OAAO,MAAM,CAAC,MAAM,CAClB,SAAS,CAAC,KAAK,CAAC,EAChB,IAAI,CAAC,KAAK,CAAC,EACX,KAAK,CAAC,KAAK,CAAC,EACZ,KAAK,CAAC,KAAK,CAAC,EACZ,KAAK,EAAE,EACP,MAAM,CAAC,KAAK,CAAC,EACb,YAAY,CAAC,KAAK,CAAC,EACnB,SAAS,CAAC,KAAK,CAAC,CACjB,CAAC;AACJ,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -20,7 +20,7 @@ import _isEqual from 'lodash/isEqual';
|
|
|
20
20
|
import { emptyResponse } from './emptyResource';
|
|
21
21
|
import { createFhirPathContext } from './fhirpath';
|
|
22
22
|
import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
|
|
23
|
-
import {
|
|
23
|
+
import { updateQrItemsInGroup } from './qrItem';
|
|
24
24
|
import cloneDeep from 'lodash.clonedeep';
|
|
25
25
|
export function evaluateInitialCalculatedExpressions(params) {
|
|
26
26
|
const { initialResponse, calculatedExpressions, variablesFhirPath } = params;
|
|
@@ -124,7 +124,7 @@ function initialiseItemCalculatedExpressionValueRecursive(qItem, qrItem, calcula
|
|
|
124
124
|
continue;
|
|
125
125
|
}
|
|
126
126
|
if (newQrItem) {
|
|
127
|
-
|
|
127
|
+
updateQrItemsInGroup(newQrItem, null, qrItem !== null && qrItem !== void 0 ? qrItem : { linkId: qItem.linkId, text: qItem.text, item: [] }, indexMap);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
return constructGroupItem(qItem, qrItem, calculatedExpressions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AASzD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AASzD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAQzC,MAAM,UAAU,oCAAoC,CAClD,MAAkD;IAElD,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;IAE7E,2CAA2C;IAC3C,IAAI,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE;QACvD,OAAO,qBAAqB,CAAC;KAC9B;IAED,MAAM,kBAAkB,qBAA8C,qBAAqB,CAAE,CAAC;IAE9F,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9C,MAAM,eAAe,GAAwB,qBAAqB,CAChE,eAAe,EACf,iBAAiB,CAClB,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE;YACvC,IAAI;gBACF,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAC9B,eAAe,EACf,qBAAqB,CAAC,MAAM,CAAC,CAAC,UAAU,EACxC,eAAe,EACf,iBAAiB,CAClB,CAAC;gBAEF,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;oBACrD,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC9C;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,OAAO,EACT,WAAW,MAAM,iBAAiB,qBAAqB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAC7E,CAAC;aACH;SACF;KACF;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,eAAoC,EACpC,qBAA2D;IAK3D,MAAM,4BAA4B,qBAC7B,qBAAqB,CACzB,CAAC;IAEF,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE;QAC1C,IAAI;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAC9B,EAAE,EACF,qBAAqB,CAAC,MAAM,CAAC,CAAC,UAAU,EACxC,eAAe,EACf,iBAAiB,CAClB,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;oBACrD,SAAS,GAAG,IAAI,CAAC;oBACjB,4BAA4B,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;iBACxD;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,OAAO,EACT,WAAW,MAAM,iBAAiB,qBAAqB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAC7E,CAAC;SACH;KACF;IAED,OAAO;QACL,uBAAuB,EAAE,SAAS;QAClC,4BAA4B,EAAE,4BAA4B;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,aAA4B,EAC5B,iBAAwC,EACxC,qBAA2D;;IAE3D,MAAM,+BAA+B,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;SACvE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;SAC/D,MAAM,CACL,CAAC,OAA6C,EAAE,GAAW,EAAE,EAAE,CAAC,CAC9D,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CACrD,EACD,EAAE,CACH,CAAC;IAEJ,IACE,CAAC,aAAa,CAAC,IAAI;QACnB,aAAa,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAC/B,CAAC,iBAAiB,CAAC,IAAI;QACvB,iBAAiB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EACnC;QACA,OAAO,iBAAiB,CAAC;KAC1B;IAED,MAAM,eAAe,GAAgC,EAAE,CAAC;IACxD,KAAK,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;QACjE,MAAM,uBAAuB,GAAG,MAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI;YAC/D,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,MAAM,qBAAqB,GAAG,gDAAgD,CAC5E,aAAa,EACb,uBAAuB,EACvB,+BAA+B,CAChC,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;YACxC,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,eAAe,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;aAChD;YACD,SAAS;SACV;QAED,IAAI,qBAAqB,EAAE;YACzB,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAC7C;KACF;IAED,uCAAY,iBAAiB,KAAE,IAAI,EAAE,eAAe,IAAG;AACzD,CAAC;AAED,SAAS,gDAAgD,CACvD,KAAwB,EACxB,MAA6C,EAC7C,qBAA2D;;IAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;IAC/B,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QACzC,4CAA4C;QAC5C,MAAM,YAAY,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,CAAC;QACxC,+DAA+D;QAE/D,0CAA0C;QAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;YAC3C,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAC;SACvB;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE5E,wCAAwC;QACxC,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE;YACvD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAE1C,0CAA0C;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC9B,SAAS;aACV;YAED,MAAM,SAAS,GAAG,gDAAgD,CAChE,UAAU,EACV,WAAW,EACX,qBAAqB,CACtB,CAAC;YAEF,0CAA0C;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC5B,SAAS;aACV;YAED,IAAI,SAAS,EAAE;gBACb,oBAAoB,CAClB,SAAS,EACT,IAAI,EACJ,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAC9D,QAAQ,CACT,CAAC;aACH;SACF;QAED,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;KACjE;IAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAwB,EACxB,MAA6C,EAC7C,qBAA2D;IAE3D,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,0BAAuE,CAAC;IAC5E,IAAI,wBAAwB,IAAI,wBAAwB,CAAC,KAAK,EAAE;QAC9D,0BAA0B,GAAG,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;KACxF;IAED,6FAA6F;IAC7F,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,MAAM,IAAG,CAAC,EAAE;QAC/C,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAC;KACvB;IAED,IAAI,CAAC,0BAA0B,EAAE;QAC/B,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAC;KACvB;IAED,IAAI,MAAM,EAAE;QACV,uCACK,MAAM,KACT,MAAM,EAAE,CAAC,0BAA0B,CAAC,IACpC;KACH;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,CAAC,0BAA0B,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAwB,EACxB,qBAA2D;IAE3D,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,0BAAuE,CAAC;IAC5E,IAAI,wBAAwB,IAAI,wBAAwB,CAAC,KAAK,EAAE;QAC9D,0BAA0B,GAAG,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;KACxF;IAED,IAAI,CAAC,0BAA0B,EAAE;QAC/B,OAAO,IAAI,CAAC;KACb;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,CAAC,0BAA0B,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAwB,EACxB,KAAsB;IAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5B,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;SAChC;QAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;KAChC;IAED,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { QuestionnaireResponseItemAnswer } from 'fhir/r4';
|
|
2
|
+
type JsonDiffOperator = '+' | '-' | '~' | ' ';
|
|
3
|
+
type QuestionnaireResponseItemDiffArray = [JsonDiffOperator, QuestionnaireResponseDiffItem];
|
|
4
|
+
type QuestionnaireResponseItemAnswerDiffArray = [JsonDiffOperator, QuestionnaireResponseItemAnswer];
|
|
5
|
+
interface QuestionnaireResponseDiffItem {
|
|
6
|
+
linkId: string;
|
|
7
|
+
item: QuestionnaireResponseItemDiffArray[] | undefined;
|
|
8
|
+
answer: QuestionnaireResponseItemAnswer[] | QuestionnaireResponseItemAnswerDiffArray[] | undefined;
|
|
9
|
+
}
|
|
10
|
+
interface ItemChange {
|
|
11
|
+
linkId: string;
|
|
12
|
+
itemType: string;
|
|
13
|
+
operation: 'add' | 'remove' | 'update';
|
|
14
|
+
value: QuestionnaireResponseItemAnswer;
|
|
15
|
+
}
|
|
16
|
+
export declare function readFormChanges(formChanges: object, itemTypes: Record<string, string>): Record<string, ItemChange | null>;
|
|
17
|
+
export declare function readItemChangesRecursive(diffArray: QuestionnaireResponseItemDiffArray, itemTypes: Record<string, string>, changedItems: Record<string, ItemChange | null>): Record<string, ItemChange | null>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export function readFormChanges(formChanges, itemTypes) {
|
|
18
|
+
if (!('item' in formChanges)) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
const changedItems = {};
|
|
22
|
+
const diffArrays = formChanges.item;
|
|
23
|
+
for (const diffArray of diffArrays) {
|
|
24
|
+
readItemChangesRecursive(diffArray, itemTypes, changedItems);
|
|
25
|
+
}
|
|
26
|
+
return changedItems;
|
|
27
|
+
}
|
|
28
|
+
export function readItemChangesRecursive(diffArray, itemTypes, changedItems) {
|
|
29
|
+
const operator = diffArray[0];
|
|
30
|
+
const diffItem = diffArray[1];
|
|
31
|
+
if (!operator || !diffItem) {
|
|
32
|
+
return changedItems;
|
|
33
|
+
}
|
|
34
|
+
changedItems[diffItem.linkId] = null;
|
|
35
|
+
const childDiffArrays = diffItem.item;
|
|
36
|
+
if (childDiffArrays && childDiffArrays.length > 0) {
|
|
37
|
+
for (const childDiffArray of childDiffArrays) {
|
|
38
|
+
readItemChangesRecursive(childDiffArray, itemTypes, changedItems);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// if (operator !== ' ') {
|
|
42
|
+
// console.log(operator, diffItem);
|
|
43
|
+
// }
|
|
44
|
+
// explore answer diff arrays
|
|
45
|
+
// exmaple: [["+", {"valueString": "test"}], ["-", {"valueString": "test"}]]
|
|
46
|
+
// or it could be a regular answer array
|
|
47
|
+
// exmaple: [{"valueString": "test"}, {"valueString": "test"}]
|
|
48
|
+
const answerDiffArrays = diffItem.answer;
|
|
49
|
+
if (answerDiffArrays && isAnswerDiffArray(answerDiffArrays)) {
|
|
50
|
+
for (const answerDiffArray of answerDiffArrays) {
|
|
51
|
+
getItemChange(diffItem, answerDiffArray, itemTypes, changedItems);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return changedItems;
|
|
55
|
+
}
|
|
56
|
+
function getItemChange(diffItem, answerDiffArray, itemTypes, changedItems) {
|
|
57
|
+
const operator = answerDiffArray[0];
|
|
58
|
+
const answer = answerDiffArray[1];
|
|
59
|
+
if (operator === ' ') {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const itemType = itemTypes[diffItem.linkId];
|
|
63
|
+
const operation = answerDiffOperationSwitcher(operator);
|
|
64
|
+
if (operation) {
|
|
65
|
+
changedItems[diffItem.linkId] = {
|
|
66
|
+
linkId: diffItem.linkId,
|
|
67
|
+
itemType: itemType,
|
|
68
|
+
operation: operation,
|
|
69
|
+
value: answer
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function answerDiffOperationSwitcher(operator) {
|
|
74
|
+
switch (operator) {
|
|
75
|
+
case '+':
|
|
76
|
+
return 'add';
|
|
77
|
+
case '-':
|
|
78
|
+
return 'remove';
|
|
79
|
+
case '~':
|
|
80
|
+
return 'update';
|
|
81
|
+
default:
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// type predicates
|
|
86
|
+
function isAnswerDiffArray(answer) {
|
|
87
|
+
return answer.every((answerItem) => Array.isArray(answerItem) &&
|
|
88
|
+
typeof answerItem[0] === 'string' &&
|
|
89
|
+
typeof answerItem[1] === 'object');
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=formChanges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formChanges.js","sourceRoot":"","sources":["../../src/utils/formChanges.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { QuestionnaireResponseItemAnswer } from 'fhir/r4';
|
|
2
|
+
type JsonDiffOperator = '+' | '-' | '~' | ' ';
|
|
3
|
+
type QuestionnaireResponseItemDiffArray = [JsonDiffOperator, QuestionnaireResponseDiffItem];
|
|
4
|
+
type QuestionnaireResponseItemAnswerDiffArray = [JsonDiffOperator, QuestionnaireResponseItemAnswer];
|
|
5
|
+
interface QuestionnaireResponseDiffItem {
|
|
6
|
+
linkId: string;
|
|
7
|
+
item: QuestionnaireResponseItemDiffArray[] | undefined;
|
|
8
|
+
answer: QuestionnaireResponseItemAnswer[] | QuestionnaireResponseItemAnswerDiffArray[] | undefined;
|
|
9
|
+
}
|
|
10
|
+
interface ItemChange {
|
|
11
|
+
linkId: string;
|
|
12
|
+
itemType: string;
|
|
13
|
+
operation: 'add' | 'remove' | 'update';
|
|
14
|
+
value: QuestionnaireResponseItemAnswer;
|
|
15
|
+
}
|
|
16
|
+
export declare function readFormChanges(formChanges: object, itemTypes: Record<string, string>): Record<string, ItemChange | null>;
|
|
17
|
+
export declare function readItemChangesRecursive(diffArray: QuestionnaireResponseItemDiffArray, itemTypes: Record<string, string>, changedItems: Record<string, ItemChange | null>): Record<string, ItemChange | null>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export function readFormChanges(formChanges, itemTypes) {
|
|
18
|
+
if (!('item' in formChanges)) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
const changedItems = {};
|
|
22
|
+
const diffArrays = formChanges.item;
|
|
23
|
+
for (const diffArray of diffArrays) {
|
|
24
|
+
readItemChangesRecursive(diffArray, itemTypes, changedItems);
|
|
25
|
+
}
|
|
26
|
+
return changedItems;
|
|
27
|
+
}
|
|
28
|
+
export function readItemChangesRecursive(diffArray, itemTypes, changedItems) {
|
|
29
|
+
const operator = diffArray[0];
|
|
30
|
+
const diffItem = diffArray[1];
|
|
31
|
+
if (!operator || !diffItem) {
|
|
32
|
+
return changedItems;
|
|
33
|
+
}
|
|
34
|
+
changedItems[diffItem.linkId] = null;
|
|
35
|
+
const childDiffArrays = diffItem.item;
|
|
36
|
+
if (childDiffArrays && childDiffArrays.length > 0) {
|
|
37
|
+
for (const childDiffArray of childDiffArrays) {
|
|
38
|
+
readItemChangesRecursive(childDiffArray, itemTypes, changedItems);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// if (operator !== ' ') {
|
|
42
|
+
// console.log(operator, diffItem);
|
|
43
|
+
// }
|
|
44
|
+
// explore answer diff arrays
|
|
45
|
+
// exmaple: [["+", {"valueString": "test"}], ["-", {"valueString": "test"}]]
|
|
46
|
+
// or it could be a regular answer array
|
|
47
|
+
// exmaple: [{"valueString": "test"}, {"valueString": "test"}]
|
|
48
|
+
const answerDiffArrays = diffItem.answer;
|
|
49
|
+
if (answerDiffArrays && isAnswerDiffArray(answerDiffArrays)) {
|
|
50
|
+
for (const answerDiffArray of answerDiffArrays) {
|
|
51
|
+
getItemChange(diffItem, answerDiffArray, itemTypes, changedItems);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return changedItems;
|
|
55
|
+
}
|
|
56
|
+
function getItemChange(diffItem, answerDiffArray, itemTypes, changedItems) {
|
|
57
|
+
const operator = answerDiffArray[0];
|
|
58
|
+
const answer = answerDiffArray[1];
|
|
59
|
+
if (operator === ' ') {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const itemType = itemTypes[diffItem.linkId];
|
|
63
|
+
const operation = answerDiffOperationSwitcher(operator);
|
|
64
|
+
if (operation) {
|
|
65
|
+
changedItems[diffItem.linkId] = {
|
|
66
|
+
linkId: diffItem.linkId,
|
|
67
|
+
itemType: itemType,
|
|
68
|
+
operation: operation,
|
|
69
|
+
value: answer
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function answerDiffOperationSwitcher(operator) {
|
|
74
|
+
switch (operator) {
|
|
75
|
+
case '+':
|
|
76
|
+
return 'add';
|
|
77
|
+
case '-':
|
|
78
|
+
return 'remove';
|
|
79
|
+
case '~':
|
|
80
|
+
return 'update';
|
|
81
|
+
default:
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// type predicates
|
|
86
|
+
function isAnswerDiffArray(answer) {
|
|
87
|
+
return answer.every((answerItem) => Array.isArray(answerItem) &&
|
|
88
|
+
typeof answerItem[0] === 'string' &&
|
|
89
|
+
typeof answerItem[1] === 'object');
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=formChangesOld.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formChangesOld.js","sourceRoot":"","sources":["../../src/utils/formChangesOld.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { isSpecificItemControl } from './itemControl';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export { isSpecificItemControl } from './itemControl';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/lib/utils/mapItem.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
1
|
+
import type { Questionnaire, QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
2
|
/**
|
|
3
3
|
* Generate an array of QuestionnaireResponseItems corresponding to its QuestionnaireItem indexes an array.
|
|
4
4
|
* QuestionnaireItems without a corresponding QuestionnaireResponseItem is set as undefined.
|
|
@@ -15,4 +15,4 @@ export declare function getQrItemsIndex(qItems: QuestionnaireItem[], qrItems: Qu
|
|
|
15
15
|
*
|
|
16
16
|
* @author Sean Fong
|
|
17
17
|
*/
|
|
18
|
-
export declare function mapQItemsIndex(
|
|
18
|
+
export declare function mapQItemsIndex(questionnaireOrQItem: QuestionnaireItem | Questionnaire): Record<string, number>;
|
package/lib/utils/mapItem.js
CHANGED
|
@@ -67,12 +67,12 @@ export function getQrItemsIndex(qItems, qrItems, qItemsIndexMap) {
|
|
|
67
67
|
*
|
|
68
68
|
* @author Sean Fong
|
|
69
69
|
*/
|
|
70
|
-
export function mapQItemsIndex(
|
|
71
|
-
if (!
|
|
70
|
+
export function mapQItemsIndex(questionnaireOrQItem) {
|
|
71
|
+
if (!questionnaireOrQItem.item) {
|
|
72
72
|
return {};
|
|
73
73
|
}
|
|
74
74
|
// generate a <linkId, QItemIndex> dictionary
|
|
75
|
-
return
|
|
75
|
+
return questionnaireOrQItem.item.reduce((mapping, item, i) => {
|
|
76
76
|
mapping[item.linkId] = i;
|
|
77
77
|
return mapping;
|
|
78
78
|
}, {});
|
package/lib/utils/mapItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapItem.js","sourceRoot":"","sources":["../../src/utils/mapItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,OAAoC,EACpC,cAAsC;IAEtC,oDAAoD;IACpD,MAAM,gBAAgB,GACpB,EAAE,CAAC;IACL,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,kFAAkF;QAClF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;YAC5B,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE3C,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC/B,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;aAC7B;YAED,6BAA6B;YAC7B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;SACxC;aAAM;YACL,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAE1C,8FAA8F;YAC9F,MAAM,aAAa,GACjB,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAExF,gBAAgB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC9D;KACF;IAED,6GAA6G;IAC7G,0DAA0D;IAC1D,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,OAAoE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjF,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,iFAAiF;QACjF,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC/D,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE;aAAM;YACL,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7C;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,
|
|
1
|
+
{"version":3,"file":"mapItem.js","sourceRoot":"","sources":["../../src/utils/mapItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,OAAoC,EACpC,cAAsC;IAEtC,oDAAoD;IACpD,MAAM,gBAAgB,GACpB,EAAE,CAAC;IACL,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,kFAAkF;QAClF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;YAC5B,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE3C,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAC/B,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;aAC7B;YAED,6BAA6B;YAC7B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;SACxC;aAAM;YACL,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAE1C,8FAA8F;YAC9F,MAAM,aAAa,GACjB,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAExF,gBAAgB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC9D;KACF;IAED,6GAA6G;IAC7G,0DAA0D;IAC1D,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,OAAoE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjF,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,iFAAiF;QACjF,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC/D,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE;aAAM;YACL,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7C;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,oBAAuD;IAEvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC9B,OAAO,EAAE,CAAC;KACX;IAED,6CAA6C;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAA+B,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QACnF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
package/lib/utils/qItem.d.ts
CHANGED
|
@@ -29,4 +29,6 @@ export declare function isHiddenByEnableWhens(params: isHiddenByEnableWhensParam
|
|
|
29
29
|
*/
|
|
30
30
|
export declare function isRepeatItemAndNotCheckbox(qItem: QuestionnaireItem): boolean;
|
|
31
31
|
export declare function getXHtmlStringFromQuestionnaire(questionnaire: Questionnaire): string | null;
|
|
32
|
+
export declare function getLinkIdTypeTuples(questionnaire: Questionnaire): [string, string][];
|
|
33
|
+
export declare function getLinkIdTypeTuplesFromItemRecursive(qItem: QuestionnaireItem): [string, string][];
|
|
32
34
|
export {};
|
package/lib/utils/qItem.js
CHANGED
|
@@ -70,4 +70,26 @@ export function getXHtmlStringFromQuestionnaire(questionnaire) {
|
|
|
70
70
|
}
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
|
+
export function getLinkIdTypeTuples(questionnaire) {
|
|
74
|
+
if (!questionnaire.item || questionnaire.item.length === 0) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
const linkIds = [];
|
|
78
|
+
for (const topLevelItem of questionnaire.item) {
|
|
79
|
+
linkIds.push(...getLinkIdTypeTuplesFromItemRecursive(topLevelItem));
|
|
80
|
+
}
|
|
81
|
+
return linkIds;
|
|
82
|
+
}
|
|
83
|
+
export function getLinkIdTypeTuplesFromItemRecursive(qItem) {
|
|
84
|
+
const linkIds = [];
|
|
85
|
+
if (qItem.linkId) {
|
|
86
|
+
linkIds.push([qItem.linkId, qItem.type]);
|
|
87
|
+
}
|
|
88
|
+
if (qItem.item) {
|
|
89
|
+
for (const childItem of qItem.item) {
|
|
90
|
+
linkIds.push(...getLinkIdTypeTuplesFromItemRecursive(childItem));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return linkIds;
|
|
94
|
+
}
|
|
73
95
|
//# sourceMappingURL=qItem.js.map
|
package/lib/utils/qItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qItem.js","sourceRoot":"","sources":["../../src/utils/qItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAUxD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAsB;IAC7C,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,GACxF,MAAM,CAAC;IACT,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,qBAAqB,CAAC;QAC3B,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,qBAAqB;QACrB,eAAe;QACf,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC;AASD,MAAM,UAAU,qBAAqB,CAAC,MAAmC;IACvE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEzF,IAAI,qBAAqB,EAAE;QACzB,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;SAC3C;QAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;YACjC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;SACjD;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAwB;IACjE,MAAM,UAAU,GACd,oBAAoB,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC,QAAQ;QAC1D,wBAAwB,CAAC,KAAK,CAAC,KAAK,qBAAqB,CAAC,QAAQ,CAAC;IAErE,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,aAA4B;;IAC1E,MAAM,WAAW,GAAG,MAAA,MAAA,aAAa,CAAC,MAAM,0CAAE,SAAS,0CAAE,IAAI,CACvD,CAAC,SAAoB,EAAE,EAAE,CACvB,SAAS,CAAC,GAAG,KAAK,yDAAyD,CAC9E,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,OAAO,WAAW,CAAC,WAAW,CAAC;SAChC;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"qItem.js","sourceRoot":"","sources":["../../src/utils/qItem.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/qrItem.d.ts
CHANGED
|
@@ -39,4 +39,4 @@ export declare function createEmptyQrItemWithUnit(qItem: QuestionnaireItem, unit
|
|
|
39
39
|
*
|
|
40
40
|
* @author Sean Fong
|
|
41
41
|
*/
|
|
42
|
-
export declare function
|
|
42
|
+
export declare function updateQrItemsInGroup(newQrItem: QuestionnaireResponseItem | null, newQrRepeatGroup: QrRepeatGroup | null, questionnaireResponseOrQrItem: QuestionnaireResponseItem | QuestionnaireResponse, qItemsIndexMap: Record<string, number>): void;
|