docs: private CurrentPriorNRSASupport[] getCurrentPriorNRSASupportArray() {
          List<CurrentPriorNRSASupport> currentPriorNRSASupportList = new ArrayList<>();
          List<AnswerContract> answerList = new ArrayList<>();
          String nsrSupport = null;
          
          List<? extends AnswerHeaderContract> answers = findQuestionnaireWithAnswers(pdDoc.getDevelopmentProposal());
          for (AnswerHeaderContract answerHeader : answers) {
              QuestionnaireContract questionnaire = questionAnswerService.findQuestionnaireById(answerHeader.getQuestionnaireId());
              List<? extends QuestionnaireQuestionContract> questionnaireQuestions = questionnaire.getQuestionnaireQuestions();
              for (QuestionnaireQuestionContract questionnaireQuestion : questionnaireQuestions) {
                  AnswerContract answerBO = getAnswer(questionnaireQuestion,answerHeader);
                  String answer = answerBO != null ? answerBO.getAnswer() : null;
                  QuestionContract question = questionnaireQuestion.getQuestion();
  
                  if (answer != null) {
                      int questionSeqId = question.getQuestionSeqId();
                  switch (questionSeqId) {
                  case KIRST_START_KNOWN:
                  case KIRST_END_KNOWN:
                  case KIRST_START_DT:
                  case KIRST_END_DT:
                  case KIRST_GRANT_KNOWN:
                  case KIRST_GRANT_NUM:
                  case PRE_OR_POST:
                  case IND_OR_INST:
                      if (questionSeqId == KIRST_START_KNOWN) {
                          if (answer.equals(QUESTION_ANSWER_NO)) {
                              answer = FieldValueConstants.VALUE_UNKNOWN;
                              questionSeqId = KIRST_START_DT;
                          } else {
                              break;
                          }
                      }
                          if (questionSeqId == KIRST_END_KNOWN) {
                              if (answer.equals(QUESTION_ANSWER_NO)) {
                                  answer = FieldValueConstants.VALUE_UNKNOWN;
                                  questionSeqId = KIRST_END_DT;
                              } else {
                                  break;
                              }
                          }
                          if (questionSeqId == KIRST_GRANT_KNOWN) {
                              if (answer.equals(QUESTION_ANSWER_NO)) {
                                  answer = FieldValueConstants.VALUE_UNKNOWN;
                                  questionSeqId = KIRST_GRANT_NUM;
                              } else {
                                  break;
                              }
                          }
                          InternalAnswer quesAnswer = new InternalAnswer();
                          quesAnswer.setAnswer(answer);
                          quesAnswer.setQuestionSeqId(questionSeqId);
                          answerList.add(quesAnswer);
  
                      break;
                  case NRSA_SUPPORT:
                      nsrSupport = answer
                              .equals(YnqConstant.YES.code()) ? NSR_SUPPORT_YES
                              : NSR_SUPPORT_NO;
                      break;
                  default:
                      break;
                  }
              }
          }
      }
          Collections.sort(answerList, (answer1, answer2) -> answer1.getQuestionSeqId().compareTo(
                  answer2.getQuestionSeqId()));
          List<CurrentPriorNRSASupport.Level.Enum> levelList = new ArrayList<>();
          List<CurrentPriorNRSASupport.Type.Enum> typeList = new ArrayList<>();
          List<Calendar> startDateList = new ArrayList<>();
          List<Calendar> endDateList = new ArrayList<>();
          List<String> grantNumberList = new ArrayList<>();
          for (AnswerContract questionnaireAnswer : answerList) {
              if (nsrSupport != null && nsrSupport.equals(NSR_SUPPORT_YES)) {
                  if (questionnaireAnswer.getQuestionSeqId() == PRE_OR_POST) {
                      levelList.add(CurrentPriorNRSASupport.Level.Enum
                              .forString(questionnaireAnswer.getAnswer()));
                  }
                  if (questionnaireAnswer.getQuestionSeqId() == IND_OR_INST) {
                      typeList.add(CurrentPriorNRSASupport.Type.Enum
                              .forString(questionnaireAnswer.getAnswer()));
                  }
                  if (questionnaireAnswer.getQuestionSeqId() == KIRST_START_DT){
                      if(questionnaireAnswer.getAnswer().equals(FieldValueConstants.VALUE_UNKNOWN)) {
                          startDateList.add(null);
                      }else{
                          startDateList.add(s2SDateTimeService.convertDateStringToCalendar(questionnaireAnswer.getAnswer()));
                      }
                  }
                  if (questionnaireAnswer.getQuestionSeqId() == KIRST_END_DT){
                      if(questionnaireAnswer.getAnswer().equals(FieldValueConstants.VALUE_UNKNOWN)) {
                          endDateList.add(null);
                      }else{
                          endDateList.add(s2SDateTimeService.convertDateStringToCalendar(questionnaireAnswer.getAnswer()));
                      }
                  }
                  if (questionnaireAnswer.getQuestionSeqId() == KIRST_GRANT_NUM) {
                      grantNumberList.add(questionnaireAnswer.getAnswer());
                  }
              }
          }
          for (int index = 0; levelList.size() > index; index++) {
              CurrentPriorNRSASupport currentPriorNRSASupport = CurrentPriorNRSASupport.Factory.newInstance();
              currentPriorNRSASupport.setLevel(levelList.get(index));
              currentPriorNRSASupport.setType(typeList.get(index));
              if(!startDateList.isEmpty() && startDateList.get(index)!=null)
                  currentPriorNRSASupport.setStartDate(startDateList.get(index));
              if(!endDateList.isEmpty() && endDateList.get(index)!=null)
                  currentPriorNRSASupport.setEndDate(endDateList.get(index));
              currentPriorNRSASupport.setGrantNumber(grantNumberList.get(index));
              currentPriorNRSASupportList.add(currentPriorNRSASupport);
          }
          return currentPriorNRSASupportList.toArray(new CurrentPriorNRSASupport[currentPriorNRSASupportList.size()]);
      }