@Test public void testGroupByAnnotations() throws Exception { AbstractManager.MyResourceId vs1 = catalogManager.getStudyManager().getVariableSetId("vs", studyFqn, sessionIdUser); QueryResult queryResult = catalogManager.getSampleManager().groupBy(studyFqn, new Query(), Collections.singletonList(Constants.ANNOTATION + ":" + vs1.getResourceId() + ":annot1:PHEN"), QueryOptions.empty(), sessionIdUser); assertEquals(3, queryResult.getNumResults()); for (Document document : (List<Document>) queryResult.getResult()) { Document id = (Document) document.get("_id"); List<String> value = ((ArrayList<String>) id.values().iterator().next()); List<String> items = (List<String>) document.get("items"); if (value.isEmpty()) { assertEquals(4, items.size()); assertTrue(items.containsAll(Arrays.asList("s_6", "s_7", "s_8", "s_9"))); } else if ("CONTROL".equals(value.get(0))) { assertEquals(3, items.size()); assertTrue(items.containsAll(Arrays.asList("s_1", "s_3", "s_4"))); } else if ("CASE".equals(value.get(0))) { assertEquals(2, items.size()); assertTrue(items.containsAll(Arrays.asList("s_2", "s_5"))); } else { fail("It should not get into this condition"); } } }
return new MyResourceId(userId, studyId, variableSetId);
public QueryResult<VariableSet> addFieldToVariableSet(String studyStr, String variableSetStr, Variable variable, String sessionId) throws CatalogException { if (StringUtils.isEmpty(variable.getId())) { if (StringUtils.isEmpty(variable.getName())) { throw new CatalogException("Missing variable id"); } variable.setId(variable.getName()); } MyResourceId resource = getVariableSetId(variableSetStr, studyStr, sessionId); String userId = resource.getUser(); authorizationManager.checkCanCreateUpdateDeleteVariableSets(resource.getStudyId(), userId); QueryResult<VariableSet> queryResult = studyDBAdaptor.addFieldToVariableSet(resource.getResourceId(), variable, userId); auditManager.recordDeletion(AuditRecord.Resource.variableSet, resource.getResourceId(), userId, queryResult.first(), null, null); return queryResult; }
public QueryResult<VariableSetSummary> getVariableSetSummary(String studyStr, String variableSetStr, String sessionId) throws CatalogException { MyResourceId resource = getVariableSetId(variableSetStr, studyStr, sessionId); String userId = resource.getUser(); QueryResult<VariableSet> variableSet = studyDBAdaptor.getVariableSet(resource.getResourceId(), new QueryOptions(), userId); if (variableSet.getNumResults() == 0) { logger.error("getVariableSetSummary: Could not find variable set id {}. {} results returned", variableSetStr, variableSet.getNumResults()); throw new CatalogDBException("Variable set " + variableSetStr + " not found."); } int dbTime = 0; VariableSetSummary variableSetSummary = new VariableSetSummary(resource.getResourceId(), variableSet.first().getId()); QueryResult<VariableSummary> annotationSummary = sampleDBAdaptor.getAnnotationSummary(resource.getStudyId(), resource.getResourceId()); dbTime += annotationSummary.getDbTime(); variableSetSummary.setSamples(annotationSummary.getResult()); annotationSummary = cohortDBAdaptor.getAnnotationSummary(resource.getStudyId(), resource.getResourceId()); dbTime += annotationSummary.getDbTime(); variableSetSummary.setCohorts(annotationSummary.getResult()); annotationSummary = individualDBAdaptor.getAnnotationSummary(resource.getStudyId(), resource.getResourceId()); dbTime += annotationSummary.getDbTime(); variableSetSummary.setIndividuals(annotationSummary.getResult()); annotationSummary = familyDBAdaptor.getAnnotationSummary(resource.getStudyId(), resource.getResourceId()); dbTime += annotationSummary.getDbTime(); variableSetSummary.setFamilies(annotationSummary.getResult()); return new QueryResult<>("Variable set summary", dbTime, 1, 1, "", "", Arrays.asList(variableSetSummary)); }
public QueryResult<VariableSet> searchVariableSets(String studyStr, Query query, QueryOptions options, String sessionId) throws CatalogException { String userId = catalogManager.getUserManager().getUserId(sessionId); Study study = resolveId(studyStr, userId); // authorizationManager.checkStudyPermission(studyId, userId, StudyAclEntry.StudyPermissions.VIEW_VARIABLE_SET); options = ParamUtils.defaultObject(options, QueryOptions::new); query = ParamUtils.defaultObject(query, Query::new); if (query.containsKey(StudyDBAdaptor.VariableSetParams.UID.key())) { // Id could be either the id or the name MyResourceId resource = getVariableSetId(query.getString(StudyDBAdaptor.VariableSetParams.UID.key()), studyStr, sessionId); query.put(StudyDBAdaptor.VariableSetParams.UID.key(), resource.getResourceId()); } query.put(StudyDBAdaptor.VariableSetParams.STUDY_ID.key(), study.getUid()); return studyDBAdaptor.getVariableSets(query, options, userId); }
public QueryResult<VariableSet> deleteVariableSet(String studyStr, String variableSetStr, String sessionId) throws CatalogException { MyResourceId resource = getVariableSetId(variableSetStr, studyStr, sessionId); String userId = resource.getUser(); authorizationManager.checkCanCreateUpdateDeleteVariableSets(resource.getStudyId(), userId); QueryResult<VariableSet> queryResult = studyDBAdaptor.deleteVariableSet(resource.getResourceId(), QueryOptions.empty(), userId); auditManager.recordDeletion(AuditRecord.Resource.variableSet, resource.getResourceId(), userId, queryResult.first(), null, null); return queryResult; }
public QueryResult<VariableSet> removeFieldFromVariableSet(String studyStr, String variableSetStr, String name, String sessionId) throws CatalogException { MyResourceId resource = getVariableSetId(variableSetStr, studyStr, sessionId); String userId = resource.getUser(); authorizationManager.checkCanCreateUpdateDeleteVariableSets(resource.getStudyId(), userId); QueryResult<VariableSet> queryResult = studyDBAdaptor.removeFieldFromVariableSet(resource.getResourceId(), name, userId); auditManager.recordDeletion(AuditRecord.Resource.variableSet, resource.getResourceId(), userId, queryResult.first(), null, null); return queryResult; }
public QueryResult<VariableSet> getVariableSet(String studyStr, String variableSet, QueryOptions options, String sessionId) throws CatalogException { options = ParamUtils.defaultObject(options, QueryOptions::new); MyResourceId resourceId = getVariableSetId(variableSet, studyStr, sessionId); return studyDBAdaptor.getVariableSet(resourceId.getResourceId(), options, resourceId.getUser()); }