sdc-qrf 0.3.13 → 0.3.15
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/converter/extensions.d.ts +1 -0
- package/lib/converter/extensions.js +4 -0
- package/lib/converter/extensions.js.map +1 -1
- package/lib/converter/fceToFhir/index.d.ts +2 -0
- package/lib/converter/fceToFhir/index.js +10 -1
- package/lib/converter/fceToFhir/index.js.map +1 -1
- package/lib/converter/fceToFhir/questionnaire/index.d.ts +1 -1
- package/lib/converter/fceToFhir/questionnaire/index.js +7 -3
- package/lib/converter/fceToFhir/questionnaire/index.js.map +1 -1
- package/lib/converter/fceToFhir/questionnaire/processExtensions.js +1 -0
- package/lib/converter/fceToFhir/questionnaire/processExtensions.js.map +1 -1
- package/lib/converter/fceToFhir/questionnaire/processItems.d.ts +1 -1
- package/lib/converter/fceToFhir/questionnaire/processItems.js +9 -5
- package/lib/converter/fceToFhir/questionnaire/processItems.js.map +1 -1
- package/lib/converter/fhirToFce/index.d.ts +2 -0
- package/lib/converter/fhirToFce/index.js +13 -2
- package/lib/converter/fhirToFce/index.js.map +1 -1
- package/lib/converter/fhirToFce/questionnaire/index.d.ts +1 -1
- package/lib/converter/fhirToFce/questionnaire/index.js +3 -3
- package/lib/converter/fhirToFce/questionnaire/index.js.map +1 -1
- package/lib/converter/fhirToFce/questionnaire/processExtensions.js +2 -1
- package/lib/converter/fhirToFce/questionnaire/processExtensions.js.map +1 -1
- package/lib/converter/fhirToFce/questionnaire/processItems.d.ts +1 -1
- package/lib/converter/fhirToFce/questionnaire/processItems.js +11 -9
- package/lib/converter/fhirToFce/questionnaire/processItems.js.map +1 -1
- package/lib/converter/fhirToFce/utils.js +5 -2
- package/lib/converter/fhirToFce/utils.js.map +1 -1
- package/lib/converter/index.d.ts +3 -3
- package/lib/converter/index.js +3 -1
- package/lib/converter/index.js.map +1 -1
- package/package.json +3 -3
- package/src/converter/__tests__/resources/questionnaire_fce/encounter_create.json +7 -0
- package/src/converter/__tests__/resources/questionnaire_fhir/encounter_create.json +10 -0
- package/src/converter/extensions.ts +4 -0
- package/src/converter/fceToFhir/index.ts +15 -0
- package/src/converter/fceToFhir/questionnaire/index.ts +10 -3
- package/src/converter/fceToFhir/questionnaire/processExtensions.ts +1 -0
- package/src/converter/fceToFhir/questionnaire/processItems.ts +12 -5
- package/src/converter/fhirToFce/index.ts +18 -1
- package/src/converter/fhirToFce/questionnaire/index.ts +6 -3
- package/src/converter/fhirToFce/questionnaire/processExtensions.ts +3 -1
- package/src/converter/fhirToFce/questionnaire/processItems.ts +16 -9
- package/src/converter/fhirToFce/utils.ts +4 -1
- package/src/converter/index.ts +9 -3
|
@@ -3,6 +3,7 @@ import { QuestionnaireItem as FCEQuestionnaireItem } from 'shared/src/contrib/ai
|
|
|
3
3
|
export declare enum ExtensionIdentifier {
|
|
4
4
|
Hidden = "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden",
|
|
5
5
|
ItemControl = "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
|
|
6
|
+
ReadOnlyItemControl = "https://beda.software/fhir-emr-questionnaire/readOnlyItemControl",
|
|
6
7
|
SliderStepValue = "http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue",
|
|
7
8
|
Unit = "http://hl7.org/fhir/StructureDefinition/questionnaire-unit",
|
|
8
9
|
UnitOption = "http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption",
|
|
@@ -5,6 +5,7 @@ var ExtensionIdentifier;
|
|
|
5
5
|
(function (ExtensionIdentifier) {
|
|
6
6
|
ExtensionIdentifier["Hidden"] = "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden";
|
|
7
7
|
ExtensionIdentifier["ItemControl"] = "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl";
|
|
8
|
+
ExtensionIdentifier["ReadOnlyItemControl"] = "https://beda.software/fhir-emr-questionnaire/readOnlyItemControl";
|
|
8
9
|
ExtensionIdentifier["SliderStepValue"] = "http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue";
|
|
9
10
|
ExtensionIdentifier["Unit"] = "http://hl7.org/fhir/StructureDefinition/questionnaire-unit";
|
|
10
11
|
ExtensionIdentifier["UnitOption"] = "http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption";
|
|
@@ -50,6 +51,9 @@ exports.extensionTransformers = {
|
|
|
50
51
|
[ExtensionIdentifier.ItemControl]: {
|
|
51
52
|
path: { extension: 'valueCodeableConcept', questionnaire: 'itemControl' },
|
|
52
53
|
},
|
|
54
|
+
[ExtensionIdentifier.ReadOnlyItemControl]: {
|
|
55
|
+
path: { extension: 'valueCodeableConcept', questionnaire: 'readOnlyItemControl' },
|
|
56
|
+
},
|
|
53
57
|
[ExtensionIdentifier.SliderStepValue]: {
|
|
54
58
|
path: { extension: 'valueInteger', questionnaire: 'sliderStepValue' },
|
|
55
59
|
},
|
|
@@ -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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"}
|
|
@@ -2,3 +2,5 @@ import { Questionnaire as FHIRQuestionnaire, QuestionnaireResponse as FHIRQuesti
|
|
|
2
2
|
import { Questionnaire as FCEQuestionnaire, QuestionnaireResponse as FCEQuestionnaireResponse } from 'shared/src/contrib/aidbox';
|
|
3
3
|
export declare function fromFirstClassExtension(fceQuestionnaireResponse: FCEQuestionnaireResponse): FHIRQuestionnaireResponse;
|
|
4
4
|
export declare function fromFirstClassExtension(fceQuestionnaire: FCEQuestionnaire): FHIRQuestionnaire;
|
|
5
|
+
export declare function fromFirstClassExtensionV2(fceQuestionnaireResponse: FCEQuestionnaireResponse): FHIRQuestionnaireResponse;
|
|
6
|
+
export declare function fromFirstClassExtensionV2(fceQuestionnaire: FCEQuestionnaire): FHIRQuestionnaire;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromFirstClassExtension = void 0;
|
|
3
|
+
exports.fromFirstClassExtensionV2 = exports.fromFirstClassExtension = void 0;
|
|
4
4
|
const questionnaire_1 = require("./questionnaire");
|
|
5
5
|
const questionnaireResponse_1 = require("./questionnaireResponse");
|
|
6
6
|
function fromFirstClassExtension(fceResource) {
|
|
@@ -12,4 +12,13 @@ function fromFirstClassExtension(fceResource) {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
exports.fromFirstClassExtension = fromFirstClassExtension;
|
|
15
|
+
function fromFirstClassExtensionV2(fceResource) {
|
|
16
|
+
switch (fceResource.resourceType) {
|
|
17
|
+
case 'Questionnaire':
|
|
18
|
+
return (0, questionnaire_1.convertQuestionnaire)(fceResource, true);
|
|
19
|
+
case 'QuestionnaireResponse':
|
|
20
|
+
return (0, questionnaireResponse_1.convertQuestionnaireResponse)(fceResource);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.fromFirstClassExtensionV2 = fromFirstClassExtensionV2;
|
|
15
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/fceToFhir/index.ts"],"names":[],"mappings":";;;AAUA,mDAAuD;AACvD,mEAAuE;AAMvE,SAAgB,uBAAuB,CACnC,WAAwD;IAExD,QAAQ,WAAW,CAAC,YAAY,EAAE;QAC9B,KAAK,eAAe;YAChB,OAAO,IAAA,oCAAoB,EAAC,WAAW,CAAC,CAAC;QAC7C,KAAK,uBAAuB;YACxB,OAAO,IAAA,oDAA4B,EAAC,WAAW,CAAC,CAAC;KACxD;AACL,CAAC;AATD,0DASC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/fceToFhir/index.ts"],"names":[],"mappings":";;;AAUA,mDAAuD;AACvD,mEAAuE;AAMvE,SAAgB,uBAAuB,CACnC,WAAwD;IAExD,QAAQ,WAAW,CAAC,YAAY,EAAE;QAC9B,KAAK,eAAe;YAChB,OAAO,IAAA,oCAAoB,EAAC,WAAW,CAAC,CAAC;QAC7C,KAAK,uBAAuB;YACxB,OAAO,IAAA,oDAA4B,EAAC,WAAW,CAAC,CAAC;KACxD;AACL,CAAC;AATD,0DASC;AAMD,SAAgB,yBAAyB,CACrC,WAAwD;IAExD,QAAQ,WAAW,CAAC,YAAY,EAAE;QAC9B,KAAK,eAAe;YAChB,OAAO,IAAA,oCAAoB,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACnD,KAAK,uBAAuB;YACxB,OAAO,IAAA,oDAA4B,EAAC,WAAW,CAAC,CAAC;KACxD;AACL,CAAC;AATD,8DASC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Questionnaire as FHIRQuestionnaire } from 'fhir/r4b';
|
|
2
2
|
import { Questionnaire as FCEQuestionnaire } from 'shared/src/contrib/aidbox';
|
|
3
|
-
export declare function convertQuestionnaire(questionnaire: FCEQuestionnaire): FHIRQuestionnaire;
|
|
3
|
+
export declare function convertQuestionnaire(questionnaire: FCEQuestionnaire, onlyExtensions?: boolean): FHIRQuestionnaire;
|
|
@@ -6,11 +6,15 @@ const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
|
|
|
6
6
|
const processExtensions_1 = require("./processExtensions");
|
|
7
7
|
const processItems_1 = require("./processItems");
|
|
8
8
|
const processMeta_1 = require("./processMeta");
|
|
9
|
-
function convertQuestionnaire(questionnaire) {
|
|
9
|
+
function convertQuestionnaire(questionnaire, onlyExtensions = false) {
|
|
10
10
|
var _a;
|
|
11
11
|
questionnaire = (0, cloneDeep_1.default)(questionnaire);
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
if (!onlyExtensions) {
|
|
13
|
+
questionnaire.meta = questionnaire.meta
|
|
14
|
+
? (0, processMeta_1.processMeta)(questionnaire.meta)
|
|
15
|
+
: questionnaire.meta;
|
|
16
|
+
}
|
|
17
|
+
questionnaire.item = (0, processItems_1.processItems)((_a = questionnaire.item) !== null && _a !== void 0 ? _a : [], onlyExtensions);
|
|
14
18
|
return (0, processExtensions_1.processExtensions)(questionnaire);
|
|
15
19
|
}
|
|
16
20
|
exports.convertQuestionnaire = convertQuestionnaire;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/index.ts"],"names":[],"mappings":";;;;AACA,yEAAyC;AAIzC,2DAAwD;AACxD,iDAA8C;AAC9C,+CAA4C;AAE5C,SAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/index.ts"],"names":[],"mappings":";;;;AACA,yEAAyC;AAIzC,2DAAwD;AACxD,iDAA8C;AAC9C,+CAA4C;AAE5C,SAAgB,oBAAoB,CAChC,aAA+B,EAC/B,cAAc,GAAG,KAAK;;IAEtB,aAAa,GAAG,IAAA,mBAAS,EAAC,aAAa,CAAC,CAAC;IACzC,IAAI,CAAC,cAAc,EAAE;QACjB,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;YACnC,CAAC,CAAC,IAAA,yBAAW,EAAC,aAAa,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;KAC5B;IACD,aAAa,CAAC,IAAI,GAAG,IAAA,2BAAY,EAAC,MAAA,aAAa,CAAC,IAAI,mCAAI,EAAE,EAAE,cAAc,CAAC,CAAC;IAC5E,OAAO,IAAA,qCAAiB,EAAC,aAAa,CAAsB,CAAC;AACjE,CAAC;AAZD,oDAYC"}
|
|
@@ -34,6 +34,7 @@ function processExtensions(questionnaire) {
|
|
|
34
34
|
}
|
|
35
35
|
if (mapping) {
|
|
36
36
|
extensions = extensions.concat(mapping.map((m) => ({
|
|
37
|
+
// url: 'https://emr.beda.software/StructureDefinition/questionnaire-mapper',
|
|
37
38
|
url: 'http://beda.software/fhir-extensions/questionnaire-mapper',
|
|
38
39
|
valueReference: {
|
|
39
40
|
reference: `Mapping/${m.id}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processExtensions.ts"],"names":[],"mappings":";;;;AAIA,SAAgB,iBAAiB,CAAC,aAA+B;;IAC7D,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,KAC7D,aAAa,EADqD,iBAAiB,kBACnF,aAAa,EADX,mEAAmF,CACxE,CAAC;IAElB,IAAI,UAAU,GAAoB,EAAE,CAAC;IAErC,IAAI,aAAa,EAAE;QACf,KAAK,MAAM,iBAAiB,IAAI,aAAa,EAAE;YAC3C,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACxC,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;YAClD,MAAM,sBAAsB,GAAoB;gBAC5C;oBACI,GAAG,EAAE,MAAM;oBACX,WAAW,EAAE,IAAI;iBACpB;aACJ,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE;gBACnC,sBAAsB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;aACrE;YAED,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC3B,sBAAsB,CAAC,IAAI,CAAC;oBACxB,GAAG,EAAE,aAAa;oBAClB,WAAW,EAAE,WAAW;iBAC3B,CAAC,CAAC;aACN;YAED,UAAU,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,gFAAgF;gBACrF,SAAS,EAAE,sBAAsB;aACpC,CAAC,CAAC;SACN;KACJ;IAED,IAAI,OAAO,EAAE;QACT,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,EAAE,2DAA2D;YAChE,cAAc,EAAE;gBACZ,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE;aAC/B;SACJ,CAAC,CAAC,CACN,CAAC;KACL;IAED,IAAI,aAAa,EAAE;QACf,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,gFAAgF;YACrF,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;SACrD,CAAC,CAAC,CACN,CAAC;KACL;IAED,IAAI,kBAAkB,EAAE;QACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,kBAAkB,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,EAAE,qFAAqF;YAC1F,cAAc,EAAE,qBAAqB;SACxC,CAAC,CAAC,CACN,CAAC;KACL;IAED,IAAI,UAAU,CAAC,MAAM,EAAE;QACnB,iBAAiB,CAAC,SAAS,GAAG,CAAC,MAAA,iBAAiB,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACxF;IAED,OAAO,iBAAsC,CAAC;AAClD,CAAC;
|
|
1
|
+
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processExtensions.ts"],"names":[],"mappings":";;;;AAIA,SAAgB,iBAAiB,CAAC,aAA+B;;IAC7D,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,KAC7D,aAAa,EADqD,iBAAiB,kBACnF,aAAa,EADX,mEAAmF,CACxE,CAAC;IAElB,IAAI,UAAU,GAAoB,EAAE,CAAC;IAErC,IAAI,aAAa,EAAE;QACf,KAAK,MAAM,iBAAiB,IAAI,aAAa,EAAE;YAC3C,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACxC,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;YAClD,MAAM,sBAAsB,GAAoB;gBAC5C;oBACI,GAAG,EAAE,MAAM;oBACX,WAAW,EAAE,IAAI;iBACpB;aACJ,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE;gBACnC,sBAAsB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;aACrE;YAED,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC3B,sBAAsB,CAAC,IAAI,CAAC;oBACxB,GAAG,EAAE,aAAa;oBAClB,WAAW,EAAE,WAAW;iBAC3B,CAAC,CAAC;aACN;YAED,UAAU,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,gFAAgF;gBACrF,SAAS,EAAE,sBAAsB;aACpC,CAAC,CAAC;SACN;KACJ;IAED,IAAI,OAAO,EAAE;QACT,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,6EAA6E;YAC7E,GAAG,EAAE,2DAA2D;YAChE,cAAc,EAAE;gBACZ,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE;aAC/B;SACJ,CAAC,CAAC,CACN,CAAC;KACL;IAED,IAAI,aAAa,EAAE;QACf,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,gFAAgF;YACrF,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;SACrD,CAAC,CAAC,CACN,CAAC;KACL;IAED,IAAI,kBAAkB,EAAE;QACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,kBAAkB,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,EAAE,qFAAqF;YAC1F,cAAc,EAAE,qBAAqB;SACxC,CAAC,CAAC,CACN,CAAC;KACL;IAED,IAAI,UAAU,CAAC,MAAM,EAAE;QACnB,iBAAiB,CAAC,SAAS,GAAG,CAAC,MAAA,iBAAiB,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACxF;IAED,OAAO,iBAAsC,CAAC;AAClD,CAAC;AAvED,8CAuEC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { QuestionnaireItem as FHIRQuestionnaireItem } from 'fhir/r4b';
|
|
2
2
|
import { QuestionnaireItem as FCEQuestionnaireItem } from 'shared/src/contrib/aidbox';
|
|
3
|
-
export declare function processItems(items: FCEQuestionnaireItem[]): FHIRQuestionnaireItem[];
|
|
3
|
+
export declare function processItems(items: FCEQuestionnaireItem[], onlyExtensions?: boolean): FHIRQuestionnaireItem[];
|
|
@@ -4,7 +4,7 @@ exports.processItems = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
6
6
|
const __1 = require("../..");
|
|
7
|
-
function processItems(items) {
|
|
7
|
+
function processItems(items, onlyExtensions = false) {
|
|
8
8
|
return items.map((item) => {
|
|
9
9
|
const extensions = (0, __1.convertToFHIRExtension)(item);
|
|
10
10
|
if (extensions.length > 0) {
|
|
@@ -32,19 +32,23 @@ function processItems(items) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
if (answerOption !== undefined) {
|
|
35
|
-
fhirItem.answerOption =
|
|
35
|
+
fhirItem.answerOption = onlyExtensions
|
|
36
|
+
? answerOption
|
|
37
|
+
: processAnswerOption(answerOption);
|
|
36
38
|
}
|
|
37
39
|
if (enableBehavior !== undefined) {
|
|
38
40
|
fhirItem.enableBehavior = enableBehavior;
|
|
39
41
|
}
|
|
40
42
|
if (enableWhen !== undefined) {
|
|
41
|
-
fhirItem.enableWhen =
|
|
43
|
+
fhirItem.enableWhen = onlyExtensions
|
|
44
|
+
? enableWhen
|
|
45
|
+
: processEnableWhen(enableWhen);
|
|
42
46
|
}
|
|
43
47
|
if (initial) {
|
|
44
|
-
fhirItem.initial = processInitial(initial);
|
|
48
|
+
fhirItem.initial = onlyExtensions ? initial : processInitial(initial);
|
|
45
49
|
}
|
|
46
50
|
if (nestedItems) {
|
|
47
|
-
fhirItem.item = processItems(nestedItems);
|
|
51
|
+
fhirItem.item = processItems(nestedItems, onlyExtensions);
|
|
48
52
|
}
|
|
49
53
|
return fhirItem;
|
|
50
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processItems.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processItems.ts"],"names":[],"mappings":";;;;AAOA,4DAAuB;AAUvB,6BAA0F;AAE1F,SAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"processItems.js","sourceRoot":"","sources":["../../../../src/converter/fceToFhir/questionnaire/processItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,3 +2,5 @@ import { Questionnaire as FHIRQuestionnaire, QuestionnaireResponse as FHIRQuesti
|
|
|
2
2
|
import { Questionnaire as FCEQuestionnaire, QuestionnaireResponse as FCEQuestionnaireResponse } from 'shared/src/contrib/aidbox';
|
|
3
3
|
export declare function toFirstClassExtension(fhirQuestionnaireResponse: FHIRQuestionnaireResponse): FCEQuestionnaireResponse;
|
|
4
4
|
export declare function toFirstClassExtension(fhirQuestionnaire: FHIRQuestionnaire): FCEQuestionnaire;
|
|
5
|
+
export declare function toFirstClassExtensionV2(fhirQuestionnaireResponse: FHIRQuestionnaireResponse): FCEQuestionnaireResponse;
|
|
6
|
+
export declare function toFirstClassExtensionV2(fhirQuestionnaire: FHIRQuestionnaire): FCEQuestionnaire;
|
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toFirstClassExtension = void 0;
|
|
3
|
+
exports.toFirstClassExtensionV2 = exports.toFirstClassExtension = void 0;
|
|
4
4
|
const questionnaire_1 = require("./questionnaire");
|
|
5
5
|
const questionnaireResponse_1 = require("./questionnaireResponse");
|
|
6
6
|
function toFirstClassExtension(fhirResource) {
|
|
7
7
|
switch (fhirResource.resourceType) {
|
|
8
8
|
case 'Questionnaire':
|
|
9
|
-
return (0, questionnaire_1.convertQuestionnaire)(fhirResource);
|
|
9
|
+
return (0, questionnaire_1.convertQuestionnaire)(fhirResource, false);
|
|
10
10
|
case 'QuestionnaireResponse':
|
|
11
11
|
return (0, questionnaireResponse_1.convertQuestionnaireResponse)(fhirResource);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
exports.toFirstClassExtension = toFirstClassExtension;
|
|
15
|
+
function toFirstClassExtensionV2(fhirResource) {
|
|
16
|
+
// The new versions does not convert unions and references
|
|
17
|
+
// NOTE: The return type in that case is not fully compatible with Aidbox Questionnaire
|
|
18
|
+
switch (fhirResource.resourceType) {
|
|
19
|
+
case 'Questionnaire':
|
|
20
|
+
return (0, questionnaire_1.convertQuestionnaire)(fhirResource, true);
|
|
21
|
+
case 'QuestionnaireResponse':
|
|
22
|
+
return (0, questionnaireResponse_1.convertQuestionnaireResponse)(fhirResource);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.toFirstClassExtensionV2 = toFirstClassExtensionV2;
|
|
15
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/fhirToFce/index.ts"],"names":[],"mappings":";;;AAUA,mDAAuD;AACvD,mEAAuE;AAMvE,SAAgB,qBAAqB,CACjC,YAA2D;IAE3D,QAAQ,YAAY,CAAC,YAAY,EAAE;QAC/B,KAAK,eAAe;YAChB,OAAO,IAAA,oCAAoB,EAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/fhirToFce/index.ts"],"names":[],"mappings":";;;AAUA,mDAAuD;AACvD,mEAAuE;AAMvE,SAAgB,qBAAqB,CACjC,YAA2D;IAE3D,QAAQ,YAAY,CAAC,YAAY,EAAE;QAC/B,KAAK,eAAe;YAChB,OAAO,IAAA,oCAAoB,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,uBAAuB;YACxB,OAAO,IAAA,oDAA4B,EAAC,YAAY,CAAC,CAAC;KACzD;AACL,CAAC;AATD,sDASC;AAMD,SAAgB,uBAAuB,CACnC,YAA2D;IAE3D,0DAA0D;IAC1D,uFAAuF;IACvF,QAAQ,YAAY,CAAC,YAAY,EAAE;QAC/B,KAAK,eAAe;YAChB,OAAO,IAAA,oCAAoB,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACpD,KAAK,uBAAuB;YACxB,OAAO,IAAA,oDAA4B,EAAC,YAAY,CAAC,CAAC;KACzD;AACL,CAAC;AAXD,0DAWC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Questionnaire as FHIRQuestionnaire } from 'fhir/r4b';
|
|
2
2
|
import { Questionnaire as FCEQuestionnaire } from 'shared/src/contrib/aidbox';
|
|
3
|
-
export declare function convertQuestionnaire(fhirQuestionnaire: FHIRQuestionnaire): FCEQuestionnaire;
|
|
3
|
+
export declare function convertQuestionnaire(fhirQuestionnaire: FHIRQuestionnaire, extensionsOnly?: boolean): FCEQuestionnaire;
|
|
@@ -7,11 +7,11 @@ const processExtensions_1 = require("./processExtensions");
|
|
|
7
7
|
const processItems_1 = require("./processItems");
|
|
8
8
|
const processMeta_1 = require("./processMeta");
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
|
-
function convertQuestionnaire(fhirQuestionnaire) {
|
|
10
|
+
function convertQuestionnaire(fhirQuestionnaire, extensionsOnly = false) {
|
|
11
11
|
(0, utils_1.checkFhirQuestionnaireProfile)(fhirQuestionnaire);
|
|
12
12
|
fhirQuestionnaire = (0, cloneDeep_1.default)(fhirQuestionnaire);
|
|
13
|
-
const meta = (0, processMeta_1.processMeta)(fhirQuestionnaire);
|
|
14
|
-
const item = (0, processItems_1.processItems)(fhirQuestionnaire);
|
|
13
|
+
const meta = extensionsOnly ? fhirQuestionnaire.meta : (0, processMeta_1.processMeta)(fhirQuestionnaire);
|
|
14
|
+
const item = (0, processItems_1.processItems)(fhirQuestionnaire, extensionsOnly);
|
|
15
15
|
const extensions = (0, processExtensions_1.processExtensions)(fhirQuestionnaire);
|
|
16
16
|
const questionnaire = (0, utils_1.trimUndefined)(Object.assign(Object.assign(Object.assign(Object.assign({}, fhirQuestionnaire), { meta,
|
|
17
17
|
item }), extensions), { extension: undefined }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/index.ts"],"names":[],"mappings":";;;;AACA,yEAAyC;AAIzC,2DAAwD;AACxD,iDAA8C;AAC9C,+CAA4C;AAC5C,oCAAwE;AAExE,SAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/index.ts"],"names":[],"mappings":";;;;AACA,yEAAyC;AAIzC,2DAAwD;AACxD,iDAA8C;AAC9C,+CAA4C;AAC5C,oCAAwE;AAExE,SAAgB,oBAAoB,CAChC,iBAAoC,EACpC,cAAc,GAAG,KAAK;IAEtB,IAAA,qCAA6B,EAAC,iBAAiB,CAAC,CAAC;IACjD,iBAAiB,GAAG,IAAA,mBAAS,EAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,yBAAW,EAAC,iBAAiB,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAA,2BAAY,EAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAA,qCAAiB,EAAC,iBAAiB,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,IAAA,qBAAa,8DAC5B,iBAAiB,KACpB,IAAI;QACJ,IAAI,KACD,UAAU,KACb,SAAS,EAAE,SAAS,IACtB,CAAC;IACH,OAAO,aAA4C,CAAC;AACxD,CAAC;AAjBD,oDAiBC"}
|
|
@@ -54,7 +54,8 @@ function processLaunchContext(fhirQuestionnaire) {
|
|
|
54
54
|
exports.processLaunchContext = processLaunchContext;
|
|
55
55
|
function processMapping(fhirQuestionnaire) {
|
|
56
56
|
var _a;
|
|
57
|
-
const mapperExtensions = (_a = fhirQuestionnaire.extension) === null || _a === void 0 ? void 0 : _a.filter((ext) => ext.url === 'http://beda.software/fhir-extensions/questionnaire-mapper'
|
|
57
|
+
const mapperExtensions = (_a = fhirQuestionnaire.extension) === null || _a === void 0 ? void 0 : _a.filter((ext) => ext.url === 'http://beda.software/fhir-extensions/questionnaire-mapper' ||
|
|
58
|
+
ext.url === 'https://emr.beda.software/StructureDefinition/questionnaire-mapper');
|
|
58
59
|
if (!mapperExtensions) {
|
|
59
60
|
return undefined;
|
|
60
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processExtensions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"processExtensions.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processExtensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Questionnaire as FHIRQuestionnaire } from 'fhir/r4b';
|
|
2
2
|
import { QuestionnaireItem as FCEQuestionnaireItem } from 'shared/src/contrib/aidbox';
|
|
3
|
-
export declare function processItems(fhirQuestionnaire: FHIRQuestionnaire): FCEQuestionnaireItem[] | undefined;
|
|
3
|
+
export declare function processItems(fhirQuestionnaire: FHIRQuestionnaire, extensionsOnly: boolean): FCEQuestionnaireItem[] | undefined;
|
|
@@ -5,22 +5,22 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
6
6
|
const converter_1 = require("../../../converter");
|
|
7
7
|
const extensions_1 = require("../../extensions");
|
|
8
|
-
function processItems(fhirQuestionnaire) {
|
|
8
|
+
function processItems(fhirQuestionnaire, extensionsOnly) {
|
|
9
9
|
var _a;
|
|
10
|
-
return (_a = fhirQuestionnaire.item) === null || _a === void 0 ? void 0 : _a.map(convertItemProperties);
|
|
10
|
+
return (_a = fhirQuestionnaire.item) === null || _a === void 0 ? void 0 : _a.map((item) => convertItemProperties(item, extensionsOnly));
|
|
11
11
|
}
|
|
12
12
|
exports.processItems = processItems;
|
|
13
|
-
function convertItemProperties(item) {
|
|
13
|
+
function convertItemProperties(item, extensionsOnly) {
|
|
14
14
|
var _a;
|
|
15
|
-
const updatedProperties = getUpdatedPropertiesFromItem(item);
|
|
15
|
+
const updatedProperties = getUpdatedPropertiesFromItem(item, extensionsOnly);
|
|
16
16
|
const newItem = Object.assign(Object.assign({}, item), updatedProperties);
|
|
17
|
-
newItem.item = (_a = item.item) === null || _a === void 0 ? void 0 : _a.map((nestedItem) => convertItemProperties(nestedItem));
|
|
17
|
+
newItem.item = (_a = item.item) === null || _a === void 0 ? void 0 : _a.map((nestedItem) => convertItemProperties(nestedItem, extensionsOnly));
|
|
18
18
|
if (newItem.extension) {
|
|
19
19
|
delete newItem.extension;
|
|
20
20
|
}
|
|
21
21
|
return newItem;
|
|
22
22
|
}
|
|
23
|
-
function getUpdatedPropertiesFromItem(item) {
|
|
23
|
+
function getUpdatedPropertiesFromItem(item, extensionsOnly) {
|
|
24
24
|
var _a, _b, _c, _d;
|
|
25
25
|
let updatedProperties = { linkId: item.linkId, type: item.type };
|
|
26
26
|
for (const identifier of Object.values(extensions_1.ExtensionIdentifier)) {
|
|
@@ -40,9 +40,11 @@ function getUpdatedPropertiesFromItem(item) {
|
|
|
40
40
|
updatedProperties = Object.assign(Object.assign({}, updatedProperties), (0, converter_1.convertFromFHIRExtension)(extensions));
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
if (!extensionsOnly) {
|
|
44
|
+
updatedProperties.answerOption = (_b = item.answerOption) === null || _b === void 0 ? void 0 : _b.map(processItemOption);
|
|
45
|
+
updatedProperties.initial = (_c = item.initial) === null || _c === void 0 ? void 0 : _c.map(processItemOption);
|
|
46
|
+
updatedProperties.enableWhen = (_d = item.enableWhen) === null || _d === void 0 ? void 0 : _d.map(processEnableWhenItem);
|
|
47
|
+
}
|
|
46
48
|
return updatedProperties;
|
|
47
49
|
}
|
|
48
50
|
function processEnableWhenItem(item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processItems.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processItems.ts"],"names":[],"mappings":";;;;AAQA,4DAAuB;AAUvB,kDAAmG;AACnG,iDAAuD;AAEvD,SAAgB,YAAY,CAAC,iBAAoC;;
|
|
1
|
+
{"version":3,"file":"processItems.js","sourceRoot":"","sources":["../../../../src/converter/fhirToFce/questionnaire/processItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.trimUndefined = exports.checkFhirQuestionnaireProfile = void 0;
|
|
4
4
|
function checkFhirQuestionnaireProfile(fhirQuestionnaire) {
|
|
5
|
-
var _a, _b, _c, _d, _e;
|
|
5
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
6
6
|
if (!(((_c = (_b = (_a = fhirQuestionnaire.meta) === null || _a === void 0 ? void 0 : _a.profile) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) === 1 &&
|
|
7
|
-
((_e = (_d = fhirQuestionnaire.meta) === null || _d === void 0 ? void 0 : _d.profile) === null || _e === void 0 ? void 0 : _e[0]) ===
|
|
7
|
+
(((_e = (_d = fhirQuestionnaire.meta) === null || _d === void 0 ? void 0 : _d.profile) === null || _e === void 0 ? void 0 : _e[0]) ===
|
|
8
|
+
'https://beda.software/beda-emr-questionnaire' ||
|
|
9
|
+
((_g = (_f = fhirQuestionnaire.meta) === null || _f === void 0 ? void 0 : _f.profile) === null || _g === void 0 ? void 0 : _g[0]) ===
|
|
10
|
+
'https://emr.beda.software/StructureDefinition/fhir-emr-questionnaire'))) {
|
|
8
11
|
throw new Error('Only beda emr questionanire supported');
|
|
9
12
|
}
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/converter/fhirToFce/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,6BAA6B,CAAC,iBAAoC;;IAC9E,IACI,CAAC,CACG,CAAC,MAAA,MAAA,MAAA,iBAAiB,CAAC,IAAI,0CAAE,OAAO,0CAAE,MAAM,mCAAI,CAAC,CAAC,KAAK,CAAC;QACpD,CAAA,MAAA,MAAA,iBAAiB,CAAC,IAAI,0CAAE,OAAO,0CAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/converter/fhirToFce/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,6BAA6B,CAAC,iBAAoC;;IAC9E,IACI,CAAC,CACG,CAAC,MAAA,MAAA,MAAA,iBAAiB,CAAC,IAAI,0CAAE,OAAO,0CAAE,MAAM,mCAAI,CAAC,CAAC,KAAK,CAAC;QACpD,CAAC,CAAA,MAAA,MAAA,iBAAiB,CAAC,IAAI,0CAAE,OAAO,0CAAG,CAAC,CAAC;YACjC,8CAA8C;YAC9C,CAAA,MAAA,MAAA,iBAAiB,CAAC,IAAI,0CAAE,OAAO,0CAAG,CAAC,CAAC;gBAChC,sEAAsE,CAAC,CAClF,EACH;QACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC5D;AACL,CAAC;AAZD,sEAYC;AAED,SAAgB,aAAa,CAAC,CAAM;IAChC,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE;QAClB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;YAC/C,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,GAAG,KAAK,SAAS,EAAE;gBACnB,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;aAClB;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;4BAC5B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;yBACzB;qBACJ;iBACJ;qBAAM;oBACH,aAAa,CAAC,GAAG,CAAC,CAAC;iBACtB;aACJ;SACJ;KACJ;IAED,OAAO,CAAC,CAAC;AACb,CAAC;AArBD,sCAqBC"}
|
package/lib/converter/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Reference as FHIRReference, Extension as FHIRExtension, QuestionnaireItem as FHIRQuestionnaireItem } from 'fhir/r4b';
|
|
2
2
|
import { Extension as FCEExtension, QuestionnaireItem as FCEQuestionnaireItem, InternalReference } from 'shared/src/contrib/aidbox';
|
|
3
|
-
import { fromFirstClassExtension } from './fceToFhir';
|
|
4
|
-
import { toFirstClassExtension } from './fhirToFce';
|
|
3
|
+
import { fromFirstClassExtension, fromFirstClassExtensionV2 } from './fceToFhir';
|
|
4
|
+
import { toFirstClassExtension, toFirstClassExtensionV2 } from './fhirToFce';
|
|
5
5
|
import { processLaunchContext as processLaunchContextToFce } from './fhirToFce/questionnaire/processExtensions';
|
|
6
6
|
export * from './utils';
|
|
7
7
|
export declare function convertFromFHIRExtension(extensions: FHIRExtension[]): Partial<FCEQuestionnaireItem> | undefined;
|
|
@@ -10,4 +10,4 @@ export declare function extractExtension(extension: FCEExtension[] | undefined,
|
|
|
10
10
|
export declare function filterExtensions(item: FHIRQuestionnaireItem, url: string): FHIRExtension[] | undefined;
|
|
11
11
|
export declare function fromFHIRReference(r?: FHIRReference): InternalReference | undefined;
|
|
12
12
|
export declare function toFHIRReference(r?: InternalReference): FHIRReference | undefined;
|
|
13
|
-
export { toFirstClassExtension, fromFirstClassExtension, processLaunchContextToFce };
|
|
13
|
+
export { toFirstClassExtension, toFirstClassExtensionV2, fromFirstClassExtension, fromFirstClassExtensionV2, processLaunchContextToFce, };
|
package/lib/converter/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processLaunchContextToFce = exports.fromFirstClassExtension = exports.toFirstClassExtension = exports.toFHIRReference = exports.fromFHIRReference = exports.filterExtensions = exports.extractExtension = exports.convertToFHIRExtension = exports.convertFromFHIRExtension = void 0;
|
|
3
|
+
exports.processLaunchContextToFce = exports.fromFirstClassExtensionV2 = exports.fromFirstClassExtension = exports.toFirstClassExtensionV2 = exports.toFirstClassExtension = exports.toFHIRReference = exports.fromFHIRReference = exports.filterExtensions = exports.extractExtension = exports.convertToFHIRExtension = exports.convertFromFHIRExtension = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const extensions_1 = require("./extensions");
|
|
6
6
|
const fceToFhir_1 = require("./fceToFhir");
|
|
7
7
|
Object.defineProperty(exports, "fromFirstClassExtension", { enumerable: true, get: function () { return fceToFhir_1.fromFirstClassExtension; } });
|
|
8
|
+
Object.defineProperty(exports, "fromFirstClassExtensionV2", { enumerable: true, get: function () { return fceToFhir_1.fromFirstClassExtensionV2; } });
|
|
8
9
|
const fhirToFce_1 = require("./fhirToFce");
|
|
9
10
|
Object.defineProperty(exports, "toFirstClassExtension", { enumerable: true, get: function () { return fhirToFce_1.toFirstClassExtension; } });
|
|
11
|
+
Object.defineProperty(exports, "toFirstClassExtensionV2", { enumerable: true, get: function () { return fhirToFce_1.toFirstClassExtensionV2; } });
|
|
10
12
|
const processExtensions_1 = require("./fhirToFce/questionnaire/processExtensions");
|
|
11
13
|
Object.defineProperty(exports, "processLaunchContextToFce", { enumerable: true, get: function () { return processExtensions_1.processLaunchContext; } });
|
|
12
14
|
tslib_1.__exportStar(require("./utils"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converter/index.ts"],"names":[],"mappings":";;;;AAYA,6CAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/converter/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sdc-qrf",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.15",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc",
|
|
7
7
|
"coverage": "jest --coverage --coverageReporters=text-lcov | coveralls",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"files": [
|
|
34
34
|
"lib/**/*",
|
|
35
35
|
"src/**/*",
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
"README.md",
|
|
37
|
+
"LICENSE"
|
|
38
38
|
],
|
|
39
39
|
"main": "./lib/index.js"
|
|
40
40
|
}
|
|
@@ -5,6 +5,7 @@ import { QuestionnaireItem as FCEQuestionnaireItem } from 'shared/src/contrib/ai
|
|
|
5
5
|
export enum ExtensionIdentifier {
|
|
6
6
|
Hidden = 'http://hl7.org/fhir/StructureDefinition/questionnaire-hidden',
|
|
7
7
|
ItemControl = 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl',
|
|
8
|
+
ReadOnlyItemControl = 'https://beda.software/fhir-emr-questionnaire/readOnlyItemControl',
|
|
8
9
|
SliderStepValue = 'http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue',
|
|
9
10
|
Unit = 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit',
|
|
10
11
|
UnitOption = 'http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption',
|
|
@@ -72,6 +73,9 @@ export const extensionTransformers: ExtensionTransformer = {
|
|
|
72
73
|
[ExtensionIdentifier.ItemControl]: {
|
|
73
74
|
path: { extension: 'valueCodeableConcept', questionnaire: 'itemControl' },
|
|
74
75
|
},
|
|
76
|
+
[ExtensionIdentifier.ReadOnlyItemControl]: {
|
|
77
|
+
path: { extension: 'valueCodeableConcept', questionnaire: 'readOnlyItemControl' },
|
|
78
|
+
},
|
|
75
79
|
[ExtensionIdentifier.SliderStepValue]: {
|
|
76
80
|
path: { extension: 'valueInteger', questionnaire: 'sliderStepValue' },
|
|
77
81
|
},
|
|
@@ -25,3 +25,18 @@ export function fromFirstClassExtension(
|
|
|
25
25
|
return convertQuestionnaireResponse(fceResource);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
export function fromFirstClassExtensionV2(
|
|
30
|
+
fceQuestionnaireResponse: FCEQuestionnaireResponse,
|
|
31
|
+
): FHIRQuestionnaireResponse;
|
|
32
|
+
export function fromFirstClassExtensionV2(fceQuestionnaire: FCEQuestionnaire): FHIRQuestionnaire;
|
|
33
|
+
export function fromFirstClassExtensionV2(
|
|
34
|
+
fceResource: FCEQuestionnaire | FCEQuestionnaireResponse,
|
|
35
|
+
): FHIRQuestionnaireResponse | FHIRQuestionnaire {
|
|
36
|
+
switch (fceResource.resourceType) {
|
|
37
|
+
case 'Questionnaire':
|
|
38
|
+
return convertQuestionnaire(fceResource, true);
|
|
39
|
+
case 'QuestionnaireResponse':
|
|
40
|
+
return convertQuestionnaireResponse(fceResource);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -7,9 +7,16 @@ import { processExtensions } from './processExtensions';
|
|
|
7
7
|
import { processItems } from './processItems';
|
|
8
8
|
import { processMeta } from './processMeta';
|
|
9
9
|
|
|
10
|
-
export function convertQuestionnaire(
|
|
10
|
+
export function convertQuestionnaire(
|
|
11
|
+
questionnaire: FCEQuestionnaire,
|
|
12
|
+
onlyExtensions = false,
|
|
13
|
+
): FHIRQuestionnaire {
|
|
11
14
|
questionnaire = cloneDeep(questionnaire);
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
if (!onlyExtensions) {
|
|
16
|
+
questionnaire.meta = questionnaire.meta
|
|
17
|
+
? processMeta(questionnaire.meta)
|
|
18
|
+
: questionnaire.meta;
|
|
19
|
+
}
|
|
20
|
+
questionnaire.item = processItems(questionnaire.item ?? [], onlyExtensions);
|
|
14
21
|
return processExtensions(questionnaire) as FHIRQuestionnaire;
|
|
15
22
|
}
|
|
@@ -41,6 +41,7 @@ export function processExtensions(questionnaire: FCEQuestionnaire): FHIRQuestion
|
|
|
41
41
|
if (mapping) {
|
|
42
42
|
extensions = extensions.concat(
|
|
43
43
|
mapping.map((m) => ({
|
|
44
|
+
// url: 'https://emr.beda.software/StructureDefinition/questionnaire-mapper',
|
|
44
45
|
url: 'http://beda.software/fhir-extensions/questionnaire-mapper',
|
|
45
46
|
valueReference: {
|
|
46
47
|
reference: `Mapping/${m.id}`,
|
|
@@ -17,7 +17,10 @@ import {
|
|
|
17
17
|
|
|
18
18
|
import { convertFromFHIRExtension, convertToFHIRExtension, toFHIRReference } from '../..';
|
|
19
19
|
|
|
20
|
-
export function processItems(
|
|
20
|
+
export function processItems(
|
|
21
|
+
items: FCEQuestionnaireItem[],
|
|
22
|
+
onlyExtensions = false,
|
|
23
|
+
): FHIRQuestionnaireItem[] {
|
|
21
24
|
return items.map((item) => {
|
|
22
25
|
const extensions = convertToFHIRExtension(item);
|
|
23
26
|
if (extensions.length > 0) {
|
|
@@ -61,7 +64,9 @@ export function processItems(items: FCEQuestionnaireItem[]): FHIRQuestionnaireIt
|
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
if (answerOption !== undefined) {
|
|
64
|
-
fhirItem.answerOption =
|
|
67
|
+
fhirItem.answerOption = onlyExtensions
|
|
68
|
+
? answerOption
|
|
69
|
+
: processAnswerOption(answerOption);
|
|
65
70
|
}
|
|
66
71
|
|
|
67
72
|
if (enableBehavior !== undefined) {
|
|
@@ -69,15 +74,17 @@ export function processItems(items: FCEQuestionnaireItem[]): FHIRQuestionnaireIt
|
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
if (enableWhen !== undefined) {
|
|
72
|
-
fhirItem.enableWhen =
|
|
77
|
+
fhirItem.enableWhen = onlyExtensions
|
|
78
|
+
? (enableWhen as FHIRQuestionnaireItemEnableWhen[])
|
|
79
|
+
: processEnableWhen(enableWhen);
|
|
73
80
|
}
|
|
74
81
|
|
|
75
82
|
if (initial) {
|
|
76
|
-
fhirItem.initial = processInitial(initial);
|
|
83
|
+
fhirItem.initial = onlyExtensions ? initial : processInitial(initial);
|
|
77
84
|
}
|
|
78
85
|
|
|
79
86
|
if (nestedItems) {
|
|
80
|
-
fhirItem.item = processItems(nestedItems);
|
|
87
|
+
fhirItem.item = processItems(nestedItems, onlyExtensions);
|
|
81
88
|
}
|
|
82
89
|
|
|
83
90
|
return fhirItem;
|
|
@@ -20,7 +20,24 @@ export function toFirstClassExtension(
|
|
|
20
20
|
): FCEQuestionnaireResponse | FCEQuestionnaire {
|
|
21
21
|
switch (fhirResource.resourceType) {
|
|
22
22
|
case 'Questionnaire':
|
|
23
|
-
return convertQuestionnaire(fhirResource);
|
|
23
|
+
return convertQuestionnaire(fhirResource, false);
|
|
24
|
+
case 'QuestionnaireResponse':
|
|
25
|
+
return convertQuestionnaireResponse(fhirResource);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function toFirstClassExtensionV2(
|
|
30
|
+
fhirQuestionnaireResponse: FHIRQuestionnaireResponse,
|
|
31
|
+
): FCEQuestionnaireResponse;
|
|
32
|
+
export function toFirstClassExtensionV2(fhirQuestionnaire: FHIRQuestionnaire): FCEQuestionnaire;
|
|
33
|
+
export function toFirstClassExtensionV2(
|
|
34
|
+
fhirResource: FHIRQuestionnaire | FHIRQuestionnaireResponse,
|
|
35
|
+
): FCEQuestionnaireResponse | FCEQuestionnaire {
|
|
36
|
+
// The new versions does not convert unions and references
|
|
37
|
+
// NOTE: The return type in that case is not fully compatible with Aidbox Questionnaire
|
|
38
|
+
switch (fhirResource.resourceType) {
|
|
39
|
+
case 'Questionnaire':
|
|
40
|
+
return convertQuestionnaire(fhirResource, true);
|
|
24
41
|
case 'QuestionnaireResponse':
|
|
25
42
|
return convertQuestionnaireResponse(fhirResource);
|
|
26
43
|
}
|
|
@@ -8,11 +8,14 @@ import { processItems } from './processItems';
|
|
|
8
8
|
import { processMeta } from './processMeta';
|
|
9
9
|
import { checkFhirQuestionnaireProfile, trimUndefined } from '../utils';
|
|
10
10
|
|
|
11
|
-
export function convertQuestionnaire(
|
|
11
|
+
export function convertQuestionnaire(
|
|
12
|
+
fhirQuestionnaire: FHIRQuestionnaire,
|
|
13
|
+
extensionsOnly = false,
|
|
14
|
+
): FCEQuestionnaire {
|
|
12
15
|
checkFhirQuestionnaireProfile(fhirQuestionnaire);
|
|
13
16
|
fhirQuestionnaire = cloneDeep(fhirQuestionnaire);
|
|
14
|
-
const meta = processMeta(fhirQuestionnaire);
|
|
15
|
-
const item = processItems(fhirQuestionnaire);
|
|
17
|
+
const meta = extensionsOnly ? fhirQuestionnaire.meta : processMeta(fhirQuestionnaire);
|
|
18
|
+
const item = processItems(fhirQuestionnaire, extensionsOnly);
|
|
16
19
|
const extensions = processExtensions(fhirQuestionnaire);
|
|
17
20
|
const questionnaire = trimUndefined({
|
|
18
21
|
...fhirQuestionnaire,
|
|
@@ -72,7 +72,9 @@ export function processLaunchContext(fhirQuestionnaire: FHIRQuestionnaire): any[
|
|
|
72
72
|
|
|
73
73
|
function processMapping(fhirQuestionnaire: FHIRQuestionnaire): any[] | undefined {
|
|
74
74
|
const mapperExtensions = fhirQuestionnaire.extension?.filter(
|
|
75
|
-
(ext: any) =>
|
|
75
|
+
(ext: any) =>
|
|
76
|
+
ext.url === 'http://beda.software/fhir-extensions/questionnaire-mapper' ||
|
|
77
|
+
ext.url === 'https://emr.beda.software/StructureDefinition/questionnaire-mapper',
|
|
76
78
|
);
|
|
77
79
|
|
|
78
80
|
if (!mapperExtensions) {
|
|
@@ -19,15 +19,20 @@ import {
|
|
|
19
19
|
import { convertFromFHIRExtension, filterExtensions, fromFHIRReference } from '../../../converter';
|
|
20
20
|
import { ExtensionIdentifier } from '../../extensions';
|
|
21
21
|
|
|
22
|
-
export function processItems(fhirQuestionnaire: FHIRQuestionnaire) {
|
|
23
|
-
return fhirQuestionnaire.item?.map(convertItemProperties);
|
|
22
|
+
export function processItems(fhirQuestionnaire: FHIRQuestionnaire, extensionsOnly: boolean) {
|
|
23
|
+
return fhirQuestionnaire.item?.map((item) => convertItemProperties(item, extensionsOnly));
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
function convertItemProperties(
|
|
27
|
-
|
|
26
|
+
function convertItemProperties(
|
|
27
|
+
item: FHIRQuestionnaireItem,
|
|
28
|
+
extensionsOnly: boolean,
|
|
29
|
+
): FCEQuestionnaireItem {
|
|
30
|
+
const updatedProperties = getUpdatedPropertiesFromItem(item, extensionsOnly);
|
|
28
31
|
const newItem = { ...item, ...updatedProperties };
|
|
29
32
|
|
|
30
|
-
newItem.item = item.item?.map((nestedItem) =>
|
|
33
|
+
newItem.item = item.item?.map((nestedItem) =>
|
|
34
|
+
convertItemProperties(nestedItem, extensionsOnly),
|
|
35
|
+
);
|
|
31
36
|
|
|
32
37
|
if (newItem.extension) {
|
|
33
38
|
delete newItem.extension;
|
|
@@ -36,7 +41,7 @@ function convertItemProperties(item: FHIRQuestionnaireItem): FCEQuestionnaireIte
|
|
|
36
41
|
return newItem;
|
|
37
42
|
}
|
|
38
43
|
|
|
39
|
-
function getUpdatedPropertiesFromItem(item: FHIRQuestionnaireItem) {
|
|
44
|
+
function getUpdatedPropertiesFromItem(item: FHIRQuestionnaireItem, extensionsOnly: boolean) {
|
|
40
45
|
let updatedProperties: FCEQuestionnaireItem = { linkId: item.linkId, type: item.type };
|
|
41
46
|
|
|
42
47
|
for (const identifier of Object.values(ExtensionIdentifier)) {
|
|
@@ -64,9 +69,11 @@ function getUpdatedPropertiesFromItem(item: FHIRQuestionnaireItem) {
|
|
|
64
69
|
}
|
|
65
70
|
}
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
if (!extensionsOnly) {
|
|
73
|
+
updatedProperties.answerOption = item.answerOption?.map(processItemOption);
|
|
74
|
+
updatedProperties.initial = item.initial?.map(processItemOption);
|
|
75
|
+
updatedProperties.enableWhen = item.enableWhen?.map(processEnableWhenItem);
|
|
76
|
+
}
|
|
70
77
|
|
|
71
78
|
return updatedProperties;
|
|
72
79
|
}
|
|
@@ -4,7 +4,10 @@ export function checkFhirQuestionnaireProfile(fhirQuestionnaire: FHIRQuestionnai
|
|
|
4
4
|
if (
|
|
5
5
|
!(
|
|
6
6
|
(fhirQuestionnaire.meta?.profile?.length ?? 0) === 1 &&
|
|
7
|
-
fhirQuestionnaire.meta?.profile?.[0] ===
|
|
7
|
+
(fhirQuestionnaire.meta?.profile?.[0] ===
|
|
8
|
+
'https://beda.software/beda-emr-questionnaire' ||
|
|
9
|
+
fhirQuestionnaire.meta?.profile?.[0] ===
|
|
10
|
+
'https://emr.beda.software/StructureDefinition/fhir-emr-questionnaire')
|
|
8
11
|
)
|
|
9
12
|
) {
|
|
10
13
|
throw new Error('Only beda emr questionanire supported');
|
package/src/converter/index.ts
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
} from 'shared/src/contrib/aidbox';
|
|
12
12
|
|
|
13
13
|
import { ExtensionIdentifier, extensionTransformers } from './extensions';
|
|
14
|
-
import { fromFirstClassExtension } from './fceToFhir';
|
|
15
|
-
import { toFirstClassExtension } from './fhirToFce';
|
|
14
|
+
import { fromFirstClassExtension, fromFirstClassExtensionV2 } from './fceToFhir';
|
|
15
|
+
import { toFirstClassExtension, toFirstClassExtensionV2 } from './fhirToFce';
|
|
16
16
|
import { processLaunchContext as processLaunchContextToFce } from './fhirToFce/questionnaire/processExtensions';
|
|
17
17
|
export * from './utils';
|
|
18
18
|
|
|
@@ -110,4 +110,10 @@ export function toFHIRReference(r?: InternalReference): FHIRReference | undefine
|
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
export {
|
|
113
|
+
export {
|
|
114
|
+
toFirstClassExtension,
|
|
115
|
+
toFirstClassExtensionV2,
|
|
116
|
+
fromFirstClassExtension,
|
|
117
|
+
fromFirstClassExtensionV2,
|
|
118
|
+
processLaunchContextToFce,
|
|
119
|
+
};
|