From d975bc688bfc8db5fa87593a5d98c9df37654dda Mon Sep 17 00:00:00 2001
From: gpawel <gpawel>
Date: Fri, 9 Nov 2012 13:54:11 +0000
Subject: [PATCH] bugfixes related with import of microscopy images

SVN: 27563
---
 .../openbis/dss/etl/AbstractImageDatasetUploader.java  | 10 +++++++++-
 .../cisd/openbis/dss/etl/RelativeImageReference.java   |  5 ++++-
 .../imaging/dataaccess/IImagingReadonlyQueryDAO.java   |  6 ++++++
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageDatasetUploader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageDatasetUploader.java
index 5cf22d45893..f97eab5b3d7 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageDatasetUploader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageDatasetUploader.java
@@ -178,7 +178,15 @@ abstract class AbstractImageDatasetUploader
                         datasetId, spotId, image.tryGetTimePoint(), image.tryGetDepth(),
                         image.tryGetSeriesNumber(), false);
 
-        List<ImgChannelStackDTO> channelStacks = dao.listChannelStacks(datasetId, spotId);
+        List<ImgChannelStackDTO> channelStacks = null;
+        if (spotId != null)
+        {
+            channelStacks = dao.listChannelStacks(datasetId, spotId);
+        } else
+        {
+            channelStacks = dao.listChannelStacks(datasetId);
+        }
+
         for (ImgChannelStackDTO channelStack : channelStacks)
         {
             if (newChannelStack.equals(channelStack))
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/RelativeImageReference.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/RelativeImageReference.java
index 322134855b1..5b5a288c65f 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/RelativeImageReference.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/RelativeImageReference.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.dss.etl;
 
+import ch.systemsx.cisd.common.shared.basic.string.StringUtils;
 import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent;
 
 /**
@@ -41,6 +42,8 @@ public class RelativeImageReference extends AbstractImageReference
 
     public final void setRelativeImageFolder(String folderPathPrefix)
     {
-        this.imageRelativePath = folderPathPrefix + imageRelativePath;
+        this.imageRelativePath =
+                StringUtils.isBlank(imageRelativePath) ? folderPathPrefix.substring(0,
+                        folderPathPrefix.length() - 1) : folderPathPrefix + imageRelativePath;
     }
 }
\ No newline at end of file
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
index 65296072950..274551f0f8a 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingReadonlyQueryDAO.java
@@ -385,6 +385,12 @@ public interface IImagingReadonlyQueryDAO extends BaseQuery
             + "where cs.ds_id = ?{1} and s.id = ?{2}")
     public List<ImgChannelStackDTO> listChannelStacks(long datasetId, long spotId);
 
+    @Select("select cs.* from CHANNEL_STACKS cs               "
+            + "join SPOTS s on s.id = cs.spot_id              "
+            + "join CONTAINERS c on c.id = s.cont_id          "
+            + "where cs.ds_id = ?{1} and s.id IS NULL")
+    public List<ImgChannelStackDTO> listChannelStacks(long datasetId);
+
     @Select("select * from SPOTS where cont_id = ?{1}")
     public List<ImgSpotDTO> listSpots(long contId);
 
-- 
GitLab