package edu.ualberta.med.biobank.test.action.helper; import java.util.HashSet; import java.util.Set; import edu.ualberta.med.biobank.common.action.study.StudyGetClinicInfoAction.ClinicInfo; import edu.ualberta.med.biobank.common.action.study.StudyInfo; import edu.ualberta.med.biobank.common.action.study.StudySaveAction; import edu.ualberta.med.biobank.common.action.study.StudySaveAction.AliquotedSpecimenSaveInfo; import edu.ualberta.med.biobank.common.action.study.StudySaveAction.SourceSpecimenSaveInfo; import edu.ualberta.med.biobank.common.action.study.StudySaveAction.StudyEventAttrSaveInfo; import edu.ualberta.med.biobank.model.ActivityStatus; import edu.ualberta.med.biobank.model.AliquotedSpecimen; import edu.ualberta.med.biobank.model.Contact; import edu.ualberta.med.biobank.model.SourceSpecimen; import edu.ualberta.med.biobank.model.StudyEventAttr; import edu.ualberta.med.biobank.test.action.IActionExecutor; public class StudyHelper extends Helper { public static StudySaveAction getSaveAction(String name, String nameShort, ActivityStatus activityStatus) { StudySaveAction saveAction = new StudySaveAction(); saveAction.setName(name); saveAction.setNameShort(nameShort); saveAction.setActivityStatus(activityStatus); saveAction.setContactIds(new HashSet<Integer>()); saveAction .setSourceSpecimenSaveInfo(new HashSet<SourceSpecimenSaveInfo>()); saveAction .setAliquotSpecimenSaveInfo(new HashSet<AliquotedSpecimenSaveInfo>()); saveAction .setStudyEventAttrSaveInfo(new HashSet<StudyEventAttrSaveInfo>()); return saveAction; } public static Integer createStudy(IActionExecutor actionExecutor, String name, ActivityStatus activityStatus) { StudySaveAction saveStudy = getSaveAction(name, name, activityStatus); return actionExecutor.exec(saveStudy).getId(); } public static StudySaveAction getSaveAction(StudyInfo studyInfo) { StudySaveAction saveStudy = new StudySaveAction(); saveStudy.setId(studyInfo.getStudy().getId()); saveStudy.setName(studyInfo.getStudy().getName()); saveStudy.setNameShort(studyInfo.getStudy().getNameShort()); saveStudy.setActivityStatus(studyInfo.getStudy().getActivityStatus()); Set<Integer> ids = new HashSet<Integer>(); for (ClinicInfo infos : studyInfo.getClinicInfos()) { for (Contact c : infos.getContacts()) { ids.add(c.getId()); } } saveStudy.setContactIds(ids); Set<SourceSpecimenSaveInfo> ssSaveInfos = new HashSet<SourceSpecimenSaveInfo>(); for (SourceSpecimen ss : studyInfo.getSourceSpecimens()) { ssSaveInfos.add(new SourceSpecimenSaveInfo(ss)); } saveStudy.setSourceSpecimenSaveInfo(ssSaveInfos); Set<AliquotedSpecimenSaveInfo> asSaveInfos = new HashSet<AliquotedSpecimenSaveInfo>(); for (AliquotedSpecimen as : studyInfo.getAliquotedSpcs()) { asSaveInfos.add(new AliquotedSpecimenSaveInfo(as)); } saveStudy.setAliquotSpecimenSaveInfo(asSaveInfos); Set<StudyEventAttrSaveInfo> seAttrSaveInfos = new HashSet<StudyEventAttrSaveInfo>(); for (StudyEventAttr seAttr : studyInfo.getStudyEventAttrs()) { seAttrSaveInfos.add(new StudyEventAttrSaveInfo(seAttr)); } saveStudy.setStudyEventAttrSaveInfo(seAttrSaveInfos); return saveStudy; } }