Skip to content

Commit 9ad7892

Browse files
committed
Clean up empty answers key from qr item
1 parent 89bafc3 commit 9ad7892

File tree

3 files changed

+19
-28
lines changed

3 files changed

+19
-28
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.2",
4+
"version": "1.0.0-beta.3",
55
"scripts": {
66
"test": "vitest --watch=false",
77
"test:watch": "vitest --watch",

src/utils.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -249,25 +249,27 @@ function mapFormToResponseRecursive(
249249
}, acc);
250250
}
251251

252+
const qrItemAnswers = answers
253+
.filter((answer) => !isAnswerValueEmpty(answer.value))
254+
.reduce((answersAcc, answer) => {
255+
const items = hasSubAnswerItems(answer.items)
256+
? mapFormToResponseRecursive(answer.items, question.item ?? [])
257+
: [];
258+
259+
return [
260+
...answersAcc,
261+
{
262+
...toFHIRAnswerValue(answer.value!, 'value'),
263+
...(items.length ? { item: items } : {}),
264+
},
265+
];
266+
}, [] as QuestionnaireResponseItemAnswer[]);
267+
252268
return [
253269
...acc,
254270
{
255271
linkId,
256-
answer: answers
257-
.filter((answer) => !isAnswerValueEmpty(answer.value))
258-
.reduce((answersAcc, answer) => {
259-
const items = hasSubAnswerItems(answer.items)
260-
? mapFormToResponseRecursive(answer.items, question.item ?? [])
261-
: [];
262-
263-
return [
264-
...answersAcc,
265-
{
266-
...toFHIRAnswerValue(answer.value!, 'value'),
267-
...(items.length ? { item: items } : {}),
268-
},
269-
];
270-
}, [] as QuestionnaireResponseItemAnswer[]),
272+
...(qrItemAnswers.length ? { answer: qrItemAnswers } : {}),
271273
},
272274
];
273275
}, [] as QuestionnaireResponseItem[]);

tests/utils.test.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -713,27 +713,20 @@ test('Transform removes missing answers', () => {
713713
items: {
714714
'question-1': [
715715
{
716-
items: {},
717716
value: {
718717
string: undefined,
719718
},
720719
},
721720
],
722721
'question-2': [
723722
{
724-
items: {},
725723
value: undefined,
726724
},
727725
],
728-
'question-3': [
729-
{
730-
items: {},
731-
},
732-
],
726+
'question-3': [{}],
733727
'question-4': [],
734728
'question-5': [
735729
{
736-
items: {},
737730
value: {
738731
string: 'ok',
739732
},
@@ -752,19 +745,15 @@ test('Transform removes missing answers', () => {
752745
linkId: 'root-group',
753746
item: [
754747
{
755-
answer: [],
756748
linkId: 'question-1',
757749
},
758750
{
759-
answer: [],
760751
linkId: 'question-2',
761752
},
762753
{
763-
answer: [],
764754
linkId: 'question-3',
765755
},
766756
{
767-
answer: [],
768757
linkId: 'question-4',
769758
},
770759
{

0 commit comments

Comments
 (0)