diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/QuestionnaireResponseValidator.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/QuestionnaireResponseValidator.kt index 616549caf7..9cfd635fa9 100644 --- a/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/QuestionnaireResponseValidator.kt +++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/QuestionnaireResponseValidator.kt @@ -151,10 +151,12 @@ object QuestionnaireResponseValidator { questionnaireResponseItemValidator: QuestionnaireResponseItemValidator, linkIdToValidationResultMap: MutableMap>, ): Map> { - when (checkNotNull(questionnaireItem.type) { "Questionnaire item must have type" }) { - Questionnaire.QuestionnaireItemType.DISPLAY, - Questionnaire.QuestionnaireItemType.NULL, -> Unit - Questionnaire.QuestionnaireItemType.GROUP -> + checkNotNull(questionnaireItem.type) { "Questionnaire item must have type" } + when { + questionnaireItem.type == Questionnaire.QuestionnaireItemType.DISPLAY || + questionnaireItem.type == Questionnaire.QuestionnaireItemType.NULL -> Unit + questionnaireItem.type == Questionnaire.QuestionnaireItemType.GROUP && + !questionnaireItem.repeats -> // Nested items under group // http://www.hl7.org/fhir/questionnaireresponse-definitions.html#QuestionnaireResponse.item.item validateQuestionnaireResponseItems( @@ -262,10 +264,13 @@ object QuestionnaireResponseValidator { questionnaireItem: Questionnaire.QuestionnaireItemComponent, questionnaireResponseItem: QuestionnaireResponse.QuestionnaireResponseItemComponent, ) { - when (checkNotNull(questionnaireItem.type) { "Questionnaire item must have type" }) { - Questionnaire.QuestionnaireItemType.DISPLAY, - Questionnaire.QuestionnaireItemType.NULL, -> Unit - Questionnaire.QuestionnaireItemType.GROUP -> + checkNotNull(questionnaireItem.type) { "Questionnaire item must have type" } + + when { + questionnaireItem.type == Questionnaire.QuestionnaireItemType.DISPLAY || + questionnaireItem.type == Questionnaire.QuestionnaireItemType.NULL -> Unit + questionnaireItem.type == Questionnaire.QuestionnaireItemType.GROUP && + !questionnaireItem.repeats -> // Nested items under group // http://www.hl7.org/fhir/questionnaireresponse-definitions.html#QuestionnaireResponse.item.item checkQuestionnaireResponseItems(questionnaireItem.item, questionnaireResponseItem.item)