sdc-qrf 0.3.26 → 0.3.28
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/extensions.d.ts +2 -1
- package/dist/converter/extensions.d.ts.map +1 -1
- package/dist/converter/extensions.js +4 -0
- package/dist/converter/extensions.js.map +1 -1
- package/dist/converter/fceToFhir/questionnaireResponse/processReference.d.ts.map +1 -1
- package/dist/converter/fceToFhir/questionnaireResponse/processReference.js +7 -9
- package/dist/converter/fceToFhir/questionnaireResponse/processReference.js.map +1 -1
- package/dist/converter/index.d.ts +1 -1
- package/dist/converter/index.d.ts.map +1 -1
- package/dist/converter/index.js +6 -2
- package/dist/converter/index.js.map +1 -1
- package/package.json +1 -1
- package/src/converter/__tests__/fce.test.ts +4 -0
- package/src/converter/__tests__/reference.test.ts +31 -0
- package/src/converter/__tests__/resources/questionnaire_fce/sub-questionnaire.json +22 -0
- package/src/converter/__tests__/resources/questionnaire_fhir/sub-questionnaire.json +32 -0
- package/src/converter/extensions.ts +4 -0
- package/src/converter/fceToFhir/questionnaireResponse/processReference.ts +11 -20
- package/src/converter/index.ts +7 -6
|
@@ -40,7 +40,8 @@ export declare enum ExtensionIdentifier {
|
|
|
40
40
|
HelpText = "https://beda.software/fhir-emr-questionnaire/help-text",
|
|
41
41
|
StopLabel = "https://beda.software/fhir-emr-questionnaire/slider-stop-label",
|
|
42
42
|
Macro = "https://beda.software/fhir-emr-questionnaire/macro",
|
|
43
|
-
RowsNumber = "https://beda.software/fhir-emr-questionnaire/rows-number"
|
|
43
|
+
RowsNumber = "https://beda.software/fhir-emr-questionnaire/rows-number",
|
|
44
|
+
SubQuestionnaire = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-subQuestionnaire"
|
|
44
45
|
}
|
|
45
46
|
export type ExtensionTransformer = {
|
|
46
47
|
[key in ExtensionIdentifier]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/converter/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExF,oBAAY,mBAAmB;IAC3B,MAAM,iEAAiE;IACvE,WAAW,sEAAsE;IACjF,eAAe,0EAA0E;IACzF,IAAI,+DAA+D;IACnE,UAAU,qEAAqE;IAC/E,iBAAiB,4EAA4E;IAC7F,WAAW,wDAAwD;IACnE,UAAU,kDAAkD;IAC5D,SAAS,+EAA+E;IACxF,KAAK,kDAAkD;IACvD,kBAAkB,wFAAwF;IAC1G,qBAAqB,2FAA2F;IAChH,QAAQ,qDAAqD;IAC7D,QAAQ,qDAAqD;IAC7D,WAAW,iFAAiF;IAC5F,WAAW,iFAAiF;IAC5F,gBAAgB,oDAAoD;IACpE,0BAA0B,gGAAgG;IAC1H,SAAS,+EAA+E;IACxF,eAAe,mDAAmD;IAClE,QAAQ,qDAAqD;IAC7D,iBAAiB,4EAA4E;IAC7F,qBAAqB,yEAAyE;IAC9F,aAAa,0EAA0E;IAEvF,qBAAqB,2FAA2F;IAChH,cAAc,qEAAqE;IACnF,iBAAiB,uFAAuF;IACxG,YAAY,kFAAkF;IAC9F,oBAAoB,0FAA0F;IAC9G,oBAAoB,0FAA0F;IAC9G,gBAAgB,sFAAsF;IACtG,aAAa,2DAA2D;IACxE,QAAQ,qDAAqD;IAE7D,iBAAiB,sEAAsE;IACvF,WAAW,8DAA8D;IACzE,UAAU,6DAA6D;IACvE,QAAQ,2DAA2D;IACnE,SAAS,mEAAmE;IAC5E,KAAK,uDAAuD;IAC5D,UAAU,6DAA6D;
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/converter/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExF,oBAAY,mBAAmB;IAC3B,MAAM,iEAAiE;IACvE,WAAW,sEAAsE;IACjF,eAAe,0EAA0E;IACzF,IAAI,+DAA+D;IACnE,UAAU,qEAAqE;IAC/E,iBAAiB,4EAA4E;IAC7F,WAAW,wDAAwD;IACnE,UAAU,kDAAkD;IAC5D,SAAS,+EAA+E;IACxF,KAAK,kDAAkD;IACvD,kBAAkB,wFAAwF;IAC1G,qBAAqB,2FAA2F;IAChH,QAAQ,qDAAqD;IAC7D,QAAQ,qDAAqD;IAC7D,WAAW,iFAAiF;IAC5F,WAAW,iFAAiF;IAC5F,gBAAgB,oDAAoD;IACpE,0BAA0B,gGAAgG;IAC1H,SAAS,+EAA+E;IACxF,eAAe,mDAAmD;IAClE,QAAQ,qDAAqD;IAC7D,iBAAiB,4EAA4E;IAC7F,qBAAqB,yEAAyE;IAC9F,aAAa,0EAA0E;IAEvF,qBAAqB,2FAA2F;IAChH,cAAc,qEAAqE;IACnF,iBAAiB,uFAAuF;IACxG,YAAY,kFAAkF;IAC9F,oBAAoB,0FAA0F;IAC9G,oBAAoB,0FAA0F;IAC9G,gBAAgB,sFAAsF;IACtG,aAAa,2DAA2D;IACxE,QAAQ,qDAAqD;IAE7D,iBAAiB,sEAAsE;IACvF,WAAW,8DAA8D;IACzE,UAAU,6DAA6D;IACvE,QAAQ,2DAA2D;IACnE,SAAS,mEAAmE;IAC5E,KAAK,uDAAuD;IAC5D,UAAU,6DAA6D;IACvE,gBAAgB,sFAAsF;CACzG;AAED,MAAM,MAAM,oBAAoB,GAAG;KAC9B,GAAG,IAAI,mBAAmB,GACrB;QACI,SAAS,EAAE;YACP,cAAc,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC;YAC3F,YAAY,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,aAAa,EAAE,CAAC;SACjE,CAAC;KACL,GACD;QACI,IAAI,EAAE;YACF,SAAS,EAAE,MAAM,aAAa,CAAC;YAC/B,aAAa,EAAE,MAAM,oBAAoB,CAAC;YAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;SAC1B,CAAC;KACL;CACV,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,oBAgPnC,CAAC"}
|
|
@@ -43,6 +43,7 @@ var ExtensionIdentifier;
|
|
|
43
43
|
ExtensionIdentifier["StopLabel"] = "https://beda.software/fhir-emr-questionnaire/slider-stop-label";
|
|
44
44
|
ExtensionIdentifier["Macro"] = "https://beda.software/fhir-emr-questionnaire/macro";
|
|
45
45
|
ExtensionIdentifier["RowsNumber"] = "https://beda.software/fhir-emr-questionnaire/rows-number";
|
|
46
|
+
ExtensionIdentifier["SubQuestionnaire"] = "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-subQuestionnaire";
|
|
46
47
|
})(ExtensionIdentifier || (exports.ExtensionIdentifier = ExtensionIdentifier = {}));
|
|
47
48
|
exports.extensionTransformers = {
|
|
48
49
|
[ExtensionIdentifier.Hidden]: {
|
|
@@ -66,6 +67,9 @@ exports.extensionTransformers = {
|
|
|
66
67
|
[ExtensionIdentifier.RowsNumber]: {
|
|
67
68
|
path: { extension: 'valueInteger', questionnaire: 'rowsNumber' },
|
|
68
69
|
},
|
|
70
|
+
[ExtensionIdentifier.SubQuestionnaire]: {
|
|
71
|
+
path: { extension: 'valueCanonical', questionnaire: 'subQuestionnaire' },
|
|
72
|
+
},
|
|
69
73
|
[ExtensionIdentifier.ReferenceResource]: {
|
|
70
74
|
transform: {
|
|
71
75
|
fromExtensions: (extensions) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/converter/extensions.ts"],"names":[],"mappings":";;;AAIA,IAAY,
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/converter/extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processReference.d.ts","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaireResponse/processReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,EAAE,qBAAqB,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"processReference.d.ts","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaireResponse/processReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,EAAE,qBAAqB,IAAI,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAGhG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,yBAAyB,CAgB3F"}
|
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.processReference = processReference;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const index_1 = require("../../index");
|
|
5
6
|
function processReference(fceQR) {
|
|
6
7
|
const { encounter, source, subject } = fceQR, commonProperties = tslib_1.__rest(fceQR, ["encounter", "source", "subject"]);
|
|
7
8
|
const fhirQuestionnaireResponse = commonProperties;
|
|
8
|
-
if (encounter
|
|
9
|
-
|
|
10
|
-
fhirQuestionnaireResponse.encounter = Object.assign({ reference: `${resourceType}/${id}` }, encounterProperties);
|
|
9
|
+
if (encounter) {
|
|
10
|
+
fhirQuestionnaireResponse.encounter = (0, index_1.toFHIRReference)(encounter);
|
|
11
11
|
}
|
|
12
|
-
if (source
|
|
13
|
-
|
|
14
|
-
fhirQuestionnaireResponse.source = Object.assign({ reference: `${resourceType}/${id}` }, sourceProperties);
|
|
12
|
+
if (source) {
|
|
13
|
+
fhirQuestionnaireResponse.source = (0, index_1.toFHIRReference)(source);
|
|
15
14
|
}
|
|
16
|
-
if (subject
|
|
17
|
-
|
|
18
|
-
fhirQuestionnaireResponse.subject = Object.assign({ reference: `${resourceType}/${id}` }, subjectProperties);
|
|
15
|
+
if (subject) {
|
|
16
|
+
fhirQuestionnaireResponse.subject = (0, index_1.toFHIRReference)(subject);
|
|
19
17
|
}
|
|
20
18
|
return fhirQuestionnaireResponse;
|
|
21
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processReference.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaireResponse/processReference.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"processReference.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaireResponse/processReference.ts"],"names":[],"mappings":";;AAKA,4CAgBC;;AAlBD,uCAA8C;AAE9C,SAAgB,gBAAgB,CAAC,KAA+B;IAC5D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,KAA0B,KAAK,EAA1B,gBAAgB,kBAAK,KAAK,EAA3D,kCAAmD,CAAQ,CAAC;IAClE,MAAM,yBAAyB,GAA8B,gBAA6C,CAAC;IAC3G,IAAI,SAAS,EAAE,CAAC;QACZ,yBAAyB,CAAC,SAAS,GAAG,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACT,yBAAyB,CAAC,MAAM,GAAG,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,yBAAyB,CAAC,OAAO,GAAG,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,yBAAyB,CAAC;AACrC,CAAC"}
|
|
@@ -9,6 +9,6 @@ export declare function convertToFHIRExtension(item: FCEQuestionnaireItem): FHIR
|
|
|
9
9
|
export declare function extractExtension(extension: FCEExtension[] | undefined, url: 'ex:createdAt'): string | undefined;
|
|
10
10
|
export declare function filterExtensions(item: FHIRQuestionnaireItem, url: string): FHIRExtension[] | undefined;
|
|
11
11
|
export declare function fromFHIRReference(r?: FHIRReference): InternalReference | undefined;
|
|
12
|
-
export declare function toFHIRReference(r?: InternalReference): FHIRReference | undefined;
|
|
12
|
+
export declare function toFHIRReference(r?: InternalReference | FHIRReference): FHIRReference | undefined;
|
|
13
13
|
export { toFirstClassExtension, toFirstClassExtensionV2, fromFirstClassExtension, fromFirstClassExtensionV2, processLaunchContextToFce, };
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,IAAI,aAAa,EAC1B,SAAS,IAAI,aAAa,EAC1B,iBAAiB,IAAI,qBAAqB,EAC7C,MAAM,UAAU,CAAC;AAElB,OAAO,EACH,SAAS,IAAI,YAAY,EACzB,iBAAiB,IAAI,oBAAoB,EACzC,iBAAiB,EACpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAChH,cAAc,SAAS,CAAC;AAExB,wBAAgB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,IAAI,aAAa,EAC1B,SAAS,IAAI,aAAa,EAC1B,iBAAiB,IAAI,qBAAqB,EAC7C,MAAM,UAAU,CAAC;AAElB,OAAO,EACH,SAAS,IAAI,YAAY,EACzB,iBAAiB,IAAI,oBAAoB,EACzC,iBAAiB,EACpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAChH,cAAc,SAAS,CAAC;AAExB,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAc/G;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,EAAE,CAqBlF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,cAAc,sBAE1F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,+BAExE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,iBAAiB,GAAG,SAAS,CA4BlF;AAED,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,CAgBhG;AAED,OAAO,EACH,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,GAC5B,CAAC"}
|
package/dist/converter/index.js
CHANGED
|
@@ -84,8 +84,12 @@ function toFHIRReference(r) {
|
|
|
84
84
|
if (!r) {
|
|
85
85
|
return undefined;
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
// @ts-expect-error(handles for both types of references)
|
|
88
|
+
const { id, resourceType, reference } = r, commonReferenceProperties = tslib_1.__rest(r, ["id", "resourceType", "reference"]);
|
|
89
|
+
// @ts-expect-error(resource is defined for internal reference only)
|
|
88
90
|
delete commonReferenceProperties.resource;
|
|
89
|
-
return Object.assign(Object.assign({}, commonReferenceProperties), {
|
|
91
|
+
return Object.assign(Object.assign({}, commonReferenceProperties), {
|
|
92
|
+
// This function will work both with FHIR and Aidbox references
|
|
93
|
+
reference: reference !== null && reference !== void 0 ? reference : `${resourceType}/${id}` });
|
|
90
94
|
}
|
|
91
95
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converter/index.ts"],"names":[],"mappings":";;;AAkBA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converter/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -33,6 +33,7 @@ import fce_source_queries from './resources/questionnaire_fce/source_queries.jso
|
|
|
33
33
|
import fce_unit_option from './resources/questionnaire_fce/unit-option.json';
|
|
34
34
|
import fce_vitals from './resources/questionnaire_fce/vitals.json';
|
|
35
35
|
import fce_variable from './resources/questionnaire_fce/variable.json';
|
|
36
|
+
import fce_sub_questionnaire from './resources/questionnaire_fce/sub-questionnaire.json';
|
|
36
37
|
// fhir questionnaire
|
|
37
38
|
import fhir_allergies from './resources/questionnaire_fhir/allergies.json';
|
|
38
39
|
import fhir_beverages from './resources/questionnaire_fhir/beverages.json';
|
|
@@ -60,6 +61,7 @@ import fhir_source_queries from './resources/questionnaire_fhir/source_queries.j
|
|
|
60
61
|
import fhir_unit_option from './resources/questionnaire_fhir/unit-option.json';
|
|
61
62
|
import fhir_vitals from './resources/questionnaire_fhir/vitals.json';
|
|
62
63
|
import fhir_variable from './resources/questionnaire_fhir/variable.json';
|
|
64
|
+
import fhir_sub_questionnaire from './resources/questionnaire_fhir/sub-questionnaire.json';
|
|
63
65
|
// fce questionnaire response
|
|
64
66
|
import fce_allergies_inprogress_qr from './resources/questionnaire_response_fce/allergies_inprogress.json';
|
|
65
67
|
import fce_cardiology_qr from './resources/questionnaire_response_fce/cardiology.json';
|
|
@@ -121,6 +123,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
|
|
|
121
123
|
[fhir_constraint, fce_constraint],
|
|
122
124
|
[fhir_unit_option, fce_unit_option],
|
|
123
125
|
[fhir_variable, fce_variable],
|
|
126
|
+
[fhir_sub_questionnaire, fce_sub_questionnaire],
|
|
124
127
|
])('Each FHIR Questionnaire should convert to FCE', async (fhir_questionnaire, fce_questionnaire) => {
|
|
125
128
|
expect(toFirstClassExtension(fhir_questionnaire as FHIRQuestionnaire)).toStrictEqual(fce_questionnaire);
|
|
126
129
|
});
|
|
@@ -152,6 +155,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
|
|
|
152
155
|
[fce_constraint, fhir_constraint],
|
|
153
156
|
[fce_unit_option, fhir_unit_option],
|
|
154
157
|
[fce_variable, fhir_variable],
|
|
158
|
+
[fce_sub_questionnaire, fhir_sub_questionnaire],
|
|
155
159
|
])('Each FCE Questionnaire should convert to FHIR', async (fce_questionnaire, fhir_questionnaire) => {
|
|
156
160
|
expect(sortExtensionsList(fromFirstClassExtension(fce_questionnaire as FCEQuestionnaire))).toStrictEqual(
|
|
157
161
|
sortExtensionsList(fhir_questionnaire),
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
2
|
+
import { Reference } from 'fhir/r4';
|
|
3
|
+
import { InternalReference } from '@beda.software/aidbox-types';
|
|
4
|
+
import { toFHIRReference } from '../index';
|
|
5
|
+
|
|
6
|
+
describe('toFHIRReference', () => {
|
|
7
|
+
test('should convert Aidbox reference to FHIR reference', () => {
|
|
8
|
+
const sourceReference: InternalReference = {
|
|
9
|
+
id: '123',
|
|
10
|
+
resourceType: 'Patient',
|
|
11
|
+
display: 'John Doe',
|
|
12
|
+
};
|
|
13
|
+
const actualReference = toFHIRReference(sourceReference);
|
|
14
|
+
expect(actualReference).toEqual({
|
|
15
|
+
reference: 'Patient/123',
|
|
16
|
+
display: 'John Doe',
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test('should convert FHIR reference to FHIR reference', () => {
|
|
21
|
+
const sourceReference: Reference = {
|
|
22
|
+
reference: 'Patient/123',
|
|
23
|
+
display: 'John Doe',
|
|
24
|
+
};
|
|
25
|
+
const actualReference = toFHIRReference(sourceReference);
|
|
26
|
+
expect(actualReference).toEqual({
|
|
27
|
+
reference: 'Patient/123',
|
|
28
|
+
display: 'John Doe',
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subjectType": ["Encounter", "Patient"],
|
|
3
|
+
"meta": {
|
|
4
|
+
"profile": ["https://emr-core.beda.software/StructureDefinition/fhir-emr-questionnaire"],
|
|
5
|
+
"lastUpdated": "2023-04-10T03:43:34.792167Z",
|
|
6
|
+
"versionId": "694"
|
|
7
|
+
},
|
|
8
|
+
"name": "SubQuestionnaire",
|
|
9
|
+
"item": [
|
|
10
|
+
{
|
|
11
|
+
"text": "SubQuestionnaire",
|
|
12
|
+
"type": "group",
|
|
13
|
+
"linkId": "sub-questionnaire",
|
|
14
|
+
"subQuestionnaire": "allergies"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"assembledFrom": "sub-questionnaire",
|
|
18
|
+
"resourceType": "Questionnaire",
|
|
19
|
+
"status": "active",
|
|
20
|
+
"id": "sub-questionnaire",
|
|
21
|
+
"url": "https://aidbox.emr.beda.software/ui/console#/entities/Questionnaire/sub-questionnaire"
|
|
22
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subjectType": ["Encounter", "Patient"],
|
|
3
|
+
"meta": {
|
|
4
|
+
"profile": ["https://emr-core.beda.software/StructureDefinition/fhir-emr-questionnaire"],
|
|
5
|
+
"lastUpdated": "2023-04-10T03:43:34.792167Z",
|
|
6
|
+
"versionId": "694"
|
|
7
|
+
},
|
|
8
|
+
"name": "SubQuestionnaire",
|
|
9
|
+
"item": [
|
|
10
|
+
{
|
|
11
|
+
"text": "SubQuestionnaire",
|
|
12
|
+
"type": "group",
|
|
13
|
+
"extension": [
|
|
14
|
+
{
|
|
15
|
+
"url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-subQuestionnaire",
|
|
16
|
+
"valueCanonical": "allergies"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"linkId": "sub-questionnaire"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"resourceType": "Questionnaire",
|
|
23
|
+
"extension": [
|
|
24
|
+
{
|
|
25
|
+
"url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-assembledFrom",
|
|
26
|
+
"valueCanonical": "sub-questionnaire"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"status": "active",
|
|
30
|
+
"id": "sub-questionnaire",
|
|
31
|
+
"url": "https://aidbox.emr.beda.software/ui/console#/entities/Questionnaire/sub-questionnaire"
|
|
32
|
+
}
|
|
@@ -45,6 +45,7 @@ export enum ExtensionIdentifier {
|
|
|
45
45
|
StopLabel = 'https://beda.software/fhir-emr-questionnaire/slider-stop-label',
|
|
46
46
|
Macro = 'https://beda.software/fhir-emr-questionnaire/macro',
|
|
47
47
|
RowsNumber = 'https://beda.software/fhir-emr-questionnaire/rows-number',
|
|
48
|
+
SubQuestionnaire = 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-subQuestionnaire',
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
export type ExtensionTransformer = {
|
|
@@ -86,6 +87,9 @@ export const extensionTransformers: ExtensionTransformer = {
|
|
|
86
87
|
[ExtensionIdentifier.RowsNumber]: {
|
|
87
88
|
path: { extension: 'valueInteger', questionnaire: 'rowsNumber' },
|
|
88
89
|
},
|
|
90
|
+
[ExtensionIdentifier.SubQuestionnaire]: {
|
|
91
|
+
path: { extension: 'valueCanonical', questionnaire: 'subQuestionnaire' },
|
|
92
|
+
},
|
|
89
93
|
[ExtensionIdentifier.ReferenceResource]: {
|
|
90
94
|
transform: {
|
|
91
95
|
fromExtensions: (extensions) => {
|
|
@@ -1,31 +1,22 @@
|
|
|
1
1
|
import { QuestionnaireResponse as FHIRQuestionnaireResponse } from 'fhir/r4b';
|
|
2
2
|
|
|
3
3
|
import { QuestionnaireResponse as FCEQuestionnaireResponse } from '@beda.software/aidbox-types';
|
|
4
|
+
import { toFHIRReference } from '../../index';
|
|
4
5
|
|
|
5
6
|
export function processReference(fceQR: FCEQuestionnaireResponse): FHIRQuestionnaireResponse {
|
|
6
7
|
const { encounter, source, subject, ...commonProperties } = fceQR;
|
|
7
|
-
const fhirQuestionnaireResponse: FHIRQuestionnaireResponse =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const { id, resourceType, ...encounterProperties } = encounter;
|
|
11
|
-
fhirQuestionnaireResponse.encounter = {
|
|
12
|
-
reference: `${resourceType}/${id}`,
|
|
13
|
-
...encounterProperties,
|
|
14
|
-
};
|
|
8
|
+
const fhirQuestionnaireResponse: FHIRQuestionnaireResponse = commonProperties as FHIRQuestionnaireResponse;
|
|
9
|
+
if (encounter) {
|
|
10
|
+
fhirQuestionnaireResponse.encounter = toFHIRReference(encounter);
|
|
15
11
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
fhirQuestionnaireResponse.source =
|
|
19
|
-
reference: `${resourceType}/${id}`,
|
|
20
|
-
...sourceProperties,
|
|
21
|
-
};
|
|
12
|
+
|
|
13
|
+
if (source) {
|
|
14
|
+
fhirQuestionnaireResponse.source = toFHIRReference(source);
|
|
22
15
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
fhirQuestionnaireResponse.subject =
|
|
26
|
-
reference: `${resourceType}/${id}`,
|
|
27
|
-
...subjectProperties,
|
|
28
|
-
};
|
|
16
|
+
|
|
17
|
+
if (subject) {
|
|
18
|
+
fhirQuestionnaireResponse.subject = toFHIRReference(subject);
|
|
29
19
|
}
|
|
20
|
+
|
|
30
21
|
return fhirQuestionnaireResponse;
|
|
31
22
|
}
|
package/src/converter/index.ts
CHANGED
|
@@ -16,9 +16,7 @@ import { toFirstClassExtension, toFirstClassExtensionV2 } from './fhirToFce';
|
|
|
16
16
|
import { processLaunchContext as processLaunchContextToFce } from './fhirToFce/questionnaire/processExtensions';
|
|
17
17
|
export * from './utils';
|
|
18
18
|
|
|
19
|
-
export function convertFromFHIRExtension(
|
|
20
|
-
extensions: FHIRExtension[],
|
|
21
|
-
): Partial<FCEQuestionnaireItem> | undefined {
|
|
19
|
+
export function convertFromFHIRExtension(extensions: FHIRExtension[]): Partial<FCEQuestionnaireItem> | undefined {
|
|
22
20
|
const identifier = extensions[0]!.url;
|
|
23
21
|
const transformer = extensionTransformers[identifier as ExtensionIdentifier];
|
|
24
22
|
if (transformer !== undefined) {
|
|
@@ -95,18 +93,21 @@ export function fromFHIRReference(r?: FHIRReference): InternalReference | undefi
|
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
95
|
|
|
98
|
-
export function toFHIRReference(r?: InternalReference): FHIRReference | undefined {
|
|
96
|
+
export function toFHIRReference(r?: InternalReference | FHIRReference): FHIRReference | undefined {
|
|
99
97
|
if (!r) {
|
|
100
98
|
return undefined;
|
|
101
99
|
}
|
|
102
100
|
|
|
103
|
-
|
|
101
|
+
// @ts-expect-error(handles for both types of references)
|
|
102
|
+
const { id, resourceType, reference, ...commonReferenceProperties } = r;
|
|
104
103
|
|
|
104
|
+
// @ts-expect-error(resource is defined for internal reference only)
|
|
105
105
|
delete commonReferenceProperties.resource;
|
|
106
106
|
|
|
107
107
|
return {
|
|
108
108
|
...commonReferenceProperties,
|
|
109
|
-
|
|
109
|
+
// This function will work both with FHIR and Aidbox references
|
|
110
|
+
reference: reference ?? `${resourceType}/${id}`,
|
|
110
111
|
};
|
|
111
112
|
}
|
|
112
113
|
|