Search in sources :

Example 1 with TEST_USER_GROUP

use of org.sagebionetworks.bridge.BridgeConstants.TEST_USER_GROUP in project BridgeServer2 by Sage-Bionetworks.

the class HibernateEnrollmentDao method getEnrollmentsForStudy.

@Override
public PagedResourceList<EnrollmentDetail> getEnrollmentsForStudy(String appId, String studyId, EnrollmentFilter filter, boolean includeTesters, Integer offsetBy, Integer pageSize) {
    QueryBuilder builder = new QueryBuilder();
    builder.append("FROM HibernateEnrollment AS h");
    if (!includeTesters) {
        builder.append("INNER JOIN org.sagebionetworks.bridge.hibernate.HibernateAccount AS acct ON acct.id = h.accountId");
    }
    WhereClauseBuilder where = builder.startWhere(AND);
    where.append("h.appId = :appId", "appId", appId);
    where.append("h.studyId = :studyId", "studyId", studyId);
    where.enrollment(filter, false);
    if (!includeTesters) {
        where.dataGroups(ImmutableSet.of(TEST_USER_GROUP), "NOT IN");
    }
    int total = hibernateHelper.queryCount("SELECT COUNT(*) " + builder.getQuery(), builder.getParameters());
    List<HibernateEnrollment> enrollments = hibernateHelper.queryGet("SELECT h " + builder.getQuery(), builder.getParameters(), offsetBy, pageSize, HibernateEnrollment.class);
    List<EnrollmentDetail> dtos = enrollments.stream().map(enrollment -> {
        AccountRef participantRef = nullSafeAccountRef(appId, enrollment.getAccountId());
        AccountRef enrolledByRef = nullSafeAccountRef(appId, enrollment.getEnrolledBy());
        AccountRef withdrawnByRef = nullSafeAccountRef(appId, enrollment.getWithdrawnBy());
        return new EnrollmentDetail(enrollment, participantRef, enrolledByRef, withdrawnByRef);
    }).collect(toList());
    return new PagedResourceList<>(dtos, total, true);
}
Also used : ImmutableSet(com.google.common.collect.ImmutableSet) PagedResourceList(org.sagebionetworks.bridge.models.PagedResourceList) ImmutableMap(com.google.common.collect.ImmutableMap) Resource(javax.annotation.Resource) Set(java.util.Set) AND(org.sagebionetworks.bridge.models.SearchTermPredicate.AND) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Component(org.springframework.stereotype.Component) EnrollmentDao(org.sagebionetworks.bridge.dao.EnrollmentDao) TEST_USER_GROUP(org.sagebionetworks.bridge.BridgeConstants.TEST_USER_GROUP) EnrollmentDetail(org.sagebionetworks.bridge.models.studies.EnrollmentDetail) AccountRef(org.sagebionetworks.bridge.models.accounts.AccountRef) WhereClauseBuilder(org.sagebionetworks.bridge.hibernate.QueryBuilder.WhereClauseBuilder) EnrollmentFilter(org.sagebionetworks.bridge.models.studies.EnrollmentFilter) EnrollmentDetail(org.sagebionetworks.bridge.models.studies.EnrollmentDetail) AccountRef(org.sagebionetworks.bridge.models.accounts.AccountRef) WhereClauseBuilder(org.sagebionetworks.bridge.hibernate.QueryBuilder.WhereClauseBuilder) PagedResourceList(org.sagebionetworks.bridge.models.PagedResourceList)

Aggregations

ImmutableMap (com.google.common.collect.ImmutableMap)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 List (java.util.List)1 Set (java.util.Set)1 Collectors.toList (java.util.stream.Collectors.toList)1 Resource (javax.annotation.Resource)1 TEST_USER_GROUP (org.sagebionetworks.bridge.BridgeConstants.TEST_USER_GROUP)1 EnrollmentDao (org.sagebionetworks.bridge.dao.EnrollmentDao)1 WhereClauseBuilder (org.sagebionetworks.bridge.hibernate.QueryBuilder.WhereClauseBuilder)1 PagedResourceList (org.sagebionetworks.bridge.models.PagedResourceList)1 AND (org.sagebionetworks.bridge.models.SearchTermPredicate.AND)1 AccountRef (org.sagebionetworks.bridge.models.accounts.AccountRef)1 EnrollmentDetail (org.sagebionetworks.bridge.models.studies.EnrollmentDetail)1 EnrollmentFilter (org.sagebionetworks.bridge.models.studies.EnrollmentFilter)1 Component (org.springframework.stereotype.Component)1