@aehrc/smart-forms-renderer 0.37.2 → 0.38.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +6 -2
  2. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  3. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.d.ts +12 -0
  4. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js +13 -0
  5. package/lib/components/FormComponents/QuantityItem/QuantityComparatorField.js.map +1 -0
  6. package/lib/components/FormComponents/QuantityItem/QuantityField.d.ts +15 -0
  7. package/lib/components/FormComponents/QuantityItem/QuantityField.js +14 -0
  8. package/lib/components/FormComponents/QuantityItem/QuantityField.js.map +1 -0
  9. package/lib/components/FormComponents/QuantityItem/QuantityItem.d.ts +9 -0
  10. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +144 -0
  11. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -0
  12. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.d.ts +12 -0
  13. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js +10 -0
  14. package/lib/components/FormComponents/QuantityItem/QuantityUnitField.js.map +1 -0
  15. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +2 -1
  16. package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
  17. package/lib/components/FormComponents/Tables/GroupTable.d.ts +2 -2
  18. package/lib/components/FormComponents/Tables/GroupTable.js +2 -2
  19. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  20. package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +2 -2
  21. package/lib/components/FormComponents/Tables/GroupTableBody.js +2 -2
  22. package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -1
  23. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -2
  24. package/lib/components/FormComponents/Tables/GroupTableRow.js +16 -5
  25. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  26. package/lib/components/FormComponents/Tables/GroupTableView.d.ts +2 -2
  27. package/lib/components/FormComponents/Tables/GroupTableView.js +10 -10
  28. package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
  29. package/lib/components/Renderer/FormTopLevelItem.js +6 -0
  30. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  31. package/lib/hooks/useDecimalCalculatedExpression.d.ts +2 -2
  32. package/lib/hooks/useQuantityCalculatedExpression.d.ts +14 -0
  33. package/lib/hooks/useQuantityCalculatedExpression.js +105 -0
  34. package/lib/hooks/useQuantityCalculatedExpression.js.map +1 -0
  35. package/lib/hooks/useRenderingExtensions.d.ts +2 -1
  36. package/lib/hooks/useRenderingExtensions.js +3 -2
  37. package/lib/hooks/useRenderingExtensions.js.map +1 -1
  38. package/lib/hooks/useStringInput.js +1 -0
  39. package/lib/hooks/useStringInput.js.map +1 -1
  40. package/lib/interfaces/valueSet.interface.d.ts +15 -0
  41. package/lib/tests/test-data/initialValueSample.d.ts +2 -0
  42. package/lib/tests/test-data/initialValueSample.js +802 -0
  43. package/lib/tests/test-data/initialValueSample.js.map +1 -0
  44. package/lib/utils/answerExpression.d.ts +18 -0
  45. package/lib/utils/answerExpression.js +133 -0
  46. package/lib/utils/answerExpression.js.map +1 -0
  47. package/lib/utils/calculatedExpression.js +5 -2
  48. package/lib/utils/calculatedExpression.js.map +1 -1
  49. package/lib/utils/dynamicValueSet.d.ts +5 -0
  50. package/lib/utils/dynamicValueSet.js +96 -0
  51. package/lib/utils/dynamicValueSet.js.map +1 -0
  52. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +14 -0
  53. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +639 -0
  54. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +1 -0
  55. package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +3 -0
  56. package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +41 -0
  57. package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +1 -0
  58. package/lib/utils/genericRecursive.d.ts +17 -0
  59. package/lib/utils/genericRecursive.js +82 -0
  60. package/lib/utils/genericRecursive.js.map +1 -0
  61. package/lib/utils/initialise.js +47 -57
  62. package/lib/utils/initialise.js.map +1 -1
  63. package/lib/utils/itemControl.d.ts +7 -1
  64. package/lib/utils/itemControl.js +14 -0
  65. package/lib/utils/itemControl.js.map +1 -1
  66. package/lib/utils/quantity.d.ts +4 -0
  67. package/lib/utils/quantity.js +49 -0
  68. package/lib/utils/quantity.js.map +1 -0
  69. package/lib/utils/repopulateIntoResponse.js +1 -1
  70. package/lib/utils/repopulateIntoResponse.js.map +1 -1
  71. package/lib/utils/valueSet.d.ts +2 -1
  72. package/lib/utils/valueSet.js +22 -0
  73. package/lib/utils/valueSet.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +16 -0
  76. package/src/components/FormComponents/QuantityItem/QuantityComparatorField.tsx +40 -0
  77. package/src/components/FormComponents/QuantityItem/QuantityField.tsx +60 -0
  78. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +286 -0
  79. package/src/components/FormComponents/QuantityItem/QuantityUnitField.tsx +38 -0
  80. package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +2 -1
  81. package/src/components/FormComponents/Tables/GroupTable.tsx +4 -0
  82. package/src/components/FormComponents/Tables/GroupTableBody.tsx +5 -1
  83. package/src/components/FormComponents/Tables/GroupTableRow.tsx +98 -46
  84. package/src/components/FormComponents/Tables/GroupTableView.tsx +30 -26
  85. package/src/components/Renderer/FormTopLevelItem.tsx +17 -0
  86. package/src/hooks/useDecimalCalculatedExpression.ts +2 -2
  87. package/src/hooks/useQuantityCalculatedExpression.ts +177 -0
  88. package/src/hooks/useRenderingExtensions.ts +5 -2
  89. package/src/hooks/useStringInput.ts +1 -0
  90. package/src/interfaces/valueSet.interface.ts +19 -0
  91. package/src/stories/assets/questionnaires/QItemControlGroup.ts +229 -5
  92. package/src/stories/assets/questionnaires/QPrePopTester.ts +30 -0
  93. package/src/stories/assets/questionnaires/QQuantity.ts +283 -1
  94. package/src/stories/itemTypes/Quantity.stories.tsx +33 -1
  95. package/src/stories/sdc/ItemControlGroup.stories.tsx +10 -3
  96. package/src/tests/initial.test.ts +34 -0
  97. package/src/tests/test-data/initialValueSample.ts +826 -0
  98. package/src/utils/calculatedExpression.ts +6 -2
  99. package/src/utils/{updateQr.ts → genericRecursive.ts} +47 -2
  100. package/src/utils/initialise.ts +67 -73
  101. package/src/utils/itemControl.ts +19 -1
  102. package/src/utils/quantity.ts +62 -0
  103. package/src/utils/repopulateIntoResponse.ts +1 -1
  104. package/src/utils/valueSet.ts +32 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialValueSample.js","sourceRoot":"","sources":["../../../src/tests/test-data/initialValueSample.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
@@ -185,7 +185,10 @@ function parseValueToAnswer(qItem, value) {
185
185
  return { valueInteger: value };
186
186
  }
187
187
  }
188
- if (typeof value === 'object') {
188
+ if (typeof value === 'object' && value.unit) {
189
+ return { valueQuantity: value };
190
+ }
191
+ if (typeof value === 'object' && value.system && value.code) {
189
192
  return { valueCoding: value };
190
193
  }
191
194
  // Value is string at this point
@@ -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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"}
@@ -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,14 @@
1
+ import type { DomainResource } from 'fhir/r4b';
2
+ /** Global debug variable to permit the logger to write information messages
3
+ to the OperationOutcome and console
4
+ */
5
+ export declare const debugAsyncFhirpath: boolean;
6
+ /**
7
+ * Evaluate a FHIRPath expression asynchronously
8
+ * @param fhirData FHIR resource to run the FHIRPath expression against
9
+ * @param path FHIRPath expression to evaluate (string or Path object)
10
+ * @param context Environment to evaluate the expression in, mostly variables
11
+ * @param model which fhir version to use (r4/r4b/r5)
12
+ * @returns the result of the evaluation
13
+ */
14
+ export declare function evaluateFhirpathAsync(fhirData: DomainResource, path: string | Path, context?: Record<string, any>, model?: Model): Promise<any[]>;