Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions api/src/org/labkey/api/study/Study.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import org.jetbrains.annotations.Nullable;
import org.labkey.api.attachments.Attachment;
import org.labkey.api.attachments.AttachmentFile;
import org.labkey.api.data.Container;
import org.labkey.api.security.User;
import org.labkey.api.util.HtmlString;

Expand Down Expand Up @@ -58,18 +57,6 @@ public interface Study extends StudyEntity

Collection<? extends Cohort> getCohorts(User user);

Collection<? extends AssaySpecimenConfig> getAssaySpecimenConfigs();

List<? extends Visit> getVisitsForAssaySchedule();

List<? extends Product> getStudyProducts(User user, String role);

List<? extends Treatment> getStudyTreatments(User user);

List<? extends TreatmentVisitMap> getStudyTreatmentVisitMap(Container container, @Nullable Integer cohortId);

List<? extends Visit> getVisitsForTreatmentSchedule();

List<? extends ParticipantCategory> getParticipantCategories(User user);

@Nullable String getParticipantCohortProperty();
Expand Down
4 changes: 4 additions & 0 deletions api/src/org/labkey/api/study/StudyService.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.labkey.api.module.Module;
import org.labkey.api.query.QuerySchema;
import org.labkey.api.query.UserSchema;
import org.labkey.api.query.ValidationException;
import org.labkey.api.reports.model.ViewCategory;
import org.labkey.api.reports.report.view.ReportUtil;
import org.labkey.api.security.User;
Expand Down Expand Up @@ -233,4 +234,7 @@ interface StudyTabProvider
ReportUtil.ReportFilter getStudyReportFilter(boolean editOnly);

Map<String, BigDecimal> getVisitImportMap(Study study, boolean includeStandardMapping);

// Methods created to support Vaccine study designs
ValidationException updateAssayPlan(User user, Study study, String assayPlan);
}
7 changes: 5 additions & 2 deletions api/src/org/labkey/api/study/StudyUrls.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ public interface StudyUrls extends UrlProvider
ActionURL getDatasetsURL(Container container);
ActionURL getManageDatasetsURL(Container container);
ActionURL getManageReportPermissions(Container container);
ActionURL getManageAssayScheduleURL(Container container, boolean useAlternateLookupFields);
ActionURL getManageTreatmentsURL(Container container, boolean useSingleTableEditor);
ActionURL getManageFileWatchersURL(Container container);
ActionURL getLinkToStudyURL(Container container, ExpSampleType sampleType);
ActionURL getLinkToStudyURL(Container container, ExpProtocol protocol);
Expand All @@ -50,4 +48,9 @@ public interface StudyUrls extends UrlProvider
ActionURL getTypeNotFoundURL(Container container, int datasetId);

void addManageStudyNavTrail(NavTree root, Container container, User user);

ActionURL getManageLocationsURL(Container container);
ActionURL getManageVisitsURL(Container container);
ActionURL getManageCohortsURL(Container container);
ActionURL getVisitOrderURL(Container container);
}
2 changes: 0 additions & 2 deletions study/api-src/org/labkey/api/study/StudyUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ public class StudyUtils
public static final String SUBMISSION_WARNING = "Once a request is submitted, its specimen list may no longer be modified. Continue?";
public static final String CANCELLATION_WARNING = "Canceling will permanently delete this pending request. Continue?";

public static final String STUDY_DESIGN_FEATURE_FLAG = "studyDesignFlag";

//Create a fixed point number encoding the date.
public static double sequenceNumFromDate(Date d)
{
Expand Down
13 changes: 13 additions & 0 deletions study/api-src/org/labkey/api/study/model/CohortService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.Container;
import org.labkey.api.query.ValidationException;
import org.labkey.api.security.User;
import org.labkey.api.services.ServiceRegistry;
import org.labkey.api.study.Cohort;
import org.labkey.api.study.CohortFilter;
import org.labkey.api.study.Study;
import org.labkey.api.view.ActionURL;

import java.util.Collection;
Expand Down Expand Up @@ -37,4 +39,15 @@ static void setInstance(CohortService impl)
Collection<CohortFilter> getCohortFilters(CohortFilter.Type type, Container c, User user);

Collection<? extends Cohort> getCohorts(Container container, User user);

// Methods created to support Vaccine study designs
Cohort getCohortByLabel(Container container, User user, String label);

Cohort getCohortForRowId(Container container, User user, int rowId);

void deleteCohort(Cohort cohort);

Cohort updateCohort(Container container, User user, int rowId, String label, Integer subjectCount);

Cohort createCohort(Study study, User user, String newLabel, boolean enrolled, Integer subjectCount, String description) throws ValidationException;
}
7 changes: 7 additions & 0 deletions study/api-src/org/labkey/api/study/model/VisitService.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package org.labkey.api.study.model;

import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.labkey.api.query.ValidationException;
import org.labkey.api.security.User;
import org.labkey.api.services.ServiceRegistry;
import org.labkey.api.study.Study;
import org.labkey.api.study.Visit;

import java.math.BigDecimal;
import java.util.Collection;

/**
Expand All @@ -34,4 +36,9 @@ static void setInstance(VisitService impl)
* Updates this study's participant, visit, and participant visit tables. Also updates automatic cohort assignments.
*/
ValidationException updateParticipantVisits(Study study, User user);

// Methods created to support Vaccine study designs
Visit createVisit(Study study, User user, @NotNull BigDecimal seqMin, String label, Visit.Type type);

void deleteVisit(Study study, User user, Visit visit);
}
17 changes: 17 additions & 0 deletions study/api-src/org/labkey/api/studydesign/StudyDesignManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import org.labkey.api.data.Table;
import org.labkey.api.data.TableInfo;
import org.labkey.api.exp.property.PropertyService;
import org.labkey.api.module.Module;
import org.labkey.api.module.ModuleLoader;
import org.labkey.api.security.User;
import org.labkey.api.studydesign.query.AbstractStudyDesignDomainKind;
import org.labkey.api.studydesign.query.StudyDesignQuerySchema;
Expand All @@ -43,12 +45,22 @@
public class StudyDesignManager
{
private static final StudyDesignManager _instance = new StudyDesignManager();
public static final String MODULE_NAME = "StudyDesign";

public static StudyDesignManager get()
{
return _instance;
}

public boolean isModuleActive(Container c)
{
if (c == null)
return false;

Module studyDesignModule = ModuleLoader.getInstance().getModule(MODULE_NAME);
return null != studyDesignModule && c.getActiveModules().contains(studyDesignModule);
}

public void deleteStudyDesignData(Container c, Set<TableInfo> deletedTables)
{
Filter filter = SimpleFilter.createContainerFilter(c);
Expand Down Expand Up @@ -77,6 +89,11 @@ public void deleteStudyDesignData(Container c, Set<TableInfo> deletedTables)
deletedTables.add(StudyDesignSchema.getInstance().getTableInfoTreatmentVisitMap());
Table.delete(StudyDesignSchema.getInstance().getTableInfoObjective(), filter);
deletedTables.add(StudyDesignSchema.getInstance().getTableInfoObjective());

Table.delete(StudyDesignSchema.getInstance().getTableInfoAssaySpecimenVisit(), filter);
deletedTables.add(StudyDesignSchema.getInstance().getTableInfoAssaySpecimenVisit());
Table.delete(StudyDesignSchema.getInstance().getTableInfoAssaySpecimen(), filter);
deletedTables.add(StudyDesignSchema.getInstance().getTableInfoAssaySpecimen());
}

// Proactively create the domains at study creation time to avoid problems with lazy creation, #42641
Expand Down
31 changes: 31 additions & 0 deletions study/api-src/org/labkey/api/studydesign/StudyDesignService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.labkey.api.studydesign;

import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.Container;
import org.labkey.api.security.User;
import org.labkey.api.services.ServiceRegistry;
import org.labkey.api.study.AssaySpecimenConfig;
import org.labkey.api.study.Product;
import org.labkey.api.study.Treatment;
import org.labkey.api.study.Visit;

import java.util.Collection;
import java.util.List;

public interface StudyDesignService
{
@Nullable
static StudyDesignService get()
{
return ServiceRegistry.get().getService(StudyDesignService.class);
}

List<? extends Product> getStudyProducts(Container c, User user, String role);
List<? extends Treatment> getStudyTreatments(Container c, User user);
List<? extends Visit> getVisitsForTreatmentSchedule(Container c);
Collection<? extends AssaySpecimenConfig> getAssaySpecimenConfigs(Container c);
void deleteTreatmentVisitMapForCohort(Container container, Integer cohortId);
void deleteTreatmentVisitMapForVisit(Container container, Integer visitId);
void deleteAssaySpecimenVisits(Container container, int visitId);

}
12 changes: 12 additions & 0 deletions study/api-src/org/labkey/api/studydesign/StudyDesignUrls.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.labkey.api.studydesign;

import org.labkey.api.action.UrlProvider;
import org.labkey.api.data.Container;
import org.labkey.api.view.ActionURL;

public interface StudyDesignUrls extends UrlProvider
{
ActionURL getManageAssayScheduleURL(Container container, boolean useAlternateLookupFields);
ActionURL getManageStudyProductsURL(Container container);
ActionURL getManageTreatmentsURL(Container container, boolean useSingleTableEditor);
}
Loading