package edu.ualberta.med.biobank.common.wrappers; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import edu.ualberta.med.biobank.common.exception.BiobankException; import edu.ualberta.med.biobank.common.peer.ResearchGroupPeer; import edu.ualberta.med.biobank.common.wrappers.base.ResearchGroupBaseWrapper; import edu.ualberta.med.biobank.model.ResearchGroup; import edu.ualberta.med.biobank.model.Study; import gov.nih.nci.system.applicationservice.ApplicationException; import gov.nih.nci.system.applicationservice.WritableApplicationService; import gov.nih.nci.system.query.hibernate.HQLCriteria; @SuppressWarnings("unused") public class ResearchGroupWrapper extends ResearchGroupBaseWrapper { public ResearchGroupWrapper(WritableApplicationService appService, ResearchGroup rg) { super(appService, rg); } public ResearchGroupWrapper(WritableApplicationService appService) { super(appService); // TODO Auto-generated constructor stub } private static final String ALL_RG_QRY = "from " //$NON-NLS-1$ + ResearchGroup.class.getName(); public static HashMap<Integer, ResearchGroup> getAllResearchGroups( WritableApplicationService appService) throws ApplicationException { HashMap<Integer, ResearchGroup> rgs = new HashMap<Integer, ResearchGroup>(); HQLCriteria c = new HQLCriteria(ALL_RG_QRY); List<ResearchGroup> ResearchGroups = appService.query(c); for (ResearchGroup researchGroup : ResearchGroups) rgs.put(researchGroup.getId(), researchGroup); return rgs; } private static final String RG_COUNT_QRY = "select count (*) from " //$NON-NLS-1$ + ResearchGroup.class.getName(); public static long getCount(WritableApplicationService appService) throws BiobankException, ApplicationException { return getCountResult(appService, new HQLCriteria(RG_COUNT_QRY)); } private static String AVAIL_STUDIES = "select s from " //$NON-NLS-1$ + Study.class.getName() + " s where s not in (select r." //$NON-NLS-1$ + ResearchGroupPeer.STUDY.getName() + " from " //$NON-NLS-1$ + ResearchGroup.class.getName() + " r)"; //$NON-NLS-1$ public static List<StudyWrapper> getAvailStudies( WritableApplicationService appService) throws ApplicationException { HQLCriteria criteria = new HQLCriteria(AVAIL_STUDIES); List<Study> studies = appService.query(criteria); List<StudyWrapper> wrappers = new ArrayList<StudyWrapper>(); for (Study s : studies) { wrappers.add(new StudyWrapper(appService, s)); } return wrappers; } public long getCollectionEventCountForStudy(StudyWrapper study) { // TODO Auto-generated method stub return 0; } public long getPatientCountForStudy(StudyWrapper study) { // TODO Auto-generated method stub return 0; } public Long getPatientCount() { return (long) 0; } @Override public int compareTo(ModelWrapper<ResearchGroup> wrapper) { if (wrapper instanceof ResearchGroupWrapper) { String myName = wrappedObject.getName(); String wrapperName = wrapper.wrappedObject.getName(); return myName.compareTo(wrapperName); } return 0; } private static final String RG_GET = "from " + ResearchGroup.class.getName() + " rg where rg.id=?"; public static ResearchGroupWrapper getResearchGroupById( WritableApplicationService appService, Integer id) throws ApplicationException { HQLCriteria criteria = new HQLCriteria(RG_GET); criteria.setParameters(Arrays.asList(id)); List<ResearchGroup> rgs = appService.query(criteria); return new ResearchGroupWrapper(appService, rgs.get(0)); } }