@aehrc/smart-forms-renderer 1.0.0-alpha.48.dev1 → 1.0.0-alpha.49
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.
- package/lib/components/Checkbox.styles.js +11 -0
- package/lib/components/Checkbox.styles.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanField.js +4 -2
- package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/CheckboxFormGroup.d.ts +16 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxFormGroup.js +24 -0
- package/lib/components/FormComponents/ChoiceItems/CheckboxFormGroup.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js +6 -10
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFormGroup.d.ts +16 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFormGroup.js +24 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxFormGroup.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxGroup.d.ts +0 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxGroup.js +2 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxGroup.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxList.d.ts +0 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxList.js +2 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxList.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +2 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +2 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioGroup.d.ts +16 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioGroup.js +29 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioGroup.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js +2 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioSingle.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/RadioFormGroup.d.ts +16 -0
- package/lib/components/FormComponents/ChoiceItems/RadioFormGroup.js +29 -0
- package/lib/components/FormComponents/ChoiceItems/RadioFormGroup.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.d.ts +16 -0
- package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js +24 -0
- package/lib/components/FormComponents/ItemParts/CheckboxFormGroup.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingle.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js +1 -1
- package/lib/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioFormGroup.d.ts +16 -0
- package/lib/components/FormComponents/ItemParts/RadioFormGroup.js +29 -0
- package/lib/components/FormComponents/ItemParts/RadioFormGroup.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +5 -8
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +2 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js +2 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.js +2 -2
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableView.js +5 -2
- package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
- package/lib/components/FormComponents/Tables/SelectRowButton.d.ts +1 -1
- package/lib/components/FormComponents/Tables/SelectRowButton.js +2 -2
- package/lib/components/FormComponents/Tables/SelectRowButton.js.map +1 -1
- package/lib/components/Radio.styles.js +11 -0
- package/lib/components/Radio.styles.js.map +1 -1
- package/lib/hooks/useAnswerOptionsToggleExpressions.d.ts +7 -0
- package/lib/hooks/useAnswerOptionsToggleExpressions.js +67 -0
- package/lib/hooks/useAnswerOptionsToggleExpressions.js.map +1 -0
- package/lib/interfaces/answerOptionsToggleExpression.interface.d.ts +9 -0
- package/lib/interfaces/answerOptionsToggleExpression.interface.js +2 -0
- package/lib/interfaces/answerOptionsToggleExpression.interface.js.map +1 -0
- package/lib/stores/extractOperationStore.d.ts +26 -0
- package/lib/stores/extractOperationStore.js +20 -0
- package/lib/stores/extractOperationStore.js.map +1 -0
- package/lib/templates/bloodPressureTemplate.d.ts +23 -0
- package/lib/templates/bloodPressureTemplate.js +80 -0
- package/lib/templates/bloodPressureTemplate.js.map +1 -0
- package/lib/tests/test-data/bloodPressureSample.d.ts +3 -0
- package/lib/tests/test-data/bloodPressureSample.js +250 -0
- package/lib/tests/test-data/bloodPressureSample.js.map +1 -0
- package/lib/tests/test-data/complexTemplateSample.d.ts +3 -0
- package/lib/tests/test-data/complexTemplateSample.js +578 -0
- package/lib/tests/test-data/complexTemplateSample.js.map +1 -0
- package/lib/utils/answerOptionsToggleExpressions.d.ts +24 -0
- package/lib/utils/answerOptionsToggleExpressions.js +144 -0
- package/lib/utils/answerOptionsToggleExpressions.js.map +1 -0
- package/lib/utils/calculatedExpression.js +8 -5
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/checkbox.d.ts +2 -0
- package/lib/utils/checkbox.js +6 -0
- package/lib/utils/checkbox.js.map +1 -0
- package/lib/utils/extractTemplate.d.ts +44 -0
- package/lib/utils/extractTemplate.js +809 -0
- package/lib/utils/extractTemplate.js.map +1 -0
- package/lib/utils/questionnaireStoreUtils/extractAnswerOptionsToggleExpressions.d.ts +3 -0
- package/lib/utils/questionnaireStoreUtils/extractAnswerOptionsToggleExpressions.js +6 -0
- package/lib/utils/questionnaireStoreUtils/extractAnswerOptionsToggleExpressions.js.map +1 -0
- package/lib/utils/templateMatching.d.ts +15 -0
- package/lib/utils/templateMatching.js +62 -0
- package/lib/utils/templateMatching.js.map +1 -0
- package/package.json +2 -2
- package/src/components/Checkbox.styles.ts +14 -0
- package/src/components/FormComponents/BooleanItem/BooleanField.tsx +7 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteField.tsx +6 -10
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +2 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +2 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioSingle.tsx +2 -1
- package/src/components/FormComponents/ItemParts/CheckboxSingle.tsx +3 -0
- package/src/components/FormComponents/ItemParts/CheckboxSingleWithOpenLabel.tsx +3 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +5 -8
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +2 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx +2 -0
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +2 -2
- package/src/components/FormComponents/Tables/GroupTableView.tsx +14 -6
- package/src/components/FormComponents/Tables/SelectRowButton.tsx +6 -3
- package/src/components/Radio.styles.tsx +13 -0
- package/src/utils/calculatedExpression.ts +13 -5
- package/src/utils/checkbox.ts +7 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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 { createFhirPathContext, handleFhirPathResult } from './fhirpath';
|
|
27
|
+
import fhirpath from 'fhirpath';
|
|
28
|
+
import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
|
|
29
|
+
export function evaluateInitialAnswerOptionsToggleExpressions(params) {
|
|
30
|
+
var _a;
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const { initialResponse, initialResponseItemMap, answerOptionsToggleExpressions, variables, existingFhirPathContext, terminologyServerUrl } = params;
|
|
33
|
+
let { fhirPathTerminologyCache } = params;
|
|
34
|
+
const fhirPathEvalResult = yield createFhirPathContext(initialResponse, initialResponseItemMap, variables, existingFhirPathContext, fhirPathTerminologyCache, terminologyServerUrl);
|
|
35
|
+
const updatedFhirPathContext = fhirPathEvalResult.fhirPathContext;
|
|
36
|
+
fhirPathTerminologyCache = fhirPathEvalResult.fhirPathTerminologyCache;
|
|
37
|
+
for (const linkId in answerOptionsToggleExpressions) {
|
|
38
|
+
const itemAnswerOptionsToggleExpressions = answerOptionsToggleExpressions[linkId];
|
|
39
|
+
for (const itemAnswerOptionsToggleExpression of itemAnswerOptionsToggleExpressions) {
|
|
40
|
+
const initialValue = itemAnswerOptionsToggleExpression.isEnabled;
|
|
41
|
+
const expression = (_a = itemAnswerOptionsToggleExpression.valueExpression) === null || _a === void 0 ? void 0 : _a.expression;
|
|
42
|
+
if (!expression) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const cacheKey = JSON.stringify(expression); // Use expression as cache key
|
|
46
|
+
if (fhirPathTerminologyCache[cacheKey]) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const fhirPathResult = fhirpath.evaluate({}, expression, updatedFhirPathContext, fhirpath_r4_model, {
|
|
51
|
+
async: true,
|
|
52
|
+
terminologyUrl: terminologyServerUrl
|
|
53
|
+
});
|
|
54
|
+
const result = yield handleFhirPathResult(fhirPathResult);
|
|
55
|
+
// Update answerOptionsToggleExpression if length of result array > 0
|
|
56
|
+
// Only update when current isEnabled value is different from the result, otherwise it will result in am infinite loop as per #733
|
|
57
|
+
if (result.length > 0 && initialValue !== result[0] && typeof result[0] === 'boolean') {
|
|
58
|
+
itemAnswerOptionsToggleExpression.isEnabled = result[0];
|
|
59
|
+
}
|
|
60
|
+
// Update isEnabled value to false if no result is returned
|
|
61
|
+
if (result.length === 0 && initialValue !== false) {
|
|
62
|
+
itemAnswerOptionsToggleExpression.isEnabled = false;
|
|
63
|
+
}
|
|
64
|
+
// handle intersect edge case - evaluate() returns empty array if result is false
|
|
65
|
+
if (expression.includes('intersect') && result.length === 0 && initialValue !== false) {
|
|
66
|
+
itemAnswerOptionsToggleExpression.isEnabled = false;
|
|
67
|
+
}
|
|
68
|
+
// If fhirPathResult is an async terminology call, cache the result
|
|
69
|
+
if (fhirPathResult instanceof Promise) {
|
|
70
|
+
fhirPathTerminologyCache[cacheKey] = result;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.warn(e.message, `AnswerOptionsToggleExpression LinkId: ${linkId}\nExpression: ${expression}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
initialAnswerOptionsToggleExpressions: answerOptionsToggleExpressions,
|
|
80
|
+
updatedFhirPathContext,
|
|
81
|
+
fhirPathTerminologyCache
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
export function evaluateAnswerOptionsToggleExpressions(fhirPathContext, fhirPathTerminologyCache, answerOptionsToggleExpressions, terminologyServerUrl) {
|
|
86
|
+
var _a;
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
let isUpdated = false;
|
|
89
|
+
const computedNewAnswers = {};
|
|
90
|
+
for (const linkId in answerOptionsToggleExpressions) {
|
|
91
|
+
const itemAnswerOptionsToggleExpressions = answerOptionsToggleExpressions[linkId];
|
|
92
|
+
for (const itemAnswerOptionsToggleExpression of itemAnswerOptionsToggleExpressions) {
|
|
93
|
+
const initialValue = itemAnswerOptionsToggleExpression.isEnabled;
|
|
94
|
+
const expression = (_a = itemAnswerOptionsToggleExpression.valueExpression) === null || _a === void 0 ? void 0 : _a.expression;
|
|
95
|
+
if (!expression) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const cacheKey = JSON.stringify(expression); // Use expression as cache key
|
|
99
|
+
if (fhirPathTerminologyCache[cacheKey]) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const fhirPathResult = fhirpath.evaluate({}, expression, fhirPathContext, fhirpath_r4_model, {
|
|
104
|
+
async: true,
|
|
105
|
+
terminologyUrl: terminologyServerUrl
|
|
106
|
+
});
|
|
107
|
+
const result = yield handleFhirPathResult(fhirPathResult);
|
|
108
|
+
// Update targetConstraints if length of result array > 0
|
|
109
|
+
// Only update when current isEnabled value is different from the result, otherwise it will result in am infinite loop as per #733
|
|
110
|
+
if (result.length > 0 && initialValue !== result[0] && typeof result[0] === 'boolean') {
|
|
111
|
+
itemAnswerOptionsToggleExpression.isEnabled = result[0];
|
|
112
|
+
isUpdated = true;
|
|
113
|
+
computedNewAnswers[linkId] = null;
|
|
114
|
+
}
|
|
115
|
+
// Update isEnabled value to false if no result is returned
|
|
116
|
+
if (result.length === 0 && initialValue !== false) {
|
|
117
|
+
itemAnswerOptionsToggleExpression.isEnabled = false;
|
|
118
|
+
isUpdated = true;
|
|
119
|
+
computedNewAnswers[linkId] = null;
|
|
120
|
+
}
|
|
121
|
+
// handle intersect edge case - evaluate() returns empty array if result is false
|
|
122
|
+
if (expression.includes('intersect') && result.length === 0 && initialValue !== false) {
|
|
123
|
+
itemAnswerOptionsToggleExpression.isEnabled = false;
|
|
124
|
+
isUpdated = true;
|
|
125
|
+
computedNewAnswers[linkId] = null;
|
|
126
|
+
}
|
|
127
|
+
// If fhirPathResult is an async terminology call, cache the result
|
|
128
|
+
if (fhirPathResult instanceof Promise) {
|
|
129
|
+
fhirPathTerminologyCache[cacheKey] = result;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
console.warn(e.message, `AnswerOptionsToggleExpression LinkId: ${linkId}\nExpression: ${expression}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
answerOptionsToggleExpressionsIsUpdated: isUpdated,
|
|
139
|
+
updatedAnswerOptionsToggleExpressions: answerOptionsToggleExpressions,
|
|
140
|
+
computedNewAnswers
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=answerOptionsToggleExpressions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answerOptionsToggleExpressions.js","sourceRoot":"","sources":["../../src/utils/answerOptionsToggleExpressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,7 +146,7 @@ function initialiseItemCalculatedExpressionValueRecursive(qItem, qrItemOrItems,
|
|
|
146
146
|
const hasMultipleAnswers = Array.isArray(qrItemOrItems);
|
|
147
147
|
if (hasMultipleAnswers) {
|
|
148
148
|
const updatedQrItems = initialiseItemCalculatedExpressionValueInRepeatGroup(qItem, qrItemOrItems, calculatedExpressions);
|
|
149
|
-
return constructGroupItem(qItem, updatedQrItems
|
|
149
|
+
return constructGroupItem(qItem, updatedQrItems && updatedQrItems.length > 0
|
|
150
150
|
? {
|
|
151
151
|
linkId: qItem.linkId,
|
|
152
152
|
text: qItem.text,
|
|
@@ -157,8 +157,11 @@ function initialiseItemCalculatedExpressionValueRecursive(qItem, qrItemOrItems,
|
|
|
157
157
|
let qrItem = qrItemOrItems;
|
|
158
158
|
const childQItems = qItem.item;
|
|
159
159
|
if (childQItems && childQItems.length > 0) {
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
// If item.type is 'group', create empty group qrItem
|
|
161
|
+
if (qItem.type === 'group') {
|
|
162
|
+
qrItem = qrItemOrItems !== null && qrItemOrItems !== void 0 ? qrItemOrItems : structuredClone(createEmptyQrGroup(qItem));
|
|
163
|
+
}
|
|
164
|
+
const childQrItems = (_a = qrItem === null || qrItem === void 0 ? void 0 : qrItem.item) !== null && _a !== void 0 ? _a : [];
|
|
162
165
|
const indexMap = mapQItemsIndex(qItem);
|
|
163
166
|
const qrItemsByIndex = getQrItemsIndex(childQItems, childQrItems, indexMap);
|
|
164
167
|
// Otherwise loop through qItem as usual
|
|
@@ -171,14 +174,14 @@ function initialiseItemCalculatedExpressionValueRecursive(qItem, qrItemOrItems,
|
|
|
171
174
|
updateQrItemsInGroup(null, {
|
|
172
175
|
linkId: childQItem.linkId,
|
|
173
176
|
qrItems: updatedChildQRItemOrItems
|
|
174
|
-
}, qrItem, indexMap);
|
|
177
|
+
}, qrItem !== null && qrItem !== void 0 ? qrItem : structuredClone(createEmptyQrGroup(qItem)), indexMap);
|
|
175
178
|
}
|
|
176
179
|
continue;
|
|
177
180
|
}
|
|
178
181
|
// Update QR items in non-repeating group
|
|
179
182
|
const updatedChildQRItem = updatedChildQRItemOrItems;
|
|
180
183
|
if (updatedChildQRItem) {
|
|
181
|
-
updateQrItemsInGroup(updatedChildQRItem, null, qrItem, indexMap);
|
|
184
|
+
updateQrItemsInGroup(updatedChildQRItem, null, qrItem !== null && qrItem !== void 0 ? qrItem : structuredClone(createEmptyQrGroup(qItem)), indexMap);
|
|
182
185
|
}
|
|
183
186
|
}
|
|
184
187
|
return constructGroupItem(qItem, qrItem, calculatedExpressions);
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/utils/checkbox.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAuC,IAAI,GAAG,CAAC;IACxE,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,cAAc,EAAE,OAAO,CAAC;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Questionnaire, QuestionnaireResponse, Observation } from 'fhir/r4';
|
|
2
|
+
interface DebugInfo {
|
|
3
|
+
contentAnalysis: {
|
|
4
|
+
detectedTemplates: string[];
|
|
5
|
+
patterns: string[];
|
|
6
|
+
confidence: string;
|
|
7
|
+
};
|
|
8
|
+
fieldMapping: {
|
|
9
|
+
mappedFields: Record<string, any>;
|
|
10
|
+
assumptions: string[];
|
|
11
|
+
alternatives: string[];
|
|
12
|
+
};
|
|
13
|
+
valueProcessing: {
|
|
14
|
+
values: Record<string, any>;
|
|
15
|
+
transformations: string[];
|
|
16
|
+
qualityChecks: Array<{
|
|
17
|
+
check: string;
|
|
18
|
+
passed: boolean;
|
|
19
|
+
message: string;
|
|
20
|
+
}>;
|
|
21
|
+
datetime?: {
|
|
22
|
+
source: 'static' | 'dynamic' | 'fallback';
|
|
23
|
+
expression?: string;
|
|
24
|
+
value?: string;
|
|
25
|
+
originalValue?: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
resultGeneration: {
|
|
29
|
+
status: string;
|
|
30
|
+
observations: Observation[];
|
|
31
|
+
warnings?: string[];
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export declare function extractTemplateBased(questionnaire: Questionnaire, response: QuestionnaireResponse): Promise<{
|
|
35
|
+
result: Observation[] | null;
|
|
36
|
+
error: string | null;
|
|
37
|
+
debugInfo: DebugInfo;
|
|
38
|
+
}>;
|
|
39
|
+
export type TemplateExtractable = {
|
|
40
|
+
extractable: boolean;
|
|
41
|
+
templateReference?: string;
|
|
42
|
+
};
|
|
43
|
+
export declare function mapQItemsTemplate(questionnaire: Questionnaire): Record<string, TemplateExtractable>;
|
|
44
|
+
export {};
|