@aehrc/smart-forms-renderer 1.0.0-alpha.98 → 1.0.0

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 (928) hide show
  1. package/README.md +5 -1
  2. package/lib/api/callback.js +6 -15
  3. package/lib/api/callback.js.map +1 -1
  4. package/lib/api/smartClient.js +6 -21
  5. package/lib/api/smartClient.js.map +1 -1
  6. package/lib/components/Checkbox.styles.js +21 -19
  7. package/lib/components/Checkbox.styles.js.map +1 -1
  8. package/lib/components/ExpressionUpdateFadingGlow.styles.d.ts +2 -2
  9. package/lib/components/ExpressionUpdateFadingGlow.styles.js +12 -9
  10. package/lib/components/ExpressionUpdateFadingGlow.styles.js.map +1 -1
  11. package/lib/components/FormComponents/AttachmentItem/AttachmentField.d.ts +2 -2
  12. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js +3 -3
  13. package/lib/components/FormComponents/AttachmentItem/AttachmentField.js.map +1 -1
  14. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.d.ts +2 -2
  15. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +1 -1
  16. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js.map +1 -1
  17. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.d.ts +2 -2
  18. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.js +1 -2
  19. package/lib/components/FormComponents/AttachmentItem/AttachmentFileCollector.js.map +1 -1
  20. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.d.ts +2 -2
  21. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js +4 -5
  22. package/lib/components/FormComponents/AttachmentItem/AttachmentFileDropBox.js.map +1 -1
  23. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +27 -37
  24. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
  25. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.d.ts +2 -2
  26. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js +3 -3
  27. package/lib/components/FormComponents/AttachmentItem/AttachmentUrlField.js.map +1 -1
  28. package/lib/components/FormComponents/BooleanItem/BooleanField.js +6 -7
  29. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
  30. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +33 -24
  31. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  32. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js +1 -2
  33. package/lib/components/FormComponents/ChoiceItems/CheckboxOptionList.js.map +1 -1
  34. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.d.ts +2 -2
  35. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +12 -7
  36. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
  37. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.d.ts +2 -7
  38. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +17 -28
  39. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  40. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js.map +1 -1
  41. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +2 -7
  42. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +29 -14
  43. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  44. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +17 -1
  45. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js.map +1 -1
  46. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +2 -8
  47. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +12 -13
  48. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  49. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +2 -7
  50. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +30 -15
  51. package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
  52. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
  53. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +2 -7
  54. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +32 -29
  55. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  56. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.d.ts +1 -1
  57. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js +2 -2
  58. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.js.map +1 -1
  59. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +17 -1
  60. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  61. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +2 -7
  62. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +15 -27
  63. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  64. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +9 -6
  65. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js.map +1 -1
  66. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +2 -2
  67. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +28 -8
  68. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -1
  69. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.d.ts +2 -7
  70. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +14 -28
  71. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  72. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.d.ts +2 -2
  73. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js +4 -20
  74. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.js.map +1 -1
  75. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +2 -2
  76. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +19 -14
  77. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  78. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.d.ts +2 -7
  79. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +16 -32
  80. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  81. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.d.ts +2 -3
  82. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js +9 -10
  83. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.js.map +1 -1
  84. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +17 -38
  85. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
  86. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePicker.js +1 -1
  87. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePicker.js.map +1 -1
  88. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.js +3 -3
  89. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.js.map +1 -1
  90. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +19 -56
  91. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
  92. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.d.ts +2 -3
  93. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js +25 -9
  94. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.js.map +1 -1
  95. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.d.ts +2 -5
  96. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.js +19 -3
  97. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.js.map +1 -1
  98. package/lib/components/FormComponents/DecimalItem/DecimalField.d.ts +2 -3
  99. package/lib/components/FormComponents/DecimalItem/DecimalField.js +6 -6
  100. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
  101. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +22 -45
  102. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  103. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +1 -1
  104. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
  105. package/lib/components/FormComponents/GridGroup/GridGroup.d.ts +2 -2
  106. package/lib/components/FormComponents/GridGroup/GridGroup.js +29 -20
  107. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
  108. package/lib/components/FormComponents/GridGroup/GridRow.d.ts +6 -2
  109. package/lib/components/FormComponents/GridGroup/GridRow.js +7 -9
  110. package/lib/components/FormComponents/GridGroup/GridRow.js.map +1 -1
  111. package/lib/components/FormComponents/GridGroup/GridTable.d.ts +6 -2
  112. package/lib/components/FormComponents/GridGroup/GridTable.js +7 -4
  113. package/lib/components/FormComponents/GridGroup/GridTable.js.map +1 -1
  114. package/lib/components/FormComponents/GroupItem/GroupHeading.js +4 -4
  115. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  116. package/lib/components/FormComponents/GroupItem/GroupItem.d.ts +2 -2
  117. package/lib/components/FormComponents/GroupItem/GroupItem.js +8 -8
  118. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  119. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +2 -2
  120. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +11 -11
  121. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  122. package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +2 -2
  123. package/lib/components/FormComponents/GroupItem/GroupItemView.js +8 -10
  124. package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
  125. package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js +2 -2
  126. package/lib/components/FormComponents/GroupItem/PageButtonWrapper.js.map +1 -1
  127. package/lib/components/FormComponents/GroupItem/TabButtonsWrapper.js +2 -2
  128. package/lib/components/FormComponents/GroupItem/TabButtonsWrapper.js.map +1 -1
  129. package/lib/components/FormComponents/IntegerItem/IntegerField.d.ts +2 -3
  130. package/lib/components/FormComponents/IntegerItem/IntegerField.js +6 -6
  131. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
  132. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +20 -40
  133. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  134. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.d.ts +1 -1
  135. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js +10 -11
  136. package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js.map +1 -1
  137. package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +10 -7
  138. package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -1
  139. package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +9 -7
  140. package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js.map +1 -1
  141. package/lib/components/FormComponents/ItemParts/ClearButtonAdornment.js +1 -2
  142. package/lib/components/FormComponents/ItemParts/ClearButtonAdornment.js.map +1 -1
  143. package/lib/components/FormComponents/ItemParts/ClearInputButton.d.ts +1 -1
  144. package/lib/components/FormComponents/ItemParts/ClearInputButton.js +9 -7
  145. package/lib/components/FormComponents/ItemParts/ClearInputButton.js.map +1 -1
  146. package/lib/components/FormComponents/ItemParts/DisplayUnitText.js +2 -2
  147. package/lib/components/FormComponents/ItemParts/DisplayUnitText.js.map +1 -1
  148. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingIcon.js +6 -2
  149. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingIcon.js.map +1 -1
  150. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +3 -3
  151. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  152. package/lib/components/FormComponents/ItemParts/ItemLabel.js +10 -9
  153. package/lib/components/FormComponents/ItemParts/ItemLabel.js.map +1 -1
  154. package/lib/components/FormComponents/ItemParts/ItemRepopulateButton.js +30 -48
  155. package/lib/components/FormComponents/ItemParts/ItemRepopulateButton.js.map +1 -1
  156. package/lib/components/FormComponents/ItemParts/ItemTextSwitcher.js +6 -5
  157. package/lib/components/FormComponents/ItemParts/ItemTextSwitcher.js.map +1 -1
  158. package/lib/components/FormComponents/ItemParts/OpenLabelField.js +4 -4
  159. package/lib/components/FormComponents/ItemParts/OpenLabelField.js.map +1 -1
  160. package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js +1 -1
  161. package/lib/components/FormComponents/ItemParts/RadioButtonWithOpenLabel.js.map +1 -1
  162. package/lib/components/FormComponents/ItemParts/RadioFormGroup.d.ts +1 -1
  163. package/lib/components/FormComponents/ItemParts/RadioFormGroup.js +12 -13
  164. package/lib/components/FormComponents/ItemParts/RadioFormGroup.js.map +1 -1
  165. package/lib/components/FormComponents/ItemParts/RadioOptionList.js +1 -2
  166. package/lib/components/FormComponents/ItemParts/RadioOptionList.js.map +1 -1
  167. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js +4 -15
  168. package/lib/components/FormComponents/ItemParts/RequiredAsterisk.js.map +1 -1
  169. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +2 -2
  170. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +21 -16
  171. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
  172. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.d.ts +2 -7
  173. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +41 -18
  174. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  175. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js +1 -1
  176. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js.map +1 -1
  177. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +2 -7
  178. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +18 -18
  179. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  180. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.js +18 -2
  181. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.js.map +1 -1
  182. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.d.ts +2 -7
  183. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +18 -18
  184. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  185. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +2 -7
  186. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +28 -13
  187. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
  188. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -1
  189. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +2 -7
  190. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +26 -17
  191. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  192. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js +18 -2
  193. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js.map +1 -1
  194. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.d.ts +2 -7
  195. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +26 -17
  196. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
  197. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +2 -2
  198. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +10 -6
  199. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -1
  200. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.d.ts +2 -7
  201. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +25 -13
  202. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  203. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +2 -2
  204. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +10 -6
  205. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -1
  206. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.d.ts +2 -7
  207. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +21 -12
  208. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  209. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.d.ts +2 -2
  210. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js +5 -5
  211. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js.map +1 -1
  212. package/lib/components/FormComponents/QuantityItem/QuantityField.d.ts +2 -3
  213. package/lib/components/FormComponents/QuantityItem/QuantityField.js +6 -6
  214. package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -1
  215. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +31 -89
  216. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
  217. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.d.ts +2 -2
  218. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js +4 -4
  219. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js.map +1 -1
  220. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js +1 -2
  221. package/lib/components/FormComponents/RepeatGroup/AddItemButton.js.map +1 -1
  222. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.d.ts +2 -2
  223. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +4 -6
  224. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  225. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.d.ts +2 -2
  226. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js +2 -2
  227. package/lib/components/FormComponents/RepeatGroup/RepeatGroupItem.js.map +1 -1
  228. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.d.ts +3 -4
  229. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +3 -4
  230. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -1
  231. package/lib/components/FormComponents/RepeatItem/AddItemButton.js +1 -1
  232. package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
  233. package/lib/components/FormComponents/RepeatItem/RepeatField.d.ts +2 -2
  234. package/lib/components/FormComponents/RepeatItem/RepeatField.js +2 -3
  235. package/lib/components/FormComponents/RepeatItem/RepeatField.js.map +1 -1
  236. package/lib/components/FormComponents/RepeatItem/RepeatItem.d.ts +2 -2
  237. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +17 -13
  238. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  239. package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +2 -2
  240. package/lib/components/FormComponents/SingleItem/SingleItem.js +9 -9
  241. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  242. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +2 -2
  243. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +54 -31
  244. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  245. package/lib/components/FormComponents/SingleItem/SingleItemView.d.ts +3 -4
  246. package/lib/components/FormComponents/SingleItem/SingleItemView.js +4 -5
  247. package/lib/components/FormComponents/SingleItem/SingleItemView.js.map +1 -1
  248. package/lib/components/FormComponents/SingleItem/SingleNestedItems.d.ts +2 -2
  249. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +8 -9
  250. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
  251. package/lib/components/FormComponents/SliderItem/Slider.styles.js +23 -21
  252. package/lib/components/FormComponents/SliderItem/Slider.styles.js.map +1 -1
  253. package/lib/components/FormComponents/SliderItem/SliderField.d.ts +2 -2
  254. package/lib/components/FormComponents/SliderItem/SliderField.js +4 -4
  255. package/lib/components/FormComponents/SliderItem/SliderField.js.map +1 -1
  256. package/lib/components/FormComponents/SliderItem/SliderItem.js +10 -8
  257. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
  258. package/lib/components/FormComponents/StringItem/StringField.d.ts +2 -3
  259. package/lib/components/FormComponents/StringItem/StringField.js +22 -6
  260. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
  261. package/lib/components/FormComponents/StringItem/StringItem.d.ts +2 -7
  262. package/lib/components/FormComponents/StringItem/StringItem.js +19 -55
  263. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  264. package/lib/components/FormComponents/Tables/GroupTable.d.ts +2 -2
  265. package/lib/components/FormComponents/Tables/GroupTable.js +33 -37
  266. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  267. package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +7 -4
  268. package/lib/components/FormComponents/Tables/GroupTableBody.js +4 -5
  269. package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -1
  270. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +7 -4
  271. package/lib/components/FormComponents/Tables/GroupTableRow.js +3 -3
  272. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  273. package/lib/components/FormComponents/Tables/GroupTableRowCells.d.ts +6 -2
  274. package/lib/components/FormComponents/Tables/GroupTableRowCells.js +5 -6
  275. package/lib/components/FormComponents/Tables/GroupTableRowCells.js.map +1 -1
  276. package/lib/components/FormComponents/Tables/GroupTableView.d.ts +7 -4
  277. package/lib/components/FormComponents/Tables/GroupTableView.js +8 -9
  278. package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
  279. package/lib/components/FormComponents/Tables/SelectRowButton.js +3 -4
  280. package/lib/components/FormComponents/Tables/SelectRowButton.js.map +1 -1
  281. package/lib/components/FormComponents/Tables/Table.styles.d.ts +2 -2
  282. package/lib/components/FormComponents/Tables/Table.styles.js +25 -20
  283. package/lib/components/FormComponents/Tables/Table.styles.js.map +1 -1
  284. package/lib/components/FormComponents/TextItem/TextField.d.ts +0 -1
  285. package/lib/components/FormComponents/TextItem/TextField.js +4 -4
  286. package/lib/components/FormComponents/TextItem/TextField.js.map +1 -1
  287. package/lib/components/FormComponents/TextItem/TextItem.js +14 -34
  288. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  289. package/lib/components/FormComponents/Textfield.styles.js +1 -1
  290. package/lib/components/FormComponents/Textfield.styles.js.map +1 -1
  291. package/lib/components/FormComponents/TimeItem/TimeField.d.ts +2 -2
  292. package/lib/components/FormComponents/TimeItem/TimeField.js +3 -2
  293. package/lib/components/FormComponents/TimeItem/TimeField.js.map +1 -1
  294. package/lib/components/FormComponents/TimeItem/TimeItem.js +8 -6
  295. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  296. package/lib/components/FormComponents/UrlItem/UrlField.d.ts +2 -3
  297. package/lib/components/FormComponents/UrlItem/UrlField.js +5 -5
  298. package/lib/components/FormComponents/UrlItem/UrlField.js.map +1 -1
  299. package/lib/components/FormComponents/UrlItem/UrlItem.js +8 -17
  300. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  301. package/lib/components/Radio.styles.js +21 -19
  302. package/lib/components/Radio.styles.js.map +1 -1
  303. package/lib/components/Renderer/BaseRenderer.js +11 -15
  304. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  305. package/lib/components/Renderer/FormBodyCollapsible.d.ts +2 -2
  306. package/lib/components/Renderer/FormBodyCollapsible.js +5 -6
  307. package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
  308. package/lib/components/Renderer/FormBodyPageContainer.d.ts +2 -2
  309. package/lib/components/Renderer/FormBodyPageContainer.js +7 -9
  310. package/lib/components/Renderer/FormBodyPageContainer.js.map +1 -1
  311. package/lib/components/Renderer/FormBodyPaginated.d.ts +2 -2
  312. package/lib/components/Renderer/FormBodyPaginated.js +11 -15
  313. package/lib/components/Renderer/FormBodyPaginated.js.map +1 -1
  314. package/lib/components/Renderer/FormBodySingleCollapsible.js +1 -2
  315. package/lib/components/Renderer/FormBodySingleCollapsible.js.map +1 -1
  316. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.d.ts +2 -2
  317. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js +2 -2
  318. package/lib/components/Renderer/FormBodySingleCollapsibleWrapper.js.map +1 -1
  319. package/lib/components/Renderer/FormBodyTabbed.d.ts +2 -2
  320. package/lib/components/Renderer/FormBodyTabbed.js +13 -15
  321. package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
  322. package/lib/components/Renderer/FormTopLevelItem.d.ts +2 -2
  323. package/lib/components/Renderer/FormTopLevelItem.js +12 -12
  324. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  325. package/lib/components/Renderer/SmartFormsRenderer.d.ts +4 -2
  326. package/lib/components/Renderer/SmartFormsRenderer.js +4 -2
  327. package/lib/components/Renderer/SmartFormsRenderer.js.map +1 -1
  328. package/lib/components/Tabs/FormBodySingleTab.d.ts +1 -0
  329. package/lib/components/Tabs/FormBodySingleTab.js +5 -2
  330. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
  331. package/lib/components/Tabs/FormBodyTabList.js +2 -3
  332. package/lib/components/Tabs/FormBodyTabList.js.map +1 -1
  333. package/lib/hooks/index.d.ts +0 -2
  334. package/lib/hooks/index.js +1 -3
  335. package/lib/hooks/index.js.map +1 -1
  336. package/lib/hooks/useAnswerOptionsToggleExpressions.js +6 -8
  337. package/lib/hooks/useAnswerOptionsToggleExpressions.js.map +1 -1
  338. package/lib/hooks/useAttachmentUrlValidation.js +1 -1
  339. package/lib/hooks/useAttachmentUrlValidation.js.map +1 -1
  340. package/lib/hooks/useBuildForm.d.ts +13 -15
  341. package/lib/hooks/useBuildForm.js +26 -22
  342. package/lib/hooks/useBuildForm.js.map +1 -1
  343. package/lib/hooks/useCalculatedExpressionUpdated.d.ts +7 -0
  344. package/lib/hooks/useCalculatedExpressionUpdated.js +31 -0
  345. package/lib/hooks/useCalculatedExpressionUpdated.js.map +1 -0
  346. package/lib/hooks/useCodingCalculatedExpression.d.ts +0 -13
  347. package/lib/hooks/useCodingCalculatedExpression.js +1 -74
  348. package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
  349. package/lib/hooks/useDateCalculatedExpression.d.ts +0 -12
  350. package/lib/hooks/useDateCalculatedExpression.js +1 -58
  351. package/lib/hooks/useDateCalculatedExpression.js.map +1 -1
  352. package/lib/hooks/useDateTimeCalculatedExpression.d.ts +0 -12
  353. package/lib/hooks/useDateTimeCalculatedExpression.js +1 -58
  354. package/lib/hooks/useDateTimeCalculatedExpression.js.map +1 -1
  355. package/lib/hooks/useDisplayCqfAndCalculatedExpression.d.ts +13 -1
  356. package/lib/hooks/useDisplayCqfAndCalculatedExpression.js +14 -4
  357. package/lib/hooks/useDisplayCqfAndCalculatedExpression.js.map +1 -1
  358. package/lib/hooks/useDynamicValueSetEffect.js +6 -16
  359. package/lib/hooks/useDynamicValueSetEffect.js.map +1 -1
  360. package/lib/hooks/useHidden.js +2 -2
  361. package/lib/hooks/useHidden.js.map +1 -1
  362. package/lib/hooks/useInitialiseForm.d.ts +3 -2
  363. package/lib/hooks/useInitialiseForm.js +10 -3
  364. package/lib/hooks/useInitialiseForm.js.map +1 -1
  365. package/lib/hooks/useInitialiseRepeatAnswers.js +5 -5
  366. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  367. package/lib/hooks/useParseXhtml.js +2 -2
  368. package/lib/hooks/useParseXhtml.js.map +1 -1
  369. package/lib/hooks/useReadOnly.js +2 -2
  370. package/lib/hooks/useReadOnly.js.map +1 -1
  371. package/lib/hooks/useRenderingExtensions.js +11 -14
  372. package/lib/hooks/useRenderingExtensions.js.map +1 -1
  373. package/lib/hooks/useResizeColumns.d.ts +8 -0
  374. package/lib/hooks/useResizeColumns.js +46 -0
  375. package/lib/hooks/useResizeColumns.js.map +1 -0
  376. package/lib/hooks/useSliderExtensions.js +5 -6
  377. package/lib/hooks/useSliderExtensions.js.map +1 -1
  378. package/lib/hooks/useTerminologyServerQuery.js +2 -3
  379. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  380. package/lib/hooks/useValidationFeedback.js +2 -3
  381. package/lib/hooks/useValidationFeedback.js.map +1 -1
  382. package/lib/hooks/useValueSetCodings.js +6 -39
  383. package/lib/hooks/useValueSetCodings.js.map +1 -1
  384. package/lib/index.d.ts +5 -7
  385. package/lib/index.js +3 -4
  386. package/lib/index.js.map +1 -1
  387. package/lib/interfaces/calculatedExpression.interface.d.ts +1 -1
  388. package/lib/interfaces/overrideComponent.interface.d.ts +2 -4
  389. package/lib/interfaces/renderProps.interface.d.ts +6 -31
  390. package/lib/interfaces/valueSet.interface.d.ts +2 -2
  391. package/lib/stores/formUpdateQueueStore.d.ts +6 -13
  392. package/lib/stores/formUpdateQueueStore.js +9 -24
  393. package/lib/stores/formUpdateQueueStore.js.map +1 -1
  394. package/lib/stores/index.d.ts +3 -3
  395. package/lib/stores/index.js +2 -2
  396. package/lib/stores/index.js.map +1 -1
  397. package/lib/stores/questionnaireResponseStore.d.ts +6 -9
  398. package/lib/stores/questionnaireResponseStore.js +22 -28
  399. package/lib/stores/questionnaireResponseStore.js.map +1 -1
  400. package/lib/stores/questionnaireStore.d.ts +39 -35
  401. package/lib/stores/questionnaireStore.js +136 -141
  402. package/lib/stores/questionnaireStore.js.map +1 -1
  403. package/lib/stores/{rendererStylingStore.d.ts → rendererConfigStore.d.ts} +8 -8
  404. package/lib/stores/rendererConfigStore.js +65 -0
  405. package/lib/stores/rendererConfigStore.js.map +1 -0
  406. package/lib/stores/smartConfigStore.d.ts +3 -3
  407. package/lib/stores/smartConfigStore.js +3 -3
  408. package/lib/stores/terminologyServerStore.d.ts +2 -2
  409. package/lib/stores/terminologyServerStore.js +2 -2
  410. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +1 -1
  411. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +2 -2
  412. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -1
  413. package/lib/stories/testUtils.d.ts +23 -0
  414. package/lib/stories/testUtils.js +249 -0
  415. package/lib/stories/testUtils.js.map +1 -0
  416. package/lib/theme/rendererThemeOptions.js +1 -1
  417. package/lib/theme/rendererThemeOptions.js.map +1 -1
  418. package/lib/utils/answerOptionsToggleExpressions.d.ts +1 -1
  419. package/lib/utils/answerOptionsToggleExpressions.js +94 -111
  420. package/lib/utils/answerOptionsToggleExpressions.js.map +1 -1
  421. package/lib/utils/calculatedExpression.d.ts +39 -3
  422. package/lib/utils/calculatedExpression.js +426 -191
  423. package/lib/utils/calculatedExpression.js.map +1 -1
  424. package/lib/utils/choice.js +14 -11
  425. package/lib/utils/choice.js.map +1 -1
  426. package/lib/utils/columnWidth.d.ts +28 -0
  427. package/lib/utils/columnWidth.js +103 -0
  428. package/lib/utils/columnWidth.js.map +1 -0
  429. package/lib/utils/computedUpdates.js +14 -12
  430. package/lib/utils/computedUpdates.js.map +1 -1
  431. package/lib/utils/enableWhen.js +6 -8
  432. package/lib/utils/enableWhen.js.map +1 -1
  433. package/lib/utils/enableWhenExpression.d.ts +1 -1
  434. package/lib/utils/enableWhenExpression.js +143 -163
  435. package/lib/utils/enableWhenExpression.js.map +1 -1
  436. package/lib/utils/extensions.d.ts +9 -0
  437. package/lib/utils/extensions.js +77 -74
  438. package/lib/utils/extensions.js.map +1 -1
  439. package/lib/utils/extractObservation.js +37 -28
  440. package/lib/utils/extractObservation.js.map +1 -1
  441. package/lib/utils/fhirpath.d.ts +27 -21
  442. package/lib/utils/fhirpath.js +191 -171
  443. package/lib/utils/fhirpath.js.map +1 -1
  444. package/lib/utils/fileUtils.js +21 -32
  445. package/lib/utils/fileUtils.js.map +1 -1
  446. package/lib/utils/genericRecursive.js +4 -6
  447. package/lib/utils/genericRecursive.js.map +1 -1
  448. package/lib/utils/getExpressionsFromItem.js +59 -66
  449. package/lib/utils/getExpressionsFromItem.js.map +1 -1
  450. package/lib/utils/index.d.ts +2 -1
  451. package/lib/utils/index.js +1 -1
  452. package/lib/utils/index.js.map +1 -1
  453. package/lib/utils/initialise.js +88 -101
  454. package/lib/utils/initialise.js.map +1 -1
  455. package/lib/utils/inputSanitization.js +6 -6
  456. package/lib/utils/inputSanitization.js.map +1 -1
  457. package/lib/utils/itemPath.d.ts +2 -2
  458. package/lib/utils/manageForm.d.ts +87 -9
  459. package/lib/utils/manageForm.js +79 -54
  460. package/lib/utils/manageForm.js.map +1 -1
  461. package/lib/utils/misc.js +9 -9
  462. package/lib/utils/misc.js.map +1 -1
  463. package/lib/utils/openChoice.js +25 -23
  464. package/lib/utils/openChoice.js.map +1 -1
  465. package/lib/utils/page.js +3 -4
  466. package/lib/utils/page.js.map +1 -1
  467. package/lib/utils/parameterisedValueSets.d.ts +1 -1
  468. package/lib/utils/parameterisedValueSets.js +110 -124
  469. package/lib/utils/parameterisedValueSets.js.map +1 -1
  470. package/lib/utils/populateContexts.js +4 -5
  471. package/lib/utils/populateContexts.js.map +1 -1
  472. package/lib/utils/qItem.js +9 -21
  473. package/lib/utils/qItem.js.map +1 -1
  474. package/lib/utils/qrItem.js +2 -3
  475. package/lib/utils/qrItem.js.map +1 -1
  476. package/lib/utils/quantity.js +8 -9
  477. package/lib/utils/quantity.js.map +1 -1
  478. package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js +93 -111
  479. package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js.map +1 -1
  480. package/lib/utils/questionnaireStoreUtils/createQuestionnaireModel.js +53 -64
  481. package/lib/utils/questionnaireStoreUtils/createQuestionnaireModel.js.map +1 -1
  482. package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js +3 -5
  483. package/lib/utils/questionnaireStoreUtils/extractContainedValueSets.js.map +1 -1
  484. package/lib/utils/questionnaireStoreUtils/extractLaunchContext.js +1 -2
  485. package/lib/utils/questionnaireStoreUtils/extractLaunchContext.js.map +1 -1
  486. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +200 -212
  487. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  488. package/lib/utils/questionnaireStoreUtils/extractTabs.js +1 -1
  489. package/lib/utils/questionnaireStoreUtils/extractTabs.js.map +1 -1
  490. package/lib/utils/questionnaireStoreUtils/extractTargetConstraint.js +8 -9
  491. package/lib/utils/questionnaireStoreUtils/extractTargetConstraint.js.map +1 -1
  492. package/lib/utils/questionnaireStoreUtils/extractVariables.js +4 -10
  493. package/lib/utils/questionnaireStoreUtils/extractVariables.js.map +1 -1
  494. package/lib/utils/questionnaireStoreUtils/resolveValueSets.js +28 -37
  495. package/lib/utils/questionnaireStoreUtils/resolveValueSets.js.map +1 -1
  496. package/lib/utils/readValues.js +7 -7
  497. package/lib/utils/readValues.js.map +1 -1
  498. package/lib/utils/removeEmptyAnswers.js +11 -9
  499. package/lib/utils/removeEmptyAnswers.js.map +1 -1
  500. package/lib/utils/removeRepeatId.js +17 -22
  501. package/lib/utils/removeRepeatId.js.map +1 -1
  502. package/lib/utils/repopulateIntoResponse.js +7 -5
  503. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  504. package/lib/utils/repopulateItems.js +6 -11
  505. package/lib/utils/repopulateItems.js.map +1 -1
  506. package/lib/utils/slider.js +3 -6
  507. package/lib/utils/slider.js.map +1 -1
  508. package/lib/utils/tabs.js +3 -5
  509. package/lib/utils/tabs.js.map +1 -1
  510. package/lib/utils/targetConstraint.d.ts +1 -1
  511. package/lib/utils/targetConstraint.js +85 -102
  512. package/lib/utils/targetConstraint.js.map +1 -1
  513. package/lib/utils/ucumQuantityConversion.d.ts +44 -0
  514. package/lib/utils/ucumQuantityConversion.js +132 -0
  515. package/lib/utils/ucumQuantityConversion.js.map +1 -0
  516. package/lib/utils/validate.js +35 -35
  517. package/lib/utils/validate.js.map +1 -1
  518. package/lib/utils/valueSet.d.ts +10 -1
  519. package/lib/utils/valueSet.js +67 -55
  520. package/lib/utils/valueSet.js.map +1 -1
  521. package/package.json +19 -19
  522. package/src/components/ExpressionUpdateFadingGlow.styles.ts +3 -3
  523. package/src/components/FormComponents/AttachmentItem/AttachmentField.tsx +5 -5
  524. package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +3 -2
  525. package/src/components/FormComponents/AttachmentItem/AttachmentFileCollector.tsx +2 -2
  526. package/src/components/FormComponents/AttachmentItem/AttachmentFileDropBox.tsx +5 -5
  527. package/src/components/FormComponents/AttachmentItem/AttachmentUrlField.tsx +5 -5
  528. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +4 -4
  529. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +7 -26
  530. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +5 -5
  531. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +15 -31
  532. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +0 -1
  533. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +12 -32
  534. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +3 -4
  535. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +14 -34
  536. package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +19 -43
  537. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +0 -1
  538. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +14 -59
  539. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionView.tsx +4 -4
  540. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +2 -3
  541. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +14 -52
  542. package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +2 -2
  543. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +8 -8
  544. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +12 -59
  545. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionView.tsx +8 -7
  546. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +12 -11
  547. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +11 -55
  548. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateField.tsx +6 -11
  549. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +11 -44
  550. package/src/components/FormComponents/DateTimeItems/CustomDateItem/DatePickerButton.tsx +2 -2
  551. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +21 -76
  552. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomTimeField.tsx +11 -15
  553. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/DateTimeField.tsx +6 -14
  554. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +7 -10
  555. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +20 -65
  556. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +1 -0
  557. package/src/components/FormComponents/GridGroup/GridGroup.tsx +45 -29
  558. package/src/components/FormComponents/GridGroup/GridRow.tsx +13 -15
  559. package/src/components/FormComponents/GridGroup/GridTable.tsx +6 -7
  560. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +2 -2
  561. package/src/components/FormComponents/GroupItem/GroupItem.tsx +4 -9
  562. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +0 -13
  563. package/src/components/FormComponents/GroupItem/GroupItemView.tsx +1 -7
  564. package/src/components/FormComponents/GroupItem/PageButtonWrapper.tsx +2 -2
  565. package/src/components/FormComponents/GroupItem/TabButtonsWrapper.tsx +2 -2
  566. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +7 -10
  567. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +18 -57
  568. package/src/components/FormComponents/ItemParts/CheckboxFormGroup.tsx +8 -8
  569. package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +2 -2
  570. package/src/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.tsx +2 -2
  571. package/src/components/FormComponents/ItemParts/ClearInputButton.tsx +17 -16
  572. package/src/components/FormComponents/ItemParts/DisplayUnitText.tsx +2 -2
  573. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +2 -2
  574. package/src/components/FormComponents/ItemParts/ItemLabel.tsx +3 -6
  575. package/src/components/FormComponents/ItemParts/ItemRepopulateButton.tsx +1 -8
  576. package/src/components/FormComponents/ItemParts/ItemTextSwitcher.tsx +9 -4
  577. package/src/components/FormComponents/ItemParts/OpenLabelField.tsx +3 -3
  578. package/src/components/FormComponents/ItemParts/RadioFormGroup.tsx +9 -9
  579. package/src/components/FormComponents/ItemParts/RequiredAsterisk.tsx +3 -3
  580. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +5 -5
  581. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +40 -40
  582. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +1 -2
  583. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +19 -37
  584. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.tsx +4 -5
  585. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +24 -38
  586. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +22 -46
  587. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +0 -1
  588. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +22 -33
  589. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx +3 -4
  590. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +27 -36
  591. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +5 -5
  592. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +10 -33
  593. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +5 -5
  594. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +11 -30
  595. package/src/components/FormComponents/QuantityItem/QuantityComparatorField.tsx +6 -6
  596. package/src/components/FormComponents/QuantityItem/QuantityField.tsx +7 -10
  597. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +15 -105
  598. package/src/components/FormComponents/QuantityItem/QuantityUnitField.tsx +11 -6
  599. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +8 -21
  600. package/src/components/FormComponents/RepeatGroup/RepeatGroupItem.tsx +0 -4
  601. package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +5 -19
  602. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +0 -4
  603. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +9 -27
  604. package/src/components/FormComponents/SingleItem/SingleItem.tsx +7 -12
  605. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +56 -36
  606. package/src/components/FormComponents/SingleItem/SingleItemView.tsx +3 -15
  607. package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +5 -10
  608. package/src/components/FormComponents/SliderItem/SliderField.tsx +5 -5
  609. package/src/components/FormComponents/SliderItem/SliderItem.tsx +1 -0
  610. package/src/components/FormComponents/StringItem/StringField.tsx +7 -10
  611. package/src/components/FormComponents/StringItem/StringItem.tsx +19 -79
  612. package/src/components/FormComponents/Tables/GroupTable.tsx +69 -45
  613. package/src/components/FormComponents/Tables/GroupTableBody.tsx +7 -16
  614. package/src/components/FormComponents/Tables/GroupTableRow.tsx +7 -17
  615. package/src/components/FormComponents/Tables/GroupTableRowCells.tsx +5 -12
  616. package/src/components/FormComponents/Tables/GroupTableView.tsx +9 -13
  617. package/src/components/FormComponents/Tables/SelectRowButton.tsx +2 -2
  618. package/src/components/FormComponents/Tables/Table.styles.tsx +13 -8
  619. package/src/components/FormComponents/TextItem/TextField.tsx +3 -6
  620. package/src/components/FormComponents/TextItem/TextItem.tsx +11 -50
  621. package/src/components/FormComponents/Textfield.styles.ts +1 -1
  622. package/src/components/FormComponents/TimeItem/TimeField.tsx +5 -4
  623. package/src/components/FormComponents/TimeItem/TimeItem.tsx +6 -2
  624. package/src/components/FormComponents/UrlItem/UrlField.tsx +6 -9
  625. package/src/components/FormComponents/UrlItem/UrlItem.tsx +4 -19
  626. package/src/components/Renderer/BaseRenderer.tsx +18 -26
  627. package/src/components/Renderer/FormBodyCollapsible.tsx +3 -8
  628. package/src/components/Renderer/FormBodyPageContainer.tsx +3 -8
  629. package/src/components/Renderer/FormBodyPaginated.tsx +3 -11
  630. package/src/components/Renderer/FormBodySingleCollapsibleWrapper.tsx +2 -13
  631. package/src/components/Renderer/FormBodyTabbed.tsx +5 -10
  632. package/src/components/Renderer/FormTopLevelItem.tsx +3 -14
  633. package/src/components/Renderer/SmartFormsRenderer.tsx +4 -2
  634. package/src/components/Tabs/FormBodySingleTab.tsx +9 -2
  635. package/src/components/Tabs/FormBodyTabList.tsx +1 -0
  636. package/src/hooks/index.ts +1 -6
  637. package/src/hooks/useBuildForm.ts +31 -39
  638. package/src/hooks/useCalculatedExpressionUpdated.ts +39 -0
  639. package/src/hooks/useCodingCalculatedExpression.ts +0 -110
  640. package/src/hooks/useDateCalculatedExpression.ts +0 -90
  641. package/src/hooks/useDateTimeCalculatedExpression.ts +0 -90
  642. package/src/hooks/useDisplayCqfAndCalculatedExpression.ts +18 -2
  643. package/src/hooks/useHidden.ts +2 -2
  644. package/src/hooks/useInitialiseForm.ts +6 -5
  645. package/src/hooks/useReadOnly.ts +2 -2
  646. package/src/hooks/useResizeColumns.ts +53 -0
  647. package/src/hooks/useValueSetCodings.ts +5 -27
  648. package/src/index.ts +6 -12
  649. package/src/interfaces/calculatedExpression.interface.ts +1 -1
  650. package/src/interfaces/overrideComponent.interface.ts +2 -4
  651. package/src/interfaces/renderProps.interface.ts +8 -34
  652. package/src/interfaces/valueSet.interface.ts +2 -2
  653. package/src/stores/formUpdateQueueStore.ts +13 -29
  654. package/src/stores/index.ts +3 -3
  655. package/src/stores/questionnaireResponseStore.ts +28 -37
  656. package/src/stores/questionnaireStore.ts +230 -199
  657. package/src/stores/{rendererStylingStore.ts → rendererConfigStore.ts} +8 -8
  658. package/src/stores/smartConfigStore.ts +3 -3
  659. package/src/stores/terminologyServerStore.ts +2 -2
  660. package/src/theme/rendererThemeOptions.ts +1 -1
  661. package/src/utils/answerOptionsToggleExpressions.ts +12 -9
  662. package/src/utils/calculatedExpression.ts +466 -97
  663. package/src/utils/columnWidth.test.ts +75 -0
  664. package/src/utils/columnWidth.ts +110 -0
  665. package/src/utils/enableWhenExpression.ts +10 -6
  666. package/src/utils/extensions.ts +30 -0
  667. package/src/utils/extractObservation.ts +2 -1
  668. package/src/utils/fhirpath.ts +140 -115
  669. package/src/utils/getExpressionsFromItem.ts +33 -2
  670. package/src/utils/index.ts +2 -0
  671. package/src/utils/inputSanitization.ts +6 -6
  672. package/src/utils/manageForm.ts +148 -24
  673. package/src/utils/parameterisedValueSets.ts +20 -9
  674. package/src/utils/targetConstraint.ts +12 -9
  675. package/src/utils/ucumQuantityConversion.ts +195 -0
  676. package/src/utils/validate.ts +8 -3
  677. package/src/utils/valueSet.ts +44 -1
  678. package/src/vite-env.d.ts +2 -1
  679. package/tsconfig.json +2 -2
  680. package/vite.config.ts +5 -1
  681. package/lib/api/callbacks.d.ts +0 -8
  682. package/lib/api/callbacks.js +0 -52
  683. package/lib/api/callbacks.js.map +0 -1
  684. package/lib/api/xFhirQuerySync.d.ts +0 -1
  685. package/lib/api/xFhirQuerySync.js +0 -61
  686. package/lib/api/xFhirQuerySync.js.map +0 -1
  687. package/lib/components/ExpressionUpdateFadingGlow.d.ts +0 -0
  688. package/lib/components/ExpressionUpdateFadingGlow.js +0 -2
  689. package/lib/components/ExpressionUpdateFadingGlow.js.map +0 -1
  690. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.d.ts +0 -0
  691. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.js +0 -2
  692. package/lib/components/FormComponents/ItemParts/ExpressionUpdateFadingGlow.js.map +0 -1
  693. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +0 -7
  694. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +0 -26
  695. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +0 -1
  696. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.d.ts +0 -0
  697. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.js +0 -2
  698. package/lib/components/FormComponents/ItemParts/FadingGlowExpressionUpdate.js.map +0 -1
  699. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.d.ts +0 -8
  700. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.js +0 -130
  701. package/lib/components/FormComponents/ItemParts/GranularRepopulateButton.js.map +0 -1
  702. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.d.ts +0 -8
  703. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.js +0 -126
  704. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButton.js.map +0 -1
  705. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.d.ts +0 -8
  706. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.js +0 -118
  707. package/lib/components/FormComponents/ItemParts/GranularRepopulateSyncButtonStates.js.map +0 -1
  708. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +0 -8
  709. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +0 -63
  710. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +0 -1
  711. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +0 -8
  712. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +0 -53
  713. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +0 -1
  714. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.d.ts +0 -0
  715. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.js +0 -2
  716. package/lib/components/FormComponents/ItemParts/SrOnlyCheckboxLabel.js.map +0 -1
  717. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.d.ts +0 -7
  718. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.js +0 -95
  719. package/lib/components/FormComponents/ItemParts/TempCalculatedExpressionSyncButton.js.map +0 -1
  720. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +0 -10
  721. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +0 -30
  722. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +0 -1
  723. package/lib/components/FormComponents/Tables/GroupTableRowCell.d.ts +0 -9
  724. package/lib/components/FormComponents/Tables/GroupTableRowCell.js +0 -15
  725. package/lib/components/FormComponents/Tables/GroupTableRowCell.js.map +0 -1
  726. package/lib/components/Iconify/Iconify.d.ts +0 -10
  727. package/lib/components/Iconify/Iconify.js +0 -26
  728. package/lib/components/Iconify/Iconify.js.map +0 -1
  729. package/lib/components/Renderer/FormBodyPage.d.ts +0 -9
  730. package/lib/components/Renderer/FormBodyPage.js +0 -43
  731. package/lib/components/Renderer/FormBodyPage.js.map +0 -1
  732. package/lib/components/Renderer/FormTitle.d.ts +0 -7
  733. package/lib/components/Renderer/FormTitle.js +0 -30
  734. package/lib/components/Renderer/FormTitle.js.map +0 -1
  735. package/lib/components/Renderer/FormTopLevelPage.d.ts +0 -9
  736. package/lib/components/Renderer/FormTopLevelPage.js +0 -29
  737. package/lib/components/Renderer/FormTopLevelPage.js.map +0 -1
  738. package/lib/hooks/useBooleanCalculatedExpression.d.ts +0 -12
  739. package/lib/hooks/useBooleanCalculatedExpression.js +0 -53
  740. package/lib/hooks/useBooleanCalculatedExpression.js.map +0 -1
  741. package/lib/hooks/useCalculatedExpressionAnimating.d.ts +0 -1
  742. package/lib/hooks/useCalculatedExpressionAnimating.js +0 -18
  743. package/lib/hooks/useCalculatedExpressionAnimating.js.map +0 -1
  744. package/lib/hooks/useCalculatedExpressionAnimation.d.ts +0 -1
  745. package/lib/hooks/useCalculatedExpressionAnimation.js +0 -18
  746. package/lib/hooks/useCalculatedExpressionAnimation.js.map +0 -1
  747. package/lib/hooks/useCqfAnswerValueSet.d.ts +0 -4
  748. package/lib/hooks/useCqfAnswerValueSet.js +0 -86
  749. package/lib/hooks/useCqfAnswerValueSet.js.map +0 -1
  750. package/lib/hooks/useCqfAnswerValueSetEffect.d.ts +0 -3
  751. package/lib/hooks/useCqfAnswerValueSetEffect.js +0 -111
  752. package/lib/hooks/useCqfAnswerValueSetEffect.js.map +0 -1
  753. package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -13
  754. package/lib/hooks/useDecimalCalculatedExpression.js +0 -64
  755. package/lib/hooks/useDecimalCalculatedExpression.js.map +0 -1
  756. package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -12
  757. package/lib/hooks/useIntegerCalculatedExpression.js +0 -61
  758. package/lib/hooks/useIntegerCalculatedExpression.js.map +0 -1
  759. package/lib/hooks/useQuantityCalculatedExpression.d.ts +0 -14
  760. package/lib/hooks/useQuantityCalculatedExpression.js +0 -115
  761. package/lib/hooks/useQuantityCalculatedExpression.js.map +0 -1
  762. package/lib/hooks/useShowDateTimeFeedback.d.ts +0 -13
  763. package/lib/hooks/useShowDateTimeFeedback.js +0 -40
  764. package/lib/hooks/useShowDateTimeFeedback.js.map +0 -1
  765. package/lib/hooks/useShowFeedback.d.ts +0 -11
  766. package/lib/hooks/useShowFeedback.js +0 -33
  767. package/lib/hooks/useShowFeedback.js.map +0 -1
  768. package/lib/hooks/useStringCalculatedExpression.d.ts +0 -12
  769. package/lib/hooks/useStringCalculatedExpression.js +0 -63
  770. package/lib/hooks/useStringCalculatedExpression.js.map +0 -1
  771. package/lib/hooks/useTempCalculatedExpressionsSyncButton.d.ts +0 -1
  772. package/lib/hooks/useTempCalculatedExpressionsSyncButton.js +0 -24
  773. package/lib/hooks/useTempCalculatedExpressionsSyncButton.js.map +0 -1
  774. package/lib/interfaces/fhirPathContext.interface.d.ts +0 -0
  775. package/lib/interfaces/fhirPathContext.interface.js +0 -2
  776. package/lib/interfaces/fhirPathContext.interface.js.map +0 -1
  777. package/lib/interfaces/itemDetails.interface.d.ts +0 -2
  778. package/lib/interfaces/itemDetails.interface.js +0 -2
  779. package/lib/interfaces/itemDetails.interface.js.map +0 -1
  780. package/lib/interfaces/itemMetadata.d.ts +0 -0
  781. package/lib/interfaces/itemMetadata.interface.d.ts +0 -6
  782. package/lib/interfaces/itemMetadata.interface.js +0 -2
  783. package/lib/interfaces/itemMetadata.interface.js.map +0 -1
  784. package/lib/interfaces/itemMetadata.js +0 -2
  785. package/lib/interfaces/itemMetadata.js.map +0 -1
  786. package/lib/interfaces/itemPath.d.ts +0 -31
  787. package/lib/interfaces/itemPath.js +0 -2
  788. package/lib/interfaces/itemPath.js.map +0 -1
  789. package/lib/stores/callbackStore.d.ts +0 -0
  790. package/lib/stores/callbackStore.js +0 -2
  791. package/lib/stores/callbackStore.js.map +0 -1
  792. package/lib/stores/extractOperationStore.d.ts +0 -26
  793. package/lib/stores/extractOperationStore.js +0 -20
  794. package/lib/stores/extractOperationStore.js.map +0 -1
  795. package/lib/stores/rendererStylingStore.js +0 -68
  796. package/lib/stores/rendererStylingStore.js.map +0 -1
  797. package/lib/stories/storybookWrappers/populateCallbackForStorybook.d.ts +0 -8
  798. package/lib/stories/storybookWrappers/populateCallbackForStorybook.js +0 -52
  799. package/lib/stories/storybookWrappers/populateCallbackForStorybook.js.map +0 -1
  800. package/lib/templates/bloodPressureTemplate.d.ts +0 -23
  801. package/lib/templates/bloodPressureTemplate.js +0 -80
  802. package/lib/templates/bloodPressureTemplate.js.map +0 -1
  803. package/lib/theme/RendererDynamicThemeProvider.d.ts +0 -24
  804. package/lib/theme/RendererDynamicThemeProvider.js +0 -65
  805. package/lib/theme/RendererDynamicThemeProvider.js.map +0 -1
  806. package/lib/theme/RendererThemeToggle.d.ts +0 -6
  807. package/lib/theme/RendererThemeToggle.js +0 -45
  808. package/lib/theme/RendererThemeToggle.js.map +0 -1
  809. package/lib/theme/Theme.d.ts +0 -44
  810. package/lib/theme/Theme.js +0 -43
  811. package/lib/theme/Theme.js.map +0 -1
  812. package/lib/theme/customGlobalStyles.d.ts +0 -1
  813. package/lib/theme/customGlobalStyles.js +0 -45
  814. package/lib/theme/customGlobalStyles.js.map +0 -1
  815. package/lib/theme/overrides/Accordion.d.ts +0 -14
  816. package/lib/theme/overrides/Accordion.js +0 -32
  817. package/lib/theme/overrides/Accordion.js.map +0 -1
  818. package/lib/theme/overrides/Autocomplete.d.ts +0 -10
  819. package/lib/theme/overrides/Autocomplete.js +0 -28
  820. package/lib/theme/overrides/Autocomplete.js.map +0 -1
  821. package/lib/theme/overrides/Button.d.ts +0 -33
  822. package/lib/theme/overrides/Button.js +0 -52
  823. package/lib/theme/overrides/Button.js.map +0 -1
  824. package/lib/theme/overrides/Card.d.ts +0 -35
  825. package/lib/theme/overrides/Card.js +0 -49
  826. package/lib/theme/overrides/Card.js.map +0 -1
  827. package/lib/theme/overrides/Input.d.ts +0 -64
  828. package/lib/theme/overrides/Input.js +0 -81
  829. package/lib/theme/overrides/Input.js.map +0 -1
  830. package/lib/theme/overrides/Overrides.d.ts +0 -3
  831. package/lib/theme/overrides/Overrides.js +0 -29
  832. package/lib/theme/overrides/Overrides.js.map +0 -1
  833. package/lib/theme/overrides/Paper.d.ts +0 -12
  834. package/lib/theme/overrides/Paper.js +0 -31
  835. package/lib/theme/overrides/Paper.js.map +0 -1
  836. package/lib/theme/overrides/SpeedDial.d.ts +0 -16
  837. package/lib/theme/overrides/SpeedDial.js +0 -34
  838. package/lib/theme/overrides/SpeedDial.js.map +0 -1
  839. package/lib/theme/overrides/Table.d.ts +0 -12
  840. package/lib/theme/overrides/Table.js +0 -30
  841. package/lib/theme/overrides/Table.js.map +0 -1
  842. package/lib/theme/overrides/rendererThemeComponentOverride.d.ts +0 -2
  843. package/lib/theme/overrides/rendererThemeComponentOverride.js +0 -28
  844. package/lib/theme/overrides/rendererThemeComponentOverride.js.map +0 -1
  845. package/lib/theme/overrides/rendererThemeComponentsOverride.d.ts +0 -2
  846. package/lib/theme/overrides/rendererThemeComponentsOverride.js +0 -28
  847. package/lib/theme/overrides/rendererThemeComponentsOverride.js.map +0 -1
  848. package/lib/theme/overrides/rendererThemeComponentsOverrides.d.ts +0 -2
  849. package/lib/theme/overrides/rendererThemeComponentsOverrides.js +0 -28
  850. package/lib/theme/overrides/rendererThemeComponentsOverrides.js.map +0 -1
  851. package/lib/theme/palette.d.ts +0 -27
  852. package/lib/theme/palette.js +0 -63
  853. package/lib/theme/palette.js.map +0 -1
  854. package/lib/theme/shadows.d.ts +0 -2
  855. package/lib/theme/shadows.js +0 -52
  856. package/lib/theme/shadows.js.map +0 -1
  857. package/lib/theme/themeOptions.d.ts +0 -2
  858. package/lib/theme/themeOptions.js +0 -85
  859. package/lib/theme/themeOptions.js.map +0 -1
  860. package/lib/theme/useRendererTheme.d.ts +0 -5
  861. package/lib/theme/useRendererTheme.js +0 -30
  862. package/lib/theme/useRendererTheme.js.map +0 -1
  863. package/lib/utils/FhirPathEvaluateParams.d.ts +0 -20
  864. package/lib/utils/FhirPathEvaluateParams.js +0 -35
  865. package/lib/utils/FhirPathEvaluateParams.js.map +0 -1
  866. package/lib/utils/dayjsExtend.d.ts +0 -1
  867. package/lib/utils/dayjsExtend.js +0 -22
  868. package/lib/utils/dayjsExtend.js.map +0 -1
  869. package/lib/utils/dayjsSetup.d.ts +0 -2
  870. package/lib/utils/dayjsSetup.js +0 -23
  871. package/lib/utils/dayjsSetup.js.map +0 -1
  872. package/lib/utils/extractTemplate.d.ts +0 -0
  873. package/lib/utils/extractTemplate.js +0 -1107
  874. package/lib/utils/extractTemplate.js.map +0 -1
  875. package/lib/utils/fhirathEvaluate.d.ts +0 -20
  876. package/lib/utils/fhirathEvaluate.js +0 -35
  877. package/lib/utils/fhirathEvaluate.js.map +0 -1
  878. package/lib/utils/fhirpathEvaluate.d.ts +0 -30
  879. package/lib/utils/fhirpathEvaluate.js +0 -68
  880. package/lib/utils/fhirpathEvaluate.js.map +0 -1
  881. package/lib/utils/find_item_no_text.d.ts +0 -1
  882. package/lib/utils/find_item_no_text.js +0 -65
  883. package/lib/utils/find_item_no_text.js.map +0 -1
  884. package/lib/utils/generateId.d.ts +0 -3
  885. package/lib/utils/generateId.js +0 -28
  886. package/lib/utils/generateId.js.map +0 -1
  887. package/lib/utils/granularRepopulateSync.d.ts +0 -1
  888. package/lib/utils/granularRepopulateSync.js +0 -70
  889. package/lib/utils/granularRepopulateSync.js.map +0 -1
  890. package/lib/utils/itemControl.d.ts +0 -103
  891. package/lib/utils/itemControl.js +0 -350
  892. package/lib/utils/itemControl.js.map +0 -1
  893. package/lib/utils/itemText.d.ts +0 -2
  894. package/lib/utils/itemText.js +0 -12
  895. package/lib/utils/itemText.js.map +0 -1
  896. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +0 -2
  897. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +0 -43
  898. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +0 -1
  899. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +0 -3
  900. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +0 -114
  901. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +0 -1
  902. package/lib/utils/questionnaireStoreUtils/itemDetails.d.ts +0 -5
  903. package/lib/utils/questionnaireStoreUtils/itemDetails.js +0 -2
  904. package/lib/utils/questionnaireStoreUtils/itemDetails.js.map +0 -1
  905. package/lib/utils/readItem.d.ts +0 -28
  906. package/lib/utils/readItem.js +0 -67
  907. package/lib/utils/readItem.js.map +0 -1
  908. package/lib/utils/syncInitialExpression.d.ts +0 -23
  909. package/lib/utils/syncInitialExpression.js +0 -407
  910. package/lib/utils/syncInitialExpression.js.map +0 -1
  911. package/lib/utils/templateMatching.d.ts +0 -15
  912. package/lib/utils/templateMatching.js +0 -56
  913. package/lib/utils/templateMatching.js.map +0 -1
  914. package/lib/utils/updateCodingsDynamic.d.ts +0 -1
  915. package/lib/utils/updateCodingsDynamic.js +0 -54
  916. package/lib/utils/updateCodingsDynamic.js.map +0 -1
  917. package/lib/utils/validateQuestionnaire.d.ts +0 -66
  918. package/lib/utils/validateQuestionnaire.js +0 -559
  919. package/lib/utils/validateQuestionnaire.js.map +0 -1
  920. package/src/hooks/useBooleanCalculatedExpression.ts +0 -83
  921. package/src/hooks/useDecimalCalculatedExpression.ts +0 -103
  922. package/src/hooks/useIntegerCalculatedExpression.ts +0 -93
  923. package/src/hooks/useQuantityCalculatedExpression.ts +0 -196
  924. package/src/hooks/useShowFeedback.ts +0 -36
  925. package/src/hooks/useStringCalculatedExpression.ts +0 -95
  926. package/src/interfaces/itemPath.interface.ts +0 -33
  927. package/src/utils/itemPath.ts +0 -79
  928. package/src/utils/questionnaireStoreUtils/addAdditionalVariables.ts +0 -52
@@ -1,1107 +0,0 @@
1
- "use strict";
2
- // import type {
3
- // Element,
4
- // Extension,
5
- // Observation,
6
- // Questionnaire,
7
- // QuestionnaireItem,
8
- // QuestionnaireResponse,
9
- // QuestionnaireResponseItem
10
- // } from 'fhir/r4';
11
- // import fhirpath from 'fhirpath';
12
- // import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
13
- // import { FHIR_TEMPLATE_EXTRACT_EXTENSION, findMatchingItem } from './templateMatching';
14
- //
15
- // const FHIR_TEMPLATE_REFERENCE_EXTENSION =
16
- // 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateReference';
17
- //
18
- // const TEMPLATE_EXTRACT_VALUE_EXTENSION =
19
- // 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue';
20
- //
21
- // interface DebugInfo {
22
- // contentAnalysis: {
23
- // detectedTemplates: string[];
24
- // patterns: string[];
25
- // confidence: string;
26
- // };
27
- // fieldMapping: {
28
- // mappedFields: Record<string, any>;
29
- // assumptions: string[];
30
- // alternatives: string[];
31
- // };
32
- // valueProcessing: {
33
- // values: Record<string, any>;
34
- // transformations: string[];
35
- // qualityChecks: Array<{
36
- // check: string;
37
- // passed: boolean;
38
- // message: string;
39
- // }>;
40
- // datetime?: {
41
- // source: 'static' | 'dynamic' | 'fallback';
42
- // expression?: string;
43
- // value?: string;
44
- // originalValue?: string;
45
- // };
46
- // };
47
- // resultGeneration: {
48
- // status: string;
49
- // observations: Observation[];
50
- // warnings?: string[];
51
- // };
52
- // }
53
- //
54
- // interface ExtendedElement extends Element {
55
- // extension?: Extension[];
56
- // }
57
- //
58
- // interface ExtendedObservation extends Observation {
59
- // _effectiveDateTime?: ExtendedElement;
60
- // _issued?: ExtendedElement;
61
- // _valueBoolean?: ExtendedElement;
62
- // }
63
- //
64
- // function evaluateTemplateExpression(
65
- // questionnaireResponse: QuestionnaireResponse,
66
- // expression: string,
67
- // context?: QuestionnaireResponseItem | QuestionnaireResponseItem[]
68
- // ): any {
69
- // try {
70
- // // If we have a context, use it as the starting point for evaluation
71
- // const evaluationContext = context || questionnaireResponse;
72
- //
73
- // // Handle special cases for nested structures
74
- // if (expression.includes('item.where')) {
75
- // // Process nested item expressions
76
- // const result = fhirpath.evaluate(
77
- // evaluationContext,
78
- // expression,
79
- // {}, // Empty context object
80
- // fhirpath_r4_model,
81
- // {
82
- // async: false
83
- // }
84
- // );
85
- //
86
- // if (Array.isArray(result)) {
87
- // if (result.length === 0) return null;
88
- // if (result.length === 1) return result[0];
89
- // return result;
90
- // }
91
- //
92
- // return result;
93
- // }
94
- //
95
- // // Handle direct value references
96
- // const result = fhirpath.evaluate(
97
- // evaluationContext,
98
- // expression,
99
- // {}, // Empty context object
100
- // fhirpath_r4_model,
101
- // {
102
- // async: false
103
- // }
104
- // );
105
- //
106
- // return result;
107
- // } catch (error) {
108
- // console.error('Error evaluating FHIRPath expression:', error);
109
- // return null;
110
- // }
111
- // }
112
- //
113
- // function findNestedItem(
114
- // items: QuestionnaireResponseItem[] | undefined,
115
- // linkId: string
116
- // ): QuestionnaireResponseItem | null {
117
- // if (!items) return null;
118
- //
119
- // for (const item of items) {
120
- // if (item.linkId === linkId) {
121
- // return item;
122
- // }
123
- // if (item.item) {
124
- // const nested = findNestedItem(item.item, linkId);
125
- // if (nested) return nested;
126
- // }
127
- // }
128
- // return null;
129
- // }
130
- //
131
- // function getNestedAnswerValue(
132
- // response: QuestionnaireResponse,
133
- // linkId: string,
134
- // parentLinkId?: string
135
- // ): any {
136
- // console.log(`Looking for value at linkId: ${linkId} (parent: ${parentLinkId || 'none'})`);
137
- //
138
- // // More flexible recursive item finder
139
- // const findItem = (
140
- // items: QuestionnaireResponseItem[] | undefined,
141
- // currentLevel: number = 0
142
- // ): QuestionnaireResponseItem | null => {
143
- // if (!items) return null;
144
- //
145
- // for (const item of items) {
146
- // console.log(`${' '.repeat(currentLevel * 2)}Checking item: ${item.linkId}`);
147
- //
148
- // // Direct match
149
- // if (item.linkId === linkId) {
150
- // console.log(`${' '.repeat(currentLevel * 2)}✅ Found direct match: ${item.linkId}`);
151
- // return item;
152
- // }
153
- //
154
- // // Parent match, check children
155
- // if (parentLinkId && item.linkId === parentLinkId && item.item) {
156
- // console.log(
157
- // `${' '.repeat(currentLevel * 2)}Found parent: ${item.linkId}, checking children...`
158
- // );
159
- // for (const childItem of item.item) {
160
- // if (childItem.linkId === linkId) {
161
- // console.log(`${' '.repeat(currentLevel * 2)}✅ Found child match: ${childItem.linkId}`);
162
- // return childItem;
163
- // }
164
- // }
165
- // }
166
- //
167
- // // Recursive search in children
168
- // if (item.item) {
169
- // const foundItem = findItem(item.item, currentLevel + 1);
170
- // if (foundItem) return foundItem;
171
- // }
172
- // }
173
- //
174
- // return null;
175
- // };
176
- //
177
- // const item = findItem(response.item);
178
- // if (!item || !item.answer || item.answer.length === 0) {
179
- // console.log(`❌ No answer found for linkId: ${linkId}`);
180
- // return null;
181
- // }
182
- //
183
- // const answer = item.answer[0];
184
- //
185
- // // Extract the value based on its type
186
- // if (answer.valueDecimal !== undefined) return answer.valueDecimal;
187
- // if (answer.valueInteger !== undefined) return answer.valueInteger;
188
- // if (answer.valueString !== undefined) return answer.valueString;
189
- // if (answer.valueBoolean !== undefined) return answer.valueBoolean;
190
- // if (answer.valueQuantity?.value !== undefined) return answer.valueQuantity.value;
191
- //
192
- // console.log(`❌ No supported value type found in answer for linkId: ${linkId}`);
193
- // return null;
194
- // }
195
- //
196
- // function hasTemplateExtractExtension(item: QuestionnaireItem | Questionnaire): boolean {
197
- // // Enhanced detection with detailed logging
198
- // console.log(
199
- // `Checking for template extraction extension in item with linkId: ${(item as QuestionnaireItem).linkId || 'root questionnaire'}`
200
- // );
201
- //
202
- // if (!item.extension || item.extension.length === 0) {
203
- // console.log(
204
- // `No extensions found for item ${(item as QuestionnaireItem).linkId || 'root questionnaire'}`
205
- // );
206
- // return false;
207
- // }
208
- //
209
- // for (const ext of item.extension) {
210
- // console.log(`Examining extension with URL: ${ext.url}`);
211
- //
212
- // if (ext.url === FHIR_TEMPLATE_EXTRACT_EXTENSION) {
213
- // // Check for direct boolean value
214
- // if (ext.valueBoolean !== undefined) {
215
- // console.log(`Found template extraction extension with valueBoolean: ${ext.valueBoolean}`);
216
- // return ext.valueBoolean;
217
- // }
218
- //
219
- // // Check for nested template reference
220
- // if (ext.extension) {
221
- // for (const subExt of ext.extension) {
222
- // if (subExt.url === 'template' && subExt.valueReference?.reference) {
223
- // console.log(`Found template reference: ${subExt.valueReference.reference}`);
224
- // return true;
225
- // }
226
- // }
227
- // }
228
- // }
229
- // }
230
- //
231
- // return false;
232
- // }
233
- //
234
- // /**
235
- // * Processes datetime extraction from templates, handling both static values and expressions
236
- // * @param template The template containing datetime fields
237
- // * @param response The questionnaire response to extract values from
238
- // * @returns An ISO formatted datetime string
239
- // */
240
- // function processDateTimeExtraction(
241
- // template: any,
242
- // response: QuestionnaireResponse,
243
- // debugInfo: DebugInfo
244
- // ): string {
245
- // // Check if we have an effectiveDateTime with extraction extension
246
- // const effectiveDateTime = template.effectiveDateTime;
247
- // const effectiveDateTimeExt = template._effectiveDateTime?.extension?.find(
248
- // (ext: Extension) => ext.url === TEMPLATE_EXTRACT_VALUE_EXTENSION
249
- // );
250
- //
251
- // // Initialize datetime debug info
252
- // debugInfo.valueProcessing.datetime = {
253
- // source: 'fallback',
254
- // value: ''
255
- // };
256
- //
257
- // if (effectiveDateTimeExt?.valueString) {
258
- // // Handle specific extraction expressions
259
- // if (effectiveDateTimeExt.valueString === 'now()') {
260
- // // Use current date/time
261
- // const now = new Date().toISOString();
262
- // console.log(`Processing datetime with now() function: ${now}`);
263
- //
264
- // // Update datetime debug info
265
- // debugInfo.valueProcessing.datetime = {
266
- // source: 'dynamic',
267
- // expression: 'now()',
268
- // value: now,
269
- // originalValue: effectiveDateTime
270
- // };
271
- //
272
- // return now;
273
- // } else {
274
- // // Try to evaluate as a FHIRPath expression
275
- // const extractedDateTime = evaluateTemplateExpression(
276
- // response,
277
- // effectiveDateTimeExt.valueString
278
- // );
279
- // if (extractedDateTime) {
280
- // console.log(`Extracted datetime using expression: ${extractedDateTime}`);
281
- //
282
- // // Update datetime debug info
283
- // debugInfo.valueProcessing.datetime = {
284
- // source: 'dynamic',
285
- // expression: effectiveDateTimeExt.valueString,
286
- // value: extractedDateTime,
287
- // originalValue: effectiveDateTime
288
- // };
289
- //
290
- // return extractedDateTime;
291
- // }
292
- // }
293
- // }
294
- //
295
- // // Default to template's static value if available
296
- // if (effectiveDateTime) {
297
- // console.log(`Using template's static datetime: ${effectiveDateTime}`);
298
- //
299
- // // Update datetime debug info
300
- // debugInfo.valueProcessing.datetime = {
301
- // source: 'static',
302
- // value: effectiveDateTime
303
- // };
304
- //
305
- // return effectiveDateTime;
306
- // }
307
- //
308
- // // Final fallback to current date/time
309
- // const fallbackTime = new Date().toISOString();
310
- // console.log(`No datetime information found, using current time: ${fallbackTime}`);
311
- //
312
- // // Update datetime debug info
313
- // debugInfo.valueProcessing.datetime = {
314
- // source: 'fallback',
315
- // value: fallbackTime
316
- // };
317
- //
318
- // return fallbackTime;
319
- // }
320
- //
321
- // export async function extractTemplateBased(
322
- // questionnaire: Questionnaire,
323
- // response: QuestionnaireResponse
324
- // ): Promise<{ result: Observation[] | null; error: string | null; debugInfo: DebugInfo }> {
325
- // const debugInfo: DebugInfo = {
326
- // contentAnalysis: {
327
- // detectedTemplates: [],
328
- // confidence: 'Valid',
329
- // patterns: []
330
- // },
331
- // fieldMapping: {
332
- // mappedFields: {},
333
- // assumptions: [],
334
- // alternatives: []
335
- // },
336
- // valueProcessing: {
337
- // values: {},
338
- // transformations: [],
339
- // qualityChecks: []
340
- // },
341
- // resultGeneration: {
342
- // status: 'Pending',
343
- // observations: []
344
- // }
345
- // };
346
- //
347
- // console.log('=== Template Extraction Debug ===');
348
- // console.log('Stage 1: Initial Validation');
349
- //
350
- // // Enhanced validation with more detailed error reporting
351
- // if (!questionnaire) {
352
- // console.log('❌ Failed: Questionnaire is undefined or null');
353
- // debugInfo.contentAnalysis.confidence = 'Invalid';
354
- // return {
355
- // result: null,
356
- // error: 'Missing questionnaire',
357
- // debugInfo
358
- // };
359
- // }
360
- //
361
- // if (!questionnaire.item) {
362
- // console.log('❌ Failed: Questionnaire has no items');
363
- // debugInfo.contentAnalysis.confidence = 'Invalid';
364
- // return {
365
- // result: null,
366
- // error: 'Questionnaire has no items',
367
- // debugInfo
368
- // };
369
- // }
370
- //
371
- // if (!questionnaire.contained || questionnaire.contained.length === 0) {
372
- // console.log('❌ Failed: Questionnaire has no contained resources for templates');
373
- // debugInfo.contentAnalysis.confidence = 'Invalid';
374
- // return {
375
- // result: null,
376
- // error: 'Questionnaire has no contained resources for templates',
377
- // debugInfo
378
- // };
379
- // }
380
- //
381
- // if (!response.item) {
382
- // console.log('❌ Failed: Response has no items');
383
- // debugInfo.contentAnalysis.confidence = 'Invalid';
384
- // return {
385
- // result: null,
386
- // error: 'Response has no items',
387
- // debugInfo
388
- // };
389
- // }
390
- //
391
- // console.log('✅ Passed: Required items present');
392
- //
393
- // // Check for template extraction extension at questionnaire or item level
394
- // console.log('\nStage 2: Template Extraction Extension Check');
395
- //
396
- // // Enhanced template detection with recursive item checking
397
- // const hasTemplateExtract = hasTemplateExtractExtension(questionnaire);
398
- // let itemsWithTemplates: string[] = [];
399
- //
400
- // const checkItemsForTemplates = (items: QuestionnaireItem[]): boolean => {
401
- // let found = false;
402
- // for (const item of items) {
403
- // if (hasTemplateExtractExtension(item)) {
404
- // found = true;
405
- // itemsWithTemplates.push(item.linkId);
406
- // }
407
- //
408
- // if (item.item && checkItemsForTemplates(item.item)) {
409
- // found = true;
410
- // }
411
- // }
412
- // return found;
413
- // };
414
- //
415
- // const hasItemTemplates = checkItemsForTemplates(questionnaire.item);
416
- //
417
- // if (!hasTemplateExtract && !hasItemTemplates) {
418
- // console.log('❌ Failed: No template extraction extension found');
419
- // debugInfo.contentAnalysis.confidence = 'Invalid';
420
- // debugInfo.contentAnalysis.detectedTemplates.push('No template type detected');
421
- //
422
- // // Enhanced debug information for template detection failure
423
- // if (questionnaire.extension && questionnaire.extension.length > 0) {
424
- // const urls = questionnaire.extension.map((e) => e.url).join(', ');
425
- // debugInfo.fieldMapping.assumptions.push(
426
- // `Found extensions but none match template extraction: ${urls}`
427
- // );
428
- // } else {
429
- // debugInfo.fieldMapping.assumptions.push('No extensions found at questionnaire level');
430
- // }
431
- //
432
- // if (itemsWithTemplates.length > 0) {
433
- // debugInfo.fieldMapping.assumptions.push(
434
- // `Found items with extensions: ${itemsWithTemplates.join(', ')}`
435
- // );
436
- // }
437
- //
438
- // return {
439
- // result: null,
440
- // error: 'Questionnaire is not configured for template extraction',
441
- // debugInfo
442
- // };
443
- // }
444
- //
445
- // if (hasTemplateExtract) {
446
- // console.log('✅ Passed: Template extraction extension found at questionnaire level');
447
- // }
448
- //
449
- // if (hasItemTemplates) {
450
- // console.log(
451
- // `✅ Passed: Template extraction extensions found at item level: ${itemsWithTemplates.join(', ')}`
452
- // );
453
- // }
454
- //
455
- // const templates = questionnaire.contained;
456
- // console.log('\nStage 3: Template Analysis');
457
- // console.log(`Found ${templates.length} templates:`);
458
- //
459
- // // Enhanced template analysis
460
- // const observationTemplates = templates.filter((t) => t.resourceType === 'Observation');
461
- // const patientTemplates = templates.filter((t) => t.resourceType === 'Patient');
462
- // const otherTemplates = templates.filter(
463
- // (t) => !['Observation', 'Patient'].includes(t.resourceType)
464
- // );
465
- //
466
- // console.log(`- ${observationTemplates.length} Observation templates`);
467
- // console.log(`- ${patientTemplates.length} Patient templates`);
468
- // console.log(`- ${otherTemplates.length} Other templates`);
469
- //
470
- // templates.forEach((template) => {
471
- // const templateId = template.id || 'unnamed';
472
- // console.log(`- ${template.resourceType}: ${templateId}`);
473
- // debugInfo.contentAnalysis.detectedTemplates.push(templateId);
474
- // });
475
- //
476
- // const observations: Observation[] = [];
477
- //
478
- // // Initialize field mapping with template information
479
- // console.log('\nStage 4: Field Mapping');
480
- // debugInfo.fieldMapping.mappedFields = templates.reduce(
481
- // (acc, template) => {
482
- // if (template.resourceType === 'Observation') {
483
- // const code = template.code?.coding?.[0]?.code;
484
- // if (code) {
485
- // // Skip the boolean observation for now
486
- // if ((template as ExtendedObservation)._valueBoolean) return acc;
487
- //
488
- // // Find the corresponding item in the questionnaire using the enhanced matcher
489
- // const item = findMatchingItem(
490
- // questionnaire.item,
491
- // template.id || 'unknown',
492
- // template.resourceType,
493
- // template.code?.coding
494
- // );
495
- //
496
- // if (!item) {
497
- // console.log(
498
- // `❌ Failed to find corresponding item in questionnaire for template: ${template.id}`
499
- // );
500
- // debugInfo.valueProcessing.qualityChecks.push({
501
- // check: `Process ${template.id || 'unknown'}`,
502
- // passed: false,
503
- // message: 'Failed to find corresponding item in questionnaire'
504
- // });
505
- // return acc;
506
- // }
507
- //
508
- // // Enhanced path detection with better support for different questionnaire structures
509
- // let valuePath = '';
510
- //
511
- // // Check for parent hierarchy to build proper path
512
- // const buildPath = (
513
- // items: QuestionnaireItem[] | undefined,
514
- // targetLinkId: string,
515
- // path: string = ''
516
- // ): string => {
517
- // if (!items) return '';
518
- //
519
- // for (const i of items) {
520
- // if (i.linkId === targetLinkId)
521
- // return path
522
- // ? `${path}.item.where(linkId='${targetLinkId}')`
523
- // : `item.where(linkId='${targetLinkId}')`;
524
- //
525
- // if (i.item) {
526
- // const newPath = path
527
- // ? `${path}.item.where(linkId='${i.linkId}')`
528
- // : `item.where(linkId='${i.linkId}')`;
529
- // const result = buildPath(i.item, targetLinkId, newPath);
530
- // if (result) return result;
531
- // }
532
- // }
533
- //
534
- // return '';
535
- // };
536
- //
537
- // valuePath = buildPath(questionnaire.item, item.linkId);
538
- // if (!valuePath) {
539
- // valuePath = `item.where(linkId='${item.linkId}')`;
540
- // }
541
- //
542
- // // Add answer type based on item type
543
- // switch (item.type) {
544
- // case 'decimal':
545
- // valuePath += '.answer.valueDecimal';
546
- // break;
547
- // case 'integer':
548
- // valuePath += '.answer.valueInteger';
549
- // break;
550
- // case 'boolean':
551
- // valuePath += '.answer.valueBoolean';
552
- // break;
553
- // case 'string':
554
- // valuePath += '.answer.valueString';
555
- // break;
556
- // case 'quantity':
557
- // valuePath += '.answer.valueQuantity.value';
558
- // break;
559
- // default:
560
- // valuePath += '.answer.value';
561
- // }
562
- //
563
- // acc[code] = {
564
- // templateId: template.id,
565
- // type: template.resourceType,
566
- // valuePath: valuePath,
567
- // itemType: item.type,
568
- // itemLinkId: item.linkId,
569
- // itemText: item.text || 'No text'
570
- // };
571
- //
572
- // console.log(`Mapped field: ${code} -> ${template.id} (${valuePath})`);
573
- // }
574
- // }
575
- // return acc;
576
- // },
577
- // {} as Record<string, any>
578
- // );
579
- //
580
- // // Add relevant assumptions about the mapping based on found patterns
581
- // if (Object.keys(debugInfo.fieldMapping.mappedFields).length === 0) {
582
- // debugInfo.fieldMapping.assumptions.push(
583
- // 'No fields could be mapped between templates and questionnaire items'
584
- // );
585
- // } else {
586
- // debugInfo.fieldMapping.assumptions.push(
587
- // `Successfully mapped ${Object.keys(debugInfo.fieldMapping.mappedFields).length} fields`
588
- // );
589
- // }
590
- //
591
- // // Check for specific patterns in the template (like height, weight, blood pressure)
592
- // const hasHeight = observationTemplates.some((t) =>
593
- // t.code?.coding?.some((c) => c.code === '8302-2' || c.display?.toLowerCase().includes('height'))
594
- // );
595
- //
596
- // const hasWeight = observationTemplates.some((t) =>
597
- // t.code?.coding?.some((c) => c.code === '29463-7' || c.display?.toLowerCase().includes('weight'))
598
- // );
599
- //
600
- // // More precise BP detection to avoid false positives
601
- // const hasBpLoinc = observationTemplates.some(
602
- // (t) => t.code?.coding?.some((c) => c.code === '85354-9') // Blood pressure panel with all children optional
603
- // );
604
- //
605
- // const hasSystolicComponent = observationTemplates.some((t) =>
606
- // t.component?.some((comp) =>
607
- // comp.code?.coding?.some(
608
- // (c) => c.code === '8480-6' || c.display?.toLowerCase().includes('systolic')
609
- // )
610
- // )
611
- // );
612
- //
613
- // const hasDiastolicComponent = observationTemplates.some((t) =>
614
- // t.component?.some((comp) =>
615
- // comp.code?.coding?.some(
616
- // (c) => c.code === '8462-4' || c.display?.toLowerCase().includes('diastolic')
617
- // )
618
- // )
619
- // );
620
- //
621
- // // Separate standalone templates with BP codes
622
- // const hasSystolicTemplate = observationTemplates.some((t) =>
623
- // t.code?.coding?.some(
624
- // (c) => c.code === '8480-6' || c.display?.toLowerCase().includes('systolic')
625
- // )
626
- // );
627
- //
628
- // const hasDiastolicTemplate = observationTemplates.some((t) =>
629
- // t.code?.coding?.some(
630
- // (c) => c.code === '8462-4' || c.display?.toLowerCase().includes('diastolic')
631
- // )
632
- // );
633
- //
634
- // // Content-driven pattern detection
635
- // // Instead of fixed assumptions, detect patterns dynamically based on content
636
- // const patterns = [];
637
- // const assumptions = [];
638
- //
639
- // if (observationTemplates.length > 0) {
640
- // assumptions.push(`Found ${observationTemplates.length} observation templates`);
641
- // }
642
- //
643
- // if (hasHeight) {
644
- // patterns.push('Height Measurement');
645
- // if (hasWeight) {
646
- // // Both height and weight together form a pattern
647
- // assumptions.push('Detected height and weight template pattern');
648
- // } else {
649
- // // Just height alone
650
- // assumptions.push('Detected height measurement template');
651
- // }
652
- // } else if (hasWeight) {
653
- // // Just weight alone
654
- // patterns.push('Weight Measurement');
655
- // assumptions.push('Detected weight measurement template');
656
- // }
657
- //
658
- // // Only detect BP if we have a proper complete BP pattern
659
- // const isCompleteBpPattern =
660
- // hasBpLoinc ||
661
- // (hasSystolicComponent && hasDiastolicComponent) ||
662
- // (hasSystolicTemplate && hasDiastolicTemplate);
663
- //
664
- // if (isCompleteBpPattern) {
665
- // patterns.push('Blood Pressure Measurement');
666
- // assumptions.push('Detected complete blood pressure template pattern');
667
- // } else if (hasSystolicTemplate && !hasDiastolicTemplate) {
668
- // // Just systolic without diastolic - not a complete BP pattern
669
- // patterns.push('Systolic Measurement');
670
- // assumptions.push('Detected systolic pressure template (incomplete BP pattern)');
671
- // } else if (!hasSystolicTemplate && hasDiastolicTemplate) {
672
- // // Just diastolic without systolic - not a complete BP pattern
673
- // patterns.push('Diastolic Measurement');
674
- // assumptions.push('Detected diastolic pressure template (incomplete BP pattern)');
675
- // }
676
- //
677
- // // Add the detected patterns to debug info
678
- // debugInfo.contentAnalysis.patterns.push(...patterns);
679
- //
680
- // // Add the assumptions to debug info
681
- // debugInfo.fieldMapping.assumptions.push(...assumptions);
682
- //
683
- // // Update debug info with resource types
684
- // debugInfo.contentAnalysis.patterns.push(
685
- // ...templates.map((template) => `${template.resourceType}: ${template.id || 'unnamed'}`)
686
- // );
687
- //
688
- // console.log('\nStage 5: Template Processing');
689
- // // Process each template
690
- // for (const template of templates) {
691
- // try {
692
- // if (template.resourceType === 'Observation') {
693
- // const templateId = template.id || 'unnamed';
694
- // console.log(`\nProcessing template: ${templateId}`);
695
- //
696
- // // Skip the boolean observation for now
697
- // if ((template as ExtendedObservation)._valueBoolean) continue;
698
- //
699
- // const observation: ExtendedObservation = {
700
- // ...template,
701
- // id: undefined // Remove template ID
702
- // };
703
- //
704
- // // Find the corresponding item in the questionnaire using the enhanced matcher
705
- // const item = findMatchingItem(
706
- // questionnaire.item,
707
- // template.id || 'unknown',
708
- // template.resourceType,
709
- // template.code?.coding
710
- // );
711
- //
712
- // if (!item) {
713
- // console.log(
714
- // `❌ Failed to find corresponding item in questionnaire for template: ${template.id}`
715
- // );
716
- // debugInfo.valueProcessing.qualityChecks.push({
717
- // check: `Process ${template.id || 'unknown'}`,
718
- // passed: false,
719
- // message: 'Failed to find corresponding item in questionnaire'
720
- // });
721
- // continue;
722
- // }
723
- //
724
- // // Process datetime values for the observation
725
- // const originalDateTime = template.effectiveDateTime;
726
- // observation.effectiveDateTime = processDateTimeExtraction(template, response, debugInfo);
727
- //
728
- // // Add information to debug info
729
- // debugInfo.valueProcessing.transformations.push(
730
- // `Set effectiveDateTime to ${observation.effectiveDateTime} for ${templateId}`
731
- // );
732
- //
733
- // // Remove the extraction extension since it's been processed
734
- // if (observation._effectiveDateTime) {
735
- // delete observation._effectiveDateTime;
736
- // }
737
- //
738
- // // Process value extraction with improved nested handling
739
- // if (template.valueQuantity) {
740
- // // First try direct extension on valueQuantity (common in test files)
741
- // let valueExt = template.valueQuantity.extension?.find(
742
- // (ext: Extension) => ext.url === TEMPLATE_EXTRACT_VALUE_EXTENSION
743
- // );
744
- //
745
- // // If not found, try the nested structure from HL7 SDC examples
746
- // if (!valueExt && (template.valueQuantity as any)._value?.extension) {
747
- // valueExt = (template.valueQuantity as any)._value.extension.find(
748
- // (ext: Extension) => ext.url === TEMPLATE_EXTRACT_VALUE_EXTENSION
749
- // );
750
- // console.log('Using nested _value extension structure from HL7 SDC example');
751
- // }
752
- //
753
- // if (valueExt?.valueString) {
754
- // console.log(`Extracting value with expression: ${valueExt.valueString}`);
755
- // let value;
756
- //
757
- // // Handle direct answer value references
758
- // if (valueExt.valueString.includes('answer.value')) {
759
- // value = getNestedAnswerValue(response, item.linkId);
760
- // if (value !== null) {
761
- // // Improved unit detection and value conversion based on context
762
- // const isHeightTemplate = template.code?.coding?.some(
763
- // (c) => c.code === '8302-2' || c.display?.toLowerCase().includes('height')
764
- // );
765
- //
766
- // // Check if a unit conversion is needed
767
- // if (isHeightTemplate) {
768
- // console.log(`Processing height value: ${value}`);
769
- //
770
- // // Determine the source unit from the questionnaire item
771
- // const unitExtension = item.extension?.find(
772
- // (ext) =>
773
- // ext.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit'
774
- // );
775
- // const sourceUnit = unitExtension?.valueCoding?.code || 'm';
776
- //
777
- // // Extract target unit from template
778
- // const targetUnit = template.valueQuantity.unit || 'cm';
779
- //
780
- // // Intelligence for unit conversion
781
- // if (sourceUnit === 'm' && targetUnit === 'cm') {
782
- // // Smart unit conversion - only apply if the value looks like meters
783
- // if (value < 3) {
784
- // const originalValue = value;
785
- // value = value * 100;
786
- // console.log(`Converting height from ${originalValue}m to ${value}cm`);
787
- // debugInfo.valueProcessing.transformations.push(
788
- // `Converted height from ${originalValue}m to ${value}cm for ${templateId}`
789
- // );
790
- // } else {
791
- // // Value is likely already in cm
792
- // console.log(
793
- // `Height value ${value} appears to already be in cm, no conversion needed`
794
- // );
795
- // debugInfo.valueProcessing.transformations.push(
796
- // `Height value ${value} appears to already be in cm, no conversion needed for ${templateId}`
797
- // );
798
- // }
799
- // }
800
- // } else {
801
- // // Not a height template, just extract the value
802
- // debugInfo.valueProcessing.transformations.push(
803
- // `Extracted value ${value} for ${templateId}`
804
- // );
805
- // }
806
- //
807
- // observation.valueQuantity = {
808
- // value: value,
809
- // unit: template.valueQuantity.unit,
810
- // system: template.valueQuantity.system,
811
- // code: template.valueQuantity.code
812
- // };
813
- //
814
- // debugInfo.valueProcessing.values[templateId] = value;
815
- // console.log(`✅ Value extracted: ${value}`);
816
- //
817
- // // Enhanced quality checks based on value type
818
- // if (isHeightTemplate) {
819
- // const inReasonableRange = value > 30 && value < 250;
820
- // debugInfo.valueProcessing.qualityChecks.push({
821
- // check: `Height value in reasonable range (${value}cm)`,
822
- // passed: inReasonableRange,
823
- // message: inReasonableRange
824
- // ? 'Height within expected range'
825
- // : 'Height outside normal range, verify input'
826
- // });
827
- // } else if (
828
- // template.code?.coding?.some(
829
- // (c) => c.code === '29463-7' || c.display?.toLowerCase().includes('weight')
830
- // )
831
- // ) {
832
- // const inReasonableRange = value > 0.1 && value < 300;
833
- // debugInfo.valueProcessing.qualityChecks.push({
834
- // check: `Weight value in reasonable range (${value}kg)`,
835
- // passed: inReasonableRange,
836
- // message: inReasonableRange
837
- // ? 'Weight within expected range'
838
- // : 'Weight outside normal range, verify input'
839
- // });
840
- // }
841
- //
842
- // debugInfo.valueProcessing.qualityChecks.push({
843
- // check: `Process ${templateId}`,
844
- // passed: true,
845
- // message: 'Successfully processed observation'
846
- // });
847
- // } else {
848
- // console.log('❌ Failed to extract value');
849
- // debugInfo.valueProcessing.qualityChecks.push({
850
- // check: `Process ${templateId}`,
851
- // passed: false,
852
- // message: 'Failed to extract value from questionnaire response'
853
- // });
854
- // continue; // Skip this observation if value extraction failed
855
- // }
856
- // } else {
857
- // // Handle complex FHIRPath expressions
858
- // value = evaluateTemplateExpression(response, valueExt.valueString);
859
- // if (value !== null) {
860
- // observation.valueQuantity = {
861
- // value: value,
862
- // unit: template.valueQuantity.unit,
863
- // system: template.valueQuantity.system,
864
- // code: template.valueQuantity.code
865
- // };
866
- //
867
- // debugInfo.valueProcessing.values[templateId] = value;
868
- // debugInfo.valueProcessing.transformations.push(
869
- // `Extracted value ${value} for ${templateId} using expression`
870
- // );
871
- // console.log(`✅ Value extracted with expression: ${value}`);
872
- //
873
- // debugInfo.valueProcessing.qualityChecks.push({
874
- // check: `Process ${templateId}`,
875
- // passed: true,
876
- // message: 'Successfully processed observation'
877
- // });
878
- // } else {
879
- // console.log('❌ Failed to extract value with expression');
880
- // debugInfo.valueProcessing.qualityChecks.push({
881
- // check: `Process ${templateId}`,
882
- // passed: false,
883
- // message: 'Failed to extract value using expression'
884
- // });
885
- // continue;
886
- // }
887
- // }
888
- // } else {
889
- // console.log('❌ No template extraction value extension found');
890
- // debugInfo.valueProcessing.qualityChecks.push({
891
- // check: `Process ${templateId}`,
892
- // passed: false,
893
- // message: 'No template extraction value extension found'
894
- // });
895
- // continue;
896
- // }
897
- // } else if ((template as ExtendedObservation)._valueBoolean) {
898
- // // Handle boolean observations
899
- // console.log('Processing boolean observation template');
900
- //
901
- // // Get the template extraction expression from the boolean extension
902
- // const booleanExt = (template as ExtendedObservation)._valueBoolean?.extension?.find(
903
- // (ext: Extension) => ext.url === TEMPLATE_EXTRACT_VALUE_EXTENSION
904
- // );
905
- //
906
- // if (!booleanExt?.valueString) {
907
- // console.log('❌ No template extraction value extension found for boolean value');
908
- // debugInfo.valueProcessing.qualityChecks.push({
909
- // check: `Process ${templateId}`,
910
- // passed: false,
911
- // message: 'No template extraction value extension found for boolean value'
912
- // });
913
- // continue;
914
- // }
915
- //
916
- // console.log(`Boolean extraction expression: ${booleanExt.valueString}`);
917
- //
918
- // // Use the extraction expression
919
- // if (booleanExt.valueString.includes('answer.value')) {
920
- // const boolValue = getNestedAnswerValue(response, item.linkId);
921
- //
922
- // if (boolValue !== null) {
923
- // observation.valueBoolean = boolValue === true || boolValue === 'true';
924
- //
925
- // debugInfo.valueProcessing.values[templateId] = boolValue;
926
- // debugInfo.valueProcessing.transformations.push(
927
- // `Extracted boolean value ${boolValue} for ${templateId}`
928
- // );
929
- // console.log(`✅ Boolean value extracted: ${boolValue}`);
930
- //
931
- // debugInfo.valueProcessing.qualityChecks.push({
932
- // check: `Process ${templateId}`,
933
- // passed: true,
934
- // message: 'Successfully processed boolean observation'
935
- // });
936
- // } else {
937
- // console.log('❌ Failed to extract boolean value');
938
- // debugInfo.valueProcessing.qualityChecks.push({
939
- // check: `Process ${templateId}`,
940
- // passed: false,
941
- // message: 'Failed to extract boolean value from questionnaire response'
942
- // });
943
- // continue;
944
- // }
945
- // } else {
946
- // // Handle complex FHIRPath expressions
947
- // const boolValue = evaluateTemplateExpression(response, booleanExt.valueString);
948
- //
949
- // if (boolValue !== null) {
950
- // observation.valueBoolean = boolValue === true || boolValue === 'true';
951
- //
952
- // debugInfo.valueProcessing.values[templateId] = boolValue;
953
- // debugInfo.valueProcessing.transformations.push(
954
- // `Extracted boolean value ${boolValue} for ${templateId} using expression`
955
- // );
956
- // console.log(`✅ Boolean value extracted with expression: ${boolValue}`);
957
- //
958
- // debugInfo.valueProcessing.qualityChecks.push({
959
- // check: `Process ${templateId}`,
960
- // passed: true,
961
- // message: 'Successfully processed boolean observation'
962
- // });
963
- // } else {
964
- // console.log('❌ Failed to extract boolean value with expression');
965
- // debugInfo.valueProcessing.qualityChecks.push({
966
- // check: `Process ${templateId}`,
967
- // passed: false,
968
- // message: 'Failed to extract boolean value using expression'
969
- // });
970
- // continue;
971
- // }
972
- // }
973
- // } else {
974
- // console.log('❌ Template has unsupported value type');
975
- // debugInfo.valueProcessing.qualityChecks.push({
976
- // check: `Process ${templateId}`,
977
- // passed: false,
978
- // message: 'Template has unsupported value type'
979
- // });
980
- // continue;
981
- // }
982
- //
983
- // observations.push(observation);
984
- // }
985
- // } catch (error) {
986
- // console.error(`Error processing template ${template.id}:`, error);
987
- // debugInfo.valueProcessing.qualityChecks.push({
988
- // check: `Process ${template.id || 'unknown'}`,
989
- // passed: false,
990
- // message: `Error: ${error instanceof Error ? error.message : 'Unknown error'}`
991
- // });
992
- // }
993
- // }
994
- //
995
- // // Stage 6: Generate result
996
- // if (observations.length > 0) {
997
- // debugInfo.resultGeneration.status = 'Success';
998
- // debugInfo.resultGeneration.observations = observations;
999
- // console.log(`✅ Successfully extracted ${observations.length} observations`);
1000
- // } else {
1001
- // debugInfo.resultGeneration.status = 'Failed';
1002
- // debugInfo.resultGeneration.warnings = ['No observations could be extracted'];
1003
- // console.log('❌ No observations could be extracted');
1004
- // }
1005
- //
1006
- // return {
1007
- // result: observations.length > 0 ? observations : null,
1008
- // error: observations.length === 0 ? 'No observations could be extracted' : null,
1009
- // debugInfo
1010
- // };
1011
- // }
1012
- //
1013
- // export type TemplateExtractable = {
1014
- // extractable: boolean;
1015
- // templateReference?: string;
1016
- // };
1017
- //
1018
- // export function mapQItemsTemplate(
1019
- // questionnaire: Questionnaire
1020
- // ): Record<string, TemplateExtractable> {
1021
- // if (!questionnaire.item || questionnaire.item.length === 0) {
1022
- // return {};
1023
- // }
1024
- //
1025
- // const initialExtension = questionnaire.extension?.find(
1026
- // (e) => e.url === FHIR_TEMPLATE_EXTRACT_EXTENSION
1027
- // );
1028
- //
1029
- // const templateReference = questionnaire.extension?.find(
1030
- // (e) => e.url === FHIR_TEMPLATE_REFERENCE_EXTENSION
1031
- // )?.valueString;
1032
- //
1033
- // const initialTemplateMap: Record<string, TemplateExtractable> = {
1034
- // [questionnaire.id ?? 'root']: {
1035
- // extractable: initialExtension?.valueBoolean ?? false,
1036
- // templateReference
1037
- // }
1038
- // };
1039
- //
1040
- // transverseQuestionnaire(questionnaire, mapQItemsTemplateRecursive, initialTemplateMap);
1041
- //
1042
- // return initialTemplateMap;
1043
- // }
1044
- //
1045
- // function mapQItemsTemplateRecursive(
1046
- // qItem: QuestionnaireItem,
1047
- // root?: Questionnaire,
1048
- // parent?: QuestionnaireItem,
1049
- // qItemTemplateMap?: Record<string, TemplateExtractable>
1050
- // ): void {
1051
- // if (!qItemTemplateMap) return;
1052
- //
1053
- // if (!qItemTemplateMap[qItem.linkId]) {
1054
- // qItemTemplateMap[qItem.linkId] = { extractable: false };
1055
- // }
1056
- //
1057
- // // Check if questionnaire extractable
1058
- // const extension = qItem.extension?.find(
1059
- // (e: Extension) => e.url === FHIR_TEMPLATE_EXTRACT_EXTENSION
1060
- // );
1061
- // const templateReference = qItem.extension?.find(
1062
- // (e: Extension) => e.url === FHIR_TEMPLATE_REFERENCE_EXTENSION
1063
- // )?.valueString;
1064
- //
1065
- // if (extension?.valueBoolean || extension?.valueBoolean === false) {
1066
- // qItemTemplateMap[qItem.linkId].extractable = extension?.valueBoolean ?? false;
1067
- // } else if (parent && qItemTemplateMap[parent.linkId]) {
1068
- // qItemTemplateMap[qItem.linkId].extractable = qItemTemplateMap[parent.linkId].extractable;
1069
- // } else if (root && qItemTemplateMap[root.id ?? 'root']) {
1070
- // qItemTemplateMap[qItem.linkId].extractable = qItemTemplateMap[root?.id ?? 'root'].extractable;
1071
- // } else {
1072
- // qItemTemplateMap[qItem.linkId].extractable = false;
1073
- // }
1074
- //
1075
- // if (templateReference) {
1076
- // qItemTemplateMap[qItem.linkId].templateReference = templateReference;
1077
- // }
1078
- //
1079
- // if (qItem.item && qItem.item.length !== 0) {
1080
- // for (const qChildItem of qItem.item) {
1081
- // mapQItemsTemplateRecursive(qChildItem, root, qItem, qItemTemplateMap);
1082
- // }
1083
- // }
1084
- // }
1085
- //
1086
- // function transverseQuestionnaire(
1087
- // questionnaire: Questionnaire,
1088
- // callback: (
1089
- // qItem: QuestionnaireItem,
1090
- // root?: Questionnaire,
1091
- // parent?: QuestionnaireItem,
1092
- // qItemTemplateMap?: Record<string, TemplateExtractable>
1093
- // ) => void,
1094
- // qItemTemplateMap?: Record<string, TemplateExtractable>
1095
- // ): void {
1096
- // if (!questionnaire.item) return;
1097
- //
1098
- // for (const item of questionnaire.item) {
1099
- // callback(item, questionnaire, undefined, qItemTemplateMap);
1100
- // if (item.item) {
1101
- // for (const childItem of item.item) {
1102
- // callback(childItem, questionnaire, item, qItemTemplateMap);
1103
- // }
1104
- // }
1105
- // }
1106
- // }
1107
- //# sourceMappingURL=extractTemplate.js.map