Skip to content

Commit 3621294

Browse files
committed
Add support for subQuestionnaire extension
1 parent 6933c40 commit 3621294

File tree

5 files changed

+63
-1
lines changed

5 files changed

+63
-1
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": "0.3.27",
4+
"version": "0.3.28",
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
@@ -33,6 +33,7 @@ import fce_source_queries from './resources/questionnaire_fce/source_queries.jso
3333
import fce_unit_option from './resources/questionnaire_fce/unit-option.json';
3434
import fce_vitals from './resources/questionnaire_fce/vitals.json';
3535
import fce_variable from './resources/questionnaire_fce/variable.json';
36+
import fce_sub_questionnaire from './resources/questionnaire_fce/sub-questionnaire.json';
3637
// fhir questionnaire
3738
import fhir_allergies from './resources/questionnaire_fhir/allergies.json';
3839
import fhir_beverages from './resources/questionnaire_fhir/beverages.json';
@@ -60,6 +61,7 @@ import fhir_source_queries from './resources/questionnaire_fhir/source_queries.j
6061
import fhir_unit_option from './resources/questionnaire_fhir/unit-option.json';
6162
import fhir_vitals from './resources/questionnaire_fhir/vitals.json';
6263
import fhir_variable from './resources/questionnaire_fhir/variable.json';
64+
import fhir_sub_questionnaire from './resources/questionnaire_fhir/sub-questionnaire.json';
6365
// fce questionnaire response
6466
import fce_allergies_inprogress_qr from './resources/questionnaire_response_fce/allergies_inprogress.json';
6567
import fce_cardiology_qr from './resources/questionnaire_response_fce/cardiology.json';
@@ -121,6 +123,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
121123
[fhir_constraint, fce_constraint],
122124
[fhir_unit_option, fce_unit_option],
123125
[fhir_variable, fce_variable],
126+
[fhir_sub_questionnaire, fce_sub_questionnaire],
124127
])('Each FHIR Questionnaire should convert to FCE', async (fhir_questionnaire, fce_questionnaire) => {
125128
expect(toFirstClassExtension(fhir_questionnaire as FHIRQuestionnaire)).toStrictEqual(fce_questionnaire);
126129
});
@@ -152,6 +155,7 @@ describe('Questionanire and QuestionnaireResponses transformation', () => {
152155
[fce_constraint, fhir_constraint],
153156
[fce_unit_option, fhir_unit_option],
154157
[fce_variable, fhir_variable],
158+
[fce_sub_questionnaire, fhir_sub_questionnaire],
155159
])('Each FCE Questionnaire should convert to FHIR', async (fce_questionnaire, fhir_questionnaire) => {
156160
expect(sortExtensionsList(fromFirstClassExtension(fce_questionnaire as FCEQuestionnaire))).toStrictEqual(
157161
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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export enum ExtensionIdentifier {
4545
StopLabel = 'https://beda.software/fhir-emr-questionnaire/slider-stop-label',
4646
Macro = 'https://beda.software/fhir-emr-questionnaire/macro',
4747
RowsNumber = 'https://beda.software/fhir-emr-questionnaire/rows-number',
48+
SubQuestionnaire = 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-subQuestionnaire',
4849
}
4950

5051
export type ExtensionTransformer = {
@@ -86,6 +87,9 @@ export const extensionTransformers: ExtensionTransformer = {
8687
[ExtensionIdentifier.RowsNumber]: {
8788
path: { extension: 'valueInteger', questionnaire: 'rowsNumber' },
8889
},
90+
[ExtensionIdentifier.SubQuestionnaire]: {
91+
path: { extension: 'valueCanonical', questionnaire: 'subQuestionnaire' },
92+
},
8993
[ExtensionIdentifier.ReferenceResource]: {
9094
transform: {
9195
fromExtensions: (extensions) => {

0 commit comments

Comments
 (0)