Skip to content

Commit cc120f6

Browse files
authored
Move study design features into a new module
Original PR: LabKey/platform#6686
1 parent 70b63d6 commit cc120f6

40 files changed

+8314
-7852
lines changed

study/src/org/labkey/study/controllers/StudyDesignController.java renamed to studydesign/src/org/labkey/studydesign/StudyDesignController.java

Lines changed: 949 additions & 969 deletions
Large diffs are not rendered by default.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package org.labkey.studydesign;
2+
3+
import org.apache.logging.log4j.Logger;
4+
import org.jetbrains.annotations.NotNull;
5+
import org.jetbrains.annotations.Nullable;
6+
import org.labkey.api.module.ModuleContext;
7+
import org.labkey.api.module.SpringModule;
8+
import org.labkey.api.services.ServiceRegistry;
9+
import org.labkey.api.studydesign.StudyDesignService;
10+
import org.labkey.api.util.logging.LogHelper;
11+
import org.labkey.api.view.WebPartFactory;
12+
import org.labkey.studydesign.model.TreatmentManager;
13+
import org.labkey.studydesign.view.AssayScheduleWebpartFactory;
14+
import org.labkey.studydesign.view.ImmunizationScheduleWebpartFactory;
15+
import org.labkey.studydesign.view.VaccineDesignWebpartFactory;
16+
17+
import java.util.Collection;
18+
import java.util.List;
19+
import java.util.Set;
20+
21+
public class StudyDesignModule extends SpringModule
22+
{
23+
private static final Logger LOG = LogHelper.getLogger(StudyDesignModule.class, "Study Design");
24+
public static final String NAME = "StudyDesign";
25+
26+
@Override
27+
public String getName()
28+
{
29+
return NAME;
30+
}
31+
32+
@Override
33+
@NotNull
34+
protected Collection<WebPartFactory> createWebPartFactories()
35+
{
36+
return List.of(
37+
new AssayScheduleWebpartFactory(),
38+
new ImmunizationScheduleWebpartFactory(),
39+
new VaccineDesignWebpartFactory()
40+
);
41+
}
42+
43+
@Override
44+
public @Nullable Double getSchemaVersion()
45+
{
46+
return null;
47+
}
48+
49+
@Override
50+
public boolean hasScripts()
51+
{
52+
return false;
53+
}
54+
55+
@Override
56+
protected void init()
57+
{
58+
addController("study-design", StudyDesignController.class);
59+
60+
ServiceRegistry.get().registerService(StudyDesignService.class, new StudyDesignServiceImpl());
61+
}
62+
63+
@Override
64+
protected void startupAfterSpringConfig(ModuleContext moduleContext)
65+
{
66+
}
67+
68+
@Override
69+
public @NotNull Collection<String> getSchemaNames()
70+
{
71+
return Set.of();
72+
}
73+
74+
@Override
75+
@NotNull
76+
public Set<Class> getIntegrationTests()
77+
{
78+
return Set.of(
79+
TreatmentManager.TreatmentDataTestCase.class,
80+
TreatmentManager.AssayScheduleTestCase.class
81+
);
82+
}
83+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package org.labkey.studydesign;
2+
3+
import org.labkey.api.data.Container;
4+
import org.labkey.api.data.SimpleFilter;
5+
import org.labkey.api.data.Table;
6+
import org.labkey.api.data.TableSelector;
7+
import org.labkey.api.query.FieldKey;
8+
import org.labkey.api.security.User;
9+
import org.labkey.api.study.AssaySpecimenConfig;
10+
import org.labkey.api.study.Product;
11+
import org.labkey.api.study.Treatment;
12+
import org.labkey.api.study.Visit;
13+
import org.labkey.api.studydesign.StudyDesignService;
14+
import org.labkey.api.studydesign.query.StudyDesignSchema;
15+
import org.labkey.studydesign.model.AssaySpecimenConfigImpl;
16+
import org.labkey.studydesign.model.TreatmentManager;
17+
18+
import java.util.Collection;
19+
import java.util.List;
20+
21+
public class StudyDesignServiceImpl implements StudyDesignService
22+
{
23+
@Override
24+
public List<? extends Product> getStudyProducts(Container c, User user, String role)
25+
{
26+
return TreatmentManager.getInstance().getStudyProducts(c, user, role, null);
27+
}
28+
29+
@Override
30+
public List<? extends Treatment> getStudyTreatments(Container c, User user)
31+
{
32+
return TreatmentManager.getInstance().getStudyTreatments(c, user);
33+
}
34+
35+
@Override
36+
public List<? extends Visit> getVisitsForTreatmentSchedule(Container c)
37+
{
38+
return TreatmentManager.getInstance().getVisitsForTreatmentSchedule(c);
39+
}
40+
41+
@Override
42+
public Collection<? extends AssaySpecimenConfig> getAssaySpecimenConfigs(Container c)
43+
{
44+
return new TableSelector(
45+
StudyDesignSchema.getInstance().getTableInfoAssaySpecimen(),
46+
SimpleFilter.createContainerFilter(c), null).getCollection(AssaySpecimenConfigImpl.class);
47+
}
48+
49+
@Override
50+
public void deleteTreatmentVisitMapForCohort(Container container, Integer cohortId)
51+
{
52+
TreatmentManager.getInstance().deleteTreatmentVisitMapForCohort(container, cohortId);
53+
}
54+
55+
@Override
56+
public void deleteTreatmentVisitMapForVisit(Container container, Integer visitId)
57+
{
58+
TreatmentManager.getInstance().deleteTreatmentVisitMapForVisit(container, visitId);
59+
}
60+
61+
@Override
62+
public void deleteAssaySpecimenVisits(Container container, int visitId)
63+
{
64+
SimpleFilter filter = SimpleFilter.createContainerFilter(container);
65+
filter.addCondition(FieldKey.fromParts("VisitId"), visitId);
66+
Table.delete(StudyDesignSchema.getInstance().getTableInfoAssaySpecimenVisit(), filter);
67+
}
68+
}

0 commit comments

Comments
 (0)