diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/IImagingDataSetRegistrationTransactionV2.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/IImagingDataSetRegistrationTransactionV2.java index 65686d7eaf89a4c19812e26a81798f88c06855ba..a1b946b45711f3ecdc630ac6f3f8ed13f958f628 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/IImagingDataSetRegistrationTransactionV2.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/v2/IImagingDataSetRegistrationTransactionV2.java @@ -37,6 +37,13 @@ public interface IImagingDataSetRegistrationTransactionV2 extends IDataSetRegist IImageDataSet createNewImageDataSet(SimpleImageDataConfig imageDataSet, File incomingFolderWithImages); + /** + * Creates a new image data set. See {@link SimpleImageDataConfig} documentation for + * configuration details. Also moves the incoming directory to the data set. + */ + IImageDataSet createNewImageDataSetAndMoveFile(SimpleImageDataConfig imageDataSet, + File incomingFolderWithImages); + /** * Creates a new overview image data set. See {@link SimpleImageDataConfig} documentation for * configuration details. diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java index 161709a60040b89a2e39437f942fef8f3022b3bb..bfc547c8304428d548624673b92652d4242d5d4f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransaction.java @@ -746,8 +746,14 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr throw new UserFailureException( "Cannot move the files because the original dataset is missing: " + src); } - originalDataset.getRegistrationDetails().getDataSetInformation() - .setDatasetRelativeImagesFolderPath(new File(destination)); + + ImageDataSetInformation dataSetInformation = + originalDataset.getRegistrationDetails().getDataSetInformation(); + + if (dataSetInformation.getDatasetRelativeImagesFolderPath() == null) + { + dataSetInformation.setDatasetRelativeImagesFolderPath(new File(destination)); + } return super.moveFile(src, originalDataset, destination); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransactionV2Delegate.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransactionV2Delegate.java index 535108642ae3c228c53ad0d3f7716ec64d93edee..2727d1b6d165637cf1cf819de976390facca4a46 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransactionV2Delegate.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/ImagingDataSetRegistrationTransactionV2Delegate.java @@ -71,6 +71,16 @@ public class ImagingDataSetRegistrationTransactionV2Delegate implements return transaction.createNewImageDataSet(imageDataSet, incomingFolderWithImages); } + @Override + public IImageDataSet createNewImageDataSetAndMoveFile(SimpleImageDataConfig imageDataSet, + File incomingFolderWithImages) + { + IImageDataSet dataSet = + transaction.createNewImageDataSet(imageDataSet, incomingFolderWithImages); + transaction.moveFile(incomingFolderWithImages.getPath(), dataSet); + return dataSet; + } + @Override public IDataSet createNewOverviewImageDataSet(SimpleImageDataConfig imageDataSet, File incomingFolderWithImages) diff --git a/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py b/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py index 47d50b82a2b662525d622e20a8bc6dbd269fa25b..359914ebab96f8d4e5881d3716903f1ece35ebb3 100644 --- a/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py +++ b/screening/sourceTest/core-plugins/TransformedImageRepresentationsV2Test/1/dss/drop-boxes/TransformedImageRepresentationsV2Test-drop-box/data-set-handler.py @@ -146,5 +146,14 @@ def process(transaction): channel.setAvailableTransformations(transforms) imageDataset.setChannels(channels, colorComponents) - dataSet = transaction.createNewImageDataSet(imageDataset, incoming) - transaction.moveFile(incoming.getPath(), dataSet) + dataSet = transaction.createNewImageDataSetAndMoveFile(imageDataset, incoming) + + os.makedirs(incoming.getPath()) + path = incoming.getPath() + 'otherFile.txt' + + f = open(path, 'w') + f.write("test\n") + f.close() + + transaction.moveFile(path, dataSet) + \ No newline at end of file diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java index a7447bb1c0aa688cdf522e78a4f6e65ba2bdab82..fef6fc9bd1e5c46c18126f8eaf5dd985694021b2 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/TransformedImageRepresentationsTest.java @@ -178,8 +178,23 @@ public class TransformedImageRepresentationsTest extends AbstractScreeningSystem expectedThumbnailBytes(dataSetCode, format.getWidth()); assertEquals(1, thumbnails.size()); assertEquals(expectedThumbnailImage, thumbnails.get(0)); - } + } else + { + final List<byte[]> images = new ArrayList<byte[]>(); + screeningFacade.loadImages(plateRefs, false, new IPlateImageHandler() + { + + @Override + public void handlePlateImage(PlateImageReference plateImageReference, + byte[] imageFileBytes) + { + images.add(imageFileBytes); + } + }); + assertEquals(1, images.size()); + assertTrue(images.get(0).length > 0); + } if (format.getFileType() != null) { // jpg thumbnails