public static ActivityDefinition[] newFromEntities(
      final List<ActivityDefinitionEntity> entities) {
    final ActivityDefinition[] dtos = new ActivityDefinitionImpl[entities.size()];
    for (int i = 0; i < entities.size(); i++) {
      dtos[i] = ActivityDefinitionImpl.newFromEntity(entities.get(i));
    }

    return dtos;
  }
  public static ActivityDefinition newFromEntity(final ActivityDefinitionEntity entity) {
    final ActivityDefinitionImpl dto = new ActivityDefinitionImpl();
    dto.setId(entity.getId());
    dto.setType(
        ActivityTypeImpl.newFromEntity(entity.getActivityType(), LocaleContextHolder.getLocale()));
    dto.setFrequency(entity.getFrequency());
    dto.setStartDate(ApiUtil.formatDate(entity.getStartDate()));
    dto.setEndDate(ApiUtil.formatDate(entity.getHealthPlan().getEndDate()));
    dto.setHealthPlanName(entity.getHealthPlan().getName());
    dto.setHealthPlanActive(entity.getHealthPlan().isActive());
    dto.setHealthPlanId(entity.getHealthPlan().getId());
    dto.setHealthPlanStartDate(entity.getHealthPlan().getStartDate());
    dto.setActive(!entity.isRemovedFlag());
    dto.setReminder(entity.isReminder());
    dto.setHealthPlanCareUnit(CareUnitImpl.newFromEntity(entity.getHealthPlan().getCareUnit()));

    List<ActivityItemDefinitionEntity> mdl = entity.getActivityItemDefinitions();
    final ActivityItemValuesDefinition[] goalValues = new ActivityItemValuesDefinition[mdl.size()];
    for (int i = 0; i < goalValues.length; i++) {
      if (mdl.get(i) instanceof MeasurementDefinitionEntity) {
        goalValues[i] =
            MeasurementDefinitionImpl.newFromEntity((MeasurementDefinitionEntity) mdl.get(i));
      } else if (mdl.get(i) instanceof EstimationDefinitionEntity) {
        goalValues[i] =
            EstimationDefinitionImpl.newFromEntity((EstimationDefinitionEntity) mdl.get(i));
      } else if (mdl.get(i) instanceof YesNoDefinitionEntity) {
        goalValues[i] = YesNoDefinitionImpl.newFromEntity((YesNoDefinitionEntity) mdl.get(i));
      } else if (mdl.get(i) instanceof TextDefinitionEntity) {
        goalValues[i] = TextDefinitionImpl.newFromEntity((TextDefinitionEntity) mdl.get(i));
      }
    }
    dto.goalValues = goalValues;

    dto.calcCompletion(entity.getScheduledActivities());
    CareActorBaseView issuedBy =
        CareActorBaseViewImpl.newFromEntity(entity.getHealthPlan().getIssuedBy());
    dto.setIssuedBy(issuedBy);

    return dto;
  }