Skip to content

Commit f00a795

Browse files
committed
Add tests for subQuestionnaire and simplify convertor
1 parent 4a2dcc9 commit f00a795

File tree

5 files changed

+62
-23
lines changed

5 files changed

+62
-23
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "sdc-qrf",
33
"license": "MIT",
4-
"version": "1.0.0-beta.15",
4+
"version": "1.0.0-beta.16",
55
"scripts": {
66
"test": "vitest --watch=false",
77
"test:watch": "vitest --watch",

src/converter/__tests__/fce.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import fce_source_queries from './resources/questionnaire_fce/source_queries.jso
2828
import fce_unit_option from './resources/questionnaire_fce/unit-option.json';
2929
import fce_vitals from './resources/questionnaire_fce/vitals.json';
3030
import fce_variable from './resources/questionnaire_fce/variable.json';
31+
import fce_sub_questionnaire from './resources/questionnaire_fce/sub-questionnaire.json';
3132
// fhir questionnaire
3233
import fhir_allergies from './resources/questionnaire_fhir/allergies.json';
3334
import fhir_beverages from './resources/questionnaire_fhir/beverages.json';
@@ -55,6 +56,7 @@ import fhir_source_queries from './resources/questionnaire_fhir/source_queries.j
5556
import fhir_unit_option from './resources/questionnaire_fhir/unit-option.json';
5657
import fhir_vitals from './resources/questionnaire_fhir/vitals.json';
5758
import fhir_variable from './resources/questionnaire_fhir/variable.json';
59+
import fhir_sub_questionnaire from './resources/questionnaire_fhir/sub-questionnaire.json';
5860
import { FCEQuestionnaire } from '../../fce.types';
5961

6062
import { toFirstClassExtension, fromFirstClassExtension } from '../../converter';
@@ -88,6 +90,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
8890
[fhir_constraint, fce_constraint],
8991
[fhir_unit_option, fce_unit_option],
9092
[fhir_variable, fce_variable],
93+
[fhir_sub_questionnaire, fce_sub_questionnaire],
9194
])('Each FHIR Questionnaire should convert to FCE', async (fhir_questionnaire, fce_questionnaire) => {
9295
expect(toFirstClassExtension(fhir_questionnaire as FHIRQuestionnaire)).toStrictEqual(fce_questionnaire);
9396
});
@@ -119,6 +122,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
119122
[fce_constraint, fhir_constraint],
120123
[fce_unit_option, fhir_unit_option],
121124
[fce_variable, fhir_variable],
125+
[fce_sub_questionnaire, fhir_sub_questionnaire],
122126
])('Each FCE Questionnaire should convert to FHIR', async (fce_questionnaire, fhir_questionnaire) => {
123127
expect(sortExtensionsList(fromFirstClassExtension(fce_questionnaire as FCEQuestionnaire))).toStrictEqual(
124128
sortExtensionsList(fhir_questionnaire),
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
}

src/converter/extensions.ts

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ export const extensionTransformers: ExtensionTransformer = {
9090
[ExtensionIdentifier.ColsNumber]: {
9191
path: { extension: 'valueInteger', questionnaire: 'colsNumber' },
9292
},
93+
[ExtensionIdentifier.SubQuestionnaire]: {
94+
path: { extension: 'valueCanonical', questionnaire: 'subQuestionnaire' },
95+
},
9396
[ExtensionIdentifier.ReferenceResource]: {
9497
transform: {
9598
fromExtensions: (extensions) => {
@@ -305,26 +308,4 @@ export const extensionTransformers: ExtensionTransformer = {
305308
[ExtensionIdentifier.Macro]: {
306309
path: { extension: 'valueString', questionnaire: 'macro' },
307310
},
308-
[ExtensionIdentifier.SubQuestionnaire]: {
309-
transform: {
310-
fromExtensions: (extensions) => ({ subQuestionnaire: extensions[0]!.valueCanonical }),
311-
toExtensions: (item) => {
312-
if (item.subQuestionnaire) {
313-
return [
314-
{
315-
url: ExtensionIdentifier.SubQuestionnaire,
316-
extension: [
317-
{
318-
url: ExtensionIdentifier.SubQuestionnaire,
319-
valueCanonical: item.subQuestionnaire,
320-
},
321-
],
322-
},
323-
];
324-
}
325-
326-
return [];
327-
},
328-
},
329-
},
330311
};

0 commit comments

Comments
 (0)