From 9de5f7189de8f024b1f40021a0e97a96a19425b6 Mon Sep 17 00:00:00 2001 From: pkupczyk <pkupczyk> Date: Wed, 16 Apr 2014 14:34:41 +0000 Subject: [PATCH] SSDM-75 / Javascript-based Microscopy Data Viewer - new API methods for fetching image series related data SVN: 31384 --- .../public/resources/js/openbis-screening.js | 26 ++++ .../screening/server/ScreeningServer.java | 73 ++++++++- .../screening/server/ScreeningServerJson.java | 32 +++- .../server/ScreeningServerLogger.java | 16 ++ .../dto/DatasetImagesReferenceTranslator.java | 38 +++++ ...tasetOverlayImagesReferenceTranslator.java | 42 +++++ .../dto/ImageChannelStackTranslator.java | 44 ++++++ ...ageDatasetEnrichedReferenceTranslator.java | 57 +++++++ .../dto/ImageDatasetParametersTranslator.java | 61 ++++++++ .../logic/dto/ImageResolutionTranslator.java | 40 +++++ .../dto/InternalImageChannelTranslator.java | 60 ++++++++ ...rnalImageTransformationInfoTranslator.java | 45 ++++++ .../logic/dto/LogicalImageInfoTranslator.java | 56 +++++++ .../logic/dto/WellLocationTranslator.java | 36 +++++ .../shared/api/v1/IScreeningApiServer.java | 143 ++++++++---------- .../api/v1/dto/DatasetImagesReference.java | 44 ++++++ .../v1/dto/DatasetOverlayImagesReference.java | 42 +++++ .../shared/api/v1/dto/ImageChannelStack.java | 100 ++++++++++++ .../v1/dto/ImageDatasetEnrichedReference.java | 57 +++++++ .../api/v1/dto/ImageDatasetParameters.java | 129 ++++++++++++++++ .../shared/api/v1/dto/ImageResolution.java | 56 +++++++ .../api/v1/dto/InternalImageChannel.java | 93 ++++++++++++ .../dto/InternalImageTransformationInfo.java | 92 +++++++++++ .../shared/api/v1/dto/LogicalImageInfo.java | 57 +++++++ .../shared/api/v1/dto/WellLocation.java | 56 +++++++ .../basic/dto/ImageDatasetParameters.java | 5 + 26 files changed, 1416 insertions(+), 84 deletions(-) create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetImagesReferenceTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetOverlayImagesReferenceTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageChannelStackTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetEnrichedReferenceTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetParametersTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageResolutionTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageChannelTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageTransformationInfoTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/LogicalImageInfoTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/WellLocationTranslator.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetImagesReference.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetOverlayImagesReference.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageChannelStack.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetEnrichedReference.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetParameters.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageResolution.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageChannel.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageTransformationInfo.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/LogicalImageInfo.java create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/WellLocation.java diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/js/openbis-screening.js b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/js/openbis-screening.js index a39730902bb..f8e4a232297 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/js/openbis-screening.js +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/public/resources/js/openbis-screening.js @@ -143,6 +143,32 @@ openbis.prototype.listImageDatasets = function(plateIdentifiers, action) { }); } +/** + * @see IScreeningApiServer.getImageInfo(String, String, WellLocation) + * @method + */ +openbis.prototype.getImageInfo = function(dataSetCode, wellLocation, action) { + this._internal.ajaxRequest({ + url: this._internal.screeningUrl, + data: { "method" : "getImageInfo", + "params" : [ this.getSession(), dataSetCode, wellLocation ] }, + success: action + }); +} + +/** + * @see IScreeningApiServer.getImageResolutions(String, String) + * @method + */ +openbis.prototype.getImageResolutions = function(dataSetCode, action) { + this._internal.ajaxRequest({ + url: this._internal.screeningUrl, + data: { "method" : "getImageResolutions", + "params" : [ this.getSession(), dataSetCode ] }, + success: action + }); +} + /** * @see IScreeningApiServer.listRawImageDatasets(String, List<? extends PlateIdentifier>) * @method diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java index 3ca1daa746b..8ca11efceda 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.server; import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedList; import java.util.List; import javax.annotation.Resource; @@ -25,6 +26,7 @@ import javax.annotation.Resource; import net.lemnik.eodsql.DataIterator; import net.lemnik.eodsql.QueryTool; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; @@ -72,6 +74,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.MetaprojectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; @@ -108,6 +111,9 @@ import ch.systemsx.cisd.openbis.plugin.screening.server.logic.PlateContentLoader import ch.systemsx.cisd.openbis.plugin.screening.server.logic.ScreeningApiImpl; import ch.systemsx.cisd.openbis.plugin.screening.server.logic.ScreeningUtils; import ch.systemsx.cisd.openbis.plugin.screening.server.logic.WellContentLoader; +import ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto.ImageResolutionTranslator; +import ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto.LogicalImageInfoTranslator; +import ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto.WellLocationTranslator; import ch.systemsx.cisd.openbis.plugin.screening.shared.IScreeningServer; import ch.systemsx.cisd.openbis.plugin.screening.shared.ResourceNames; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.IScreeningApiServer; @@ -176,7 +182,7 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl /** * The minor version of this service. */ - public static final int MINOR_VERSION = 10; + public static final int MINOR_VERSION = 11; @Resource(name = ResourceNames.SCREENING_BUSINESS_OBJECT_FACTORY) private IScreeningBusinessObjectFactory businessObjectFactory; @@ -543,6 +549,71 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl return createScreeningApiImpl(sessionToken).listImageDatasets(plates); } + @Override + @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) + public ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LogicalImageInfo getImageInfo(String sessionToken, + @AuthorizationGuard(guardClass = DataSetCodePredicate.class) + String datasetCode, ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellLocation wellLocationOrNull) + { + checkSession(sessionToken); + + if (StringUtils.isBlank(datasetCode)) + { + throw new IllegalArgumentException("Data set code was null or empty"); + } + + DataPE dataSet = daoFactory.getDataDAO().tryToFindDataSetByCode(datasetCode); + + if (dataSet == null) + { + return null; + } + + WellLocation internalWellLocation = new WellLocationTranslator().translate(wellLocationOrNull); + + LogicalImageInfo internalInfo = getImageDatasetInfo(sessionToken, datasetCode, dataSet.getDataStore().getCode(), internalWellLocation); + + return new LogicalImageInfoTranslator().translate(internalInfo); + } + + @Override + @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) + public List<ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution> getImageResolutions(String sessionToken, + @AuthorizationGuard(guardClass = DataSetCodePredicate.class) + String datasetCode) + { + checkSession(sessionToken); + + if (StringUtils.isBlank(datasetCode)) + { + throw new IllegalArgumentException("Data set code was null or empty"); + } + + DataPE dataSet = daoFactory.getDataDAO().tryToFindDataSetByCode(datasetCode); + + if (dataSet == null) + { + return null; + } + + List<ImageResolution> internalResolutions = getImageDatasetResolutions(sessionToken, datasetCode, dataSet.getDataStore().getCode()); + + if (internalResolutions == null) + { + return null; + } + + List<ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution> apiResolutions = + new LinkedList<ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution>(); + + for (ImageResolution internalResolution : internalResolutions) + { + apiResolutions.add(new ImageResolutionTranslator().translate(internalResolution)); + } + + return apiResolutions; + } + @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) public List<ImageDatasetReference> listRawImageDatasets(String sessionToken, diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerJson.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerJson.java index 23760d16e9e..14c5f09335b 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerJson.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerJson.java @@ -38,8 +38,10 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.IImageReprese import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetMetadata; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageRepresentationFormat; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageSize; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LoadImageConfiguration; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LogicalImageInfo; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.MaterialTypeIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Plate; @@ -49,6 +51,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateMetadata import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellMaterialMapping; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellReferenceWithDatasets; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellIdentifier; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellLocation; /** * @author pkupczyk @@ -316,10 +319,21 @@ public class ScreeningServerJson implements IScreeningApiServer return server.loadPhysicalThumbnailsBase64(sessionToken, imageReferences, format); } + @Override + public LogicalImageInfo getImageInfo(String sessionToken, String datasetCode, WellLocation wellLocationOrNull) + { + return server.getImageInfo(sessionToken, datasetCode, wellLocationOrNull); + } + + @Override + public List<ImageResolution> getImageResolutions(String sessionToken, String datasetCode) + { + return new ImageResolutionList(getImageResolutions(sessionToken, datasetCode)); + } + /* - * The collections listed below have been created to help Jackson library embed/detect types of - * the collection's items during JSON serialization/deserialization. (see - * http://wiki.fasterxml.com/JacksonPolymorphicDeserialization#A5._Known_Issues) + * The collections listed below have been created to help Jackson library embed/detect types of the collection's items during JSON + * serialization/deserialization. (see http://wiki.fasterxml.com/JacksonPolymorphicDeserialization#A5._Known_Issues) */ private static class FeatureVectorDatasetReferenceList extends @@ -477,4 +491,16 @@ public class ScreeningServerJson implements IScreeningApiServer } } + private static class ImageResolutionList extends + ArrayList<ImageResolution> implements IModifiable + { + private static final long serialVersionUID = 1L; + + public ImageResolutionList( + Collection<? extends ImageResolution> c) + { + super(c); + } + } + } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java index 5d6a0918a96..52de1ee8332 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java @@ -179,6 +179,22 @@ final class ScreeningServerLogger extends AbstractServerLogger implements IScree return null; } + @Override + public ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LogicalImageInfo getImageInfo(String sessionToken, String datasetCode, + ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellLocation wellLocationOrNull) + { + logAccess(sessionToken, "getImageInfo", "dataset(%s) well(%s)", datasetCode, wellLocationOrNull); + return null; + } + + @Override + public List<ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution> getImageResolutions(String sessionToken, + String datasetCode) + { + logAccess(sessionToken, "getImageResolutions", "dataset(%s)", datasetCode); + return null; + } + @Override public ImageDatasetEnrichedReference getImageDatasetReference(String sessionToken, String datasetCode, String datastoreCode) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetImagesReferenceTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetImagesReferenceTranslator.java new file mode 100644 index 00000000000..2c036920e7f --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetImagesReferenceTranslator.java @@ -0,0 +1,38 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetImagesReference; + +/** + * @author pkupczyk + */ +public class DatasetImagesReferenceTranslator +{ + + public DatasetImagesReference translate(ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetImagesReference internalReference) + { + if (internalReference == null) + { + return null; + } + + DatasetImagesReference apiReference = new DatasetImagesReference(); + apiReference.setImageParameters(new ImageDatasetParametersTranslator().translate(internalReference.getImageParameters())); + return apiReference; + } +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetOverlayImagesReferenceTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetOverlayImagesReferenceTranslator.java new file mode 100644 index 00000000000..51ae47501f3 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/DatasetOverlayImagesReferenceTranslator.java @@ -0,0 +1,42 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetOverlayImagesReference; + +/** + * @author pkupczyk + */ +public class DatasetOverlayImagesReferenceTranslator +{ + + public DatasetOverlayImagesReference translate( + ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetOverlayImagesReference internalOverlay) + { + if (internalOverlay == null) + { + return null; + } + + DatasetOverlayImagesReference apiOverlay = new DatasetOverlayImagesReference(); + apiOverlay.setAnalysisProcedureOrNull(internalOverlay.tryGetAnalysisProcedure()); + apiOverlay.setImageParameters(new ImageDatasetParametersTranslator().translate(internalOverlay.getImageParameters())); + + return apiOverlay; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageChannelStackTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageChannelStackTranslator.java new file mode 100644 index 00000000000..d37bd6a3928 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageChannelStackTranslator.java @@ -0,0 +1,44 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageChannelStack; + +/** + * @author pkupczyk + */ +public class ImageChannelStackTranslator +{ + + public ImageChannelStack translate(ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStack internalStack) + { + if (internalStack == null) + { + return null; + } + + ImageChannelStack apiStack = new ImageChannelStack(); + apiStack.setId(internalStack.getChannelStackTechId()); + apiStack.setTileCol(internalStack.getTileCol()); + apiStack.setTileRow(internalStack.getTileRow()); + apiStack.setSeriesNumberOrNull(internalStack.tryGetSeriesNumber()); + apiStack.setDepthOrNull(internalStack.tryGetDepth()); + apiStack.setTimePointOrNull(internalStack.tryGetTimepoint()); + return apiStack; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetEnrichedReferenceTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetEnrichedReferenceTranslator.java new file mode 100644 index 00000000000..89372c072ee --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetEnrichedReferenceTranslator.java @@ -0,0 +1,57 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import java.util.LinkedList; +import java.util.List; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.DatasetOverlayImagesReference; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetEnrichedReference; + +/** + * @author pkupczyk + */ +public class ImageDatasetEnrichedReferenceTranslator +{ + + public ImageDatasetEnrichedReference translate( + ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageDatasetEnrichedReference internalReference) + { + if (internalReference == null) + { + return null; + } + + ImageDatasetEnrichedReference apiReference = new ImageDatasetEnrichedReference(); + apiReference.setImageDataset(new DatasetImagesReferenceTranslator().translate(internalReference.getImageDataset())); + + if (internalReference.getOverlayDatasets() != null) + { + List<DatasetOverlayImagesReference> apiOverlays = new LinkedList<DatasetOverlayImagesReference>(); + + for (ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetOverlayImagesReference internalOverlay : internalReference + .getOverlayDatasets()) + { + apiOverlays.add(new DatasetOverlayImagesReferenceTranslator().translate(internalOverlay)); + } + + apiReference.setOverlayDatasets(apiOverlays); + } + + return apiReference; + } +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetParametersTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetParametersTranslator.java new file mode 100644 index 00000000000..ae64e1feeb6 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageDatasetParametersTranslator.java @@ -0,0 +1,61 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import java.util.LinkedList; +import java.util.List; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetParameters; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.InternalImageChannel; + +/** + * @author pkupczyk + */ +public class ImageDatasetParametersTranslator +{ + + public ImageDatasetParameters translate(ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageDatasetParameters internalParameters) + { + if (internalParameters == null) + { + return null; + } + + ImageDatasetParameters apiParameters = new ImageDatasetParameters(); + apiParameters.setDatasetCode(internalParameters.getDatasetCode()); + apiParameters.setRowsNumOrNull(internalParameters.tryGetRowsNum()); + apiParameters.setColsNumOrNull(internalParameters.tryGetColsNum()); + apiParameters.setTileRowsNum(internalParameters.getTileRowsNum()); + apiParameters.setTileColsNum(internalParameters.getTileColsNum()); + apiParameters.setMultidimensional(internalParameters.isMultidimensional()); + apiParameters.setMergedChannelTransformerFactorySignatureOrNull(internalParameters.tryGetMergedChannelTransformerFactorySignature()); + + if (internalParameters.getChannels() != null) + { + List<InternalImageChannel> apiChannels = new LinkedList<InternalImageChannel>(); + + for (ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.InternalImageChannel internalChannel : internalParameters.getChannels()) + { + apiChannels.add(new InternalImageChannelTranslator().translate(internalChannel)); + } + + apiParameters.setChannels(apiChannels); + } + + return apiParameters; + } +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageResolutionTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageResolutionTranslator.java new file mode 100644 index 00000000000..9b5d82898fd --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/ImageResolutionTranslator.java @@ -0,0 +1,40 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution; + +/** + * @author pkupczyk + */ +public class ImageResolutionTranslator +{ + + public ImageResolution translate(ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageResolution internalResolution) + { + if (internalResolution == null) + { + return null; + } + + ImageResolution apiResolution = new ImageResolution(); + apiResolution.setHeight(internalResolution.getHeight()); + apiResolution.setWidth(internalResolution.getWidth()); + return apiResolution; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageChannelTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageChannelTranslator.java new file mode 100644 index 00000000000..ac6995f5c1a --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageChannelTranslator.java @@ -0,0 +1,60 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import java.util.LinkedList; +import java.util.List; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.InternalImageChannel; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.InternalImageTransformationInfo; + +/** + * @author pkupczyk + */ +public class InternalImageChannelTranslator +{ + + public InternalImageChannel translate(ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.InternalImageChannel internalChannel) + { + if (internalChannel == null) + { + return null; + } + + InternalImageChannel apiChannel = new InternalImageChannel(); + apiChannel.setCode(internalChannel.getCode()); + apiChannel.setLabel(internalChannel.getLabel()); + apiChannel.setDescription(internalChannel.tryGetDescription()); + apiChannel.setWavelength(internalChannel.tryGetWavelength()); + + if (internalChannel.getAvailableImageTransformations() != null) + { + List<InternalImageTransformationInfo> apiTransformations = new LinkedList<InternalImageTransformationInfo>(); + + for (ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.InternalImageTransformationInfo internalTransformation : internalChannel + .getAvailableImageTransformations()) + { + apiTransformations.add(new InternalImageTransformationInfoTranslator().translate(internalTransformation)); + } + + apiChannel.setAvailableImageTransformations(apiTransformations); + } + + return apiChannel; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageTransformationInfoTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageTransformationInfoTranslator.java new file mode 100644 index 00000000000..a1b7941bdd7 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/InternalImageTransformationInfoTranslator.java @@ -0,0 +1,45 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.InternalImageTransformationInfo; + +/** + * @author pkupczyk + */ +public class InternalImageTransformationInfoTranslator +{ + + public InternalImageTransformationInfo translate( + ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.InternalImageTransformationInfo internalTransformation) + { + if (internalTransformation == null) + { + return null; + } + + InternalImageTransformationInfo apiTransformation = new InternalImageTransformationInfo(); + apiTransformation.setCode(internalTransformation.getCode()); + apiTransformation.setLabel(internalTransformation.getLabel()); + apiTransformation.setDescription(internalTransformation.getDescription()); + apiTransformation.setTransformationSignature(internalTransformation.getTransformationSignature()); + apiTransformation.setDefault(internalTransformation.isDefault()); + + return apiTransformation; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/LogicalImageInfoTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/LogicalImageInfoTranslator.java new file mode 100644 index 00000000000..ddb882927bc --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/LogicalImageInfoTranslator.java @@ -0,0 +1,56 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import java.util.LinkedList; +import java.util.List; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageChannelStack; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LogicalImageInfo; + +/** + * @author pkupczyk + */ +public class LogicalImageInfoTranslator +{ + + public LogicalImageInfo translate(ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.LogicalImageInfo internalInfo) + { + if (internalInfo == null) + { + return null; + } + + LogicalImageInfo apiInfo = new LogicalImageInfo(); + apiInfo.setImageDataset(new ImageDatasetEnrichedReferenceTranslator().translate(internalInfo.getImageDataset())); + + if (internalInfo.getChannelStacks() != null) + { + List<ImageChannelStack> apiStacks = new LinkedList<ImageChannelStack>(); + + for (ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ImageChannelStack internalStack : internalInfo.getChannelStacks()) + { + apiStacks.add(new ImageChannelStackTranslator().translate(internalStack)); + } + + apiInfo.setChannelStacks(apiStacks); + } + + return apiInfo; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/WellLocationTranslator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/WellLocationTranslator.java new file mode 100644 index 00000000000..0a7d55549a6 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/dto/WellLocationTranslator.java @@ -0,0 +1,36 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.server.logic.dto; + +import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellLocation; + +/** + * @author pkupczyk + */ +public class WellLocationTranslator +{ + + public WellLocation translate(ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellLocation wellLocation) + { + if (wellLocation == null) + { + return null; + } + return new WellLocation(wellLocation.getRow(), wellLocation.getColumn()); + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java index 8d55b242bae..bcd691be547 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/IScreeningApiServer.java @@ -41,8 +41,10 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.IImageReprese import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetMetadata; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageDatasetReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageRepresentationFormat; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageResolution; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.ImageSize; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LoadImageConfiguration; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.LogicalImageInfo; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.MaterialTypeIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.Plate; @@ -52,10 +54,11 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateMetadata import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellMaterialMapping; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateWellReferenceWithDatasets; import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellIdentifier; +import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.WellLocation; /** - * This interface is a part of the official public screening API. It is forbidden to change it in a - * non-backward-compatible manner without discussing it with all screening customers. + * This interface is a part of the official public screening API. It is forbidden to change it in a non-backward-compatible manner without discussing + * it with all screening customers. * * @author Tomasz Pylak */ @@ -94,8 +97,7 @@ public interface IScreeningApiServer extends IRpcService void logoutScreening(final String sessionToken) throws IllegalArgumentException; /** - * Return the list of all visible plates assigned to any experiment, along with their - * hierarchical context (space, project, experiment). + * Return the list of all visible plates assigned to any experiment, along with their hierarchical context (space, project, experiment). */ @Transactional(readOnly = true) List<Plate> listPlates(String sessionToken) throws IllegalArgumentException; @@ -111,8 +113,7 @@ public interface IScreeningApiServer extends IRpcService throws IllegalArgumentException; /** - * Fetches the contents of a given list of plates. The result will contain well and material - * properties. + * Fetches the contents of a given list of plates. The result will contain well and material properties. * * @since 1.8 */ @@ -122,8 +123,7 @@ public interface IScreeningApiServer extends IRpcService List<? extends PlateIdentifier> plates) throws IllegalArgumentException; /** - * Return the list of all visible experiments, along with their hierarchical context (space, - * project). + * Return the list of all visible experiments, along with their hierarchical context (space, project). * * @since 1.1 */ @@ -132,8 +132,7 @@ public interface IScreeningApiServer extends IRpcService List<ExperimentIdentifier> listExperiments(String sessionToken); /** - * Return the list of all experiments visible to user <var>userId</var>, along with their - * hierarchical context (space, project). + * Return the list of all experiments visible to user <var>userId</var>, along with their hierarchical context (space, project). * * @since 1.6 */ @@ -142,24 +141,36 @@ public interface IScreeningApiServer extends IRpcService List<ExperimentIdentifier> listExperiments(String sessionToken, String userId); /** - * For a given set of plates (given by space / plate bar code), provide the list of all data - * sets containing feature vectors for each of these plates. + * For a given set of plates (given by space / plate bar code), provide the list of all data sets containing feature vectors for each of these + * plates. */ @Transactional(readOnly = true) List<FeatureVectorDatasetReference> listFeatureVectorDatasets(String sessionToken, List<? extends PlateIdentifier> plates) throws IllegalArgumentException; /** - * For a given set of plates provide the list of all data sets containing images for each of - * these plates. + * For a given set of plates provide the list of all data sets containing images for each of these plates. */ @Transactional(readOnly = true) List<ImageDatasetReference> listImageDatasets(String sessionToken, List<? extends PlateIdentifier> plates) throws IllegalArgumentException; /** - * For a given set of plates provide the list of all data sets containing raw images for each of - * these plates. + * Returns information about logical image in the given dataset. In HCS case the well location should be specified. + */ + @Transactional(readOnly = true) + @MinimalMinorVersion(11) + public LogicalImageInfo getImageInfo(String sessionToken, String datasetCode, WellLocation wellLocationOrNull); + + /** + * Returns information about available image resolutions for a given image dataset. + */ + @Transactional(readOnly = true) + @MinimalMinorVersion(11) + public List<ImageResolution> getImageResolutions(String sessionToken, String datasetCode); + + /** + * For a given set of plates provide the list of all data sets containing raw images for each of these plates. * * @since 1.6 */ @@ -169,8 +180,7 @@ public interface IScreeningApiServer extends IRpcService List<? extends PlateIdentifier> plates) throws IllegalArgumentException; /** - * For a given set of plates provide the list of all data sets containing segmentation images - * for each of these plates. + * For a given set of plates provide the list of all data sets containing segmentation images for each of these plates. * * @since 1.6 */ @@ -186,9 +196,8 @@ public interface IScreeningApiServer extends IRpcService List<IDatasetIdentifier> getDatasetIdentifiers(String sessionToken, List<String> datasetCodes); /** - * For the given <var>experimentIdentifier</var>, find all plate locations that are connected to - * the specified <var>materialIdentifier</var>. If <code>findDatasets == true</code>, find also - * the connected image and image analysis data sets for the relevant plates. + * For the given <var>experimentIdentifier</var>, find all plate locations that are connected to the specified <var>materialIdentifier</var>. If + * <code>findDatasets == true</code>, find also the connected image and image analysis data sets for the relevant plates. * * @since 1.1 */ @@ -199,9 +208,8 @@ public interface IScreeningApiServer extends IRpcService boolean findDatasets); /** - * For the given <var>materialIdentifier</var>, find all plate locations that are connected to - * it. If <code>findDatasets == true</code>, find also the connected image and image analysis - * data sets for the relevant plates. + * For the given <var>materialIdentifier</var>, find all plate locations that are connected to it. If <code>findDatasets == true</code>, find also + * the connected image and image analysis data sets for the relevant plates. * * @since 1.2 */ @@ -220,8 +228,7 @@ public interface IScreeningApiServer extends IRpcService public List<WellIdentifier> listPlateWells(String sessionToken, PlateIdentifier plateIdentifier); /** - * For a given <var>wellIdentifier</var>, return the corresponding {@link Sample} including - * properties. + * For a given <var>wellIdentifier</var>, return the corresponding {@link Sample} including properties. * * @since 1.3 */ @@ -239,12 +246,10 @@ public interface IScreeningApiServer extends IRpcService public Sample getPlateSample(String sessionToken, PlateIdentifier plateIdentifier); /** - * For a given list of <var>plates</var>, return the mapping of plate wells to materials - * contained in each well. + * For a given list of <var>plates</var>, return the mapping of plate wells to materials contained in each well. * * @param plates The list of plates to get the mapping for - * @param materialTypeIdentifierOrNull If not <code>null</code>, consider only materials of the - * given type for the mapping. + * @param materialTypeIdentifierOrNull If not <code>null</code>, consider only materials of the given type for the mapping. * @return A list of well to material mappings, one element for each plate. * @since 1.2 */ @@ -265,10 +270,8 @@ public interface IScreeningApiServer extends IRpcService ExperimentIdentifier experimentIdentifer); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#listAvailableFeatureCodes(String, List)} method for each group - * of objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#listAvailableFeatureCodes(String, List)} method for + * each group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -278,10 +281,8 @@ public interface IScreeningApiServer extends IRpcService List<? extends IFeatureVectorDatasetIdentifier> featureDatasets); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#listAvailableFeatures(String, List)} method for each group of - * objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#listAvailableFeatures(String, List)} method for each + * group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -291,10 +292,8 @@ public interface IScreeningApiServer extends IRpcService List<? extends IFeatureVectorDatasetIdentifier> featureDatasets); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadFeatures(String, List, List)} method for each group of - * objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#loadFeatures(String, List, List)} method for each + * group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -305,9 +304,8 @@ public interface IScreeningApiServer extends IRpcService /** * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadFeaturesForDatasetWellReferences(String, List, List)} - * method for each group of objects on appropriate data store server. Results from the data - * stores are combined and returned as a result of this method. + * {@link IDssServiceRpcScreening#loadFeaturesForDatasetWellReferences(String, List, List)} method for each group of objects on appropriate data + * store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -318,10 +316,8 @@ public interface IScreeningApiServer extends IRpcService List<String> featureCodes); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, boolean)} method for each group - * of objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#loadImagesBase64(String, List, boolean)} method for + * each group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -333,10 +329,8 @@ public interface IScreeningApiServer extends IRpcService boolean convertToPng); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadThumbnailImagesBase64(String, List)} method for each group - * of objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#loadThumbnailImagesBase64(String, List)} method for + * each group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -347,10 +341,8 @@ public interface IScreeningApiServer extends IRpcService List<PlateImageReference> imageReferences); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, ImageSize)} method for each - * group of objects on appropriate data store server. Results from the data stores are combined - * and returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#loadImagesBase64(String, List, ImageSize)} method + * for each group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -362,10 +354,8 @@ public interface IScreeningApiServer extends IRpcService ImageSize size); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadImagesBase64(String, List)} method for each group of - * objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#loadImagesBase64(String, List)} method for each + * group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -377,9 +367,8 @@ public interface IScreeningApiServer extends IRpcService /** * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, LoadImageConfiguration)} method - * for each group of objects on appropriate data store server. Results from the data stores are - * combined and returned as a result of this method. + * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, LoadImageConfiguration)} method for each group of objects on appropriate data + * store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -392,9 +381,8 @@ public interface IScreeningApiServer extends IRpcService /** * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, ImageRepresentationFormat)} - * method for each group of objects on appropriate data store server. Results from the data - * stores are combined and returned as a result of this method. + * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, ImageRepresentationFormat)} method for each group of objects on appropriate data + * store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -407,9 +395,8 @@ public interface IScreeningApiServer extends IRpcService /** * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, IImageRepresentationFormatSelectionCriterion...)} - * method for each group of objects on appropriate data store server. Results from the data - * stores are combined and returned as a result of this method. + * {@link IDssServiceRpcScreening#loadImagesBase64(String, List, IImageRepresentationFormatSelectionCriterion...)} method for each group of + * objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -421,10 +408,8 @@ public interface IScreeningApiServer extends IRpcService IImageRepresentationFormatSelectionCriterion... criteria); /** - * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#listImageMetadata(String, List)} method for each group of - * objects on appropriate data store server. Results from the data stores are combined and - * returned as a result of this method. + * Groups the specified objects by a data store code and calls {@link IDssServiceRpcScreening#listImageMetadata(String, List)} method for each + * group of objects on appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -435,9 +420,8 @@ public interface IScreeningApiServer extends IRpcService /** * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#listAvailableImageRepresentationFormats(String, List)} method - * for each group of objects on appropriate data store server. Results from the data stores are - * combined and returned as a result of this method. + * {@link IDssServiceRpcScreening#listAvailableImageRepresentationFormats(String, List)} method for each group of objects on appropriate data + * store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ @@ -448,9 +432,8 @@ public interface IScreeningApiServer extends IRpcService /** * Groups the specified objects by a data store code and calls - * {@link IDssServiceRpcScreening#loadPhysicalThumbnailsBase64(String, List, ImageRepresentationFormat)} - * method for each group of objects on appropriate data store server. Results from the data - * stores are combined and returned as a result of this method. + * {@link IDssServiceRpcScreening#loadPhysicalThumbnailsBase64(String, List, ImageRepresentationFormat)} method for each group of objects on + * appropriate data store server. Results from the data stores are combined and returned as a result of this method. * * @since 1.10 */ diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetImagesReference.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetImagesReference.java new file mode 100644 index 00000000000..29faedd4393 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetImagesReference.java @@ -0,0 +1,44 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("DatasetImagesReference") +public class DatasetImagesReference implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private ImageDatasetParameters imageParameters; + + public ImageDatasetParameters getImageParameters() + { + return imageParameters; + } + + public void setImageParameters(ImageDatasetParameters imageParameters) + { + this.imageParameters = imageParameters; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetOverlayImagesReference.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetOverlayImagesReference.java new file mode 100644 index 00000000000..4a14d9fcb0f --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/DatasetOverlayImagesReference.java @@ -0,0 +1,42 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("DatasetOverlayImagesReference") +public class DatasetOverlayImagesReference extends DatasetImagesReference +{ + + private static final long serialVersionUID = 1L; + + private String analysisProcedureOrNull; + + public String getAnalysisProcedureOrNull() + { + return analysisProcedureOrNull; + } + + public void setAnalysisProcedureOrNull(String analysisProcedureOrNull) + { + this.analysisProcedureOrNull = analysisProcedureOrNull; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageChannelStack.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageChannelStack.java new file mode 100644 index 00000000000..589f611a0a2 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageChannelStack.java @@ -0,0 +1,100 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("ImageChannelStack") +public class ImageChannelStack implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private long id; + + private int tileRow, tileCol; + + private Float timePointOrNull, depthOrNull; + + private Integer seriesNumberOrNull; + + public long getId() + { + return id; + } + + public void setId(long id) + { + this.id = id; + } + + public int getTileRow() + { + return tileRow; + } + + public void setTileRow(int tileRow) + { + this.tileRow = tileRow; + } + + public int getTileCol() + { + return tileCol; + } + + public void setTileCol(int tileCol) + { + this.tileCol = tileCol; + } + + public Float getTimePointOrNull() + { + return timePointOrNull; + } + + public void setTimePointOrNull(Float timePointOrNull) + { + this.timePointOrNull = timePointOrNull; + } + + public Float getDepthOrNull() + { + return depthOrNull; + } + + public void setDepthOrNull(Float depthOrNull) + { + this.depthOrNull = depthOrNull; + } + + public Integer getSeriesNumberOrNull() + { + return seriesNumberOrNull; + } + + public void setSeriesNumberOrNull(Integer seriesNumberOrNull) + { + this.seriesNumberOrNull = seriesNumberOrNull; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetEnrichedReference.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetEnrichedReference.java new file mode 100644 index 00000000000..ae45869df1b --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetEnrichedReference.java @@ -0,0 +1,57 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; +import java.util.List; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("ImageDatasetEnrichedReference") +public class ImageDatasetEnrichedReference implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private DatasetImagesReference imageDataset; + + private List<DatasetOverlayImagesReference> overlayDatasets; + + public DatasetImagesReference getImageDataset() + { + return imageDataset; + } + + public void setImageDataset(DatasetImagesReference imageDataset) + { + this.imageDataset = imageDataset; + } + + public List<DatasetOverlayImagesReference> getOverlayDatasets() + { + return overlayDatasets; + } + + public void setOverlayDatasets(List<DatasetOverlayImagesReference> overlayDatasets) + { + this.overlayDatasets = overlayDatasets; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetParameters.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetParameters.java new file mode 100644 index 00000000000..186366129d1 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageDatasetParameters.java @@ -0,0 +1,129 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; +import java.util.List; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("ImageDatasetParameters") +public class ImageDatasetParameters implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private String datasetCode; + + private Integer rowsNumOrNull; + + private Integer colsNumOrNull; + + private int tileRowsNum; + + private int tileColsNum; + + private List<InternalImageChannel> channels; + + private boolean isMultidimensional; + + private String mergedChannelTransformerFactorySignatureOrNull; + + public String getDatasetCode() + { + return datasetCode; + } + + public void setDatasetCode(String datasetCode) + { + this.datasetCode = datasetCode; + } + + public Integer getRowsNumOrNull() + { + return rowsNumOrNull; + } + + public void setRowsNumOrNull(Integer rowsNumOrNull) + { + this.rowsNumOrNull = rowsNumOrNull; + } + + public Integer getColsNumOrNull() + { + return colsNumOrNull; + } + + public void setColsNumOrNull(Integer colsNumOrNull) + { + this.colsNumOrNull = colsNumOrNull; + } + + public int getTileRowsNum() + { + return tileRowsNum; + } + + public void setTileRowsNum(int tileRowsNum) + { + this.tileRowsNum = tileRowsNum; + } + + public int getTileColsNum() + { + return tileColsNum; + } + + public void setTileColsNum(int tileColsNum) + { + this.tileColsNum = tileColsNum; + } + + public List<InternalImageChannel> getChannels() + { + return channels; + } + + public void setChannels(List<InternalImageChannel> channels) + { + this.channels = channels; + } + + public boolean isMultidimensional() + { + return isMultidimensional; + } + + public void setMultidimensional(boolean isMultidimensional) + { + this.isMultidimensional = isMultidimensional; + } + + public String getMergedChannelTransformerFactorySignatureOrNull() + { + return mergedChannelTransformerFactorySignatureOrNull; + } + + public void setMergedChannelTransformerFactorySignatureOrNull(String mergedChannelTransformerFactorySignatureOrNull) + { + this.mergedChannelTransformerFactorySignatureOrNull = mergedChannelTransformerFactorySignatureOrNull; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageResolution.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageResolution.java new file mode 100644 index 00000000000..b3f0a41b3c4 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/ImageResolution.java @@ -0,0 +1,56 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("ImageResolution") +public class ImageResolution implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private int width; + + private int height; + + public int getWidth() + { + return width; + } + + public void setWidth(int width) + { + this.width = width; + } + + public int getHeight() + { + return height; + } + + public void setHeight(int height) + { + this.height = height; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageChannel.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageChannel.java new file mode 100644 index 00000000000..4faa4307d9c --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageChannel.java @@ -0,0 +1,93 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; +import java.util.List; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("InternalImageChannel") +public class InternalImageChannel implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private String code; + + private String label; + + private String description; + + private Integer wavelength; + + private List<InternalImageTransformationInfo> availableImageTransformations; + + public String getCode() + { + return code; + } + + public void setCode(String code) + { + this.code = code; + } + + public String getLabel() + { + return label; + } + + public void setLabel(String label) + { + this.label = label; + } + + public String getDescription() + { + return description; + } + + public void setDescription(String description) + { + this.description = description; + } + + public Integer getWavelength() + { + return wavelength; + } + + public void setWavelength(Integer wavelength) + { + this.wavelength = wavelength; + } + + public List<InternalImageTransformationInfo> getAvailableImageTransformations() + { + return availableImageTransformations; + } + + public void setAvailableImageTransformations(List<InternalImageTransformationInfo> availableImageTransformations) + { + this.availableImageTransformations = availableImageTransformations; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageTransformationInfo.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageTransformationInfo.java new file mode 100644 index 00000000000..28271ec926b --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/InternalImageTransformationInfo.java @@ -0,0 +1,92 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("InternalImageTransformationInfo") +public class InternalImageTransformationInfo implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private String code; + + private String label; + + private String description; + + private String transformationSignature; + + private boolean isDefault; + + public String getCode() + { + return code; + } + + public void setCode(String code) + { + this.code = code; + } + + public String getLabel() + { + return label; + } + + public void setLabel(String label) + { + this.label = label; + } + + public String getDescription() + { + return description; + } + + public void setDescription(String description) + { + this.description = description; + } + + public String getTransformationSignature() + { + return transformationSignature; + } + + public void setTransformationSignature(String transformationSignature) + { + this.transformationSignature = transformationSignature; + } + + public boolean isDefault() + { + return isDefault; + } + + public void setDefault(boolean isDefault) + { + this.isDefault = isDefault; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/LogicalImageInfo.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/LogicalImageInfo.java new file mode 100644 index 00000000000..12a2263a17c --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/LogicalImageInfo.java @@ -0,0 +1,57 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; +import java.util.List; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("LogicalImageInfo") +public class LogicalImageInfo implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private ImageDatasetEnrichedReference imageDataset; + + private List<ImageChannelStack> channelStacks; + + public ImageDatasetEnrichedReference getImageDataset() + { + return imageDataset; + } + + public void setImageDataset(ImageDatasetEnrichedReference imageDataset) + { + this.imageDataset = imageDataset; + } + + public List<ImageChannelStack> getChannelStacks() + { + return channelStacks; + } + + public void setChannelStacks(List<ImageChannelStack> channelStacks) + { + this.channelStacks = channelStacks; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/WellLocation.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/WellLocation.java new file mode 100644 index 00000000000..9b6a0fdc692 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/v1/dto/WellLocation.java @@ -0,0 +1,56 @@ +/* + * Copyright 2014 ETH Zuerich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto; + +import java.io.Serializable; + +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("WellLocation") +public class WellLocation implements Serializable +{ + + private static final long serialVersionUID = 1L; + + private int row; + + private int column; + + public int getRow() + { + return row; + } + + public void setRow(int row) + { + this.row = row; + } + + public int getColumn() + { + return column; + } + + public void setColumn(int column) + { + this.column = column; + } + +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageDatasetParameters.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageDatasetParameters.java index 8c9ede0b88f..340e990c349 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageDatasetParameters.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/ImageDatasetParameters.java @@ -124,6 +124,11 @@ public class ImageDatasetParameters implements Serializable { return channels.size(); } + + public List<InternalImageChannel> getChannels() + { + return channels; + } /** never null, can be empty if channel does not exist or no transformations are available */ public List<InternalImageTransformationInfo> getAvailableImageTransformationsFor( -- GitLab