|
43 | 43 | import org.labkey.api.laboratory.TabbedReportItem; |
44 | 44 | import org.labkey.api.laboratory.assay.AssayDataProvider; |
45 | 45 | import org.labkey.api.laboratory.assay.SimpleAssayDataProvider; |
| 46 | +import org.labkey.api.laboratory.query.TabbedReportFilterProvider; |
46 | 47 | import org.labkey.api.ldk.table.ButtonConfigFactory; |
47 | 48 | import org.labkey.api.module.Module; |
48 | 49 | import org.labkey.api.module.ModuleLoader; |
@@ -85,6 +86,7 @@ public class LaboratoryServiceImpl extends LaboratoryService |
85 | 86 | private final Map<String, DataProvider> _dataProviders = new HashMap<>(); |
86 | 87 | private final Map<String, Map<String, List<Pair<Module, Class<? extends TableCustomizer>>>>> _tableCustomizers = new CaseInsensitiveHashMap<>(); |
87 | 88 | private final List<DemographicsProvider> _demographicsProviders = new ArrayList<>(); |
| 89 | + private final List<TabbedReportFilterProvider> _tabbedReportFilterProviders = new ArrayList<>(); |
88 | 90 |
|
89 | 91 | public static final String DEMOGRAPHICS_PROPERTY_CATEGORY = "laboratory.demographicsSource"; |
90 | 92 | public static final String DATASOURCE_PROPERTY_CATEGORY = "laboratory.additionalDataSource"; |
@@ -719,4 +721,15 @@ public void clearDataProviderCache() |
719 | 721 | { |
720 | 722 | LaboratoryDataProvider.clearCache(); |
721 | 723 | } |
| 724 | + |
| 725 | + @Override |
| 726 | + public void registerTabbedReportFilterProvider(TabbedReportFilterProvider provider) |
| 727 | + { |
| 728 | + _tabbedReportFilterProviders.add(provider); |
| 729 | + } |
| 730 | + |
| 731 | + public List<TabbedReportFilterProvider> getTabbedReportFilterProviderProviders(final Container c, final User u) |
| 732 | + { |
| 733 | + return _tabbedReportFilterProviders.stream().filter(d -> d.isAvailable(c, u)).toList(); |
| 734 | + } |
722 | 735 | } |
0 commit comments