From 7e60088b2b108e5da1e7a303c40b6d9a82a41f1e Mon Sep 17 00:00:00 2001 From: izabel <izabel> Date: Tue, 13 Jul 2010 07:56:35 +0000 Subject: [PATCH] [LMS-1609] update spot width/height when image dataset registered after analysis dataset SVN: 16996 --- .../etl/ScreeningContainerDatasetInfoHelper.java | 13 +++++++++---- .../shared/imaging/dataaccess/IImagingQueryDAO.java | 4 ++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java index 1950bf52606..c232e76ccc6 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java @@ -77,7 +77,7 @@ public class ScreeningContainerDatasetInfoHelper synchronized (IImagingQueryDAO.class) { CreatedOrFetchedEntity exp = getOrCreateExperiment(dao, info); - CreatedOrFetchedEntity cont = getOrCreateContainer(dao, info, exp.getId()); + CreatedOrFetchedEntity cont = getOrCreateContainer(dao, info, exp.getId(), true); if (exp.hasAlreadyExisted() == false || cont.hasAlreadyExisted() == false) { // without this commit other threads will not see the new experiment/sample when the @@ -104,7 +104,7 @@ public class ScreeningContainerDatasetInfoHelper { CreatedOrFetchedEntity exp = getOrCreateExperiment(dao, info); long expId = exp.getId(); - CreatedOrFetchedEntity cont = getOrCreateContainer(dao, info, expId); + CreatedOrFetchedEntity cont = getOrCreateContainer(dao, info, expId, true); Map<String, Long/* (tech id */> channelsMap = helper.getOrCreateChannels(expId, channels); if (exp.hasAlreadyExisted() == false || cont.hasAlreadyExisted() == false) @@ -118,13 +118,18 @@ public class ScreeningContainerDatasetInfoHelper } private static CreatedOrFetchedEntity getOrCreateContainer(IImagingQueryDAO dao, - ScreeningContainerDatasetInfo info, long expId) + ScreeningContainerDatasetInfo info, long expId, boolean updateContainer) { String containerPermId = info.getContainerPermId(); Long containerId = dao.tryGetContainerIdPermId(containerPermId); if (containerId != null) { - return new CreatedOrFetchedEntity(true, containerId); + if (updateContainer) + { + dao.updateContainer(containerId, info.getContainerColumns(), info + .getContainerRows()); + } + return new CreatedOrFetchedEntity(updateContainer == false, containerId); } else { ImgContainerDTO container = diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java index 9dbd1655962..b2224136d09 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java @@ -124,6 +124,10 @@ public interface IImagingQueryDAO extends TransactionQuery + "(?{1.name}, ?{1.description}, ?{1.wavelength}, ?{1.datasetId}, ?{1.experimentId}) returning ID") public long addChannel(ImgChannelDTO channel); + @Update("update CONTAINERS " + "set SPOTS_WIDTH = ?{2}, SPOTS_HEIGHT = ?{3} " + + "where ID = ?{1}") + public void updateContainer(long id, int columns, int rows); + @Select("insert into CONTAINERS (PERM_ID, SPOTS_WIDTH, SPOTS_HEIGHT, EXPE_ID) values " + "(?{1.permId}, ?{1.numberOfColumns}, ?{1.numberOfRows}, ?{1.experimentId}) returning ID") public long addContainer(ImgContainerDTO container); -- GitLab