diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/extensions/MoreQuestionnaireResponses.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/extensions/MoreQuestionnaireResponses.kt index 974ffe2723..9b1ac45427 100644 --- a/datacapture/src/main/java/com/google/android/fhir/datacapture/extensions/MoreQuestionnaireResponses.kt +++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/extensions/MoreQuestionnaireResponses.kt @@ -100,22 +100,26 @@ private fun unpackRepeatedGroups( questionnaireItem: Questionnaire.QuestionnaireItemComponent, questionnaireResponseItem: QuestionnaireResponse.QuestionnaireResponseItemComponent ): List { - questionnaireResponseItem.item = - unpackRepeatedGroups(questionnaireItem.item, questionnaireResponseItem.item) - questionnaireResponseItem.answer.forEach { - it.item = unpackRepeatedGroups(questionnaireItem.item, it.item) - } - return if (questionnaireItem.type == Questionnaire.QuestionnaireItemType.GROUP && - questionnaireItem.repeats - ) { - questionnaireResponseItem.answer.map { - QuestionnaireResponse.QuestionnaireResponseItemComponent().apply { - linkId = questionnaireItem.linkId - text = questionnaireItem.localizedTextSpanned?.toString() - item = it.item + if (questionnaireResponseItem.hasAnswer()) { + questionnaireResponseItem.item = + unpackRepeatedGroups(questionnaireItem.item, questionnaireResponseItem.item) + questionnaireResponseItem.answer.forEach { + it.item = unpackRepeatedGroups(questionnaireItem.item, it.item) + } + return if (questionnaireItem.type == Questionnaire.QuestionnaireItemType.GROUP && + questionnaireItem.repeats + ) { + questionnaireResponseItem.answer.map { + QuestionnaireResponse.QuestionnaireResponseItemComponent().apply { + linkId = questionnaireItem.linkId + text = questionnaireItem.localizedTextSpanned?.toString() + item = it.item + } } + } else { + listOf(questionnaireResponseItem) } } else { - listOf(questionnaireResponseItem) + return listOf(questionnaireResponseItem) } }