diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java index c37fcf08774fd0b6e03d9a01ac57a098e6242c2f..98aa555ea6795a0074760a7f9c0c64903b43d7a0 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/IScreeningOpenbisServiceFacade.java @@ -28,13 +28,12 @@ import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.dss.client.api.v1.DataSet; import ch.systemsx.cisd.openbis.dss.client.api.v1.IDataSetDss; -import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.authorization.AuthorizationGuard; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetMetadataDTO; -import ch.systemsx.cisd.openbis.dss.screening.shared.api.internal.authorization.DatasetIdentifierPredicate; import ch.systemsx.cisd.openbis.dss.screening.shared.api.v1.LoadImageConfiguration; import ch.systemsx.cisd.openbis.generic.shared.api.v1.filter.IDataSetFilter; import ch.systemsx.cisd.openbis.generic.shared.api.v1.filter.TypeBasedDataSetFilter; import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.ScreeningOpenbisServiceFacade.IImageOutputStreamProvider; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetImageRepresentationFormats; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentImageMetadata; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.FeatureInformation; @@ -768,7 +767,7 @@ public interface IScreeningOpenbisServiceFacade public void loadImages(List<PlateImageReference> imageReferences, LoadImageConfiguration configuration, IPlateImageHandler plateImageHandler) throws IOException; - + /** * Provides images for the specified list of image references (specified by data set code, well * position, channel and tile) and image selection criteria. These criteria are applied to the @@ -852,7 +851,7 @@ public interface IScreeningOpenbisServiceFacade @Retry public List<ImageDatasetMetadata> listImageMetadata( List<? extends IImageDatasetIdentifier> imageDatasets); - + /** * Returns for each of the specified image data sets the meta data of available image sets. */ @@ -888,4 +887,11 @@ public interface IScreeningOpenbisServiceFacade public ExperimentImageMetadata getExperimentImageMetadata( ExperimentIdentifier experimentIdentifier); + /** + * @return Information about the image representations available for the sepecified data sets. + */ + @Retry + public List<DatasetImageRepresentationFormats> listAvailableImageRepresentationFormats( + List<? extends IDatasetIdentifier> dataSetIdentifiers); + } \ No newline at end of file diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java index 4b53abfaf023b03707c5fadcaace4c080a440f83..dc796a8cd0daf17016a137b03667f2021fe86601 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningOpenbisServiceFacade.java @@ -57,6 +57,7 @@ import ch.systemsx.cisd.openbis.generic.shared.api.v1.filter.TypeBasedDataSetFil import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.WellImageCache.CachedImage; import ch.systemsx.cisd.openbis.plugin.screening.client.api.v1.WellImageCache.WellImages; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.IScreeningApiServer; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetImageRepresentationFormats; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ExperimentImageMetadata; @@ -1831,11 +1832,10 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa } }); } - public void loadImages(List<PlateImageReference> imageReferences, - final IPlateImageHandler plateImageHandler, final IImageSetSelectionCriterion... criteria) - throws IOException + final IPlateImageHandler plateImageHandler, + final IImageSetSelectionCriterion... criteria) throws IOException { plateImageReferencesMultiplexer.process(imageReferences, new IReferenceHandler<PlateImageReference>() @@ -1903,4 +1903,23 @@ public class ScreeningOpenbisServiceFacade implements IScreeningOpenbisServiceFa .getExperimentImageMetadata(sessionToken, experimentIdentifier); } + public List<DatasetImageRepresentationFormats> listAvailableImageRepresentationFormats( + List<? extends IDatasetIdentifier> dataSetIdentifiers) + { + List<IDatasetIdentifier> simplerList = + new ArrayList<IDatasetIdentifier>(dataSetIdentifiers.size()); + simplerList.addAll(dataSetIdentifiers); + Map<String, List<IDatasetIdentifier>> map = getReferencesPerDss(simplerList); + Set<Entry<String, List<IDatasetIdentifier>>> entrySet = map.entrySet(); + if (entrySet.size() != 1) + { + throw new IllegalArgumentException("Only one data store expected instead of " + + map.keySet()); + } + Entry<String, List<IDatasetIdentifier>> entry = entrySet.iterator().next(); + IDssServiceRpcScreening service = + dssServiceCache.createDssService(entry.getKey()).getService(); + return service.listAvailableImageRepresentationFormats(sessionToken, dataSetIdentifiers); + } + }