@aehrc/smart-forms-renderer 0.38.2 → 0.39.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 (191) hide show
  1. package/.storybook/main.ts +8 -3
  2. package/CHANGELOG.md +33 -39
  3. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +6 -4
  4. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
  5. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +10 -8
  6. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +5 -3
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +7 -6
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +6 -5
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +11 -8
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +8 -6
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +10 -7
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  19. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +11 -9
  20. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  21. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +6 -4
  22. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
  23. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +5 -3
  24. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
  25. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +14 -6
  26. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  27. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +6 -2
  28. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  29. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +6 -4
  30. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  31. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +7 -5
  32. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  33. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +8 -7
  34. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  35. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +7 -6
  36. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  37. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +10 -9
  38. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  39. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +9 -8
  40. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
  41. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +9 -8
  42. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  43. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +7 -6
  44. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  45. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +13 -10
  46. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
  47. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +3 -3
  48. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -1
  49. package/lib/components/FormComponents/RepeatItem/AddItemButton.d.ts +2 -2
  50. package/lib/components/FormComponents/RepeatItem/AddItemButton.js +4 -2
  51. package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
  52. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +14 -21
  53. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  54. package/lib/components/FormComponents/SliderItem/SliderItem.js +3 -1
  55. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
  56. package/lib/components/FormComponents/StringItem/StringItem.js +6 -4
  57. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  58. package/lib/components/FormComponents/Tables/GroupTable.d.ts +2 -2
  59. package/lib/components/FormComponents/Tables/GroupTable.js +2 -2
  60. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  61. package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +2 -2
  62. package/lib/components/FormComponents/Tables/GroupTableBody.js +3 -3
  63. package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -1
  64. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -2
  65. package/lib/components/FormComponents/Tables/GroupTableRow.js +16 -5
  66. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  67. package/lib/components/FormComponents/Tables/GroupTableView.d.ts +2 -2
  68. package/lib/components/FormComponents/Tables/GroupTableView.js +10 -10
  69. package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
  70. package/lib/components/FormComponents/TextItem/TextItem.js +6 -4
  71. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  72. package/lib/components/FormComponents/TimeItem/TimeItem.js +4 -2
  73. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  74. package/lib/components/FormComponents/UrlItem/UrlItem.js +4 -2
  75. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  76. package/lib/components/Renderer/FormTopLevelItem.js +6 -0
  77. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  78. package/lib/hooks/useBooleanCalculatedExpression.js +3 -2
  79. package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -1
  80. package/lib/hooks/useCodingCalculatedExpression.js +4 -3
  81. package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
  82. package/lib/hooks/useDecimalCalculatedExpression.js +3 -2
  83. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  84. package/lib/hooks/useInitialiseRepeatAnswers.d.ts +2 -3
  85. package/lib/hooks/useInitialiseRepeatAnswers.js +7 -15
  86. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  87. package/lib/hooks/useIntegerCalculatedExpression.js +3 -2
  88. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  89. package/lib/hooks/useQuantityCalculatedExpression.js +5 -3
  90. package/lib/hooks/useQuantityCalculatedExpression.js.map +1 -1
  91. package/lib/hooks/useStringCalculatedExpression.js +3 -2
  92. package/lib/hooks/useStringCalculatedExpression.js.map +1 -1
  93. package/lib/tests/test-data/initialValueSample.d.ts +2 -0
  94. package/lib/tests/test-data/initialValueSample.js +802 -0
  95. package/lib/tests/test-data/initialValueSample.js.map +1 -0
  96. package/lib/tests/test-data/observationSample.d.ts +4 -0
  97. package/lib/tests/test-data/observationSample.js +193 -0
  98. package/lib/tests/test-data/observationSample.js.map +1 -0
  99. package/lib/utils/answerExpression.d.ts +18 -0
  100. package/lib/utils/answerExpression.js +133 -0
  101. package/lib/utils/answerExpression.js.map +1 -0
  102. package/lib/utils/calculatedExpression.js +1 -1
  103. package/lib/utils/calculatedExpression.js.map +1 -1
  104. package/lib/utils/choice.d.ts +1 -1
  105. package/lib/utils/choice.js +5 -3
  106. package/lib/utils/choice.js.map +1 -1
  107. package/lib/utils/dynamicValueSet.d.ts +5 -0
  108. package/lib/utils/dynamicValueSet.js +96 -0
  109. package/lib/utils/dynamicValueSet.js.map +1 -0
  110. package/lib/utils/extractObservation.d.ts +9 -0
  111. package/lib/utils/extractObservation.js +91 -0
  112. package/lib/utils/extractObservation.js.map +1 -0
  113. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +14 -0
  114. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +639 -0
  115. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +1 -0
  116. package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +3 -0
  117. package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +41 -0
  118. package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +1 -0
  119. package/lib/utils/genericRecursive.d.ts +17 -0
  120. package/lib/utils/genericRecursive.js +82 -0
  121. package/lib/utils/genericRecursive.js.map +1 -0
  122. package/lib/utils/initialise.js +47 -57
  123. package/lib/utils/initialise.js.map +1 -1
  124. package/lib/utils/openChoice.d.ts +1 -1
  125. package/lib/utils/openChoice.js +6 -4
  126. package/lib/utils/openChoice.js.map +1 -1
  127. package/lib/utils/qrItem.d.ts +2 -2
  128. package/lib/utils/qrItem.js +7 -3
  129. package/lib/utils/qrItem.js.map +1 -1
  130. package/lib/utils/quantity.d.ts +1 -1
  131. package/lib/utils/quantity.js +3 -1
  132. package/lib/utils/quantity.js.map +1 -1
  133. package/lib/utils/repopulateIntoResponse.js +1 -1
  134. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  135. package/package.json +12 -11
  136. package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +8 -6
  137. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +11 -9
  138. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +6 -4
  139. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +5 -3
  140. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +5 -3
  141. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +11 -6
  142. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +6 -4
  143. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +10 -5
  144. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +11 -7
  145. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +8 -7
  146. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +6 -5
  147. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +15 -7
  148. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +16 -0
  149. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +7 -6
  150. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +9 -8
  151. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +7 -4
  152. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +7 -4
  153. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +12 -8
  154. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +12 -8
  155. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +7 -6
  156. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +6 -4
  157. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +31 -10
  158. package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +3 -3
  159. package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +7 -3
  160. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +18 -28
  161. package/src/components/FormComponents/SliderItem/SliderItem.tsx +3 -2
  162. package/src/components/FormComponents/StringItem/StringItem.tsx +7 -5
  163. package/src/components/FormComponents/Tables/GroupTable.tsx +4 -0
  164. package/src/components/FormComponents/Tables/GroupTableBody.tsx +6 -2
  165. package/src/components/FormComponents/Tables/GroupTableRow.tsx +98 -46
  166. package/src/components/FormComponents/Tables/GroupTableView.tsx +30 -26
  167. package/src/components/FormComponents/TextItem/TextItem.tsx +7 -5
  168. package/src/components/FormComponents/TimeItem/TimeItem.tsx +3 -2
  169. package/src/components/FormComponents/UrlItem/UrlItem.tsx +4 -2
  170. package/src/components/Renderer/FormTopLevelItem.tsx +17 -0
  171. package/src/hooks/useBooleanCalculatedExpression.ts +3 -2
  172. package/src/hooks/useCodingCalculatedExpression.ts +4 -3
  173. package/src/hooks/useDecimalCalculatedExpression.ts +3 -2
  174. package/src/hooks/useInitialiseRepeatAnswers.ts +14 -26
  175. package/src/hooks/useIntegerCalculatedExpression.ts +3 -2
  176. package/src/hooks/useQuantityCalculatedExpression.ts +6 -3
  177. package/src/hooks/useStringCalculatedExpression.ts +3 -2
  178. package/src/stories/assets/questionnaires/QItemControlGroup.ts +229 -5
  179. package/src/stories/sdc/ItemControlGroup.stories.tsx +10 -3
  180. package/src/tests/initial.test.ts +34 -0
  181. package/src/tests/test-data/initialValueSample.ts +826 -0
  182. package/src/utils/calculatedExpression.ts +1 -1
  183. package/src/utils/choice.ts +8 -3
  184. package/src/utils/{updateQr.ts → genericRecursive.ts} +47 -2
  185. package/src/utils/initialise.ts +67 -73
  186. package/src/utils/openChoice.ts +7 -4
  187. package/src/utils/qrItem.ts +12 -3
  188. package/src/utils/quantity.ts +4 -1
  189. package/src/utils/repopulateIntoResponse.ts +1 -1
  190. package/src/hooks/useRepeatAnswers.ts +0 -45
  191. package/src/interfaces/repeatItem.interface.ts +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialValueSample.js","sourceRoot":"","sources":["../../../src/tests/test-data/initialValueSample.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,YAAY,EAAE,eAAe;IAC7B,EAAE,EAAE,iCAAiC;IACrC,IAAI,EAAE;QACJ,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,+BAA+B;QAC5C,MAAM,EAAE,mBAAmB;QAC3B,OAAO,EAAE;YACP,0EAA0E;YAC1E,yEAAyE;SAC1E;KACF;IACD,SAAS,EAAE;QACT;YACE,GAAG,EAAE,gFAAgF;YACrF,SAAS,EAAE;gBACT;oBACE,GAAG,EAAE,MAAM;oBACX,WAAW,EAAE;wBACX,MAAM,EAAE,qDAAqD;wBAC7D,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD;oBACE,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,SAAS;iBACrB;gBACD;oBACE,GAAG,EAAE,aAAa;oBAClB,WAAW,EAAE,yDAAyD;iBACvE;aACF;SACF;QACD;YACE,GAAG,EAAE,gFAAgF;YACrF,SAAS,EAAE;gBACT;oBACE,GAAG,EAAE,MAAM;oBACX,WAAW,EAAE;wBACX,MAAM,EAAE,qDAAqD;wBAC7D,IAAI,EAAE,MAAM;qBACb;iBACF;gBACD;oBACE,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,cAAc;iBAC1B;gBACD;oBACE,GAAG,EAAE,aAAa;oBAClB,WAAW,EAAE,mEAAmE;iBACjF;aACF;SACF;QACD;YACE,GAAG,EAAE,gFAAgF;YACrF,SAAS,EAAE;gBACT;oBACE,GAAG,EAAE,MAAM;oBACX,WAAW,EAAE;wBACX,MAAM,EAAE,qDAAqD;wBAC7D,IAAI,EAAE,WAAW;qBAClB;iBACF;gBACD;oBACE,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,WAAW;iBACvB;gBACD;oBACE,GAAG,EAAE,aAAa;oBAClB,WAAW,EAAE,2DAA2D;iBACzE;aACF;SACF;QACD;YACE,GAAG,EAAE,kDAAkD;YACvD,eAAe,EAAE;gBACf,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,0BAA0B;gBACpC,UAAU,EAAE,4CAA4C;aACzD;SACF;KACF;IACD,GAAG,EAAE,8EAA8E;IACnF,IAAI,EAAE,iCAAiC;IACvC,KAAK,EAAE,qCAAqC;IAC5C,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,sCAAsC;IACnD,YAAY,EAAE;QACZ;YACE,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,sBAAsB;oBAC9B,IAAI,EAAE,IAAI;iBACX;aACF;SACF;KACF;IACD,IAAI,EAAE;QACJ;YACE,SAAS,EAAE;gBACT;oBACE,GAAG,EAAE,wFAAwF;oBAC7F,eAAe,EAAE;wBACf,IAAI,EAAE,wBAAwB;wBAC9B,QAAQ,EAAE,eAAe;wBACzB,UAAU,EAAE,kCAAkC;qBAC/C;iBACF;aACF;YACD,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ;oBACE,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,oFAAoF;4BACzF,eAAe,EAAE;gCACf,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,kBAAkB;6BAC/B;yBACF;qBACF;oBACD,MAAM,EAAE,wBAAwB;oBAChC,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,oFAAoF;4BACzF,eAAe,EAAE;gCACf,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,kDAAkD;6BAC/D;yBACF;wBACD;4BACE,GAAG,EAAE,8DAA8D;4BACnE,YAAY,EAAE,IAAI;yBACnB;qBACF;oBACD,MAAM,EAAE,oCAAoC;oBAC5C,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,oFAAoF;4BACzF,eAAe,EAAE;gCACf,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,wHAAwH;6BAC3H;yBACF;wBACD;4BACE,GAAG,EAAE,8DAA8D;4BACnE,YAAY,EAAE,IAAI;yBACnB;qBACF;oBACD,MAAM,EAAE,kCAAkC;oBAC1C,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,KAAK;iBACf;aACF;SACF;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ;oBACE,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,gBAAgB;gCACtB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,kGAAkG;6BACrG;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,oBAAoB;gCAC1B,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,sBAAsB;6BACnC;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,uBAAuB;gCAC7B,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,yBAAyB;6BACtC;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,kGAAkG;6BACrG;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,cAAc;gCACpB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,gBAAgB;6BAC7B;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,iBAAiB;gCACvB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,mBAAmB;6BAChC;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,YAAY;gCAClB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,oGAAoG;6BACvG;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,gBAAgB;gCACtB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,kBAAkB;6BAC/B;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,mBAAmB;gCACzB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,qBAAqB;6BAClC;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,kGAAkG;6BACrG;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,cAAc;gCACpB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,gBAAgB;6BAC7B;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,iBAAiB;gCACvB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,mBAAmB;6BAChC;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,mBAAmB;gCACzB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,gHAAgH;6BACnH;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,oBAAoB;gCAC1B,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,2UAA2U;6BAC9U;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,sBAAsB;gCAC5B,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,mVAAmV;6BACtV;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,oBAAoB;gCAC1B,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,+iBAA+iB;6BACljB;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,2BAA2B;gCACjC,QAAQ,EAAE,eAAe;gCACzB,UAAU,EAAE,+DAA+D;6BAC5E;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,kBAAkB;gCACxB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,2TAA2T;6BAC9T;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,eAAe;gCACrB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,kHAAkH;6BACrH;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,oBAAoB;gCAC1B,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,uHAAuH;6BAC1H;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,aAAa;gCACnB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,gHAAgH;6BACnH;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,kBAAkB;gCACxB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,qHAAqH;6BACxH;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,gBAAgB;gCACtB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,mHAAmH;6BACtH;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,iBAAiB;gCACvB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,oHAAoH;6BACvH;yBACF;wBACD;4BACE,GAAG,EAAE,kDAAkD;4BACvD,eAAe,EAAE;gCACf,IAAI,EAAE,cAAc;gCACpB,QAAQ,EAAE,eAAe;gCACzB,UAAU,EACR,uHAAuH;6BAC1H;yBACF;qBACF;oBACD,MAAM,EAAE,+BAA+B;oBACvC,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE;wBACJ;4BACE,SAAS,EAAE;gCACT;oCACE,GAAG,EAAE,kDAAkD;oCACvD,eAAe,EAAE;wCACf,IAAI,EAAE,iBAAiB;wCACvB,QAAQ,EAAE,eAAe;wCACzB,UAAU,EACR,wVAAwV;qCAC3V;iCACF;6BACF;4BACD,MAAM,EAAE,0CAA0C;4BAClD,IAAI,EAAE,sBAAsB;4BAC5B,IAAI,EAAE,OAAO;4BACb,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,KAAK;4BACd,IAAI,EAAE;gCACJ;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,mEAAmE;4CACxE,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,gDAAgD;wDACxD,IAAI,EAAE,WAAW;qDAClB;iDACF;6CACF;yCACF;qCACF;oCACD,MAAM,EAAE,mDAAmD;oCAC3D,IAAI,EAAE,iBAAiB;oCACvB,IAAI,EAAE,QAAQ;oCACd,QAAQ,EAAE,IAAI;oCACd,OAAO,EAAE,KAAK;oCACd,cAAc,EACZ,sEAAsE;iCACzE;gCACD;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,mEAAmE;4CACxE,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,gDAAgD;wDACxD,IAAI,EAAE,WAAW;qDAClB;iDACF;6CACF;yCACF;wCACD;4CACE,GAAG,EAAE,uFAAuF;4CAC5F,eAAe,EAAE;gDACf,QAAQ,EAAE,eAAe;gDACzB,UAAU,EAAE,yBAAyB;6CACtC;yCACF;qCACF;oCACD,MAAM,EAAE,uDAAuD;oCAC/D,IAAI,EAAE,WAAW;oCACjB,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,KAAK;oCACd,QAAQ,EAAE,IAAI;oCACd,cAAc,EACZ,2EAA2E;oCAC7E,IAAI,EAAE;wCACJ;4CACE,SAAS,EAAE;gDACT;oDACE,GAAG,EAAE,uEAAuE;oDAC5E,oBAAoB,EAAE;wDACpB,MAAM,EAAE;4DACN;gEACE,MAAM,EAAE,oDAAoD;gEAC5D,IAAI,EAAE,cAAc;6DACrB;yDACF;qDACF;iDACF;6CACF;4CACD,MAAM,EAAE,oEAAoE;4CAC5E,IAAI,EAAE,wBAAwB;4CAC9B,IAAI,EAAE,SAAS;yCAChB;qCACF;iCACF;gCACD;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,mEAAmE;4CACxE,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,gDAAgD;wDACxD,IAAI,EAAE,WAAW;qDAClB;iDACF;6CACF;yCACF;wCACD;4CACE,GAAG,EAAE,uFAAuF;4CAC5F,eAAe,EAAE;gDACf,QAAQ,EAAE,eAAe;gDACzB,UAAU,EAAE,0BAA0B;6CACvC;yCACF;wCACD;4CACE,GAAG,EAAE,mFAAmF;4CACxF,eAAe,EAAE;gDACf,QAAQ,EAAE,eAAe;gDACzB,UAAU,EAAE,kBAAkB;6CAC/B;yCACF;qCACF;oCACD,MAAM,EAAE,mDAAmD;oCAC3D,IAAI,EAAE,WAAW;oCACjB,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,KAAK;iCACf;gCACD;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,mEAAmE;4CACxE,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,gDAAgD;wDACxD,IAAI,EAAE,cAAc;qDACrB;iDACF;6CACF;yCACF;wCACD;4CACE,GAAG,EAAE,uFAAuF;4CAC5F,eAAe,EAAE;gDACf,QAAQ,EAAE,eAAe;gDACzB,UAAU,EAAE,oBAAoB;6CACjC;yCACF;qCACF;oCACD,MAAM,EAAE,qDAAqD;oCAC7D,IAAI,EAAE,YAAY;oCAClB,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,KAAK;oCACd,cAAc,EACZ,uEAAuE;iCAC1E;gCACD;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,mEAAmE;4CACxE,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,gDAAgD;wDACxD,IAAI,EAAE,cAAc;qDACrB;iDACF;6CACF;yCACF;wCACD;4CACE,GAAG,EAAE,uFAAuF;4CAC5F,eAAe,EAAE;gDACf,QAAQ,EAAE,eAAe;gDACzB,UAAU,EAAE,iCAAiC;6CAC9C;yCACF;qCACF;oCACD,MAAM,EAAE,mDAAmD;oCAC3D,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,KAAK;oCACd,cAAc,EACZ,qEAAqE;iCACxE;gCACD;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,mEAAmE;4CACxE,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,gDAAgD;wDACxD,IAAI,EAAE,cAAc;qDACrB;iDACF;6CACF;yCACF;wCACD;4CACE,GAAG,EAAE,uFAAuF;4CAC5F,eAAe,EAAE;gDACf,QAAQ,EAAE,eAAe;gDACzB,UAAU,EAAE,gCAAgC;6CAC7C;yCACF;qCACF;oCACD,MAAM,EAAE,uDAAuD;oCAC/D,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,KAAK;oCACd,QAAQ,EAAE,IAAI;oCACd,YAAY,EAAE;wCACZ;4CACE,WAAW,EAAE;gDACX,MAAM,EAAE,wBAAwB;gDAChC,IAAI,EAAE,WAAW;6CAClB;4CACD,eAAe,EAAE,IAAI;yCACtB;wCACD;4CACE,WAAW,EAAE;gDACX,MAAM,EAAE,wBAAwB;gDAChC,IAAI,EAAE,WAAW;6CAClB;yCACF;qCACF;iCACF;6BACF;yBACF;wBACD;4BACE,SAAS,EAAE;gCACT;oCACE,GAAG,EAAE,mEAAmE;oCACxE,oBAAoB,EAAE;wCACpB,MAAM,EAAE;4CACN;gDACE,MAAM,EAAE,gDAAgD;gDACxD,IAAI,EAAE,cAAc;6CACrB;yCACF;qCACF;iCACF;gCACD;oCACE,GAAG,EAAE,uFAAuF;oCAC5F,eAAe,EAAE;wCACf,QAAQ,EAAE,eAAe;wCACzB,UAAU,EAAE,yBAAyB;qCACtC;iCACF;6BACF;4BACD,MAAM,EAAE,6CAA6C;4BACrD,IAAI,EAAE,uBAAuB;4BAC7B,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,KAAK;4BACd,cAAc,EAAE,qEAAqE;yBACtF;wBACD;4BACE,SAAS,EAAE;gCACT;oCACE,GAAG,EAAE,mEAAmE;oCACxE,oBAAoB,EAAE;wCACpB,MAAM,EAAE;4CACN;gDACE,MAAM,EAAE,gDAAgD;gDACxD,IAAI,EAAE,cAAc;6CACrB;yCACF;qCACF;iCACF;gCACD;oCACE,GAAG,EAAE,uFAAuF;oCAC5F,eAAe,EAAE;wCACf,QAAQ,EAAE,eAAe;wCACzB,UAAU,EAAE,yDAAyD;qCACtE;iCACF;gCACD;oCACE,GAAG,EAAE,mFAAmF;oCACxF,eAAe,EAAE;wCACf,QAAQ,EAAE,eAAe;wCACzB,UAAU,EAAE,mBAAmB;qCAChC;iCACF;6BACF;4BACD,MAAM,EAAE,yCAAyC;4BACjD,IAAI,EAAE,uBAAuB;4BAC7B,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,KAAK;yBACf;wBACD;4BACE,SAAS,EAAE;gCACT;oCACE,GAAG,EAAE,uFAAuF;oCAC5F,eAAe,EAAE;wCACf,QAAQ,EAAE,eAAe;wCACzB,UAAU,EAAE,wDAAwD;qCACrE;iCACF;gCACD;oCACE,GAAG,EAAE,uFAAuF;oCAC5F,eAAe,EAAE;wCACf,QAAQ,EAAE,eAAe;wCACzB,UAAU,EACR,wQAAwQ;qCAC3Q;iCACF;6BACF;4BACD,MAAM,EAAE,8CAA8C;4BACtD,IAAI,EAAE,uBAAuB;4BAC7B,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,KAAK;4BACd,IAAI,EAAE;gCACJ;oCACE,SAAS,EAAE;wCACT;4CACE,GAAG,EAAE,uEAAuE;4CAC5E,oBAAoB,EAAE;gDACpB,MAAM,EAAE;oDACN;wDACE,MAAM,EAAE,oDAAoD;wDAC5D,IAAI,EAAE,cAAc;qDACrB;iDACF;6CACF;yCACF;qCACF;oCACD,MAAM,EAAE,2DAA2D;oCACnE,IAAI,EAAE,wDAAwD;oCAC9D,IAAI,EAAE,SAAS;iCAChB;6BACF;yBACF;wBACD;4BACE,SAAS,EAAE;gCACT;oCACE,GAAG,EAAE,mEAAmE;oCACxE,oBAAoB,EAAE;wCACpB,MAAM,EAAE;4CACN;gDACE,MAAM,EAAE,gDAAgD;gDACxD,IAAI,EAAE,WAAW;6CAClB;yCACF;qCACF;iCACF;6BACF;4BACD,MAAM,EAAE,wCAAwC;4BAChD,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,KAAK;4BACd,YAAY,EAAE;gCACZ;oCACE,WAAW,EAAE;wCACX,MAAM,EAAE,sCAAsC;wCAC9C,OAAO,EAAE,OAAO;wCAChB,IAAI,EAAE,MAAM;wCACZ,OAAO,EAAE,WAAW;qCACrB;iCACF;gCACD;oCACE,WAAW,EAAE;wCACX,MAAM,EAAE,sCAAsC;wCAC9C,OAAO,EAAE,OAAO;wCAChB,IAAI,EAAE,QAAQ;wCACd,OAAO,EAAE,QAAQ;qCAClB;iCACF;gCACD;oCACE,WAAW,EAAE;wCACX,MAAM,EAAE,sCAAsC;wCAC9C,OAAO,EAAE,OAAO;wCAChB,IAAI,EAAE,SAAS;wCACf,OAAO,EAAE,SAAS;qCACnB;iCACF;6BACF;yBACF;wBACD;4BACE,MAAM,EAAE,sCAAsC;4BAC9C,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,KAAK;yBACf;qBACF;iBACF;gBACD;oBACE,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,mEAAmE;4BACxE,oBAAoB,EAAE;gCACpB,MAAM,EAAE;oCACN;wCACE,MAAM,EAAE,gDAAgD;wCACxD,IAAI,EAAE,cAAc;qCACrB;iCACF;6BACF;yBACF;qBACF;oBACD,MAAM,EAAE,sCAAsC;oBAC9C,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,IAAI;oBACb,cAAc,EAAE,uEAAuE;iBACxF;gBACD;oBACE,MAAM,EAAE,iCAAiC;oBACzC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,MAAM,EAAE,2BAA2B;oBACnC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,KAAK;iBACf;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Observation, Questionnaire, QuestionnaireResponse } from 'fhir/r4';
2
+ export declare const qObservationSample: Questionnaire;
3
+ export declare const qrObservationSample: QuestionnaireResponse;
4
+ export declare const observationResults: Observation[];
@@ -0,0 +1,193 @@
1
+ export const qObservationSample = {
2
+ resourceType: 'Questionnaire',
3
+ id: 'phq-2-questionnaire',
4
+ meta: {
5
+ versionId: '1',
6
+ lastUpdated: '2024-08-29T12:00:00Z'
7
+ },
8
+ title: 'PHQ-2 Depression Screening',
9
+ status: 'active',
10
+ date: '2024-08-29T12:00:00Z',
11
+ publisher: 'Konsulin',
12
+ description: 'Patient Health Questionnaire-2 (PHQ-2) for depression screening.',
13
+ subjectType: ['Patient'],
14
+ item: [
15
+ {
16
+ linkId: 'phq2-1',
17
+ text: 'Over the last 2 weeks, how often have you been bothered by little interest or pleasure in doing things?',
18
+ type: 'choice',
19
+ code: [
20
+ {
21
+ system: 'http://snomed.info/sct',
22
+ code: '28669007',
23
+ display: 'Anhedonia'
24
+ }
25
+ ],
26
+ answerOption: [
27
+ {
28
+ valueCoding: {
29
+ code: '0',
30
+ display: 'Not at all'
31
+ }
32
+ },
33
+ {
34
+ valueCoding: {
35
+ code: '1',
36
+ display: 'Several days'
37
+ }
38
+ },
39
+ {
40
+ valueCoding: {
41
+ code: '2',
42
+ display: 'More than half the days'
43
+ }
44
+ },
45
+ {
46
+ valueCoding: {
47
+ code: '3',
48
+ display: 'Nearly every day'
49
+ }
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ linkId: 'phq2-2',
55
+ text: 'Over the last 2 weeks, how often have you been bothered by feeling down, depressed, or hopeless?',
56
+ type: 'choice',
57
+ code: [
58
+ {
59
+ system: 'http://snomed.info/sct',
60
+ code: '307077003',
61
+ display: 'Feeling hopeless'
62
+ }
63
+ ],
64
+ answerOption: [
65
+ {
66
+ valueCoding: {
67
+ code: '0',
68
+ display: 'Not at all'
69
+ }
70
+ },
71
+ {
72
+ valueCoding: {
73
+ code: '1',
74
+ display: 'Several days'
75
+ }
76
+ },
77
+ {
78
+ valueCoding: {
79
+ code: '2',
80
+ display: 'More than half the days'
81
+ }
82
+ },
83
+ {
84
+ valueCoding: {
85
+ code: '3',
86
+ display: 'Nearly every day'
87
+ }
88
+ }
89
+ ]
90
+ }
91
+ ]
92
+ };
93
+ export const qrObservationSample = {
94
+ resourceType: 'QuestionnaireResponse',
95
+ id: 'phq2-response',
96
+ questionnaire: 'https://fhir.konsulin.care/fhir/Questionnaire/phq-2-questionnaire',
97
+ status: 'completed',
98
+ subject: {
99
+ reference: 'Patient/123'
100
+ },
101
+ authored: '2024-08-29T12:00:00Z',
102
+ item: [
103
+ {
104
+ linkId: 'phq2-1',
105
+ text: 'Over the last 2 weeks, how often have you been bothered by little interest or pleasure in doing things?',
106
+ answer: [
107
+ {
108
+ valueCoding: {
109
+ code: '2',
110
+ display: 'More than half the days'
111
+ }
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ linkId: 'phq2-2',
117
+ text: 'Over the last 2 weeks, how often have you been bothered by feeling down, depressed, or hopeless?',
118
+ answer: [
119
+ {
120
+ valueCoding: {
121
+ code: '1',
122
+ display: 'Several days'
123
+ }
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ };
129
+ export const observationResults = [
130
+ {
131
+ resourceType: 'Observation',
132
+ id: 'obs-phq2-1',
133
+ status: 'final',
134
+ code: {
135
+ coding: [
136
+ {
137
+ system: 'http://snomed.info/sct',
138
+ code: '28669007',
139
+ display: 'Anhedonia'
140
+ }
141
+ ]
142
+ },
143
+ subject: {
144
+ reference: 'Patient/123'
145
+ },
146
+ derivedFrom: [
147
+ {
148
+ reference: 'QuestionnaireResponse/phq2-response'
149
+ }
150
+ ],
151
+ effectiveDateTime: '2024-08-29T12:00:00Z',
152
+ valueCodeableConcept: {
153
+ coding: [
154
+ {
155
+ code: '2',
156
+ display: 'More than half the days'
157
+ }
158
+ ]
159
+ }
160
+ },
161
+ {
162
+ resourceType: 'Observation',
163
+ id: 'obs-phq2-2',
164
+ status: 'final',
165
+ code: {
166
+ coding: [
167
+ {
168
+ system: 'http://snomed.info/sct',
169
+ code: '307077003',
170
+ display: 'Feeling hopeless'
171
+ }
172
+ ]
173
+ },
174
+ subject: {
175
+ reference: 'Patient/123'
176
+ },
177
+ derivedFrom: [
178
+ {
179
+ reference: 'QuestionnaireResponse/phq2-response'
180
+ }
181
+ ],
182
+ effectiveDateTime: '2024-08-29T12:00:00Z',
183
+ valueCodeableConcept: {
184
+ coding: [
185
+ {
186
+ code: '1',
187
+ display: 'Several days'
188
+ }
189
+ ]
190
+ }
191
+ }
192
+ ];
193
+ //# sourceMappingURL=observationSample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observationSample.js","sourceRoot":"","sources":["../../../src/tests/test-data/observationSample.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AnswerExpression } from '../interfaces/answerExpression.interface';
2
+ import { type Expression, type QuestionnaireResponse, type QuestionnaireResponseItem } from 'fhir/r4';
3
+ interface EvaluateInitialAnswerExpressionsParams {
4
+ initialResponse: QuestionnaireResponse;
5
+ initialResponseItemMap: Record<string, QuestionnaireResponseItem[]>;
6
+ answerExpressions: Record<string, AnswerExpression>;
7
+ variablesFhirPath: Record<string, Expression[]>;
8
+ existingFhirPathContext: Record<string, any>;
9
+ }
10
+ export declare function evaluateInitialAnswerExpressions(params: EvaluateInitialAnswerExpressionsParams): Promise<{
11
+ initialAnswerExpressions: Record<string, AnswerExpression>;
12
+ updatedFhirPathContext: Record<string, any>;
13
+ }>;
14
+ export declare function evaluateAnswerExpressions(fhirPathContext: Record<string, any>, answerExpressions: Record<string, AnswerExpression>): {
15
+ answerExpsIsUpdated: boolean;
16
+ updatedAnswerExpressions: Record<string, AnswerExpression>;
17
+ };
18
+ export {};
@@ -0,0 +1,133 @@
1
+ /*
2
+ * Copyright 2024 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ import fhirpath from 'fhirpath';
27
+ import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
28
+ import _isEqual from 'lodash/isEqual';
29
+ import cloneDeep from 'lodash.clonedeep';
30
+ import { emptyResponse } from './emptyResource';
31
+ import { createFhirPathContext, evaluateTerminologyLinkIdVariables } from './fhirpath';
32
+ export function evaluateInitialAnswerExpressions(params) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const { initialResponse, initialResponseItemMap, answerExpressions, variablesFhirPath, existingFhirPathContext } = params;
35
+ // Return early if initialResponse is empty or there are no answer expressions to evaluate
36
+ if (_isEqual(initialResponse, cloneDeep(emptyResponse)) ||
37
+ Object.keys(answerExpressions).length === 0) {
38
+ return {
39
+ initialAnswerExpressions: answerExpressions,
40
+ updatedFhirPathContext: existingFhirPathContext
41
+ };
42
+ }
43
+ const initialAnswerExpressions = Object.assign({}, answerExpressions);
44
+ let updatedFhirPathContext = yield createFhirPathContext(initialResponse, initialResponseItemMap, variablesFhirPath, existingFhirPathContext);
45
+ // Perform initial evaluation of terminology variables
46
+ for (const linkId in variablesFhirPath) {
47
+ updatedFhirPathContext = yield evaluateTerminologyLinkIdVariables(linkId, variablesFhirPath, updatedFhirPathContext);
48
+ }
49
+ for (const linkId in initialAnswerExpressions) {
50
+ const answerExpression = initialAnswerExpressions[linkId];
51
+ try {
52
+ const result = fhirpath.evaluate({}, answerExpression.expression, updatedFhirPathContext, fhirpath_r4_model);
53
+ // Update calculatedExpressions if length of result array > 0
54
+ // Only update when current calcExpression value is different from the result, otherwise it will result in an infinite loop as per issue #733
55
+ if (result.length > 0 && !_isEqual(answerExpression.options, result)) {
56
+ answerExpression.options = getAnswerOptionsFromResults(result);
57
+ answerExpression.version = answerExpression.version + 1;
58
+ }
59
+ // Update calculatedExpression value to null if no result is returned
60
+ if (result.length === 0 && !!answerExpression.options) {
61
+ // Only update if current options is not empty
62
+ if (answerExpression.options.length > 0) {
63
+ answerExpression.options = [];
64
+ answerExpression.version = answerExpression.version + 1;
65
+ }
66
+ }
67
+ }
68
+ catch (e) {
69
+ console.warn(e.message, `LinkId: ${linkId}\nExpression: ${answerExpression.options}`);
70
+ }
71
+ initialAnswerExpressions[linkId] = answerExpression;
72
+ }
73
+ return {
74
+ initialAnswerExpressions,
75
+ updatedFhirPathContext
76
+ };
77
+ });
78
+ }
79
+ export function evaluateAnswerExpressions(fhirPathContext, answerExpressions) {
80
+ const updatedAnswerExpressions = Object.assign({}, answerExpressions);
81
+ let isUpdated = false;
82
+ for (const linkId in answerExpressions) {
83
+ const answerExpression = answerExpressions[linkId];
84
+ try {
85
+ const result = fhirpath.evaluate({}, answerExpression.expression, fhirPathContext, fhirpath_r4_model);
86
+ // Update calculatedExpressions if length of result array > 0
87
+ // Only update when current calcExpression value is different from the result, otherwise it will result in an infinite loop as per issue #733
88
+ if (result.length > 0 && !_isEqual(answerExpression.options, result)) {
89
+ isUpdated = true;
90
+ answerExpression.options = getAnswerOptionsFromResults(result);
91
+ answerExpression.version = answerExpression.version + 1;
92
+ }
93
+ // Update calculatedExpression value to null if no result is returned
94
+ if (result.length === 0 && !!answerExpression.options) {
95
+ // Only update if current options is not empty
96
+ if (answerExpression.options.length > 0) {
97
+ isUpdated = true;
98
+ answerExpression.options = [];
99
+ answerExpression.version = answerExpression.version + 1;
100
+ }
101
+ }
102
+ }
103
+ catch (e) {
104
+ console.warn(e.message, `LinkId: ${linkId}\nExpression: ${answerExpression.options}`);
105
+ }
106
+ updatedAnswerExpressions[linkId] = answerExpression;
107
+ }
108
+ return {
109
+ answerExpsIsUpdated: isUpdated,
110
+ updatedAnswerExpressions: updatedAnswerExpressions
111
+ };
112
+ }
113
+ function getAnswerOptionsFromResults(result) {
114
+ if (!Array.isArray(result)) {
115
+ return [];
116
+ }
117
+ return result
118
+ .map((item) => {
119
+ var _a;
120
+ if (item.system && item.code) {
121
+ return {
122
+ valueCoding: {
123
+ system: item.system,
124
+ code: item.code,
125
+ display: (_a = item.display) !== null && _a !== void 0 ? _a : undefined
126
+ }
127
+ };
128
+ }
129
+ return item;
130
+ })
131
+ .filter((item) => typeof item === 'object');
132
+ }
133
+ //# sourceMappingURL=answerExpression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerExpression.js","sourceRoot":"","sources":["../../src/utils/answerExpression.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
23
23
  import { updateQrItemsInGroup } from './qrItem';
24
24
  import cloneDeep from 'lodash.clonedeep';
25
25
  import dayjs from 'dayjs';
26
- import { updateQuestionnaireResponse } from './updateQr';
26
+ import { updateQuestionnaireResponse } from './genericRecursive';
27
27
  export function evaluateInitialCalculatedExpressions(params) {
28
28
  const { initialResponse, initialResponseItemMap, calculatedExpressions, variablesFhirPath, existingFhirPathContext } = params;
29
29
  // Return early if initialResponse is empty or there are no calculated expressions to evaluate
@@ -1 +1 @@
1
- {"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export declare function getQrChoiceValue(qrChoice: QuestionnaireResponseItem, re
35
35
  *
36
36
  * @author Sean Fong
37
37
  */
38
- export declare function updateChoiceCheckboxAnswers(changedValue: string, answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[], oldQrItem: QuestionnaireResponseItem, isMultiSelection: boolean): QuestionnaireResponseItem | null;
38
+ export declare function updateChoiceCheckboxAnswers(changedValue: string, answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[], oldQrItem: QuestionnaireResponseItem, isMultiSelection: boolean, answerKey: string | undefined): QuestionnaireResponseItem | null;
39
39
  /**
40
40
  * Get choice orientation from its itemControl
41
41
  *
@@ -111,7 +111,7 @@ export function getQrChoiceValue(qrChoice, returnNull) {
111
111
  *
112
112
  * @author Sean Fong
113
113
  */
114
- export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQrItem, isMultiSelection) {
114
+ export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQrItem, isMultiSelection, answerKey) {
115
115
  // search for answer item of changedValue from list of answer options
116
116
  const newAnswer = findInAnswerOptions(options, changedValue);
117
117
  if (!newAnswer) {
@@ -125,12 +125,14 @@ export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQ
125
125
  if (updatedAnswers.length === answers.length) {
126
126
  updatedAnswers.push(newAnswer);
127
127
  }
128
- return Object.assign(Object.assign({}, oldQrItem), { answer: updatedAnswers });
128
+ const updatedAnswersWithKey = updatedAnswers.map((answer) => (Object.assign(Object.assign({}, answer), { id: answerKey })));
129
+ return Object.assign(Object.assign({}, oldQrItem), { answer: updatedAnswersWithKey });
129
130
  }
130
131
  // Process single selection
131
132
  // If answer already exists, remove it from the array. Otherwise, add it to the array
132
133
  const answerExists = answers.some((answer) => JSON.stringify(answer) === JSON.stringify(newAnswer));
133
- return answerExists ? Object.assign(Object.assign({}, oldQrItem), { answer: [] }) : Object.assign(Object.assign({}, oldQrItem), { answer: [newAnswer] });
134
+ return answerExists
135
+ ? Object.assign(Object.assign({}, oldQrItem), { answer: [] }) : Object.assign(Object.assign({}, oldQrItem), { answer: [Object.assign(Object.assign({}, newAnswer), { id: answerKey })] });
134
136
  }
135
137
  /**
136
138
  * Get choice orientation from its itemControl
@@ -1 +1 @@
1
- {"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { DynamicValueSet } from '../interfaces/valueSet.interface';
2
+ export declare function evaluateDynamicValueSets(fhirPathContext: Record<string, any>, dynamicValueSets: Record<string, DynamicValueSet>): {
3
+ dynamicValueSetsIsUpdated: boolean;
4
+ updatedDynamicValueSets: Record<string, DynamicValueSet>;
5
+ };
@@ -0,0 +1,96 @@
1
+ /*
2
+ * Copyright 2024 Commonwealth Scientific and Industrial Research
3
+ * Organisation (CSIRO) ABN 41 687 119 230.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import fhirpath from 'fhirpath';
18
+ import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
19
+ import cloneDeep from 'lodash.clonedeep';
20
+ import _isEqual from 'lodash/isEqual';
21
+ export function evaluateDynamicValueSets(fhirPathContext, dynamicValueSets) {
22
+ var _a;
23
+ const updatedDynamicValueSets = cloneDeep(dynamicValueSets);
24
+ let isUpdated = false;
25
+ for (const linkId in updatedDynamicValueSets) {
26
+ const dynamicValueSet = updatedDynamicValueSets[linkId];
27
+ const completeResource = dynamicValueSet.sourceResource;
28
+ const valueSetComposeInclude = (_a = completeResource.compose) === null || _a === void 0 ? void 0 : _a.include;
29
+ if (valueSetComposeInclude && valueSetComposeInclude.length > 0) {
30
+ for (const include of valueSetComposeInclude) {
31
+ if (!include.filter) {
32
+ continue;
33
+ }
34
+ // There are filters present, check for fhirpath embeddings
35
+ const fhirPathEmbeddingsMap = {};
36
+ for (const filter of include.filter) {
37
+ const filterValue = filter.value;
38
+ if (filterValue.includes('{{') && filterValue.includes('}}')) {
39
+ if (filterValue) {
40
+ for (const embedding of readFhirPathEmbeddingsFromStr(filterValue)) {
41
+ if (embedding) {
42
+ fhirPathEmbeddingsMap[embedding] = '';
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ const evaluatedFhirPathEmbeddingsMap = evaluateFhirPathEmbeddings(fhirPathEmbeddingsMap, fhirPathContext);
49
+ const evaluatedFhirPathEmbeddingsTuple = Object.entries(evaluatedFhirPathEmbeddingsMap).filter(([, value]) => value != '');
50
+ for (const filter of include.filter) {
51
+ evaluatedFhirPathEmbeddingsTuple.forEach(([embedding, value]) => {
52
+ const filterValue = filter.value;
53
+ const pattern = new RegExp(`{{%${embedding}}}`, 'g');
54
+ filter.value = filterValue.replace(pattern, value);
55
+ });
56
+ }
57
+ }
58
+ }
59
+ // Complete resource has been updated, update the dynamicValueSet object
60
+ if (!_isEqual(dynamicValueSets[linkId].completeResource, completeResource)) {
61
+ isUpdated = true;
62
+ // If source response same as the complete resource, embeddings are not replaced, therefore ValueSet is not complete
63
+ updatedDynamicValueSets[linkId] = {
64
+ sourceResource: dynamicValueSets[linkId].sourceResource,
65
+ completeResource: dynamicValueSet.sourceResource,
66
+ version: dynamicValueSet.version + 1,
67
+ isComplete: !_isEqual(dynamicValueSets[linkId].sourceResource, completeResource)
68
+ };
69
+ }
70
+ }
71
+ // after that we need to update the dynamicvalueset object - iscomplete so that we can use it in useMemo - or potentially updated the version of the dynamic updatedcount
72
+ return {
73
+ dynamicValueSetsIsUpdated: isUpdated,
74
+ updatedDynamicValueSets: updatedDynamicValueSets
75
+ };
76
+ }
77
+ function evaluateFhirPathEmbeddings(fhirPathEmbeddingsMap, fhirPathContext) {
78
+ // evaluate fhirpath embeddings within map
79
+ Object.keys(fhirPathEmbeddingsMap).forEach((embedding) => {
80
+ try {
81
+ const result = fhirpath.evaluate({}, `%${embedding}`, fhirPathContext, fhirpath_r4_model)[0];
82
+ if (result !== undefined && result !== null) {
83
+ fhirPathEmbeddingsMap[embedding] = result;
84
+ }
85
+ }
86
+ catch (e) {
87
+ console.warn(e);
88
+ }
89
+ });
90
+ return fhirPathEmbeddingsMap;
91
+ }
92
+ const FHIRPATH_EMBEDDING_REGEX = /{{%(.*?)}}/g;
93
+ function readFhirPathEmbeddingsFromStr(expression) {
94
+ return [...expression.matchAll(FHIRPATH_EMBEDDING_REGEX)].map((match) => { var _a; return (_a = match[1]) !== null && _a !== void 0 ? _a : ''; });
95
+ }
96
+ //# sourceMappingURL=dynamicValueSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicValueSet.js","sourceRoot":"","sources":["../../src/utils/dynamicValueSet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { CodeableConcept, Observation, Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItemAnswer } from 'fhir/r4';
2
+ /**
3
+ * Extract an array of Observations from a QuestionnaireResponse and its source Questionnaire.
4
+ * @see https://build.fhir.org/ig/HL7/sdc/extraction.html#observation-based-extraction
5
+ *
6
+ * @author Riza Nafis
7
+ */
8
+ export declare function extractObservationBased(questionnaire: Questionnaire, questionnaireResponse: QuestionnaireResponse): Observation[];
9
+ export declare function createObservation(questionnaireItem: QuestionnaireItem, questionnaireResponse: QuestionnaireResponse, answer: QuestionnaireResponseItemAnswer, categories: CodeableConcept[]): Observation;