@aehrc/smart-forms-renderer 1.2.2 → 1.2.4

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 (120) hide show
  1. package/lib/components/FormComponents/DecimalItem/DecimalField.js +6 -2
  2. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
  3. package/lib/components/FormComponents/IntegerItem/IntegerField.js +6 -2
  4. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
  5. package/lib/components/FormComponents/QuantityItem/QuantityField.d.ts +1 -0
  6. package/lib/components/FormComponents/QuantityItem/QuantityField.js +10 -3
  7. package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -1
  8. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +2 -2
  9. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
  10. package/lib/hooks/useCalculatedExpressionUpdated.js +3 -1
  11. package/lib/hooks/useCalculatedExpressionUpdated.js.map +1 -1
  12. package/lib/interfaces/itemPath.interface.d.ts +31 -0
  13. package/lib/interfaces/itemPath.interface.js +2 -0
  14. package/lib/interfaces/itemPath.interface.js.map +1 -0
  15. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +2 -3
  16. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +6 -27
  17. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -1
  18. package/lib/stories/storybookWrappers/index.js +1 -1
  19. package/lib/utils/itemPath.d.ts +57 -0
  20. package/lib/utils/itemPath.js +75 -0
  21. package/lib/utils/itemPath.js.map +1 -0
  22. package/package.json +1 -1
  23. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +8 -2
  24. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +8 -2
  25. package/src/components/FormComponents/QuantityItem/QuantityField.tsx +13 -2
  26. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +2 -0
  27. package/src/hooks/useCalculatedExpressionUpdated.ts +3 -1
  28. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +0 -7
  29. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +0 -26
  30. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +0 -1
  31. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +0 -8
  32. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +0 -63
  33. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +0 -1
  34. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +0 -8
  35. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +0 -53
  36. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +0 -1
  37. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +0 -10
  38. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +0 -30
  39. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +0 -1
  40. package/lib/components/Iconify/Iconify.d.ts +0 -10
  41. package/lib/components/Iconify/Iconify.js +0 -26
  42. package/lib/components/Iconify/Iconify.js.map +0 -1
  43. package/lib/components/Renderer/FormBodyPage.d.ts +0 -9
  44. package/lib/components/Renderer/FormBodyPage.js +0 -43
  45. package/lib/components/Renderer/FormBodyPage.js.map +0 -1
  46. package/lib/components/Renderer/FormTitle.d.ts +0 -7
  47. package/lib/components/Renderer/FormTitle.js +0 -30
  48. package/lib/components/Renderer/FormTitle.js.map +0 -1
  49. package/lib/components/Renderer/FormTopLevelPage.d.ts +0 -9
  50. package/lib/components/Renderer/FormTopLevelPage.js +0 -29
  51. package/lib/components/Renderer/FormTopLevelPage.js.map +0 -1
  52. package/lib/hooks/useBooleanCalculatedExpression.d.ts +0 -12
  53. package/lib/hooks/useBooleanCalculatedExpression.js +0 -53
  54. package/lib/hooks/useBooleanCalculatedExpression.js.map +0 -1
  55. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -13
  56. package/lib/hooks/useDecimalCalculatedExpression.js +0 -59
  57. package/lib/hooks/useDecimalCalculatedExpression.js.map +0 -1
  58. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -12
  59. package/lib/hooks/useIntegerCalculatedExpression.js +0 -56
  60. package/lib/hooks/useIntegerCalculatedExpression.js.map +0 -1
  61. package/lib/hooks/useQuantityCalculatedExpression.d.ts +0 -14
  62. package/lib/hooks/useQuantityCalculatedExpression.js +0 -107
  63. package/lib/hooks/useQuantityCalculatedExpression.js.map +0 -1
  64. package/lib/hooks/useStringCalculatedExpression.d.ts +0 -12
  65. package/lib/hooks/useStringCalculatedExpression.js +0 -58
  66. package/lib/hooks/useStringCalculatedExpression.js.map +0 -1
  67. package/lib/theme/Theme.d.ts +0 -44
  68. package/lib/theme/Theme.js +0 -43
  69. package/lib/theme/Theme.js.map +0 -1
  70. package/lib/theme/customGlobalStyles.d.ts +0 -2
  71. package/lib/theme/customGlobalStyles.js +0 -61
  72. package/lib/theme/customGlobalStyles.js.map +0 -1
  73. package/lib/theme/overrides/Accordion.d.ts +0 -14
  74. package/lib/theme/overrides/Accordion.js +0 -32
  75. package/lib/theme/overrides/Accordion.js.map +0 -1
  76. package/lib/theme/overrides/Autocomplete.d.ts +0 -10
  77. package/lib/theme/overrides/Autocomplete.js +0 -28
  78. package/lib/theme/overrides/Autocomplete.js.map +0 -1
  79. package/lib/theme/overrides/Button.d.ts +0 -33
  80. package/lib/theme/overrides/Button.js +0 -52
  81. package/lib/theme/overrides/Button.js.map +0 -1
  82. package/lib/theme/overrides/Card.d.ts +0 -35
  83. package/lib/theme/overrides/Card.js +0 -49
  84. package/lib/theme/overrides/Card.js.map +0 -1
  85. package/lib/theme/overrides/Input.d.ts +0 -64
  86. package/lib/theme/overrides/Input.js +0 -81
  87. package/lib/theme/overrides/Input.js.map +0 -1
  88. package/lib/theme/overrides/Overrides.d.ts +0 -3
  89. package/lib/theme/overrides/Overrides.js +0 -29
  90. package/lib/theme/overrides/Overrides.js.map +0 -1
  91. package/lib/theme/overrides/Paper.d.ts +0 -12
  92. package/lib/theme/overrides/Paper.js +0 -31
  93. package/lib/theme/overrides/Paper.js.map +0 -1
  94. package/lib/theme/overrides/SpeedDial.d.ts +0 -16
  95. package/lib/theme/overrides/SpeedDial.js +0 -34
  96. package/lib/theme/overrides/SpeedDial.js.map +0 -1
  97. package/lib/theme/overrides/Table.d.ts +0 -12
  98. package/lib/theme/overrides/Table.js +0 -30
  99. package/lib/theme/overrides/Table.js.map +0 -1
  100. package/lib/theme/palette.d.ts +0 -27
  101. package/lib/theme/palette.js +0 -63
  102. package/lib/theme/palette.js.map +0 -1
  103. package/lib/theme/shadows.d.ts +0 -2
  104. package/lib/theme/shadows.js +0 -52
  105. package/lib/theme/shadows.js.map +0 -1
  106. package/lib/utils/dayjsExtend.d.ts +0 -1
  107. package/lib/utils/dayjsExtend.js +0 -22
  108. package/lib/utils/dayjsExtend.js.map +0 -1
  109. package/lib/utils/itemControl.d.ts +0 -103
  110. package/lib/utils/itemControl.js +0 -350
  111. package/lib/utils/itemControl.js.map +0 -1
  112. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +0 -2
  113. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +0 -43
  114. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +0 -1
  115. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +0 -3
  116. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +0 -101
  117. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +0 -1
  118. package/lib/utils/validateQuestionnaire.d.ts +0 -66
  119. package/lib/utils/validateQuestionnaire.js +0 -559
  120. package/lib/utils/validateQuestionnaire.js.map +0 -1
@@ -1,103 +0,0 @@
1
- import type { Extension, QuestionnaireItem, QuestionnaireItemAnswerOption } from 'fhir/r4';
2
- import type { RegexValidation } from '../interfaces/regex.interface';
3
- export declare function shouldRenderNestedItems(qItem: QuestionnaireItem): boolean;
4
- /**
5
- * Check if the extension has an itemControl code equal to the given itemControlCode
6
- *
7
- * @author Sean Fong
8
- */
9
- export declare function isSpecificItemControl(qItem: QuestionnaireItem, itemControlCode: string): boolean;
10
- /**
11
- * Check if the extension has an displayCategory code equal to the given displayCategory
12
- *
13
- * @author Sean Fong
14
- */
15
- export declare function isSpecificDisplayCategory(qItem: QuestionnaireItem, itemControlCode: string): boolean;
16
- /**
17
- * Check if the extension has url for items that use shortText
18
- *
19
- * @author Sean Fong
20
- */
21
- export declare function getShortText(qItem: QuestionnaireItem): string | null;
22
- /**
23
- * Check if the extension has url for hidden questions
24
- *
25
- * @author Sean Fong
26
- */
27
- export declare function hasHiddenExtension(qItem: QuestionnaireItem): boolean;
28
- /**
29
- * Check if the extension has url for items that use open label
30
- *
31
- * @author Sean Fong
32
- */
33
- export declare function getOpenLabelText(qItem: QuestionnaireItem): string | null;
34
- /**
35
- * Check if the decimal value has a quantity precision for the decimal value
36
- *
37
- * @author Sean Fong
38
- */
39
- export declare function getDecimalPrecision(qItem: QuestionnaireItem): number | null;
40
- /**
41
- * Check if the extension has a url for xhtml rendering
42
- *
43
- * @author Sean Fong
44
- */
45
- export declare function getXHtmlString(qItem: QuestionnaireItem): string | null;
46
- export declare function getXHtmlStringFromExtension(extensions: Extension[]): string | null;
47
- /**
48
- * Check if the item label (text) has a valueMarkdown extension
49
- *
50
- * @author Sean Fong
51
- */
52
- export declare function getMarkdownString(qItem: QuestionnaireItem): string | null;
53
- /**
54
- * Get text display prompt for items with itemControlCode prompt and has a prompt childItem
55
- *
56
- * @author Sean Fong
57
- */
58
- export declare function getTextDisplayPrompt(qItem: QuestionnaireItem): string;
59
- /**
60
- * Get Quantity unit for items with itemControlCode unit and has a unit childItem
61
- *
62
- * @author Sean Fong
63
- */
64
- export declare function getQuantityUnit(qItem: QuestionnaireItem): QuestionnaireItemAnswerOption | null;
65
- /**
66
- * Get decimal text display unit for items with itemControlCode unit and has a unit childItem
67
- *
68
- * @author Sean Fong
69
- */
70
- export declare function getTextDisplayUnit(qItem: QuestionnaireItem): string;
71
- /**
72
- * Get text display lower bound for items with itemControlCode "lower" and has a "lower" childItem
73
- *
74
- * @author Sean Fong
75
- */
76
- export declare function getTextDisplayLower(qItem: QuestionnaireItem): string;
77
- /**
78
- * Get text display upper bound for items with itemControlCode "upper" and has a "upper" childItem
79
- *
80
- * @author Sean Fong
81
- */
82
- export declare function getTextDisplayUpper(qItem: QuestionnaireItem): string;
83
- /**
84
- * Get text display instructions for items with itemControlCode instructions and has an instructions childItem
85
- *
86
- * @author Sean Fong
87
- */
88
- export declare function getTextDisplayInstructions(qItem: QuestionnaireItem): string;
89
- /**
90
- * Get text display flyover for items with itemControlCode flyover and has an flyover childItem
91
- *
92
- * @author Sean Fong
93
- */
94
- export declare function getTextDisplayFlyover(qItem: QuestionnaireItem): string;
95
- /**
96
- * Get regex validation for items with regex extensions
97
- *
98
- * @author Sean Fong
99
- */
100
- export declare function getRegexValidation(qItem: QuestionnaireItem): RegexValidation | undefined;
101
- export declare function getRegexString(qItem: QuestionnaireItem): string | null;
102
- export declare function getMinValue(qItem: QuestionnaireItem): string | number | undefined;
103
- export declare function getMaxValue(qItem: QuestionnaireItem): string | number | undefined;
@@ -1,350 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Variables } from '../../interfaces/variables.interface';
2
- export declare function addAdditionalVariables(existingVariables: Variables, additionalVariables: Record<string, object>): Variables;
@@ -1,43 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,3 +0,0 @@
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>;
@@ -1,101 +0,0 @@
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- import { extractLaunchContexts } from './extractLaunchContext';
27
- import { extractQuestionnaireLevelVariables } from './extractVariables';
28
- import { extractTabs } from './extractTabs';
29
- import { extractPages } from './extractPages';
30
- import { extractContainedValueSets } from './extractContainedValueSets';
31
- import { extractOtherExtensions } from './extractOtherExtensions';
32
- import { resolveValueSets } from './resolveValueSets';
33
- import { addAdditionalVariables } from './addAdditionalVariables';
34
- import { getLinkIdPreferredTerminologyServerTuples, getLinkIdTypeTuples } from '../qItem';
35
- import { addDisplayToAnswerOptions, addDisplayToProcessedCodings } from './addDisplayToCodings';
36
- export function createQuestionnaireModel(questionnaire, additionalVariables, terminologyServerUrl) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- if (!questionnaire.item) {
39
- return createEmptyModel();
40
- }
41
- const itemTypes = Object.fromEntries(getLinkIdTypeTuples(questionnaire));
42
- const itemPreferredTerminologyServers = Object.fromEntries(getLinkIdPreferredTerminologyServerTuples(questionnaire));
43
- const tabs = extractTabs(questionnaire);
44
- const pages = extractPages(questionnaire);
45
- const launchContexts = extractLaunchContexts(questionnaire);
46
- let variables = extractQuestionnaireLevelVariables(questionnaire);
47
- variables = addAdditionalVariables(variables, additionalVariables);
48
- const extractContainedValueSetsResult = extractContainedValueSets(questionnaire, terminologyServerUrl);
49
- let valueSetPromises = extractContainedValueSetsResult.valueSetPromises;
50
- let processedValueSetCodings = extractContainedValueSetsResult.processedValueSetCodings;
51
- const processedValueSetUrls = extractContainedValueSetsResult.processedValueSetUrls;
52
- const extractOtherExtensionsResult = extractOtherExtensions(questionnaire, variables, valueSetPromises, itemPreferredTerminologyServers, terminologyServerUrl);
53
- const { enableWhenItems, enableWhenExpressions, calculatedExpressions, initialExpressions, answerExpressions, answerOptions } = extractOtherExtensionsResult;
54
- variables = extractOtherExtensionsResult.variables;
55
- valueSetPromises = extractOtherExtensionsResult.valueSetPromises;
56
- const resolveValueSetsResult = yield resolveValueSets(variables, valueSetPromises, processedValueSetCodings, terminologyServerUrl);
57
- variables = resolveValueSetsResult.variables;
58
- processedValueSetCodings = resolveValueSetsResult.processedValueSetCodings;
59
- // In processedCodings, add display values to codings lacking them
60
- processedValueSetCodings = yield addDisplayToProcessedCodings(processedValueSetCodings, terminologyServerUrl);
61
- // In answerOptions, add display values to codings lacking them
62
- const completeAnswerOptions = yield addDisplayToAnswerOptions(answerOptions, terminologyServerUrl);
63
- return {
64
- itemTypes,
65
- itemPreferredTerminologyServers,
66
- tabs,
67
- pages,
68
- variables,
69
- launchContexts,
70
- enableWhenItems,
71
- enableWhenExpressions,
72
- calculatedExpressions,
73
- initialExpressions,
74
- answerExpressions,
75
- answerOptions: completeAnswerOptions,
76
- processedValueSetCodings,
77
- processedValueSetUrls,
78
- fhirPathContext: {}
79
- };
80
- });
81
- }
82
- function createEmptyModel() {
83
- return {
84
- itemTypes: {},
85
- itemPreferredTerminologyServers: {},
86
- tabs: {},
87
- pages: {},
88
- variables: { fhirPathVariables: {}, xFhirQueryVariables: {} },
89
- launchContexts: {},
90
- calculatedExpressions: {},
91
- initialExpressions: {},
92
- enableWhenExpressions: { singleExpressions: {}, repeatExpressions: {} },
93
- answerExpressions: {},
94
- answerOptions: {},
95
- enableWhenItems: { singleItems: {}, repeatItems: {} },
96
- processedValueSetCodings: {},
97
- processedValueSetUrls: {},
98
- fhirPathContext: {}
99
- };
100
- }
101
- //# sourceMappingURL=createQuestionaireModel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"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"}