From 6ae9688ae88a11a79e82d661ec20a479ad554fbd Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Wed, 16 Jun 2010 13:11:33 +0000 Subject: [PATCH] LMS-1541 bugfix: screening api SVN: 16559 --- .../cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java | 8 ++++++-- .../openbis/dss/etl/dataaccess/IImagingUploadDAO.java | 2 +- .../dss/screening/server/DssServiceRpcScreening.java | 3 ++- .../screening/client/api/v1/ScreeningClientApiTest.java | 2 +- .../openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java | 4 ++-- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java index 089eb3fd30c..0b7dee61ddf 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java @@ -124,9 +124,13 @@ public class HCSDatasetLoader implements IHCSDatasetLoader assert wellLocation.getX() <= getContainer().getNumberOfColumns(); assert wellLocation.getY() <= getContainer().getNumberOfRows(); - long chosenChannelId = - query.getChannelIdByChannelNameDatasetIdOrExperimentId(getDataset().getId(), + Long chosenChannelId = + query.tryGetChannelIdByChannelNameDatasetIdOrExperimentId(getDataset().getId(), getContainer().getExperimentId(), chosenChannel); + if (chosenChannelId == null) + { + return null; + } ImgImageDTO imageDTO; IContent content = null; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java index 96e87398e2b..c4a421f49c9 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java @@ -144,7 +144,7 @@ public interface IImagingUploadDAO extends TransactionQuery public void updateChannel(ImgChannelDTO channel); @Select("select ID from CHANNELS where (DS_ID = ?{1} or EXP_ID = ?{2}) and NAME = ?{3}") - public long getChannelIdByChannelNameDatasetIdOrExperimentId(long id, long experimentId, + public Long tryGetChannelIdByChannelNameDatasetIdOrExperimentId(long id, long experimentId, String chosenChannel); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java index 2d3ec0d9459..38a0556b982 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/DssServiceRpcScreening.java @@ -243,7 +243,8 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements imageLoadersMap.get(imageReference.getDatasetCode()); assert imageAccessor != null : "imageAccessor not found for: " + imageReference; AbsoluteImageReference image = tryGetImage(imageAccessor, imageReference); - if (image.tryGetColorComponent() != null || image.tryGetPage() != null) + if (image == null + || (image.tryGetColorComponent() != null || image.tryGetPage() != null)) { // TODO 2010-06-01, Tomasz Pylak: support paging/merged channels images in API imageFiles.add(null); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java index 34217de6878..16f38316857 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/api/v1/ScreeningClientApiTest.java @@ -129,7 +129,7 @@ public class ScreeningClientApiTest { PlateImageReference imageRef = - new PlateImageReference(wellRow, wellCol, tile, channel + "", + new PlateImageReference(wellRow, wellCol, tile, "dapi", datasetIdentifier); imageRefs.add(imageRef); imageFiles.add(new File(dir, createImageFileName(imageRef))); diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java index 12bf8626e3b..c78efa3c113 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java @@ -139,8 +139,8 @@ public class ImagingUploadDAOTest extends AbstractDBTest || channels[1] == channelId1 && channels[0] == channelId2); // test get id of first channel - assertEquals(channels[0], dao.getChannelIdByChannelNameDatasetIdOrExperimentId(datasetId, - experimentId, "dsChannel")); + assertEquals(channels[0], dao.tryGetChannelIdByChannelNameDatasetIdOrExperimentId(datasetId, + experimentId, "dsChannel").intValue()); List<ImgChannelDTO> experimentChannels = dao.getChannelsByExperimentId(experimentId); assertEquals(1, experimentChannels.size()); -- GitLab