private AssessmentData doCreateAssessmentForBatch(
      String user, AssessmentFilter filter, boolean useTemplate, TaxonNode taxon) {
    AssessmentFilter draftFilter = filter.deepCopy();
    draftFilter.setDraft(false);
    draftFilter.setRecentPublished(true);
    draftFilter.setAllPublished(false);

    AssessmentFilterHelper helper = new AssessmentFilterHelper(draftFilter);

    AssessmentData curAss = null;

    if (useTemplate) {
      List<AssessmentData> assessments = helper.getAssessments(taxon.getId() + "", vfs);
      if (assessments.size() == 0) {
        draftFilter.getRegions().clear();
        draftFilter.getRegions().add(AssessmentData.GLOBAL_ID);
        assessments = helper.getAssessments(taxon.getId() + "", vfs);
      }

      if (assessments.size() == 0) {
        System.out.println("No template exists for species " + taxon.getFullName());
        curAss = new AssessmentData(); // No template exists...
      } else {
        curAss = assessments.get(0).deepCopy();
      }
    } else curAss = new AssessmentData();

    curAss.setRegionIDs(filter.getRegions());
    if (!filter.getRegions().contains("-1")) curAss.setEndemic(false);
    curAss.setType(AssessmentData.DRAFT_ASSESSMENT_STATUS);
    curAss.setAssessmentID("new");
    curAss.setSpeciesID(taxon.getId() + "");
    curAss.setSpeciesName(taxon.getFullName());
    return curAss;
  }