sdc-qrf 0.3.34 → 0.3.35
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/dist/converter/fceToFhir/questionnaire/processExtensions.d.ts.map +1 -1
- package/dist/converter/fceToFhir/questionnaire/processExtensions.js +7 -1
- package/dist/converter/fceToFhir/questionnaire/processExtensions.js.map +1 -1
- package/dist/converter/fhirToFce/questionnaire/processExtensions.d.ts +1 -0
- package/dist/converter/fhirToFce/questionnaire/processExtensions.d.ts.map +1 -1
- package/dist/converter/fhirToFce/questionnaire/processExtensions.js +7 -0
- package/dist/converter/fhirToFce/questionnaire/processExtensions.js.map +1 -1
- package/package.json +1 -1
- package/src/converter/__tests__/fce.test.ts +4 -0
- package/src/converter/__tests__/resources/questionnaire_fce/assemble_context.json +20 -0
- package/src/converter/__tests__/resources/questionnaire_fhir/assemble_context.json +32 -0
- package/src/converter/fceToFhir/questionnaire/processExtensions.ts +18 -2
- package/src/converter/fhirToFce/questionnaire/processExtensions.ts +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExtensions.d.ts","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE1F,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGhF,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"processExtensions.d.ts","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE1F,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGhF,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,GAAG,iBAAiB,CAiGpF"}
|
|
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const constants_1 = require("../../constants");
|
|
6
6
|
function processExtensions(questionnaire) {
|
|
7
7
|
var _a, _b, _c;
|
|
8
|
-
const { launchContext, mapping, sourceQueries, targetStructureMap, assembledFrom } = questionnaire, fhirQuestionnaire = tslib_1.__rest(questionnaire, ["launchContext", "mapping", "sourceQueries", "targetStructureMap", "assembledFrom"]);
|
|
8
|
+
const { launchContext, mapping, sourceQueries, targetStructureMap, assembledFrom, assembleContext } = questionnaire, fhirQuestionnaire = tslib_1.__rest(questionnaire, ["launchContext", "mapping", "sourceQueries", "targetStructureMap", "assembledFrom", "assembleContext"]);
|
|
9
9
|
let extensions = [];
|
|
10
10
|
if (launchContext) {
|
|
11
11
|
for (const launchContextItem of launchContext) {
|
|
@@ -62,6 +62,12 @@ function processExtensions(questionnaire) {
|
|
|
62
62
|
valueCanonical: assembledFrom,
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
+
if (assembleContext) {
|
|
66
|
+
extensions = extensions.concat(assembleContext.map((assembleContextItem) => ({
|
|
67
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembleContext',
|
|
68
|
+
valueString: assembleContextItem,
|
|
69
|
+
})));
|
|
70
|
+
}
|
|
65
71
|
if (extensions.length) {
|
|
66
72
|
fhirQuestionnaire.extension = ((_c = fhirQuestionnaire.extension) !== null && _c !== void 0 ? _c : []).concat(extensions);
|
|
67
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processExtensions.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processExtensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export declare function processExtensions(fhirQuestionnaire: FHIRQuestionnaire):
|
|
|
5
5
|
sourceQueries?: any[];
|
|
6
6
|
targetStructureMap?: any[];
|
|
7
7
|
assembledFrom?: any;
|
|
8
|
+
assembleContext?: string[];
|
|
8
9
|
};
|
|
9
10
|
export declare function processLaunchContext(fhirQuestionnaire: FHIRQuestionnaire): any[] | undefined;
|
|
10
11
|
//# sourceMappingURL=processExtensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExtensions.d.ts","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processExtensions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG;IACrE,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"processExtensions.d.ts","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processExtensions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG;IACrE,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAgBA;AAED,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,GAAG,EAAE,GAAG,SAAS,CA2C5F"}
|
|
@@ -9,12 +9,14 @@ function processExtensions(fhirQuestionnaire) {
|
|
|
9
9
|
const sourceQueries = processSourceQueries(fhirQuestionnaire);
|
|
10
10
|
const targetStructureMap = processTargetStructureMap(fhirQuestionnaire);
|
|
11
11
|
const assembledFrom = processAssembledFrom(fhirQuestionnaire);
|
|
12
|
+
const assembleContext = processAssembleContext(fhirQuestionnaire);
|
|
12
13
|
return {
|
|
13
14
|
launchContext: (launchContext === null || launchContext === void 0 ? void 0 : launchContext.length) ? launchContext : undefined,
|
|
14
15
|
mapping: (mapping === null || mapping === void 0 ? void 0 : mapping.length) ? mapping : undefined,
|
|
15
16
|
sourceQueries: (sourceQueries === null || sourceQueries === void 0 ? void 0 : sourceQueries.length) ? sourceQueries : undefined,
|
|
16
17
|
targetStructureMap: (targetStructureMap === null || targetStructureMap === void 0 ? void 0 : targetStructureMap.length) ? targetStructureMap : undefined,
|
|
17
18
|
assembledFrom: assembledFrom ? assembledFrom : undefined,
|
|
19
|
+
assembleContext: assembleContext.length ? assembleContext : undefined,
|
|
18
20
|
};
|
|
19
21
|
}
|
|
20
22
|
function processLaunchContext(fhirQuestionnaire) {
|
|
@@ -93,4 +95,9 @@ function processAssembledFrom(fhirQuestionnaire) {
|
|
|
93
95
|
}
|
|
94
96
|
return extension.valueCanonical;
|
|
95
97
|
}
|
|
98
|
+
function processAssembleContext(fhirQuestionnaire) {
|
|
99
|
+
var _a;
|
|
100
|
+
const extensions = (_a = fhirQuestionnaire.extension) === null || _a === void 0 ? void 0 : _a.filter((ext) => ext.url === 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembleContext');
|
|
101
|
+
return (extensions !== null && extensions !== void 0 ? extensions : []).map((extension) => extension.valueString);
|
|
102
|
+
}
|
|
96
103
|
//# sourceMappingURL=processExtensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processExtensions.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processExtensions.ts"],"names":[],"mappings":";;AAIA,8CAuBC;AAED,oDA2CC;AAvED,+CAAiF;AAGjF,SAAgB,iBAAiB,CAAC,iBAAoC;IAQlE,MAAM,aAAa,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAElE,OAAO;QACH,aAAa,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAChE,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC9C,aAAa,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAChE,kBAAkB,EAAE,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,EAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;QAC/E,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACxD,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACN,CAAC;AAED,SAAgB,oBAAoB,CAAC,iBAAoC;;IACrE,IAAI,uBAAuB,GAAG,MAAA,iBAAiB,CAAC,SAAS,mCAAI,EAAE,CAAC;IAEhE,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CACpD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,gFAAgF,CACxG,CAAC;IAEF,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,KAAK,MAAM,sBAAsB,IAAI,uBAAuB,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAA,sBAAsB,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,MAAA,sBAAsB,CAAC,SAAS,0CAAE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;QAC7F,MAAM,oBAAoB,GAAG,MAAA,sBAAsB,CAAC,SAAS,0CAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC;QAExG,MAAM,QAAQ,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,0CAAE,IAAI,CAAC;QAClD,MAAM,SAAS,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,SAAU,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,WAAW,CAAC;QAEtD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC,CAAC,CAAC;gBACxC,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,MAAM,OAAO,GAAQ;gBACjB,IAAI,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW;gBAChC,IAAI,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;aACxB,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,CAAC;YACD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,iBAAoC;;IACxD,MAAM,gBAAgB,GAAG,MAAA,iBAAiB,CAAC,SAAS,0CAAE,MAAM,CACxD,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,qCAAyB,IAAI,GAAG,CAAC,GAAG,KAAK,+BAAmB,CACzF,CAAC;IAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,eAAoB,EAAE,EAAE;;QAAC,OAAA,CAAC;YACnD,EAAE,EAAE,MAAA,MAAA,eAAe,CAAC,cAAc,0CAAE,SAAS,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,YAAY,EAAE,SAAS;SAC1B,CAAC,CAAA;KAAA,CAAC,CAAC;AACR,CAAC;AAED,SAAS,oBAAoB,CAAC,iBAAoC;;IAC9D,MAAM,UAAU,GACZ,MAAA,MAAA,iBAAiB,CAAC,SAAS,0CAAE,MAAM,CAC/B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,gFAAgF,CACxG,mCAAI,EAAE,CAAC;IAEZ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;;QAAC,OAAA,CAAC;YAC5B,QAAQ,EAAE,MAAA,MAAA,MAAA,GAAG,CAAC,cAAc,0CAAE,SAAS,0CAAE,SAAS,CAAC,CAAC,CAAC,mCAAI,EAAE;SAC9D,CAAC,CAAA;KAAA,CAAC,CAAC;AACR,CAAC;AAED,SAAS,yBAAyB,CAAC,iBAAoC;;IACnE,MAAM,UAAU,GAAG,MAAA,iBAAiB,CAAC,SAAS,0CAAE,MAAM,CAClD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,qFAAqF,CAC7G,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,cAAe,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,iBAAoC;;IAC9D,MAAM,SAAS,GAAG,MAAA,iBAAiB,CAAC,SAAS,0CAAE,IAAI,CAC/C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,gFAAgF,CACxG,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC,cAAc,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAAC,iBAAoC;;IAChE,MAAM,UAAU,GAAG,MAAA,iBAAiB,CAAC,SAAS,0CAAE,MAAM,CAClD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,kFAAkF,CAC1G,CAAC;IAEF,OAAO,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAY,CAAC,CAAC;AACzE,CAAC"}
|
package/package.json
CHANGED
|
@@ -39,6 +39,7 @@ import fce_with_attachment_questionnaire from './resources/questionnaire_fce/wit
|
|
|
39
39
|
import fce_mixed_fce_with_extensions from './resources/questionnaire_fce/mixed-fce-with-extensions.json';
|
|
40
40
|
import fce_unknown_extensions from './resources/questionnaire_fce/unknown-extensions.json';
|
|
41
41
|
import fce_occurs from './resources/questionnaire_fce/occurs.json';
|
|
42
|
+
import fce_assemble_context from './resources/questionnaire_fce/assemble_context.json';
|
|
42
43
|
// fhir questionnaire
|
|
43
44
|
import fhir_allergies from './resources/questionnaire_fhir/allergies.json';
|
|
44
45
|
import fhir_beverages from './resources/questionnaire_fhir/beverages.json';
|
|
@@ -72,6 +73,7 @@ import fhir_with_attachment_questionnaire from './resources/questionnaire_fhir/w
|
|
|
72
73
|
import fhir_mixed_fce_with_extensions from './resources/questionnaire_fhir/mixed-fce-with-extensions.json';
|
|
73
74
|
import fhir_unknown_extensions from './resources/questionnaire_fhir/unknown-extensions.json';
|
|
74
75
|
import fhir_occurs from './resources/questionnaire_fhir/occurs.json';
|
|
76
|
+
import fhir_assemble_context from './resources/questionnaire_fhir/assemble_context.json';
|
|
75
77
|
// fce questionnaire response
|
|
76
78
|
import fce_allergies_inprogress_qr from './resources/questionnaire_response_fce/allergies_inprogress.json';
|
|
77
79
|
import fce_cardiology_qr from './resources/questionnaire_response_fce/cardiology.json';
|
|
@@ -145,6 +147,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
|
|
|
145
147
|
// ['mixed-fce-with-extensions', fhir_mixed_fce_with_extensions, fce_mixed_fce_with_extensions],
|
|
146
148
|
['unknown-extensions', fhir_unknown_extensions, fce_unknown_extensions],
|
|
147
149
|
['occurs', fhir_occurs, fce_occurs],
|
|
150
|
+
['assemble-context', fhir_assemble_context, fce_assemble_context],
|
|
148
151
|
])('Each FHIR Questionnaire should convert to FCE %s', async (_, fhir_questionnaire, fce_questionnaire) => {
|
|
149
152
|
expect(toFirstClassExtension(fhir_questionnaire as FHIRQuestionnaire)).toStrictEqual(fce_questionnaire);
|
|
150
153
|
});
|
|
@@ -186,6 +189,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
|
|
|
186
189
|
['mixed-fce-with-extensions', fce_mixed_fce_with_extensions, fhir_mixed_fce_with_extensions],
|
|
187
190
|
['unknown-extensions', fce_unknown_extensions, fhir_unknown_extensions],
|
|
188
191
|
['occurs', fce_occurs, fhir_occurs],
|
|
192
|
+
['assemble-context', fce_assemble_context, fhir_assemble_context],
|
|
189
193
|
])('Each FCE Questionnaire should convert to FHIR %s', async (_, fce_questionnaire, fhir_questionnaire) => {
|
|
190
194
|
expect(sortExtensionsList(fromFirstClassExtension(fce_questionnaire as FCEQuestionnaire))).toStrictEqual(
|
|
191
195
|
sortExtensionsList(fhir_questionnaire),
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"resourceType": "Questionnaire",
|
|
3
|
+
"id": "assemble_context",
|
|
4
|
+
"meta": {
|
|
5
|
+
"profile": ["https://emr-core.beda.software/StructureDefinition/fhir-emr-questionnaire"]
|
|
6
|
+
},
|
|
7
|
+
"status": "active",
|
|
8
|
+
"assembledFrom": "assemble_context",
|
|
9
|
+
"assembleContext": ["prefix1", "prefix2"],
|
|
10
|
+
"item": [
|
|
11
|
+
{
|
|
12
|
+
"type": "string",
|
|
13
|
+
"linkId": "{{%prefix1}}test"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "string",
|
|
17
|
+
"linkId": "{{%prefix2}}test"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"item": [
|
|
3
|
+
{
|
|
4
|
+
"type": "string",
|
|
5
|
+
"linkId": "{{%prefix1}}test"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"type": "string",
|
|
9
|
+
"linkId": "{{%prefix2}}test"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"meta": {
|
|
13
|
+
"profile": ["https://emr-core.beda.software/StructureDefinition/fhir-emr-questionnaire"]
|
|
14
|
+
},
|
|
15
|
+
"extension": [
|
|
16
|
+
{
|
|
17
|
+
"url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembledFrom",
|
|
18
|
+
"valueCanonical": "assemble_context"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembleContext",
|
|
22
|
+
"valueString": "prefix1"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembleContext",
|
|
26
|
+
"valueString": "prefix2"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"status": "active",
|
|
30
|
+
"id": "assemble_context",
|
|
31
|
+
"resourceType": "Questionnaire"
|
|
32
|
+
}
|
|
@@ -4,8 +4,15 @@ import { Questionnaire as FCEQuestionnaire } from '@beda.software/aidbox-types';
|
|
|
4
4
|
import { legacyMappingExtensionUrl, legacyQuestionnaireProfileUrl, mappingExtensionUrl } from '../../constants';
|
|
5
5
|
|
|
6
6
|
export function processExtensions(questionnaire: FCEQuestionnaire): FHIRQuestionnaire {
|
|
7
|
-
const {
|
|
8
|
-
|
|
7
|
+
const {
|
|
8
|
+
launchContext,
|
|
9
|
+
mapping,
|
|
10
|
+
sourceQueries,
|
|
11
|
+
targetStructureMap,
|
|
12
|
+
assembledFrom,
|
|
13
|
+
assembleContext,
|
|
14
|
+
...fhirQuestionnaire
|
|
15
|
+
} = questionnaire;
|
|
9
16
|
|
|
10
17
|
let extensions: FHIRExtension[] = [];
|
|
11
18
|
|
|
@@ -79,6 +86,15 @@ export function processExtensions(questionnaire: FCEQuestionnaire): FHIRQuestion
|
|
|
79
86
|
});
|
|
80
87
|
}
|
|
81
88
|
|
|
89
|
+
if (assembleContext) {
|
|
90
|
+
extensions = extensions.concat(
|
|
91
|
+
assembleContext.map((assembleContextItem) => ({
|
|
92
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembleContext',
|
|
93
|
+
valueString: assembleContextItem,
|
|
94
|
+
})),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
82
98
|
if (extensions.length) {
|
|
83
99
|
fhirQuestionnaire.extension = (fhirQuestionnaire.extension ?? []).concat(extensions);
|
|
84
100
|
}
|
|
@@ -8,12 +8,14 @@ export function processExtensions(fhirQuestionnaire: FHIRQuestionnaire): {
|
|
|
8
8
|
sourceQueries?: any[];
|
|
9
9
|
targetStructureMap?: any[];
|
|
10
10
|
assembledFrom?: any;
|
|
11
|
+
assembleContext?: string[];
|
|
11
12
|
} {
|
|
12
13
|
const launchContext = processLaunchContext(fhirQuestionnaire);
|
|
13
14
|
const mapping = processMapping(fhirQuestionnaire);
|
|
14
15
|
const sourceQueries = processSourceQueries(fhirQuestionnaire);
|
|
15
16
|
const targetStructureMap = processTargetStructureMap(fhirQuestionnaire);
|
|
16
17
|
const assembledFrom = processAssembledFrom(fhirQuestionnaire);
|
|
18
|
+
const assembleContext = processAssembleContext(fhirQuestionnaire);
|
|
17
19
|
|
|
18
20
|
return {
|
|
19
21
|
launchContext: launchContext?.length ? launchContext : undefined,
|
|
@@ -21,6 +23,7 @@ export function processExtensions(fhirQuestionnaire: FHIRQuestionnaire): {
|
|
|
21
23
|
sourceQueries: sourceQueries?.length ? sourceQueries : undefined,
|
|
22
24
|
targetStructureMap: targetStructureMap?.length ? targetStructureMap : undefined,
|
|
23
25
|
assembledFrom: assembledFrom ? assembledFrom : undefined,
|
|
26
|
+
assembleContext: assembleContext.length ? assembleContext : undefined,
|
|
24
27
|
};
|
|
25
28
|
}
|
|
26
29
|
|
|
@@ -118,3 +121,11 @@ function processAssembledFrom(fhirQuestionnaire: FHIRQuestionnaire): canonical |
|
|
|
118
121
|
|
|
119
122
|
return extension.valueCanonical;
|
|
120
123
|
}
|
|
124
|
+
|
|
125
|
+
function processAssembleContext(fhirQuestionnaire: FHIRQuestionnaire): string[] {
|
|
126
|
+
const extensions = fhirQuestionnaire.extension?.filter(
|
|
127
|
+
(ext) => ext.url === 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembleContext',
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
return (extensions ?? []).map((extension) => extension.valueString!);
|
|
131
|
+
}
|