@aehrc/smart-forms-renderer 1.0.0-alpha.70 → 1.0.0-alpha.72

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 (37) hide show
  1. package/lib/hooks/useAttachmentUrlValidation.js +1 -1
  2. package/lib/hooks/useAttachmentUrlValidation.js.map +1 -1
  3. package/lib/hooks/useQuantityCalculatedExpression.js +6 -3
  4. package/lib/hooks/useQuantityCalculatedExpression.js.map +1 -1
  5. package/lib/hooks/useTerminologyServerQuery.js +5 -5
  6. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  7. package/lib/hooks/useValueSetCodings.js +4 -4
  8. package/lib/hooks/useValueSetCodings.js.map +1 -1
  9. package/lib/index.d.ts +1 -1
  10. package/lib/index.js +1 -1
  11. package/lib/index.js.map +1 -1
  12. package/lib/utils/extractObservation.d.ts +10 -1
  13. package/lib/utils/extractObservation.js +97 -23
  14. package/lib/utils/extractObservation.js.map +1 -1
  15. package/lib/utils/genericRecursive.d.ts +2 -2
  16. package/lib/utils/genericRecursive.js +2 -2
  17. package/lib/utils/genericRecursive.js.map +1 -1
  18. package/lib/utils/index.d.ts +1 -1
  19. package/lib/utils/index.js +1 -1
  20. package/lib/utils/index.js.map +1 -1
  21. package/lib/utils/preferredTerminologyServer.d.ts +11 -0
  22. package/lib/utils/preferredTerminologyServer.js +30 -0
  23. package/lib/utils/preferredTerminologyServer.js.map +1 -0
  24. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +6 -6
  25. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/hooks/useAttachmentUrlValidation.ts +1 -1
  28. package/src/hooks/useQuantityCalculatedExpression.ts +13 -3
  29. package/src/hooks/useTerminologyServerQuery.ts +7 -4
  30. package/src/hooks/useValueSetCodings.ts +6 -4
  31. package/src/index.ts +2 -0
  32. package/src/setup-jest.ts +5 -0
  33. package/src/utils/extractObservation.ts +107 -23
  34. package/src/utils/genericRecursive.ts +4 -4
  35. package/src/utils/index.ts +5 -1
  36. package/src/utils/preferredTerminologyServer.ts +38 -0
  37. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +8 -5
@@ -19,7 +19,7 @@ function useAttachmentUrlValidation(url) {
19
19
  new URL(url);
20
20
  return true;
21
21
  }
22
- catch (error) {
22
+ catch (_a) {
23
23
  return false;
24
24
  }
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useAttachmentUrlValidation.js","sourceRoot":"","sources":["../../src/hooks/useAttachmentUrlValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,SAAS,0BAA0B,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"useAttachmentUrlValidation.js","sourceRoot":"","sources":["../../src/hooks/useAttachmentUrlValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,SAAS,0BAA0B,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,eAAe,0BAA0B,CAAC"}
@@ -15,12 +15,14 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { useEffect, useState } from 'react';
18
- import { useQuestionnaireStore } from '../stores';
18
+ import { useQuestionnaireStore, useTerminologyServerStore } from '../stores';
19
19
  import { validateCodePromise } from '../utils/valueSet';
20
- import { TERMINOLOGY_SERVER_URL } from '../globals';
20
+ import { getItemTerminologyServerToUse } from '../utils/preferredTerminologyServer';
21
21
  function useQuantityCalculatedExpression(props) {
22
22
  const { qItem, inputValue, precision, onChangeByCalcExpressionDecimal, onChangeByCalcExpressionQuantity, onChangeByCalcExpressionNull } = props;
23
23
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
24
+ const itemPreferredTerminologyServers = useQuestionnaireStore.use.itemPreferredTerminologyServers();
25
+ const defaultTerminologyServerUrl = useTerminologyServerStore.use.url();
24
26
  const [calcExpUpdated, setCalcExpUpdated] = useState(false);
25
27
  useEffect(() => {
26
28
  var _a;
@@ -67,7 +69,8 @@ function useQuantityCalculatedExpression(props) {
67
69
  const unitCodeFormatted = unitCode.replace(/'/g, '');
68
70
  const ucumValueSet = 'http://hl7.org/fhir/ValueSet/ucum-units';
69
71
  const ucumSystem = 'http://unitsofmeasure.org';
70
- validateCodePromise(ucumValueSet, ucumSystem, unitCodeFormatted, TERMINOLOGY_SERVER_URL).then((validateCodeResponse) => {
72
+ const terminologyServerUrl = getItemTerminologyServerToUse(qItem, itemPreferredTerminologyServers, defaultTerminologyServerUrl);
73
+ validateCodePromise(ucumValueSet, ucumSystem, unitCodeFormatted, terminologyServerUrl).then((validateCodeResponse) => {
71
74
  // Return early if validate-code request fails
72
75
  if (!validateCodeResponse) {
73
76
  onChangeByCalcExpressionNull();
@@ -1 +1 @@
1
- {"version":3,"file":"useQuantityCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useQuantityCalculatedExpression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQuantityCalculatedExpression.js","sourceRoot":"","sources":["../../src/hooks/useQuantityCalculatedExpression.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,12 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { getTerminologyServerUrl, getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
17
+ import { getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
18
18
  import { useQuestionnaireStore, useTerminologyServerStore } from '../stores';
19
19
  import { useQuery } from '@tanstack/react-query';
20
+ import { getItemTerminologyServerToUse } from '../utils/preferredTerminologyServer';
20
21
  function useTerminologyServerQuery(qItem, maxList, input, searchTerm) {
21
- var _a, _b, _c, _d;
22
+ var _a, _b;
22
23
  const processedValueSets = useQuestionnaireStore.use.processedValueSets();
23
24
  const itemPreferredTerminologyServers = useQuestionnaireStore.use.itemPreferredTerminologyServers();
24
25
  const defaultTerminologyServerUrl = useTerminologyServerStore.use.url();
@@ -45,8 +46,7 @@ function useTerminologyServerQuery(qItem, maxList, input, searchTerm) {
45
46
  fullUrl = urlWithTrailingAmpersand + 'filter=' + searchTerm + '&count=' + maxList;
46
47
  }
47
48
  // Perform query
48
- const preferredTerminologyServerUrl = itemPreferredTerminologyServers[qItem.linkId];
49
- const terminologyServerUrl = (_c = (_b = getTerminologyServerUrl(qItem)) !== null && _b !== void 0 ? _b : preferredTerminologyServerUrl) !== null && _c !== void 0 ? _c : defaultTerminologyServerUrl;
49
+ const terminologyServerUrl = getItemTerminologyServerToUse(qItem, itemPreferredTerminologyServers, defaultTerminologyServerUrl);
50
50
  const { isFetching, error, data } = useQuery({
51
51
  queryKey: ['expandValueSet', fullUrl],
52
52
  queryFn: () => getValueSetPromise(fullUrl, terminologyServerUrl),
@@ -60,7 +60,7 @@ function useTerminologyServerQuery(qItem, maxList, input, searchTerm) {
60
60
  };
61
61
  }
62
62
  if (data) {
63
- if (((_d = data.expansion) === null || _d === void 0 ? void 0 : _d.total) !== 0) {
63
+ if (((_b = data.expansion) === null || _b === void 0 ? void 0 : _b.total) !== 0) {
64
64
  options = getValueSetCodings(data);
65
65
  }
66
66
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"useTerminologyServerQuery.js","sourceRoot":"","sources":["../../src/hooks/useTerminologyServerQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTerminologyServerQuery.js","sourceRoot":"","sources":["../../src/hooks/useTerminologyServerQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF,SAAS,yBAAyB,CAChC,KAAwB,EACxB,OAAe,EACf,KAAa,EACb,UAAkB;;IAElB,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAC1E,MAAM,+BAA+B,GACnC,qBAAqB,CAAC,GAAG,CAAC,+BAA+B,EAAE,CAAC;IAC9D,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAExE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,QAA4D,CAAC;IAEjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,QAAQ,GAAG,EAAE,OAAO,EAAE,oDAAoD,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC9F,CAAC;IAED,yDAAyD;IACzD,IAAI,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC;IAC7C,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAA,kBAAkB,CAAC,iBAAiB,CAAC,0CAAE,oBAAoB,EAAE,CAAC;YAChE,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC;QACjF,CAAC;QAED,MAAM,wBAAwB,GAC5B,iBAAiB,GAAG,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,GAAG,wBAAwB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IACpF,CAAC;IAED,gBAAgB;IAChB,MAAM,oBAAoB,GAAG,6BAA6B,CACxD,KAAK,EACL,+BAA+B,EAC/B,2BAA2B,CAC5B,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAW;QACrD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC;QACrC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,CAAC;QAChE,OAAO,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,iBAAiB,KAAK,SAAS;KACnE,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,4CAA4C,GAAG,KAAK,CAAC,CAAC;QACnE,QAAQ,GAAG;YACT,OAAO,EAAE,2EAA2E;YACpF,KAAK,EAAE,OAAO;SACf,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,MAAK,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG;gBACT,OAAO,EAAE,wEAAwE;gBACjF,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC;AACD,eAAe,yBAAyB,CAAC"}
@@ -24,15 +24,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
24
24
  });
25
25
  };
26
26
  import { useEffect, useMemo, useState } from 'react';
27
- import { getResourceFromLaunchContext, getTerminologyServerUrl, getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
27
+ import { getResourceFromLaunchContext, getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
28
28
  import { getAnswerExpression } from '../utils/getExpressionsFromItem';
29
29
  import fhirpath from 'fhirpath';
30
30
  import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
31
31
  import { useQuestionnaireStore, useSmartConfigStore, useTerminologyServerStore } from '../stores';
32
32
  import { addDisplayToCodingArray } from '../utils/questionnaireStoreUtils/addDisplayToCodings';
33
33
  import useDynamicValueSetEffect, { getUpdatableValueSetUrl } from './useDynamicValueSetEffect';
34
+ import { getItemTerminologyServerToUse } from '../utils/preferredTerminologyServer';
34
35
  function useValueSetCodings(qItem) {
35
- var _a, _b, _c;
36
+ var _a;
36
37
  const patient = useSmartConfigStore.use.patient();
37
38
  const user = useSmartConfigStore.use.user();
38
39
  const encounter = useSmartConfigStore.use.encounter();
@@ -122,8 +123,7 @@ function useValueSetCodings(qItem) {
122
123
  const [serverError, setServerError] = useState(null);
123
124
  const [dynamicCodingsUpdated, setDynamicCodingsUpdated] = useState(false);
124
125
  const codingsCount = codings.length;
125
- const preferredTerminologyServerUrl = itemPreferredTerminologyServers[qItem.linkId];
126
- const terminologyServerUrl = (_c = (_b = getTerminologyServerUrl(qItem)) !== null && _b !== void 0 ? _b : preferredTerminologyServerUrl) !== null && _c !== void 0 ? _c : defaultTerminologyServerUrl;
126
+ const terminologyServerUrl = getItemTerminologyServerToUse(qItem, itemPreferredTerminologyServers, defaultTerminologyServerUrl);
127
127
  // Get options from parameterised/dynamic value sets when the updatableValueSetUrl changes (p-param is updated via fhirpath) or from cqf-expression in _answerValueSet
128
128
  useDynamicValueSetEffect(qItem, terminologyServerUrl, processedValueSets, cachedValueSetCodings, setCodings, setDynamicCodingsUpdated, setServerError);
129
129
  // Acts as a fallback - get options from answerValueSet in real-time if it's not pre-processed or cached which is very unlikely
@@ -1 +1 @@
1
- {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["../../src/hooks/useValueSetCodings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useValueSetCodings.js","sourceRoot":"","sources":["../../src/hooks/useValueSetCodings.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { questionnaireStore, useQuestionnaireStore, questionnaireResponseStore,
7
7
  export type { UseResponsiveProps } from './hooks';
8
8
  export { useHidden, useReadOnly, useBuildForm, useRendererQueryClient, useRenderingExtensions, useValidationFeedback, useValueSetCodings, useStringCalculatedExpression, useDisplayCqfAndCalculatedExpression, useCodingCalculatedExpression, objectIsCoding, useResponsive } from './hooks';
9
9
  export type { ItemToRepopulate } from './utils';
10
- export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, getQuestionnaireItem, getSectionHeading } from './utils';
10
+ export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, canBeObservationExtracted, buildBundleFromObservationArray, getQuestionnaireItem, getSectionHeading } from './utils';
11
11
  export { RendererThemeProvider, rendererThemeComponentOverrides, accordionOverride, autocompleteOverride, buttonOverride, cardOverride, inputOverride, paperOverride, speedDialOverride, tableOverride, rendererThemeOptions } from './theme';
12
12
  export type { InitialiseFormWrapperProps } from './stories/storybookWrappers';
13
13
  export { InitialiseFormWrapperForStorybook } from './stories/storybookWrappers';
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ import '@fontsource/inter';
3
3
  export { SmartFormsRenderer, BaseRenderer, SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle, FullWidthFormComponentBox } from './components';
4
4
  export { questionnaireStore, useQuestionnaireStore, questionnaireResponseStore, useQuestionnaireResponseStore, smartConfigStore, useSmartConfigStore, terminologyServerStore, useTerminologyServerStore, rendererStylingStore, useRendererStylingStore } from './stores';
5
5
  export { useHidden, useReadOnly, useBuildForm, useRendererQueryClient, useRenderingExtensions, useValidationFeedback, useValueSetCodings, useStringCalculatedExpression, useDisplayCqfAndCalculatedExpression, useCodingCalculatedExpression, objectIsCoding, useResponsive } from './hooks';
6
- export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, getQuestionnaireItem, getSectionHeading } from './utils';
6
+ export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, canBeObservationExtracted, buildBundleFromObservationArray, getQuestionnaireItem, getSectionHeading } from './utils';
7
7
  // theme provider exports
8
8
  export { RendererThemeProvider, rendererThemeComponentOverrides, accordionOverride, autocompleteOverride, buttonOverride, cardOverride, inputOverride, paperOverride, speedDialOverride, tableOverride, rendererThemeOptions } from './theme';
9
9
  export { InitialiseFormWrapperForStorybook } from './stories/storybookWrappers';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,mBAAmB,CAAC;AAgB3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,mBAAmB,CAAC;AAgB3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CodeableConcept, Observation, Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItemAnswer } from 'fhir/r4';
1
+ import type { Bundle, CodeableConcept, Observation, Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItemAnswer } from 'fhir/r4';
2
2
  /**
3
3
  * Extract an array of Observations from a QuestionnaireResponse and its source Questionnaire.
4
4
  * @see https://build.fhir.org/ig/HL7/sdc/extraction.html#observation-based-extraction
@@ -13,3 +13,12 @@ export type Extractable = {
13
13
  export declare function mapQItemsExtractable(questionnaire: Questionnaire): Record<string, Extractable>;
14
14
  export declare function createObservation(questionnaireItem: QuestionnaireItem, questionnaireResponse: QuestionnaireResponse, answer: QuestionnaireResponseItemAnswer, categories: CodeableConcept[]): Observation;
15
15
  export declare function generateUniqueId(prefix: string): string;
16
+ /**
17
+ * Checks whether a Questionnaire or any of its items contains a valid `sdc-questionnaire-observationExtract` extension (and if it's at the item level, a valid item.code too).
18
+ * Array.prototype.some() is short-circuiting, so it will return true as soon as it finds a valid extension.
19
+ *
20
+ * @param questionnaire - The FHIR Questionnaire to check.
21
+ * @returns `true` if at least one valid observationExtract extension exists.
22
+ */
23
+ export declare function canBeObservationExtracted(questionnaire: Questionnaire): boolean;
24
+ export declare function buildBundleFromObservationArray(observations: Observation[]): Bundle;
@@ -1,6 +1,7 @@
1
- import { readQuestionnaireResponse, transverseQuestionnaire } from './genericRecursive';
1
+ import { readQuestionnaireResponse, traverseQuestionnaire } from './genericRecursive';
2
2
  import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
3
3
  import { getRelevantCodingProperties } from './valueSet';
4
+ import { nanoid } from 'nanoid';
4
5
  /**
5
6
  * Extract an array of Observations from a QuestionnaireResponse and its source Questionnaire.
6
7
  * @see https://build.fhir.org/ig/HL7/sdc/extraction.html#observation-based-extraction
@@ -88,51 +89,52 @@ export function mapQItemsExtractable(questionnaire) {
88
89
  extractCategories: extractCategoryExts !== null && extractCategoryExts !== void 0 ? extractCategoryExts : []
89
90
  }
90
91
  };
91
- transverseQuestionnaire(questionnaire, mapQItemsExtractableRecursive, initialExtractMap);
92
+ traverseQuestionnaire(questionnaire, mapQItemsExtractableRecursive, initialExtractMap);
92
93
  return initialExtractMap;
93
94
  }
94
- function mapQItemsExtractableRecursive(qItem, root, parent, qItemExtrableMap) {
95
+ function mapQItemsExtractableRecursive(qItem, root, parent, qItemExtractableMap) {
95
96
  var _a, _b, _c, _d, _e, _f, _g, _h;
96
- if (!qItemExtrableMap)
97
+ if (!qItemExtractableMap)
97
98
  return;
98
- if (!qItemExtrableMap[qItem.linkId]) {
99
- qItemExtrableMap[qItem.linkId] = { extractable: false, extractCategories: [] };
99
+ if (!qItemExtractableMap[qItem.linkId]) {
100
+ qItemExtractableMap[qItem.linkId] = { extractable: false, extractCategories: [] };
100
101
  }
101
- // Check if questionnaire extractable
102
+ // Check if questionnaireItem is observation-extractable
102
103
  const extension = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((e) => e.url === FHIR_OBSERVATION_EXTRACT_EXTENSION);
103
104
  if ((extension === null || extension === void 0 ? void 0 : extension.valueBoolean) || (extension === null || extension === void 0 ? void 0 : extension.valueBoolean) === false) {
104
- qItemExtrableMap[qItem.linkId].extractable = (_b = extension === null || extension === void 0 ? void 0 : extension.valueBoolean) !== null && _b !== void 0 ? _b : false;
105
+ qItemExtractableMap[qItem.linkId].extractable = (_b = extension === null || extension === void 0 ? void 0 : extension.valueBoolean) !== null && _b !== void 0 ? _b : false;
105
106
  }
106
- else if (parent && qItemExtrableMap[parent.linkId]) {
107
- qItemExtrableMap[qItem.linkId].extractable = qItemExtrableMap[parent.linkId].extractable;
107
+ else if (parent && qItemExtractableMap[parent.linkId]) {
108
+ qItemExtractableMap[qItem.linkId].extractable = qItemExtractableMap[parent.linkId].extractable;
108
109
  }
109
- else if (root && qItemExtrableMap[(_c = root.id) !== null && _c !== void 0 ? _c : 'root']) {
110
- qItemExtrableMap[qItem.linkId].extractable = qItemExtrableMap[(_d = root === null || root === void 0 ? void 0 : root.id) !== null && _d !== void 0 ? _d : 'root'].extractable;
110
+ else if (root && qItemExtractableMap[(_c = root.id) !== null && _c !== void 0 ? _c : 'root']) {
111
+ qItemExtractableMap[qItem.linkId].extractable =
112
+ qItemExtractableMap[(_d = root === null || root === void 0 ? void 0 : root.id) !== null && _d !== void 0 ? _d : 'root'].extractable;
111
113
  }
112
114
  else {
113
- qItemExtrableMap[qItem.linkId].extractable = false;
115
+ qItemExtractableMap[qItem.linkId].extractable = false;
114
116
  }
115
117
  // if questionnaire extractable, check for extract category
116
- if (qItemExtrableMap[qItem.linkId].extractable) {
118
+ if (qItemExtractableMap[qItem.linkId].extractable) {
117
119
  const extractCategoryExts = (_f = (_e = qItem.extension) === null || _e === void 0 ? void 0 : _e.filter((e) => e.url === FHIR_OBSERVATION_EXTRACT_CATEGORY_EXTENSION && e.valueCodeableConcept)) === null || _f === void 0 ? void 0 : _f.map((e) => e.valueCodeableConcept);
118
120
  if (extractCategoryExts) {
119
- qItemExtrableMap[qItem.linkId].extractCategories = extractCategoryExts;
121
+ qItemExtractableMap[qItem.linkId].extractCategories = extractCategoryExts;
120
122
  }
121
- else if (parent && qItemExtrableMap[parent.linkId].extractCategories.length) {
122
- qItemExtrableMap[qItem.linkId].extractCategories =
123
- qItemExtrableMap[parent.linkId].extractCategories;
123
+ else if (parent && qItemExtractableMap[parent.linkId].extractCategories.length) {
124
+ qItemExtractableMap[qItem.linkId].extractCategories =
125
+ qItemExtractableMap[parent.linkId].extractCategories;
124
126
  }
125
- else if (root && qItemExtrableMap[(_g = root.id) !== null && _g !== void 0 ? _g : 'root'].extractCategories.length) {
126
- qItemExtrableMap[qItem.linkId].extractCategories =
127
- qItemExtrableMap[(_h = root === null || root === void 0 ? void 0 : root.id) !== null && _h !== void 0 ? _h : 'root'].extractCategories;
127
+ else if (root && qItemExtractableMap[(_g = root.id) !== null && _g !== void 0 ? _g : 'root'].extractCategories.length) {
128
+ qItemExtractableMap[qItem.linkId].extractCategories =
129
+ qItemExtractableMap[(_h = root === null || root === void 0 ? void 0 : root.id) !== null && _h !== void 0 ? _h : 'root'].extractCategories;
128
130
  }
129
131
  else {
130
- qItemExtrableMap[qItem.linkId].extractCategories = [];
132
+ qItemExtractableMap[qItem.linkId].extractCategories = [];
131
133
  }
132
134
  }
133
135
  if (qItem.item && qItem.item.length !== 0) {
134
136
  for (const qChildItem of qItem.item) {
135
- mapQItemsExtractableRecursive(qChildItem, root, qItem, qItemExtrableMap);
137
+ mapQItemsExtractableRecursive(qChildItem, root, qItem, qItemExtractableMap);
136
138
  }
137
139
  }
138
140
  }
@@ -206,4 +208,76 @@ function removeIfNull(key, value, expectedValue) {
206
208
  return { [key]: expectedValue };
207
209
  return { [key]: value };
208
210
  }
211
+ /**
212
+ * Checks whether a Questionnaire or any of its items contains a valid `sdc-questionnaire-observationExtract` extension (and if it's at the item level, a valid item.code too).
213
+ * Array.prototype.some() is short-circuiting, so it will return true as soon as it finds a valid extension.
214
+ *
215
+ * @param questionnaire - The FHIR Questionnaire to check.
216
+ * @returns `true` if at least one valid observationExtract extension exists.
217
+ */
218
+ export function canBeObservationExtracted(questionnaire) {
219
+ // Check Questionnaire-level extension
220
+ const isObservationExtractable = hasObservationExtractExtension(questionnaire);
221
+ if (isObservationExtractable) {
222
+ return true;
223
+ }
224
+ // Check item-level extensions recursively
225
+ if (questionnaire.item) {
226
+ return questionnaire.item.some((item) => hasObservationExtractExtensionRecursive(item));
227
+ }
228
+ return false;
229
+ }
230
+ /**
231
+ * Recursively checks whether a `QuestionnaireItem` or any of its child items contains a `sdc-questionnaire-observationExtract` extension (and if it's at the item level, a valid item.code too).
232
+ * Array.prototype.some() is short-circuiting, so it will return true as soon as it finds a valid extension.
233
+ */
234
+ function hasObservationExtractExtensionRecursive(item) {
235
+ var _a, _b;
236
+ const isObservationExtractable = hasObservationExtractExtension(item);
237
+ if (isObservationExtractable) {
238
+ return true;
239
+ }
240
+ return (_b = (_a = item.item) === null || _a === void 0 ? void 0 : _a.some((child) => hasObservationExtractExtensionRecursive(child))) !== null && _b !== void 0 ? _b : false;
241
+ }
242
+ /**
243
+ * Checks if a Questionnaire or QuestionnaireItem has a `sdc-questionnaire-observationExtract` extension.
244
+ * For items, also ensures that there is an item.code.
245
+ */
246
+ function hasObservationExtractExtension(item) {
247
+ var _a;
248
+ const observationExtractPresent = !!((_a = item.extension) === null || _a === void 0 ? void 0 : _a.find((ext) => ext.url === FHIR_OBSERVATION_EXTRACT_EXTENSION));
249
+ // Check if the item has a linkId (means it's a QuestionnaireItem), item.code must be present
250
+ // This does not apply to the Questionnaire-level, hence itemCodePresent defaults to true
251
+ let itemCodePresent = true;
252
+ if ('linkId' in item) {
253
+ itemCodePresent = !!item.code && item.code.length > 0;
254
+ }
255
+ return observationExtractPresent && itemCodePresent;
256
+ }
257
+ export function buildBundleFromObservationArray(observations) {
258
+ return {
259
+ resourceType: 'Bundle',
260
+ id: `sdc-observation-extract-${nanoid()}`,
261
+ meta: {
262
+ tag: [
263
+ {
264
+ code: '@aehrc/smart-forms-renderer:generated'
265
+ }
266
+ ]
267
+ },
268
+ type: 'transaction',
269
+ timestamp: new Date().toISOString(),
270
+ entry: observations.map((observation) => {
271
+ const observationId = observation.id || `obs-${nanoid()}`;
272
+ return {
273
+ fullUrl: `Observation/${observationId}`,
274
+ resource: observation,
275
+ request: {
276
+ method: 'POST',
277
+ url: 'Observation'
278
+ }
279
+ };
280
+ })
281
+ };
282
+ }
209
283
  //# sourceMappingURL=extractObservation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extractObservation.js","sourceRoot":"","sources":["../../src/utils/extractObservation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractObservation.js","sourceRoot":"","sources":["../../src/utils/extractObservation.ts"],"names":[],"mappings":"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"}
@@ -16,5 +16,5 @@ export type RecursiveReadArrayFunction<T, U> = (qItem: QuestionnaireItem, qrItem
16
16
  * @author Sean Fong
17
17
  */
18
18
  export declare function readQuestionnaireResponse<T, U>(questionnaire: Questionnaire, questionnaireResponse: QuestionnaireResponse, recursiveReadFunction: RecursiveReadArrayFunction<T, U>, extraData?: U): T[];
19
- export type RecursiveTranverseFunction<U> = (qItem: QuestionnaireItem, root?: Questionnaire, parent?: QuestionnaireItem, extraData?: U) => void;
20
- export declare function transverseQuestionnaire<U>(questionnaire: Questionnaire, recursiveTranverseFunction: RecursiveTranverseFunction<U>, extraData?: U): void;
19
+ export type RecursiveTraverseFunction<U> = (qItem: QuestionnaireItem, root?: Questionnaire, parent?: QuestionnaireItem, extraData?: U) => void;
20
+ export declare function traverseQuestionnaire<U>(questionnaire: Questionnaire, recursiveTraverseFunction: RecursiveTraverseFunction<U>, extraData?: U): void;
@@ -80,11 +80,11 @@ export function readQuestionnaireResponse(questionnaire, questionnaireResponse,
80
80
  }
81
81
  return readValueArray;
82
82
  }
83
- export function transverseQuestionnaire(questionnaire, recursiveTranverseFunction, extraData) {
83
+ export function traverseQuestionnaire(questionnaire, recursiveTraverseFunction, extraData) {
84
84
  if (!questionnaire.item || questionnaire.item.length === 0)
85
85
  return;
86
86
  for (const topLevelQItem of questionnaire.item) {
87
- recursiveTranverseFunction(topLevelQItem, questionnaire, undefined, extraData);
87
+ recursiveTraverseFunction(topLevelQItem, questionnaire, undefined, extraData);
88
88
  }
89
89
  }
90
90
  //# sourceMappingURL=genericRecursive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genericRecursive.js","sourceRoot":"","sources":["../../src/utils/genericRecursive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genericRecursive.js","sourceRoot":"","sources":["../../src/utils/genericRecursive.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ export { parseDecimalStringToFloat, parseDecimalStringWithPrecision } from './pa
8
8
  export type { ItemToRepopulate } from './repopulateItems';
9
9
  export { generateItemsToRepopulate } from './repopulateItems';
10
10
  export { repopulateResponse } from './repopulateIntoResponse';
11
- export { extractObservationBased } from './extractObservation';
11
+ export { extractObservationBased, canBeObservationExtracted, buildBundleFromObservationArray } from './extractObservation';
12
12
  export { getQuestionnaireItem, getSectionHeading } from './misc';
@@ -23,6 +23,6 @@ export { isRepeatItemAndNotCheckbox, isHiddenByEnableWhen } from './qItem';
23
23
  export { parseDecimalStringToFloat, parseDecimalStringWithPrecision } from './parseInputs';
24
24
  export { generateItemsToRepopulate } from './repopulateItems';
25
25
  export { repopulateResponse } from './repopulateIntoResponse';
26
- export { extractObservationBased } from './extractObservation';
26
+ export { extractObservationBased, canBeObservationExtracted, buildBundleFromObservationArray } from './extractObservation';
27
27
  export { getQuestionnaireItem, getSectionHeading } from './misc';
28
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { QuestionnaireItem } from 'fhir/r4';
2
+ /**
3
+ * Returns the terminology server URL to use for a given Questionnaire item.
4
+ *
5
+ * Priority:
6
+ * 1. Use sdc-questionnaire-preferredTerminologyServer extension.
7
+ * 2. Use StructureDefinition/terminology-server extension.
8
+ * 3. Use renderer default server url set at the buildForm() stage.
9
+ * 4. Use global fallback URL from @aehrc/smart-forms-renderer - https://tx.ontoserver.csiro.au/fhir/
10
+ */
11
+ export declare function getItemTerminologyServerToUse(qItem: QuestionnaireItem, itemPreferredTerminologyServers: Record<string, string>, rendererDefaultTerminologyServerUrl: string): string;
@@ -0,0 +1,30 @@
1
+ import { getTerminologyServerUrl } from './valueSet';
2
+ import { TERMINOLOGY_SERVER_URL } from '../globals';
3
+ /**
4
+ * Returns the terminology server URL to use for a given Questionnaire item.
5
+ *
6
+ * Priority:
7
+ * 1. Use sdc-questionnaire-preferredTerminologyServer extension.
8
+ * 2. Use StructureDefinition/terminology-server extension.
9
+ * 3. Use renderer default server url set at the buildForm() stage.
10
+ * 4. Use global fallback URL from @aehrc/smart-forms-renderer - https://tx.ontoserver.csiro.au/fhir/
11
+ */
12
+ export function getItemTerminologyServerToUse(qItem, itemPreferredTerminologyServers, rendererDefaultTerminologyServerUrl) {
13
+ // Item has sdc-questionnaire-preferredTerminologyServer extension set, use it
14
+ const preferredTerminologyServerUrl = itemPreferredTerminologyServers[qItem.linkId];
15
+ if (preferredTerminologyServerUrl) {
16
+ return preferredTerminologyServerUrl;
17
+ }
18
+ // Item has backwards compatible StructureDefinition/terminology-server extension set, use it
19
+ const terminologyServerUrlBackwardsCompatible = getTerminologyServerUrl(qItem);
20
+ if (terminologyServerUrlBackwardsCompatible) {
21
+ return terminologyServerUrlBackwardsCompatible;
22
+ }
23
+ // A default terminology server is set during renderer initialisation, use it
24
+ if (rendererDefaultTerminologyServerUrl) {
25
+ return rendererDefaultTerminologyServerUrl;
26
+ }
27
+ // Fallback to use default terminology server from env - https://tx.ontoserver.csiro.au/fhir/
28
+ return TERMINOLOGY_SERVER_URL;
29
+ }
30
+ //# sourceMappingURL=preferredTerminologyServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferredTerminologyServer.js","sourceRoot":"","sources":["../../src/utils/preferredTerminologyServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAwB,EACxB,+BAAuD,EACvD,mCAA2C;IAE3C,8EAA8E;IAC9E,MAAM,6BAA6B,GAAG,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpF,IAAI,6BAA6B,EAAE,CAAC;QAClC,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,6FAA6F;IAC7F,MAAM,uCAAuC,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,uCAAuC,EAAE,CAAC;QAC5C,OAAO,uCAAuC,CAAC;IACjD,CAAC;IAED,6EAA6E;IAC7E,IAAI,mCAAmC,EAAE,CAAC;QACxC,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IAED,6FAA6F;IAC7F,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
@@ -23,7 +23,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
23
23
  step((generator = generator.apply(thisArg, _arguments || [])).next());
24
24
  });
25
25
  };
26
- import { getTerminologyServerUrl, getValueSetPromise } from '../valueSet';
26
+ import { getValueSetPromise } from '../valueSet';
27
27
  import { getFhirPathVariables, getXFhirQueryVariables } from './extractVariables';
28
28
  import { getRepeatGroupParentItem } from '../misc';
29
29
  import { checkItemIsEnabledRepeat } from '../enableWhen';
@@ -31,6 +31,7 @@ import { emptyResponse } from '../emptyResource';
31
31
  import { evaluateEnableWhenRepeatExpressionInstance } from '../enableWhenExpression';
32
32
  import { getAnswerExpression, getAnswerOptionsToggleExpressions, getCalculatedExpressions, getEnableWhenExpression, getInitialExpression } from '../getExpressionsFromItem';
33
33
  import { addBindingParametersToValueSetUrl, getBindingParameters } from '../parameterisedValueSets';
34
+ import { getItemTerminologyServerToUse } from '../preferredTerminologyServer';
34
35
  export function extractOtherExtensions(questionnaire, variables, valueSetPromises, processedValueSets, cachedValueSetCodings, itemPreferredTerminologyServers, terminologyServerUrl) {
35
36
  return __awaiter(this, void 0, void 0, function* () {
36
37
  const enableWhenItems = { singleItems: {}, repeatItems: {} };
@@ -99,7 +100,7 @@ export function extractOtherExtensions(questionnaire, variables, valueSetPromise
99
100
  }
100
101
  function extractExtensionsFromItemRecursive(params) {
101
102
  return __awaiter(this, void 0, void 0, function* () {
102
- var _a, _b, _c;
103
+ var _a;
103
104
  const { questionnaire, item, variables, enableWhenItems, enableWhenExpressions, calculatedExpressions, initialExpressions, answerExpressions, answerOptions, answerOptionsToggleExpressions, valueSetPromises, processedValueSets, cachedValueSetCodings, itemPreferredTerminologyServers, defaultTerminologyServerUrl, parentRepeatGroupLinkId } = params;
104
105
  const items = item.item;
105
106
  const isRepeatGroup = !!item.repeats && item.type === 'group';
@@ -122,9 +123,8 @@ function extractExtensionsFromItemRecursive(params) {
122
123
  enableWhenItemProperties;
123
124
  }
124
125
  }
125
- // Get preferred terminology server URL of the item
126
- const preferredTerminologyServerUrl = itemPreferredTerminologyServers[item.linkId];
127
- const terminologyServerUrl = (_b = (_a = getTerminologyServerUrl(item)) !== null && _a !== void 0 ? _a : preferredTerminologyServerUrl) !== null && _b !== void 0 ? _b : defaultTerminologyServerUrl;
126
+ // Get terminology server URL to use for the item
127
+ const terminologyServerUrl = getItemTerminologyServerToUse(item, itemPreferredTerminologyServers, defaultTerminologyServerUrl);
128
128
  const initialisedEnableWhenExpressions = yield initialiseEnableWhenExpression(item, questionnaire, terminologyServerUrl, parentRepeatGroupLinkId);
129
129
  if (initialisedEnableWhenExpressions) {
130
130
  const { enableWhenExpressionType, enableWhenExpression } = initialisedEnableWhenExpressions;
@@ -157,7 +157,7 @@ function extractExtensionsFromItemRecursive(params) {
157
157
  };
158
158
  }
159
159
  // Get answerOptions
160
- const options = (_c = item.answerOption) !== null && _c !== void 0 ? _c : null;
160
+ const options = (_a = item.answerOption) !== null && _a !== void 0 ? _a : null;
161
161
  if (options) {
162
162
  answerOptions[item.linkId] = options;
163
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extractOtherExtensions.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/extractOtherExtensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractOtherExtensions.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/extractOtherExtensions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "1.0.0-alpha.70",
3
+ "version": "1.0.0-alpha.72",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -19,7 +19,7 @@ function useAttachmentUrlValidation(url: string): boolean {
19
19
  try {
20
20
  new URL(url);
21
21
  return true;
22
- } catch (error) {
22
+ } catch {
23
23
  return false;
24
24
  }
25
25
  }
@@ -17,14 +17,14 @@
17
17
 
18
18
  import { useEffect, useState } from 'react';
19
19
  import type { QuestionnaireItem } from 'fhir/r4';
20
- import { useQuestionnaireStore } from '../stores';
20
+ import { useQuestionnaireStore, useTerminologyServerStore } from '../stores';
21
21
  import { validateCodePromise } from '../utils/valueSet';
22
- import { TERMINOLOGY_SERVER_URL } from '../globals';
23
22
  import type {
24
23
  CodeParameter,
25
24
  DisplayParameter,
26
25
  SystemParameter
27
26
  } from '../interfaces/valueSet.interface';
27
+ import { getItemTerminologyServerToUse } from '../utils/preferredTerminologyServer';
28
28
 
29
29
  interface UseQuantityCalculatedExpression {
30
30
  calcExpUpdated: boolean;
@@ -58,6 +58,10 @@ function useQuantityCalculatedExpression(
58
58
 
59
59
  const calculatedExpressions = useQuestionnaireStore.use.calculatedExpressions();
60
60
 
61
+ const itemPreferredTerminologyServers =
62
+ useQuestionnaireStore.use.itemPreferredTerminologyServers();
63
+ const defaultTerminologyServerUrl = useTerminologyServerStore.use.url();
64
+
61
65
  const [calcExpUpdated, setCalcExpUpdated] = useState(false);
62
66
 
63
67
  useEffect(
@@ -119,11 +123,17 @@ function useQuantityCalculatedExpression(
119
123
  const ucumValueSet = 'http://hl7.org/fhir/ValueSet/ucum-units';
120
124
  const ucumSystem = 'http://unitsofmeasure.org';
121
125
 
126
+ const terminologyServerUrl = getItemTerminologyServerToUse(
127
+ qItem,
128
+ itemPreferredTerminologyServers,
129
+ defaultTerminologyServerUrl
130
+ );
131
+
122
132
  validateCodePromise(
123
133
  ucumValueSet,
124
134
  ucumSystem,
125
135
  unitCodeFormatted,
126
- TERMINOLOGY_SERVER_URL
136
+ terminologyServerUrl
127
137
  ).then((validateCodeResponse) => {
128
138
  // Return early if validate-code request fails
129
139
  if (!validateCodeResponse) {
@@ -16,11 +16,12 @@
16
16
  */
17
17
 
18
18
  import type { Coding, QuestionnaireItem, ValueSet } from 'fhir/r4';
19
- import { getTerminologyServerUrl, getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
19
+ import { getValueSetCodings, getValueSetPromise } from '../utils/valueSet';
20
20
 
21
21
  import type { AlertColor } from '@mui/material/Alert';
22
22
  import { useQuestionnaireStore, useTerminologyServerStore } from '../stores';
23
23
  import { useQuery } from '@tanstack/react-query';
24
+ import { getItemTerminologyServerToUse } from '../utils/preferredTerminologyServer';
24
25
 
25
26
  function useTerminologyServerQuery(
26
27
  qItem: QuestionnaireItem,
@@ -63,9 +64,11 @@ function useTerminologyServerQuery(
63
64
  }
64
65
 
65
66
  // Perform query
66
- const preferredTerminologyServerUrl = itemPreferredTerminologyServers[qItem.linkId];
67
- const terminologyServerUrl =
68
- getTerminologyServerUrl(qItem) ?? preferredTerminologyServerUrl ?? defaultTerminologyServerUrl;
67
+ const terminologyServerUrl = getItemTerminologyServerToUse(
68
+ qItem,
69
+ itemPreferredTerminologyServers,
70
+ defaultTerminologyServerUrl
71
+ );
69
72
 
70
73
  const { isFetching, error, data } = useQuery<ValueSet>({
71
74
  queryKey: ['expandValueSet', fullUrl],
@@ -19,7 +19,6 @@ import { useEffect, useMemo, useState } from 'react';
19
19
  import type { Coding, FhirResource, QuestionnaireItem, ValueSet } from 'fhir/r4';
20
20
  import {
21
21
  getResourceFromLaunchContext,
22
- getTerminologyServerUrl,
23
22
  getValueSetCodings,
24
23
  getValueSetPromise
25
24
  } from '../utils/valueSet';
@@ -29,6 +28,7 @@ import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
29
28
  import { useQuestionnaireStore, useSmartConfigStore, useTerminologyServerStore } from '../stores';
30
29
  import { addDisplayToCodingArray } from '../utils/questionnaireStoreUtils/addDisplayToCodings';
31
30
  import useDynamicValueSetEffect, { getUpdatableValueSetUrl } from './useDynamicValueSetEffect';
31
+ import { getItemTerminologyServerToUse } from '../utils/preferredTerminologyServer';
32
32
 
33
33
  export interface TerminologyError {
34
34
  error: Error | null;
@@ -143,9 +143,11 @@ function useValueSetCodings(qItem: QuestionnaireItem): {
143
143
  const [dynamicCodingsUpdated, setDynamicCodingsUpdated] = useState(false);
144
144
 
145
145
  const codingsCount = codings.length;
146
- const preferredTerminologyServerUrl = itemPreferredTerminologyServers[qItem.linkId];
147
- const terminologyServerUrl =
148
- getTerminologyServerUrl(qItem) ?? preferredTerminologyServerUrl ?? defaultTerminologyServerUrl;
146
+ const terminologyServerUrl = getItemTerminologyServerToUse(
147
+ qItem,
148
+ itemPreferredTerminologyServers,
149
+ defaultTerminologyServerUrl
150
+ );
149
151
 
150
152
  // Get options from parameterised/dynamic value sets when the updatableValueSetUrl changes (p-param is updated via fhirpath) or from cqf-expression in _answerValueSet
151
153
  useDynamicValueSetEffect(
package/src/index.ts CHANGED
@@ -96,6 +96,8 @@ export {
96
96
  generateItemsToRepopulate,
97
97
  repopulateResponse,
98
98
  extractObservationBased,
99
+ canBeObservationExtracted,
100
+ buildBundleFromObservationArray,
99
101
  getQuestionnaireItem,
100
102
  getSectionHeading
101
103
  } from './utils';
package/src/setup-jest.ts CHANGED
@@ -1 +1,6 @@
1
1
  import '@testing-library/jest-dom';
2
+
3
+ // Need to mock as nanoid is an ESM module
4
+ jest.mock('nanoid', () => ({
5
+ nanoid: () => 'mocked-id-123'
6
+ }));
@@ -1,4 +1,5 @@
1
1
  import type {
2
+ Bundle,
2
3
  CodeableConcept,
3
4
  Observation,
4
5
  Questionnaire,
@@ -7,9 +8,10 @@ import type {
7
8
  QuestionnaireResponseItem,
8
9
  QuestionnaireResponseItemAnswer
9
10
  } from 'fhir/r4';
10
- import { readQuestionnaireResponse, transverseQuestionnaire } from './genericRecursive';
11
+ import { readQuestionnaireResponse, traverseQuestionnaire } from './genericRecursive';
11
12
  import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
12
13
  import { getRelevantCodingProperties } from './valueSet';
14
+ import { nanoid } from 'nanoid';
13
15
 
14
16
  /**
15
17
  * Extract an array of Observations from a QuestionnaireResponse and its source Questionnaire.
@@ -152,7 +154,7 @@ export function mapQItemsExtractable(questionnaire: Questionnaire): Record<strin
152
154
  }
153
155
  };
154
156
 
155
- transverseQuestionnaire(questionnaire, mapQItemsExtractableRecursive, initialExtractMap);
157
+ traverseQuestionnaire(questionnaire, mapQItemsExtractableRecursive, initialExtractMap);
156
158
 
157
159
  return initialExtractMap;
158
160
  }
@@ -161,29 +163,30 @@ function mapQItemsExtractableRecursive(
161
163
  qItem: QuestionnaireItem,
162
164
  root?: Questionnaire,
163
165
  parent?: QuestionnaireItem,
164
- qItemExtrableMap?: Record<string, Extractable>
166
+ qItemExtractableMap?: Record<string, Extractable>
165
167
  ): void {
166
- if (!qItemExtrableMap) return;
168
+ if (!qItemExtractableMap) return;
167
169
 
168
- if (!qItemExtrableMap[qItem.linkId]) {
169
- qItemExtrableMap[qItem.linkId] = { extractable: false, extractCategories: [] };
170
+ if (!qItemExtractableMap[qItem.linkId]) {
171
+ qItemExtractableMap[qItem.linkId] = { extractable: false, extractCategories: [] };
170
172
  }
171
173
 
172
- // Check if questionnaire extractable
174
+ // Check if questionnaireItem is observation-extractable
173
175
  const extension = qItem.extension?.find((e) => e.url === FHIR_OBSERVATION_EXTRACT_EXTENSION);
174
176
 
175
177
  if (extension?.valueBoolean || extension?.valueBoolean === false) {
176
- qItemExtrableMap[qItem.linkId].extractable = extension?.valueBoolean ?? false;
177
- } else if (parent && qItemExtrableMap[parent.linkId]) {
178
- qItemExtrableMap[qItem.linkId].extractable = qItemExtrableMap[parent.linkId].extractable;
179
- } else if (root && qItemExtrableMap[root.id ?? 'root']) {
180
- qItemExtrableMap[qItem.linkId].extractable = qItemExtrableMap[root?.id ?? 'root'].extractable;
178
+ qItemExtractableMap[qItem.linkId].extractable = extension?.valueBoolean ?? false;
179
+ } else if (parent && qItemExtractableMap[parent.linkId]) {
180
+ qItemExtractableMap[qItem.linkId].extractable = qItemExtractableMap[parent.linkId].extractable;
181
+ } else if (root && qItemExtractableMap[root.id ?? 'root']) {
182
+ qItemExtractableMap[qItem.linkId].extractable =
183
+ qItemExtractableMap[root?.id ?? 'root'].extractable;
181
184
  } else {
182
- qItemExtrableMap[qItem.linkId].extractable = false;
185
+ qItemExtractableMap[qItem.linkId].extractable = false;
183
186
  }
184
187
 
185
188
  // if questionnaire extractable, check for extract category
186
- if (qItemExtrableMap[qItem.linkId].extractable) {
189
+ if (qItemExtractableMap[qItem.linkId].extractable) {
187
190
  const extractCategoryExts = qItem.extension
188
191
  ?.filter(
189
192
  (e) => e.url === FHIR_OBSERVATION_EXTRACT_CATEGORY_EXTENSION && e.valueCodeableConcept
@@ -191,21 +194,21 @@ function mapQItemsExtractableRecursive(
191
194
  ?.map((e) => e.valueCodeableConcept) as CodeableConcept[] | undefined;
192
195
 
193
196
  if (extractCategoryExts) {
194
- qItemExtrableMap[qItem.linkId].extractCategories = extractCategoryExts;
195
- } else if (parent && qItemExtrableMap[parent.linkId].extractCategories.length) {
196
- qItemExtrableMap[qItem.linkId].extractCategories =
197
- qItemExtrableMap[parent.linkId].extractCategories;
198
- } else if (root && qItemExtrableMap[root.id ?? 'root'].extractCategories.length) {
199
- qItemExtrableMap[qItem.linkId].extractCategories =
200
- qItemExtrableMap[root?.id ?? 'root'].extractCategories;
197
+ qItemExtractableMap[qItem.linkId].extractCategories = extractCategoryExts;
198
+ } else if (parent && qItemExtractableMap[parent.linkId].extractCategories.length) {
199
+ qItemExtractableMap[qItem.linkId].extractCategories =
200
+ qItemExtractableMap[parent.linkId].extractCategories;
201
+ } else if (root && qItemExtractableMap[root.id ?? 'root'].extractCategories.length) {
202
+ qItemExtractableMap[qItem.linkId].extractCategories =
203
+ qItemExtractableMap[root?.id ?? 'root'].extractCategories;
201
204
  } else {
202
- qItemExtrableMap[qItem.linkId].extractCategories = [];
205
+ qItemExtractableMap[qItem.linkId].extractCategories = [];
203
206
  }
204
207
  }
205
208
 
206
209
  if (qItem.item && qItem.item.length !== 0) {
207
210
  for (const qChildItem of qItem.item) {
208
- mapQItemsExtractableRecursive(qChildItem, root, qItem, qItemExtrableMap);
211
+ mapQItemsExtractableRecursive(qChildItem, root, qItem, qItemExtractableMap);
209
212
  }
210
213
  }
211
214
  }
@@ -312,3 +315,84 @@ function removeIfNull<T, U>(
312
315
 
313
316
  return { [key]: value };
314
317
  }
318
+
319
+ /**
320
+ * Checks whether a Questionnaire or any of its items contains a valid `sdc-questionnaire-observationExtract` extension (and if it's at the item level, a valid item.code too).
321
+ * Array.prototype.some() is short-circuiting, so it will return true as soon as it finds a valid extension.
322
+ *
323
+ * @param questionnaire - The FHIR Questionnaire to check.
324
+ * @returns `true` if at least one valid observationExtract extension exists.
325
+ */
326
+ export function canBeObservationExtracted(questionnaire: Questionnaire): boolean {
327
+ // Check Questionnaire-level extension
328
+ const isObservationExtractable = hasObservationExtractExtension(questionnaire);
329
+ if (isObservationExtractable) {
330
+ return true;
331
+ }
332
+
333
+ // Check item-level extensions recursively
334
+ if (questionnaire.item) {
335
+ return questionnaire.item.some((item) => hasObservationExtractExtensionRecursive(item));
336
+ }
337
+
338
+ return false;
339
+ }
340
+
341
+ /**
342
+ * Recursively checks whether a `QuestionnaireItem` or any of its child items contains a `sdc-questionnaire-observationExtract` extension (and if it's at the item level, a valid item.code too).
343
+ * Array.prototype.some() is short-circuiting, so it will return true as soon as it finds a valid extension.
344
+ */
345
+ function hasObservationExtractExtensionRecursive(item: QuestionnaireItem): boolean {
346
+ const isObservationExtractable = hasObservationExtractExtension(item);
347
+ if (isObservationExtractable) {
348
+ return true;
349
+ }
350
+
351
+ return item.item?.some((child) => hasObservationExtractExtensionRecursive(child)) ?? false;
352
+ }
353
+
354
+ /**
355
+ * Checks if a Questionnaire or QuestionnaireItem has a `sdc-questionnaire-observationExtract` extension.
356
+ * For items, also ensures that there is an item.code.
357
+ */
358
+ function hasObservationExtractExtension(item: QuestionnaireItem | Questionnaire): boolean {
359
+ const observationExtractPresent = !!item.extension?.find(
360
+ (ext) => ext.url === FHIR_OBSERVATION_EXTRACT_EXTENSION
361
+ );
362
+
363
+ // Check if the item has a linkId (means it's a QuestionnaireItem), item.code must be present
364
+ // This does not apply to the Questionnaire-level, hence itemCodePresent defaults to true
365
+ let itemCodePresent = true;
366
+ if ('linkId' in item) {
367
+ itemCodePresent = !!item.code && item.code.length > 0;
368
+ }
369
+
370
+ return observationExtractPresent && itemCodePresent;
371
+ }
372
+
373
+ export function buildBundleFromObservationArray(observations: Observation[]): Bundle {
374
+ return {
375
+ resourceType: 'Bundle',
376
+ id: `sdc-observation-extract-${nanoid()}`,
377
+ meta: {
378
+ tag: [
379
+ {
380
+ code: '@aehrc/smart-forms-renderer:generated'
381
+ }
382
+ ]
383
+ },
384
+ type: 'transaction',
385
+ timestamp: new Date().toISOString(),
386
+ entry: observations.map((observation) => {
387
+ const observationId = observation.id || `obs-${nanoid()}`;
388
+ return {
389
+ fullUrl: `Observation/${observationId}`,
390
+ resource: observation,
391
+ request: {
392
+ method: 'POST',
393
+ url: 'Observation'
394
+ }
395
+ };
396
+ })
397
+ };
398
+ }
@@ -135,21 +135,21 @@ export function readQuestionnaireResponse<T, U>(
135
135
  return readValueArray;
136
136
  }
137
137
 
138
- export type RecursiveTranverseFunction<U> = (
138
+ export type RecursiveTraverseFunction<U> = (
139
139
  qItem: QuestionnaireItem,
140
140
  root?: Questionnaire,
141
141
  parent?: QuestionnaireItem,
142
142
  extraData?: U
143
143
  ) => void;
144
144
 
145
- export function transverseQuestionnaire<U>(
145
+ export function traverseQuestionnaire<U>(
146
146
  questionnaire: Questionnaire,
147
- recursiveTranverseFunction: RecursiveTranverseFunction<U>,
147
+ recursiveTraverseFunction: RecursiveTraverseFunction<U>,
148
148
  extraData?: U
149
149
  ): void {
150
150
  if (!questionnaire.item || questionnaire.item.length === 0) return;
151
151
 
152
152
  for (const topLevelQItem of questionnaire.item) {
153
- recursiveTranverseFunction(topLevelQItem, questionnaire, undefined, extraData);
153
+ recursiveTraverseFunction(topLevelQItem, questionnaire, undefined, extraData);
154
154
  }
155
155
  }
@@ -32,6 +32,10 @@ export { parseDecimalStringToFloat, parseDecimalStringWithPrecision } from './pa
32
32
  export type { ItemToRepopulate } from './repopulateItems';
33
33
  export { generateItemsToRepopulate } from './repopulateItems';
34
34
  export { repopulateResponse } from './repopulateIntoResponse';
35
- export { extractObservationBased } from './extractObservation';
35
+ export {
36
+ extractObservationBased,
37
+ canBeObservationExtracted,
38
+ buildBundleFromObservationArray
39
+ } from './extractObservation';
36
40
 
37
41
  export { getQuestionnaireItem, getSectionHeading } from './misc';
@@ -0,0 +1,38 @@
1
+ import { QuestionnaireItem } from 'fhir/r4';
2
+ import { getTerminologyServerUrl } from './valueSet';
3
+ import { TERMINOLOGY_SERVER_URL } from '../globals';
4
+
5
+ /**
6
+ * Returns the terminology server URL to use for a given Questionnaire item.
7
+ *
8
+ * Priority:
9
+ * 1. Use sdc-questionnaire-preferredTerminologyServer extension.
10
+ * 2. Use StructureDefinition/terminology-server extension.
11
+ * 3. Use renderer default server url set at the buildForm() stage.
12
+ * 4. Use global fallback URL from @aehrc/smart-forms-renderer - https://tx.ontoserver.csiro.au/fhir/
13
+ */
14
+ export function getItemTerminologyServerToUse(
15
+ qItem: QuestionnaireItem,
16
+ itemPreferredTerminologyServers: Record<string, string>,
17
+ rendererDefaultTerminologyServerUrl: string
18
+ ): string {
19
+ // Item has sdc-questionnaire-preferredTerminologyServer extension set, use it
20
+ const preferredTerminologyServerUrl = itemPreferredTerminologyServers[qItem.linkId];
21
+ if (preferredTerminologyServerUrl) {
22
+ return preferredTerminologyServerUrl;
23
+ }
24
+
25
+ // Item has backwards compatible StructureDefinition/terminology-server extension set, use it
26
+ const terminologyServerUrlBackwardsCompatible = getTerminologyServerUrl(qItem);
27
+ if (terminologyServerUrlBackwardsCompatible) {
28
+ return terminologyServerUrlBackwardsCompatible;
29
+ }
30
+
31
+ // A default terminology server is set during renderer initialisation, use it
32
+ if (rendererDefaultTerminologyServerUrl) {
33
+ return rendererDefaultTerminologyServerUrl;
34
+ }
35
+
36
+ // Fallback to use default terminology server from env - https://tx.ontoserver.csiro.au/fhir/
37
+ return TERMINOLOGY_SERVER_URL;
38
+ }
@@ -36,7 +36,7 @@ import type {
36
36
  } from '../../interfaces/enableWhen.interface';
37
37
  import type { AnswerExpression } from '../../interfaces/answerExpression.interface';
38
38
  import type { ProcessedValueSet, ValueSetPromise } from '../../interfaces/valueSet.interface';
39
- import { getTerminologyServerUrl, getValueSetPromise } from '../valueSet';
39
+ import { getValueSetPromise } from '../valueSet';
40
40
  import type { Variables } from '../../interfaces/variables.interface';
41
41
  import { getFhirPathVariables, getXFhirQueryVariables } from './extractVariables';
42
42
  import { getRepeatGroupParentItem } from '../misc';
@@ -53,6 +53,7 @@ import {
53
53
  import type { InitialExpression } from '../../interfaces/initialExpression.interface';
54
54
  import { addBindingParametersToValueSetUrl, getBindingParameters } from '../parameterisedValueSets';
55
55
  import type { AnswerOptionsToggleExpression } from '../../interfaces/answerOptionsToggleExpression.interface';
56
+ import { getItemTerminologyServerToUse } from '../preferredTerminologyServer';
56
57
 
57
58
  interface ReturnParamsRecursive {
58
59
  variables: Variables;
@@ -215,10 +216,12 @@ async function extractExtensionsFromItemRecursive(
215
216
  }
216
217
  }
217
218
 
218
- // Get preferred terminology server URL of the item
219
- const preferredTerminologyServerUrl = itemPreferredTerminologyServers[item.linkId];
220
- const terminologyServerUrl =
221
- getTerminologyServerUrl(item) ?? preferredTerminologyServerUrl ?? defaultTerminologyServerUrl;
219
+ // Get terminology server URL to use for the item
220
+ const terminologyServerUrl = getItemTerminologyServerToUse(
221
+ item,
222
+ itemPreferredTerminologyServers,
223
+ defaultTerminologyServerUrl
224
+ );
222
225
 
223
226
  const initialisedEnableWhenExpressions = await initialiseEnableWhenExpression(
224
227
  item,