@Override
public QueryResult<Individual> count(String studyStr, Query query, String sessionId) throws CatalogException {
query = ParamUtils.defaultObject(query, Query::new);
String userId = userManager.getUserId(sessionId);
Study study = catalogManager.getStudyManager().resolveId(studyStr, userId, new QueryOptions(QueryOptions.INCLUDE,
StudyDBAdaptor.QueryParams.VARIABLE_SET.key()));
Query finalQuery = new Query(query);
try {
fixQuery(study, finalQuery, sessionId);
} catch (CatalogException e) {
return new QueryResult<>(null);
}
AnnotationUtils.fixQueryAnnotationSearch(study, finalQuery);
finalQuery.append(IndividualDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid());
QueryResult<Long> queryResultAux = individualDBAdaptor.count(finalQuery, userId, StudyAclEntry.StudyPermissions.VIEW_INDIVIDUALS);
return new QueryResult<>("count", queryResultAux.getDbTime(), 0, queryResultAux.first(), queryResultAux.getWarningMsg(),
queryResultAux.getErrorMsg(), Collections.emptyList());
}