@Test public void testGenerateRecruitmentChartTrialSite2() throws IllegalArgumentException, TrialStateException { randomizeInValidTrialTwoTrialSites31(); ChartData chartData = chartsService.generateRecruitmentChartTrialSite(validTrial); assertEquals(2, chartData.getXLabels().size()); assertEquals(2, chartData.getData().size()); // assertEquals(90.0, chartData.getData().get(0)[0]); // assertEquals(30.0, chartData.getData().get(1)[0]); }
@Test public void testGenerateRecruitmentChart2() throws IllegalArgumentException, TrialStateException { randomizeInValidTrialTwoYears(); ChartData chartData = chartsService.generateRecruitmentChart(validTrial); assertEquals(24, chartData.getXLabels().size()); assertEquals(24, chartData.getData().size()); for (int i = 0; i < chartData.getData().size(); i++) { assertEquals(10.0 * (i + 1), chartData.getData().get(i)[0]); assertEquals(10.0 * (i + 1), chartData.getData().get(i)[1]); } }
@Test public void testChartSubGroups() { authenticatAsPrincipalInvestigator(); validTrial.setStartDate(new GregorianCalendar(2009, 0, 1)); validTrial.setEndDate(new GregorianCalendar(2010, 11, 1)); int blocksize = 4; int randomizations = 240; TreatmentArm arm1 = new TreatmentArm(); arm1.setPlannedSubjects(randomizations / 2); arm1.setName("arm1"); arm1.setTrial(validTrial); TreatmentArm arm2 = new TreatmentArm(); arm2.setPlannedSubjects(randomizations / 2); arm2.setName("arm2"); arm2.setTrial(validTrial); List<TreatmentArm> arms = new ArrayList<TreatmentArm>(); arms.add(arm1); arms.add(arm2); validTrial.setTreatmentArms(arms); DichotomousCriterion cr = new DichotomousCriterion(); cr.setOption1("1"); cr.setOption2("2"); DichotomousCriterion cr1 = new DichotomousCriterion(); cr1.setOption1("1"); cr1.setOption2("2"); DichotomousCriterion cr2 = new DichotomousCriterion(); cr2.setOption1("1"); cr2.setOption2("2"); try { cr.addStrata(new DichotomousConstraint(Arrays.asList(new String[] {"1"}))); cr.addStrata(new DichotomousConstraint(Arrays.asList(new String[] {"2"}))); cr1.addStrata(new DichotomousConstraint(Arrays.asList(new String[] {"1"}))); cr1.addStrata(new DichotomousConstraint(Arrays.asList(new String[] {"2"}))); cr2.addStrata(new DichotomousConstraint(Arrays.asList(new String[] {"1"}))); cr2.addStrata(new DichotomousConstraint(Arrays.asList(new String[] {"2"}))); validTrial.addCriterion(cr); validTrial.addCriterion(cr1); validTrial.addCriterion(cr2); } catch (ContraintViolatedException e) { BoxedException.throwBoxed(e); } BlockRandomizationConfig config = new BlockRandomizationConfig(); config.setMaximum(blocksize); config.setMinimum(blocksize); validTrial.setRandomizationConfiguration(config); trialService.create(validTrial); assertTrue(validTrial.getId() > 0); assertEquals(2, validTrial.getTreatmentArms().size()); authenticatAsInvestigator(); for (int i = 0; i < randomizations; i++) { TrialSubject subject = new TrialSubject(); subject.setIdentification("identification" + i); subject.setTrialSite(validTrial.getLeadingSite()); SubjectProperty<Serializable> subprob = new SubjectProperty<Serializable>(validTrial.getCriteria().get(0)); SubjectProperty<Serializable> subprob1 = new SubjectProperty<Serializable>(validTrial.getCriteria().get(1)); SubjectProperty<Serializable> subprob2 = new SubjectProperty<Serializable>(validTrial.getCriteria().get(2)); try { if ((new Random()).nextInt(2) == 0) { subprob.setValue(cr.getOption1()); } else { subprob.setValue(cr.getOption2()); } if ((new Random()).nextInt(2) == 0) { subprob1.setValue(cr1.getOption1()); } else { subprob1.setValue(cr1.getOption2()); } if ((new Random()).nextInt(2) == 0) { subprob2.setValue(cr2.getOption1()); } else { subprob2.setValue(cr2.getOption2()); } } catch (ContraintViolatedException e) { BoxedException.throwBoxed(e); } Set<SubjectProperty<?>> proberties = new HashSet<SubjectProperty<?>>(); proberties.add(subprob); proberties.add(subprob1); proberties.add(subprob2); subject.setProperties(proberties); trialService.randomize(validTrial, subject); subject.setCreatedAt(new GregorianCalendar(2009 + (i >= 120 ? 1 : 0), i % 12, 1)); sessionFactory.getCurrentSession().update(subject); } ChartData data = chartsService.generateRecruitmentChartFactors(validTrial); assertEquals(8, data.getData().size()); assertEquals(8, data.getData().get(0).length); assertEquals(8, data.getXLabels().size()); }