/**
   * This method is used to get Clinical Trial information
   *
   * @return ClinicalTrial object containing Clinical Trail Details.
   */
  private ClinicalTrial getClinicalTrial() {

    ClinicalTrial clinicalTrial = ClinicalTrial.Factory.newInstance();
    String answer = null;
    String subAnswer = null;
    answer = getAnswer(IS_CLINICAL_TRIAL, answerHeaders);
    if (answer != null) {
      if (!answer.equals(NOT_ANSWERED)) {
        if (YnqConstant.YES.code().equals(answer)) {
          clinicalTrial.setIsClinicalTrial(YesNoDataType.Y_YES);
          subAnswer = getAnswer(PHASE_III_CLINICAL_TRIAL, answerHeaders);
          if (subAnswer != null && !subAnswer.equals(NOT_ANSWERED)) {
            if (YnqConstant.YES.code().equals(subAnswer)) {
              clinicalTrial.setIsPhaseIIIClinicalTrial(YesNoDataType.Y_YES);
            } else {
              clinicalTrial.setIsPhaseIIIClinicalTrial(YesNoDataType.N_NO);
            }

          } else {
            clinicalTrial.setIsPhaseIIIClinicalTrial(null);
          }
        } else {
          clinicalTrial.setIsClinicalTrial(YesNoDataType.N_NO);
        }
      }
    }
    return clinicalTrial;
  }
  /**
   * This method is used to get information of Stem Cells for the form PHS398CoverPage
   *
   * @return StemCells object containing information about Human stem Cells involvement.
   */
  private StemCells getStemCells() {

    StemCells stemCells = StemCells.Factory.newInstance();
    Enum answers = YesNoDataType.N_NO;
    String childAnswer = null;
    String answer = getAnswer(IS_HUMAN_STEM_CELLS_INVOLVED, answerHeaders);
    if (answer != null) {
      if (!answer.equals(NOT_ANSWERED)) {
        answers =
            YnqConstant.YES.code().equals(getAnswer(IS_HUMAN_STEM_CELLS_INVOLVED, answerHeaders))
                ? YesNoDataType.Y_YES
                : YesNoDataType.N_NO;
        if (YnqConstant.YES.code().equals(answer)) {
          stemCells.setIsHumanStemCellsInvolved(YesNoDataType.Y_YES);
          String subAnswer = getAnswer(SPECIFIC_STEM_CELL_LINE, answerHeaders);
          if (subAnswer != null) {
            if (!subAnswer.equals(NOT_ANSWERED)) {
              if (YnqConstant.YES.code().equals(subAnswer)) {
                stemCells.setStemCellsIndicator(YesNoDataType.N_NO);
                childAnswer = getAnswers(REGISTRATION_NUMBER, answerHeaders);
              } else {
                stemCells.setStemCellsIndicator(YesNoDataType.Y_YES);
              }
            }
          }
          if (childAnswer != null) {
            if (FieldValueConstants.VALUE_UNKNOWN.equalsIgnoreCase(childAnswer)) {
              stemCells.setStemCellsIndicator(answers);
            } else {
              List<String> cellLines = getCellLines(childAnswer);
              if (cellLines.size() > 0) {
                stemCells.setCellLinesArray(cellLines.toArray(new String[0]));
              }
            }
          }
        } else {
          stemCells.setIsHumanStemCellsInvolved(YesNoDataType.N_NO);
        }
      }
    }
    return stemCells;
  }
 private YesNoDataType.Enum getProposalYnQAnswer(ProposalYnqContract proposalYnq) {
   return proposalYnq.getAnswer().equals(YnqConstant.YES.code())
       ? YesNoDataType.Y_YES
       : YesNoDataType.N_NO;
 }