@aehrc/smart-forms-renderer 1.2.0 → 1.2.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 (135) hide show
  1. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +7 -0
  2. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +26 -0
  3. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -0
  4. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +8 -0
  5. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +63 -0
  6. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -0
  7. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +8 -0
  8. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +53 -0
  9. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -0
  10. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +4 -3
  11. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  12. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +10 -0
  13. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +30 -0
  14. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -0
  15. package/lib/components/FormComponents/SingleItem/SingleItem.js +15 -2
  16. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  17. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +8 -8
  18. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
  19. package/lib/components/Iconify/Iconify.d.ts +10 -0
  20. package/lib/components/Iconify/Iconify.js +26 -0
  21. package/lib/components/Iconify/Iconify.js.map +1 -0
  22. package/lib/components/Renderer/FormBodyPage.d.ts +9 -0
  23. package/lib/components/Renderer/FormBodyPage.js +43 -0
  24. package/lib/components/Renderer/FormBodyPage.js.map +1 -0
  25. package/lib/components/Renderer/FormTitle.d.ts +7 -0
  26. package/lib/components/Renderer/FormTitle.js +30 -0
  27. package/lib/components/Renderer/FormTitle.js.map +1 -0
  28. package/lib/components/Renderer/FormTopLevelPage.d.ts +9 -0
  29. package/lib/components/Renderer/FormTopLevelPage.js +29 -0
  30. package/lib/components/Renderer/FormTopLevelPage.js.map +1 -0
  31. package/lib/components/Tabs/FormBodyTabListWrapper.js +1 -1
  32. package/lib/components/Tabs/FormBodyTabListWrapper.js.map +1 -1
  33. package/lib/hooks/useBooleanCalculatedExpression.d.ts +12 -0
  34. package/lib/hooks/useBooleanCalculatedExpression.js +53 -0
  35. package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -0
  36. package/lib/hooks/useDecimalCalculatedExpression.d.ts +13 -0
  37. package/lib/hooks/useDecimalCalculatedExpression.js +59 -0
  38. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -0
  39. package/lib/hooks/useIntegerCalculatedExpression.d.ts +12 -0
  40. package/lib/hooks/useIntegerCalculatedExpression.js +56 -0
  41. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -0
  42. package/lib/hooks/useQuantityCalculatedExpression.d.ts +14 -0
  43. package/lib/hooks/useQuantityCalculatedExpression.js +107 -0
  44. package/lib/hooks/useQuantityCalculatedExpression.js.map +1 -0
  45. package/lib/hooks/useStringCalculatedExpression.d.ts +12 -0
  46. package/lib/hooks/useStringCalculatedExpression.js +58 -0
  47. package/lib/hooks/useStringCalculatedExpression.js.map +1 -0
  48. package/lib/stores/rendererConfigStore.d.ts +1 -1
  49. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +3 -2
  50. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +27 -6
  51. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -1
  52. package/lib/stories/storybookWrappers/index.js +1 -1
  53. package/lib/theme/Theme.d.ts +44 -0
  54. package/lib/theme/Theme.js +43 -0
  55. package/lib/theme/Theme.js.map +1 -0
  56. package/lib/theme/customGlobalStyles.d.ts +2 -0
  57. package/lib/theme/customGlobalStyles.js +61 -0
  58. package/lib/theme/customGlobalStyles.js.map +1 -0
  59. package/lib/theme/overrides/Accordion.d.ts +14 -0
  60. package/lib/theme/overrides/Accordion.js +32 -0
  61. package/lib/theme/overrides/Accordion.js.map +1 -0
  62. package/lib/theme/overrides/Autocomplete.d.ts +10 -0
  63. package/lib/theme/overrides/Autocomplete.js +28 -0
  64. package/lib/theme/overrides/Autocomplete.js.map +1 -0
  65. package/lib/theme/overrides/Button.d.ts +33 -0
  66. package/lib/theme/overrides/Button.js +52 -0
  67. package/lib/theme/overrides/Button.js.map +1 -0
  68. package/lib/theme/overrides/Card.d.ts +35 -0
  69. package/lib/theme/overrides/Card.js +49 -0
  70. package/lib/theme/overrides/Card.js.map +1 -0
  71. package/lib/theme/overrides/Input.d.ts +64 -0
  72. package/lib/theme/overrides/Input.js +81 -0
  73. package/lib/theme/overrides/Input.js.map +1 -0
  74. package/lib/theme/overrides/Overrides.d.ts +3 -0
  75. package/lib/theme/overrides/Overrides.js +29 -0
  76. package/lib/theme/overrides/Overrides.js.map +1 -0
  77. package/lib/theme/overrides/Paper.d.ts +12 -0
  78. package/lib/theme/overrides/Paper.js +31 -0
  79. package/lib/theme/overrides/Paper.js.map +1 -0
  80. package/lib/theme/overrides/SpeedDial.d.ts +16 -0
  81. package/lib/theme/overrides/SpeedDial.js +34 -0
  82. package/lib/theme/overrides/SpeedDial.js.map +1 -0
  83. package/lib/theme/overrides/Table.d.ts +12 -0
  84. package/lib/theme/overrides/Table.js +30 -0
  85. package/lib/theme/overrides/Table.js.map +1 -0
  86. package/lib/theme/palette.d.ts +27 -0
  87. package/lib/theme/palette.js +63 -0
  88. package/lib/theme/palette.js.map +1 -0
  89. package/lib/theme/shadows.d.ts +2 -0
  90. package/lib/theme/shadows.js +52 -0
  91. package/lib/theme/shadows.js.map +1 -0
  92. package/lib/utils/calculatedExpression.js +11 -0
  93. package/lib/utils/calculatedExpression.js.map +1 -1
  94. package/lib/utils/dayjsExtend.d.ts +1 -0
  95. package/lib/utils/dayjsExtend.js +22 -0
  96. package/lib/utils/dayjsExtend.js.map +1 -0
  97. package/lib/utils/initialise.js +8 -1
  98. package/lib/utils/initialise.js.map +1 -1
  99. package/lib/utils/itemControl.d.ts +103 -0
  100. package/lib/utils/itemControl.js +350 -0
  101. package/lib/utils/itemControl.js.map +1 -0
  102. package/lib/utils/mapItem.d.ts +1 -1
  103. package/lib/utils/mapItem.js +2 -0
  104. package/lib/utils/mapItem.js.map +1 -1
  105. package/lib/utils/qrItem.d.ts +13 -0
  106. package/lib/utils/qrItem.js +76 -0
  107. package/lib/utils/qrItem.js.map +1 -1
  108. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +2 -0
  109. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +43 -0
  110. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +1 -0
  111. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +3 -0
  112. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +101 -0
  113. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -0
  114. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +4 -2
  115. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  116. package/lib/utils/validateQuestionnaire.d.ts +66 -0
  117. package/lib/utils/validateQuestionnaire.js +559 -0
  118. package/lib/utils/validateQuestionnaire.js.map +1 -0
  119. package/package.json +1 -1
  120. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +4 -3
  121. package/src/components/FormComponents/SingleItem/SingleItem.tsx +16 -2
  122. package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +8 -9
  123. package/src/components/Tabs/FormBodyTabListWrapper.tsx +1 -1
  124. package/src/stores/rendererConfigStore.ts +1 -1
  125. package/src/utils/calculatedExpression.ts +11 -0
  126. package/src/utils/initialise.ts +8 -1
  127. package/src/utils/mapItem.ts +3 -1
  128. package/src/utils/qrItem.ts +91 -0
  129. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +4 -2
  130. package/lib/interfaces/itemPath.interface.d.ts +0 -31
  131. package/lib/interfaces/itemPath.interface.js +0 -2
  132. package/lib/interfaces/itemPath.interface.js.map +0 -1
  133. package/lib/utils/itemPath.d.ts +0 -57
  134. package/lib/utils/itemPath.js +0 -75
  135. package/lib/utils/itemPath.js.map +0 -1
@@ -0,0 +1,350 @@
1
+ /*
2
+ * Copyright 2024 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { 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
+ }
22
+ function hasItemControl(qItem) {
23
+ var _a;
24
+ return !!((_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.some((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl'));
25
+ }
26
+ // If all nested items are of type display and have itemControl, then they should not be rendered
27
+ export function shouldRenderNestedItems(qItem) {
28
+ var _a;
29
+ return !((_a = qItem.item) === null || _a === void 0 ? void 0 : _a.every((childItem) => childItem.type === 'display' && (hasDisplayCategory(childItem) || hasItemControl(childItem))));
30
+ }
31
+ /**
32
+ * Check if the extension has an itemControl code equal to the given itemControlCode
33
+ *
34
+ * @author Sean Fong
35
+ */
36
+ export function isSpecificItemControl(qItem, itemControlCode) {
37
+ var _a, _b, _c;
38
+ const itemControl = (_a = qItem === null || qItem === void 0 ? void 0 : qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl');
39
+ if (itemControl) {
40
+ const code = (_c = (_b = itemControl.valueCodeableConcept) === null || _b === void 0 ? void 0 : _b.coding) === null || _c === void 0 ? void 0 : _c.find((coding) => coding.code === itemControlCode);
41
+ if (code) {
42
+ return true;
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+ /**
48
+ * Check if the extension has an displayCategory code equal to the given displayCategory
49
+ *
50
+ * @author Sean Fong
51
+ */
52
+ export function isSpecificDisplayCategory(qItem, itemControlCode) {
53
+ var _a, _b, _c;
54
+ const displayCategory = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory');
55
+ if (displayCategory) {
56
+ const code = (_c = (_b = displayCategory.valueCodeableConcept) === null || _b === void 0 ? void 0 : _b.coding) === null || _c === void 0 ? void 0 : _c.find((coding) => coding.code === itemControlCode);
57
+ if (code) {
58
+ return true;
59
+ }
60
+ }
61
+ return false;
62
+ }
63
+ /**
64
+ * Check if the extension has url for items that use shortText
65
+ *
66
+ * @author Sean Fong
67
+ */
68
+ export function getShortText(qItem) {
69
+ var _a;
70
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-shortText');
71
+ if (itemControl) {
72
+ if (itemControl.valueString) {
73
+ return itemControl.valueString;
74
+ }
75
+ }
76
+ return null;
77
+ }
78
+ /**
79
+ * Check if the extension has url for hidden questions
80
+ *
81
+ * @author Sean Fong
82
+ */
83
+ export function hasHiddenExtension(qItem) {
84
+ var _a;
85
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-hidden');
86
+ if (itemControl) {
87
+ if (itemControl.valueBoolean) {
88
+ return true;
89
+ }
90
+ }
91
+ return false;
92
+ }
93
+ /**
94
+ * Check if the extension has url for items that use open label
95
+ *
96
+ * @author Sean Fong
97
+ */
98
+ export function getOpenLabelText(qItem) {
99
+ var _a;
100
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-openLabel');
101
+ if (itemControl) {
102
+ if (itemControl.valueString) {
103
+ return itemControl.valueString;
104
+ }
105
+ }
106
+ return null;
107
+ }
108
+ /**
109
+ * Check if the decimal value has a quantity precision for the decimal value
110
+ *
111
+ * @author Sean Fong
112
+ */
113
+ export function getDecimalPrecision(qItem) {
114
+ var _a;
115
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/quantity-precision');
116
+ if (itemControl) {
117
+ if (itemControl.valueInteger) {
118
+ return itemControl.valueInteger;
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ /**
124
+ * Check if the extension has a url for xhtml rendering
125
+ *
126
+ * @author Sean Fong
127
+ */
128
+ export function getXHtmlString(qItem) {
129
+ var _a, _b;
130
+ let xHtmlString = null;
131
+ if (qItem.extension) {
132
+ xHtmlString = getXHtmlStringFromExtension(qItem.extension);
133
+ if (xHtmlString) {
134
+ return xHtmlString;
135
+ }
136
+ }
137
+ if ((_a = qItem._text) === null || _a === void 0 ? void 0 : _a.extension) {
138
+ xHtmlString = getXHtmlStringFromExtension((_b = qItem._text) === null || _b === void 0 ? void 0 : _b.extension);
139
+ if (xHtmlString) {
140
+ return xHtmlString;
141
+ }
142
+ }
143
+ return null;
144
+ }
145
+ export function getXHtmlStringFromExtension(extensions) {
146
+ const itemControl = extensions === null || extensions === void 0 ? void 0 : extensions.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/rendering-xhtml');
147
+ if (itemControl) {
148
+ if (itemControl.valueString) {
149
+ return itemControl.valueString;
150
+ }
151
+ }
152
+ return null;
153
+ }
154
+ /**
155
+ * Check if the item label (text) has a valueMarkdown extension
156
+ *
157
+ * @author Sean Fong
158
+ */
159
+ export function getMarkdownString(qItem) {
160
+ var _a, _b;
161
+ const itemControl = (_b = (_a = qItem._text) === null || _a === void 0 ? void 0 : _a.extension) === null || _b === void 0 ? void 0 : _b.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/rendering-markdown');
162
+ if (itemControl) {
163
+ if (itemControl.valueMarkdown) {
164
+ return itemControl.valueMarkdown;
165
+ }
166
+ }
167
+ return null;
168
+ }
169
+ /**
170
+ * Get text display prompt for items with itemControlCode prompt and has a prompt childItem
171
+ *
172
+ * @author Sean Fong
173
+ */
174
+ export function getTextDisplayPrompt(qItem) {
175
+ if (qItem.item) {
176
+ for (const childItem of qItem.item) {
177
+ if (childItem.type === 'display' && isSpecificItemControl(childItem, 'prompt')) {
178
+ const promptText = `${childItem.text}`;
179
+ return promptText[0].toUpperCase() + promptText.substring(1);
180
+ }
181
+ }
182
+ }
183
+ return '';
184
+ }
185
+ /**
186
+ * Get Quantity unit for items with itemControlCode unit and has a unit childItem
187
+ *
188
+ * @author Sean Fong
189
+ */
190
+ export function getQuantityUnit(qItem) {
191
+ var _a;
192
+ // Otherwise, check if the item has a unit extension
193
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit');
194
+ if (itemControl && itemControl.valueCoding) {
195
+ return itemControl;
196
+ }
197
+ return null;
198
+ }
199
+ /**
200
+ * Get decimal text display unit for items with itemControlCode unit and has a unit childItem
201
+ *
202
+ * @author Sean Fong
203
+ */
204
+ export function getTextDisplayUnit(qItem) {
205
+ var _a, _b;
206
+ // Check if the item has a display unit childItem
207
+ if (qItem.item) {
208
+ for (const childItem of qItem.item) {
209
+ if (childItem.type === 'display' && isSpecificItemControl(childItem, 'unit')) {
210
+ return `${childItem.text}`;
211
+ }
212
+ }
213
+ }
214
+ // Otherwise, check if the item has a unit extension
215
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit');
216
+ if (itemControl && itemControl.valueCoding) {
217
+ return (_b = itemControl.valueCoding.display) !== null && _b !== void 0 ? _b : '';
218
+ }
219
+ return '';
220
+ }
221
+ /**
222
+ * Get text display lower bound for items with itemControlCode "lower" and has a "lower" childItem
223
+ *
224
+ * @author Sean Fong
225
+ */
226
+ export function getTextDisplayLower(qItem) {
227
+ if (qItem.item) {
228
+ for (const childItem of qItem.item) {
229
+ if (childItem.type === 'display' && isSpecificItemControl(childItem, 'lower')) {
230
+ return `${childItem.text}`;
231
+ }
232
+ }
233
+ }
234
+ return '';
235
+ }
236
+ /**
237
+ * Get text display upper bound for items with itemControlCode "upper" and has a "upper" childItem
238
+ *
239
+ * @author Sean Fong
240
+ */
241
+ export function getTextDisplayUpper(qItem) {
242
+ if (qItem.item) {
243
+ for (const childItem of qItem.item) {
244
+ if (childItem.type === 'display' && isSpecificItemControl(childItem, 'upper')) {
245
+ return `${childItem.text}`;
246
+ }
247
+ }
248
+ }
249
+ return '';
250
+ }
251
+ /**
252
+ * Get text display instructions for items with itemControlCode instructions and has an instructions childItem
253
+ *
254
+ * @author Sean Fong
255
+ */
256
+ export function getTextDisplayInstructions(qItem) {
257
+ if (qItem.item) {
258
+ for (const childItem of qItem.item) {
259
+ if (childItem.type === 'display' && isSpecificDisplayCategory(childItem, 'instructions')) {
260
+ return `${childItem.text}`;
261
+ }
262
+ }
263
+ }
264
+ return '';
265
+ }
266
+ /**
267
+ * Get text display flyover for items with itemControlCode flyover and has an flyover childItem
268
+ *
269
+ * @author Sean Fong
270
+ */
271
+ export function getTextDisplayFlyover(qItem) {
272
+ if (qItem.item) {
273
+ for (const childItem of qItem.item) {
274
+ if (childItem.type === 'display' && isSpecificItemControl(childItem, 'flyover')) {
275
+ return `${childItem.text}`;
276
+ }
277
+ }
278
+ }
279
+ return '';
280
+ }
281
+ /**
282
+ * Get regex validation for items with regex extensions
283
+ *
284
+ * @author Sean Fong
285
+ */
286
+ export function getRegexValidation(qItem) {
287
+ // Get regex expression from extension
288
+ const regexString = getRegexString(qItem);
289
+ if (regexString) {
290
+ return { expression: new RegExp(regexString), feedback: null };
291
+ }
292
+ // Get regex expression from item types if regex extensions not present
293
+ if (qItem.type === 'url') {
294
+ return { expression: new RegExp(/^\S*$/), feedback: 'URLs should not contain any whitespaces' };
295
+ }
296
+ return undefined;
297
+ }
298
+ export function getRegexString(qItem) {
299
+ var _a;
300
+ const itemControl = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/regex');
301
+ if (itemControl) {
302
+ const extensionString = itemControl.valueString;
303
+ if (extensionString) {
304
+ let regexString;
305
+ if (extensionString.includes('matches(')) {
306
+ regexString = extensionString.substring(extensionString.indexOf("matches('") + "matches('".length, extensionString.lastIndexOf("')"));
307
+ }
308
+ else {
309
+ regexString = extensionString;
310
+ }
311
+ return regexString;
312
+ }
313
+ }
314
+ return null;
315
+ }
316
+ export function getMinValue(qItem) {
317
+ var _a, _b;
318
+ switch (qItem.type) {
319
+ case 'integer':
320
+ return structuredDataCapture.getMinValueAsInteger(qItem);
321
+ case 'decimal':
322
+ // In the case for decimals, permit minValue to be a decimal or integer
323
+ return ((_a = structuredDataCapture.getMinValueAsDecimal(qItem)) !== null && _a !== void 0 ? _a : structuredDataCapture.getMinValueAsInteger(qItem));
324
+ case 'date':
325
+ return structuredDataCapture.getMinValueAsDate(qItem);
326
+ case 'dateTime':
327
+ // In the case for dateTime, permit minValue to be a dateTime or date
328
+ return ((_b = structuredDataCapture.getMinValueAsDateTime(qItem)) !== null && _b !== void 0 ? _b : structuredDataCapture.getMinValueAsDate(qItem));
329
+ default:
330
+ return undefined;
331
+ }
332
+ }
333
+ export function getMaxValue(qItem) {
334
+ var _a, _b;
335
+ switch (qItem.type) {
336
+ case 'integer':
337
+ return structuredDataCapture.getMaxValueAsInteger(qItem);
338
+ case 'decimal':
339
+ // In the case for decimals, permit maxValue to be a decimal or integer
340
+ return ((_a = structuredDataCapture.getMaxValueAsDecimal(qItem)) !== null && _a !== void 0 ? _a : structuredDataCapture.getMaxValueAsInteger(qItem));
341
+ case 'date':
342
+ return structuredDataCapture.getMaxValueAsDate(qItem);
343
+ case 'dateTime':
344
+ // In the case for dateTime, permit maxValue to be a dateTime or date
345
+ return ((_b = structuredDataCapture.getMaxValueAsDateTime(qItem)) !== null && _b !== void 0 ? _b : structuredDataCapture.getMaxValueAsDate(qItem));
346
+ default:
347
+ return undefined;
348
+ }
349
+ }
350
+ //# sourceMappingURL=itemControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import type { Questionnaire, QuestionnaireItem, QuestionnaireResponseItem } from
9
9
  *
10
10
  * @author Sean Fong
11
11
  */
12
- export declare function getQrItemsIndex(qItems: QuestionnaireItem[], qrItems: QuestionnaireResponseItem[], qItemsIndexMap: Record<string, number>): (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
12
+ export declare function getQrItemsIndex(qItems: QuestionnaireItem[], qrItems: QuestionnaireResponseItem[] | undefined, qItemsIndexMap: Record<string, number>): (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
13
13
  /**
14
14
  * Generate a dictionary of QuestionnaireItems linkIds mapped to their respective array indexes `<linkId, QItemIndex>`
15
15
  * i.e. `{ ee2589d5: 0, f9aaa187: 1, 88cab112: 2 }`
@@ -28,6 +28,8 @@ import { isRepeatItemAndNotCheckbox } from './qItem';
28
28
  export function getQrItemsIndex(qItems, qrItems, qItemsIndexMap) {
29
29
  // Generate a <linkId, QrItem OR QrItems> dictionary
30
30
  const qrItemsCollected = {};
31
+ if (!qrItems)
32
+ return [];
31
33
  for (const qrItem of qrItems) {
32
34
  const linkId = qrItem.linkId;
33
35
  // If item already exists, it has multiple qrItems and is therefore a repeat group
@@ -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;;;;;;;;;GASG;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,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,kFAAkF;QAClF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE3C,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,6BAA6B;YAC7B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,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;QAC/D,CAAC;IACH,CAAC;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,CAAC;YAChE,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;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,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;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"}
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;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,OAAgD,EAChD,cAAsC;IAEtC,oDAAoD;IACpD,MAAM,gBAAgB,GACpB,EAAE,CAAC;IAEL,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,kFAAkF;QAClF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE3C,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,6BAA6B;YAC7B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,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;QAC/D,CAAC;IACH,CAAC;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,CAAC;YAChE,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;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,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;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"}
@@ -14,6 +14,12 @@ export declare function removeNoAnswerQrItem(qrItem: QuestionnaireResponseItem):
14
14
  * @author Sean Fong
15
15
  */
16
16
  export declare function createEmptyQrGroup(qItem: QuestionnaireItem): QuestionnaireResponseItem;
17
+ /**
18
+ * Create an empty repeat qrItem from a given repeat qItem
19
+ *
20
+ * @author Clinton Gillespie
21
+ */
22
+ export declare function createEmptyRepeatNestedItems(qItem: QuestionnaireItem): QuestionnaireResponseItem;
17
23
  /**
18
24
  * Create an empty qrItem from a given qItem, optionally with an answer key
19
25
  *
@@ -27,3 +33,10 @@ export declare function createEmptyQrItem(qItem: QuestionnaireItem, answerKey: s
27
33
  * @author Sean Fong
28
34
  */
29
35
  export declare function updateQrItemsInGroup(newQrItem: QuestionnaireResponseItem | null, newQrRepeatGroup: QrRepeatGroup | null, questionnaireResponseOrQrItem: QuestionnaireResponseItem | QuestionnaireResponse, qItemsIndexMap: Record<string, number>): void;
36
+ /**
37
+ * Updates the QuestionnaireResponseItem group by adding/removing a new/modified child QuestionnaireResponseItem into/from a qrGroup
38
+ * Specifically handles nested repeat items where each item has an answer array rather than nested items
39
+ *
40
+ * @author Sean Fong
41
+ */
42
+ export declare function updateQrNestedItems(newQrItem: QuestionnaireResponseItem | null, questionnaireResponseOrQrItem: QuestionnaireResponseItem, qItemsIndexMap: Record<string, number>): void;
@@ -54,6 +54,19 @@ export function createEmptyQrGroup(qItem) {
54
54
  item: []
55
55
  };
56
56
  }
57
+ /**
58
+ * Create an empty repeat qrItem from a given repeat qItem
59
+ *
60
+ * @author Clinton Gillespie
61
+ */
62
+ export function createEmptyRepeatNestedItems(qItem) {
63
+ return {
64
+ linkId: qItem.linkId,
65
+ text: qItem.text,
66
+ answer: [],
67
+ item: []
68
+ };
69
+ }
57
70
  /**
58
71
  * Create an empty qrItem from a given qItem, optionally with an answer key
59
72
  *
@@ -186,4 +199,67 @@ export function updateQrItemsInGroup(newQrItem, newQrRepeatGroup, questionnaireR
186
199
  }
187
200
  }
188
201
  }
202
+ /**
203
+ * Updates the QuestionnaireResponseItem group by adding/removing a new/modified child QuestionnaireResponseItem into/from a qrGroup
204
+ * Specifically handles nested repeat items where each item has an answer array rather than nested items
205
+ *
206
+ * @author Sean Fong
207
+ */
208
+ export function updateQrNestedItems(newQrItem, questionnaireResponseOrQrItem, qItemsIndexMap) {
209
+ if (!newQrItem)
210
+ return;
211
+ if (!questionnaireResponseOrQrItem.answer) {
212
+ questionnaireResponseOrQrItem.answer = [];
213
+ }
214
+ let qrAnswerItems = questionnaireResponseOrQrItem.answer;
215
+ if (!qrAnswerItems) {
216
+ qrAnswerItems = [];
217
+ }
218
+ if (newQrItem && newQrItem.linkId in qItemsIndexMap) {
219
+ if (qrAnswerItems.length === 0) {
220
+ // Only add if the item has answers (nested items use answer array, not item array)
221
+ if (newQrItem.answer?.length) {
222
+ qrAnswerItems.push({ item: [newQrItem] });
223
+ }
224
+ return;
225
+ }
226
+ }
227
+ // Find the index where newQrItem should be inserted based on qItemsIndexMap
228
+ const newItemSequenceIndex = qItemsIndexMap[newQrItem.linkId];
229
+ // Find the last answer object (group) that exists
230
+ const lastAnswerGroup = qrAnswerItems[qrAnswerItems.length - 1];
231
+ // If no answer group exists yet, create one
232
+ if (!lastAnswerGroup) {
233
+ const newGroup = {
234
+ item: [newQrItem]
235
+ };
236
+ qrAnswerItems.push(newGroup);
237
+ return;
238
+ }
239
+ // If the last answer group doesn't have an item array, create one
240
+ if (!lastAnswerGroup.item) {
241
+ lastAnswerGroup.item = [newQrItem];
242
+ return;
243
+ }
244
+ // Check if newQrItem already exists in the last group's item array
245
+ const existingItemIndex = lastAnswerGroup.item.findIndex((item) => item.linkId === newQrItem.linkId);
246
+ if (existingItemIndex !== -1) {
247
+ // Item exists - overwrite it
248
+ lastAnswerGroup.item[existingItemIndex] = newQrItem;
249
+ }
250
+ else {
251
+ // Item doesn't exist - find correct position to insert based on sequence
252
+ let insertIndex = lastAnswerGroup.item.length;
253
+ for (let i = 0; i < lastAnswerGroup.item.length; i++) {
254
+ const currentItemSequenceIndex = qItemsIndexMap[lastAnswerGroup.item[i].linkId];
255
+ if (newItemSequenceIndex < currentItemSequenceIndex) {
256
+ insertIndex = i;
257
+ break;
258
+ }
259
+ }
260
+ // Insert at the correct position
261
+ lastAnswerGroup.item.splice(insertIndex, 0, newQrItem);
262
+ return;
263
+ }
264
+ }
189
265
  //# sourceMappingURL=qrItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qrItem.js","sourceRoot":"","sources":["../../src/utils/qrItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qrItem.js","sourceRoot":"","sources":["../../src/utils/qrItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Variables } from '../../interfaces/variables.interface';
2
+ export declare function addAdditionalVariables(existingVariables: Variables, additionalVariables: Record<string, object>): Variables;
@@ -0,0 +1,43 @@
1
+ /*
2
+ * Copyright 2024 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export function addAdditionalVariables(existingVariables, additionalVariables) {
18
+ for (const key in additionalVariables) {
19
+ const variable = additionalVariables[key];
20
+ if (variable && isVariable(variable)) {
21
+ const expression = variable.valueExpression;
22
+ if (expression && expression.language && expression.name) {
23
+ if (expression.language === 'text/fhirpath') {
24
+ existingVariables.fhirPathVariables['QuestionnaireLevel'].push(expression);
25
+ }
26
+ else if (expression.language === 'application/x-fhir-query') {
27
+ existingVariables.xFhirQueryVariables[expression.name] = {
28
+ valueExpression: expression
29
+ };
30
+ }
31
+ }
32
+ }
33
+ }
34
+ return existingVariables;
35
+ }
36
+ function isVariable(variable) {
37
+ var _a, _b;
38
+ const v = variable;
39
+ return ((v.url === 'http://hl7.org/fhir/StructureDefinition/variable' &&
40
+ ((_a = v.valueExpression) === null || _a === void 0 ? void 0 : _a.language) === 'text/fhirpath') ||
41
+ ((_b = v.valueExpression) === null || _b === void 0 ? void 0 : _b.language) === 'application/x-fhir-query');
42
+ }
43
+ //# sourceMappingURL=addAdditionalVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addAdditionalVariables.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/addAdditionalVariables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,UAAU,sBAAsB,CACpC,iBAA4B,EAC5B,mBAA2C;IAE3C,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;YAC5C,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACzD,IAAI,UAAU,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAC5C,iBAAiB,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7E,CAAC;qBAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,0BAA0B,EAAE,CAAC;oBAC9D,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG;wBACvD,eAAe,EAAE,UAAU;qBAC5B,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;;IAClC,MAAM,CAAC,GAAG,QAAqB,CAAC;IAChC,OAAO,CACL,CAAC,CAAC,CAAC,GAAG,KAAK,kDAAkD;QAC3D,CAAA,MAAA,CAAC,CAAC,eAAe,0CAAE,QAAQ,MAAK,eAAe,CAAC;QAClD,CAAA,MAAA,CAAC,CAAC,eAAe,0CAAE,QAAQ,MAAK,0BAA0B,CAC3D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Questionnaire } from 'fhir/r4';
2
+ import type { QuestionnaireModel } from '../../interfaces/questionnaireStore.interface';
3
+ export declare function createQuestionnaireModel(questionnaire: Questionnaire, additionalVariables: Record<string, object>, terminologyServerUrl: string): Promise<QuestionnaireModel>;