diff --git a/screening/dist/etc/service.properties b/screening/dist/etc/service.properties index 062e3aa11b58666d82c2c4849af9b535698b4e41..17ee8fab7ae8ff05ad8a41272cefa8d7b4c307b1 100644 --- a/screening/dist/etc/service.properties +++ b/screening/dist/etc/service.properties @@ -86,11 +86,9 @@ mail.smtp.host = file://${root-dir} # --------------------------------------------------------------------------- data-sources = imaging-db -imaging-db.version-holder-class = ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImagingDatabaseVersionHolder imaging-db.databaseEngineCode = postgresql imaging-db.basicDatabaseName = imaging imaging-db.databaseKind = productive -imaging-db.scriptFolder = sql # --------------------------------------------------------------------------- # reporting and processing plugins configuration diff --git a/screening/dist/server/service.properties b/screening/dist/server/service.properties index e6ca7364f9b06385410deb7401872beb225f710e..342c6bf93b6d7831adc1b9300ec1fff74590507d 100644 --- a/screening/dist/server/service.properties +++ b/screening/dist/server/service.properties @@ -22,6 +22,17 @@ database.owner-password = database.admin-user = database.admin-password = +imaging.database.engine = postgresql +imaging.database.create-from-scratch = false +imaging.database.script-single-step-mode = false +imaging.database.url-host-part = +imaging.database.kind = dev +imaging.database.owner = +imaging.database.owner-password = +imaging.database.admin-user = +imaging.database.admin-password = +imaging.script-folder = source + #crowd.service.host = crowd-bsse.ethz.ch #crowd.service.port = 8443 #crowd.application.name = <openbis_application_name_in_crowd> diff --git a/screening/etc/service.properties b/screening/etc/service.properties index ecc26319dbbd744f7b8540dc2bfabed5eae83e11..1719cd48f1d5fbb9e3c51de7c37171bf1c7ba639 100644 --- a/screening/etc/service.properties +++ b/screening/etc/service.properties @@ -86,11 +86,9 @@ mail.smtp.host = file://${root-dir}/emails # --------------------------------------------------------------------------- data-sources = imaging-db -imaging-db.version-holder-class = ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImagingDatabaseVersionHolder imaging-db.databaseEngineCode = postgresql imaging-db.basicDatabaseName = imaging imaging-db.databaseKind = dev -imaging-db.scriptFolder = source/sql # --------------------------------------------------------------------------- # reporting and processing plugins configuration diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbsoluteImageReference.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbsoluteImageReference.java index e5aaa9d311d14e731d8ca1b50bbabe61c6f4a8ea..ad9101971286af6eaf2cf4841c2d3cb1c37a8417 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbsoluteImageReference.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbsoluteImageReference.java @@ -17,7 +17,7 @@ package ch.systemsx.cisd.openbis.dss.etl; import ch.systemsx.cisd.common.io.IContent; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; /** * Reference to the image with an absolute path. diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractHCSImageFileExtractor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractHCSImageFileExtractor.java index b2ed635b0c59f4191ff0b0b7079521c6ea408583..36a19c6fb3ad04e5a341cce13299224632a5f842 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractHCSImageFileExtractor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractHCSImageFileExtractor.java @@ -39,8 +39,8 @@ import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.utilities.PropertyUtils; import ch.systemsx.cisd.openbis.dss.etl.HCSImageFileExtractionResult.Channel; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; /** * Abstract superclass for <code>IHCSImageFileExtractor</code> implementations. diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageReference.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageReference.java index c0cbba98c905212f3dfff36e56c23b65814f75c7..2aaa9e6437dc837370dbf6327413e7cf36f60d6a 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageReference.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/AbstractImageReference.java @@ -17,7 +17,7 @@ package ch.systemsx.cisd.openbis.dss.etl; import ch.systemsx.cisd.common.utilities.AbstractHashable; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; /** * Superclass for image reference. diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java index a94af70cbfee4a3c7e457cbc5c3591c168022696..8ebc261c5d18102dda02bf6c93d1b70d59844a21 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java @@ -27,29 +27,29 @@ import java.util.Map.Entry; import ch.systemsx.cisd.bds.hcs.Location; import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfoHelper.ExperimentWithChannelsAndContainer; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgAcquiredImageDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgChannelStackDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgImageDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgSpotDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgAcquiredImageDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgChannelStackDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgImageDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgSpotDTO; /** * @author Tomasz Pylak */ public class HCSDatasetUploader { - public static void upload(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, + public static void upload(IImagingQueryDAO dao, ScreeningContainerDatasetInfo info, List<AcquiredPlateImage> images, Set<HCSImageFileExtractionResult.Channel> channels) { new HCSDatasetUploader(dao).upload(info, images, channels); } - private final IImagingUploadDAO dao; + private final IImagingQueryDAO dao; - private HCSDatasetUploader(IImagingUploadDAO dao) + private HCSDatasetUploader(IImagingQueryDAO dao) { this.dao = dao; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetLoaderFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageDatasetLoaderFactory.java similarity index 82% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetLoaderFactory.java rename to screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageDatasetLoaderFactory.java index 0ee4906d863882f5c01506a77f9dbc7e7bae9e95..ac0b35df322c5cca53aa3e8037ae6163c2584cdd 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetLoaderFactory.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageDatasetLoaderFactory.java @@ -29,28 +29,28 @@ import net.lemnik.eodsql.QueryTool; import ch.systemsx.cisd.bds.hcs.Geometry; import ch.systemsx.cisd.bds.hcs.Location; import ch.systemsx.cisd.common.io.FileBasedContent; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.HCSDatasetLoader; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; +import ch.systemsx.cisd.openbis.dss.etl.dataaccess.HCSImageDatasetLoader; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDatasetDownloadServlet.Size; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; /** * @author Tomasz Pylak */ -public class HCSDatasetLoaderFactory +public class HCSImageDatasetLoaderFactory { private static final Map<String, IContentRepositoryFactory> repositoryFactories = createFactories(); - private static final IImagingUploadDAO query = createQuery(); + private static final IImagingQueryDAO query = createQuery(); - private static IImagingUploadDAO createQuery() + private static IImagingQueryDAO createQuery() { DataSource dataSource = ServiceProvider.getDataSourceProvider().getDataSource( ScreeningConstants.IMAGING_DATA_SOURCE); - return QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + return QueryTool.getQuery(dataSource, IImagingQueryDAO.class); } private static Map<String, IContentRepositoryFactory> createFactories() @@ -61,30 +61,30 @@ public class HCSDatasetLoaderFactory return factories; } - public static final IHCSDatasetLoader create(File datasetRootDir, String datasetCode) + public static final IHCSImageDatasetLoader create(File datasetRootDir, String datasetCode) { return createImageDBLoader(datasetRootDir, datasetCode); // return createBDSLoader(datasetRootDir); } - private static HCSDatasetLoader createImageDBLoader(File datasetRootDir, String datasetCode) + private static HCSImageDatasetLoader createImageDBLoader(File datasetRootDir, String datasetCode) { IContentRepository repository = new ContentRepository(datasetRootDir, repositoryFactories); - return new HCSDatasetLoader(query, datasetCode, repository); + return new HCSImageDatasetLoader(query, datasetCode, repository); } // remove when not needed @SuppressWarnings("unused") - private static IHCSDatasetLoader createBDSLoader(File datasetRootDir) + private static IHCSImageDatasetLoader createBDSLoader(File datasetRootDir) { final ch.systemsx.cisd.bds.hcs.HCSDatasetLoader loader = new ch.systemsx.cisd.bds.hcs.HCSDatasetLoader(datasetRootDir); return adapt(loader); } - private static IHCSDatasetLoader adapt(final ch.systemsx.cisd.bds.hcs.HCSDatasetLoader loader) + private static IHCSImageDatasetLoader adapt(final ch.systemsx.cisd.bds.hcs.HCSDatasetLoader loader) { - return new IHCSDatasetLoader() + return new IHCSImageDatasetLoader() { public void close() diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractor.java index 418e0183604d91095c53b5ebc7abc69a3f746c46..7752e5a16a4d54a476c7b1b348d1ddc26ae08645 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractor.java @@ -30,7 +30,7 @@ import ch.systemsx.cisd.common.filesystem.FileOperations; import ch.systemsx.cisd.openbis.dss.etl.AbstractHCSImageFileExtractor; import ch.systemsx.cisd.openbis.dss.etl.AcquiredPlateImage; import ch.systemsx.cisd.openbis.dss.etl.HCSImageFileExtractionResult.Channel; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; /** * Generic image extractor implementation. The images names should have an extension present in diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/IHCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/IHCSImageDatasetLoader.java similarity index 78% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/IHCSDatasetLoader.java rename to screening/source/java/ch/systemsx/cisd/openbis/dss/etl/IHCSImageDatasetLoader.java index b671bc722ae8e6aba96efd609efac09d6f074147..65bfd6d728ebf7897f97ab50cf946c45646ede1b 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/IHCSDatasetLoader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/IHCSImageDatasetLoader.java @@ -16,29 +16,15 @@ package ch.systemsx.cisd.openbis.dss.etl; -import java.util.List; - -import ch.systemsx.cisd.bds.hcs.Geometry; import ch.systemsx.cisd.bds.hcs.Location; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDatasetDownloadServlet.Size; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoader; /** * @author Tomasz Pylak */ -public interface IHCSDatasetLoader +public interface IHCSImageDatasetLoader extends IHCSDatasetLoader { - - /** has to be called at the end */ - void close(); - - Geometry getPlateGeometry(); - - Geometry getWellGeometry(); - - int getChannelCount(); - - List<String> getChannelsNames(); - /** * @param chosenChannel start from 1 * @return image (with absolute path, page and color) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java index 6fdf41fa9a9f36db61cc7b66331e619f41597c54..9ce83fdb48f1c26f93973d6858ba8a57e32b5eda 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java @@ -61,12 +61,12 @@ import ch.systemsx.cisd.hdf5.HDF5FactoryProvider; import ch.systemsx.cisd.hdf5.IHDF5Writer; import ch.systemsx.cisd.openbis.dss.Constants; import ch.systemsx.cisd.openbis.dss.etl.HCSImageCheckList.FullLocation; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.dss.generic.shared.utils.ImageUtil; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.dto.StorageFormat; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; /** * Storage processor which stores HCS images in a special-purpose database. @@ -142,7 +142,7 @@ public final class PlateStorageProcessor extends AbstractStorageProcessor private final ch.systemsx.cisd.etlserver.IHCSImageFileExtractor deprecatedImageFileExtractor; - private IImagingUploadDAO currentTransaction; + private IImagingQueryDAO currentTransaction; public PlateStorageProcessor(final Properties properties) { @@ -178,9 +178,9 @@ public final class PlateStorageProcessor extends AbstractStorageProcessor this.currentTransaction = null; } - private IImagingUploadDAO createQuery() + private IImagingQueryDAO createQuery() { - return QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + return QueryTool.getQuery(dataSource, IImagingQueryDAO.class); } private final static void checkDataSetInformation(final DataSetInformation dataSetInformation) 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 1d9f12fdbd919582cbb1f5e2d282e24fe4553ac0..99b2ec918cb8f3ab4632e558e7e1c050d72ae372 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,7 +16,7 @@ package ch.systemsx.cisd.openbis.dss.etl; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; /** * Reference to the image with a path relative to the folder with all the images. 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 6fb56512fb11cf3ddba5060da267d368fe631cdc..3a0b66ff09f3e8487d410268846ac10b26298810 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 @@ -23,10 +23,10 @@ import java.util.Set; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.dss.etl.HCSImageFileExtractionResult.Channel; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgChannelDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgContainerDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgDatasetDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgChannelDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgContainerDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgDatasetDTO; /** * Helper class for retrieving and/or creating entities associated with the screening container data @@ -36,9 +36,9 @@ import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgDatasetDTO; */ public class ScreeningContainerDatasetInfoHelper { - private final IImagingUploadDAO dao; + private final IImagingQueryDAO dao; - public ScreeningContainerDatasetInfoHelper(IImagingUploadDAO dao) + public ScreeningContainerDatasetInfoHelper(IImagingQueryDAO dao) { this.dao = dao; } @@ -55,7 +55,7 @@ public class ScreeningContainerDatasetInfoHelper } // Package-visible static methods - public static long createDataset(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, + public static long createDataset(IImagingQueryDAO dao, ScreeningContainerDatasetInfo info, long contId) { ImgDatasetDTO dataset = @@ -71,10 +71,10 @@ public class ScreeningContainerDatasetInfoHelper * transaction will be rolled back sample and experiment created in first transaction will stay * in the DB. */ - public static ExperimentAndContainerIds getOrCreateExperimentAndContainer( - IImagingUploadDAO dao, ScreeningContainerDatasetInfo info) + public static ExperimentAndContainerIds getOrCreateExperimentAndContainer(IImagingQueryDAO dao, + ScreeningContainerDatasetInfo info) { - synchronized (IImagingUploadDAO.class) + synchronized (IImagingQueryDAO.class) { CreatedOrFetchedEntity exp = getOrCreateExperiment(dao, info); CreatedOrFetchedEntity cont = getOrCreateContainer(dao, info, exp.getId()); @@ -96,11 +96,11 @@ public class ScreeningContainerDatasetInfoHelper * in the DB. */ public static ExperimentWithChannelsAndContainer getOrCreateExperimentWithChannelsAndContainer( - IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, + IImagingQueryDAO dao, ScreeningContainerDatasetInfo info, Set<HCSImageFileExtractionResult.Channel> channels) { ScreeningContainerDatasetInfoHelper helper = new ScreeningContainerDatasetInfoHelper(dao); - synchronized (IImagingUploadDAO.class) + synchronized (IImagingQueryDAO.class) { CreatedOrFetchedEntity exp = getOrCreateExperiment(dao, info); long expId = exp.getId(); @@ -117,7 +117,7 @@ public class ScreeningContainerDatasetInfoHelper } } - private static CreatedOrFetchedEntity getOrCreateContainer(IImagingUploadDAO dao, + private static CreatedOrFetchedEntity getOrCreateContainer(IImagingQueryDAO dao, ScreeningContainerDatasetInfo info, long expId) { String containerPermId = info.getContainerPermId(); @@ -135,7 +135,7 @@ public class ScreeningContainerDatasetInfoHelper } } - private static CreatedOrFetchedEntity getOrCreateExperiment(IImagingUploadDAO dao, + private static CreatedOrFetchedEntity getOrCreateExperiment(IImagingQueryDAO dao, ScreeningContainerDatasetInfo info) { String experimentPermId = info.getExperimentPermId(); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDatabaseMigrator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDatabaseMigrator.java index 6284cc4dad7892a02f460e318e7a62709ffaf8ec..3f4f132f37d50424eb1c41ba71f55556bb4dabb6 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDatabaseMigrator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDatabaseMigrator.java @@ -28,16 +28,16 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.utilities.PropertyUtils; import ch.systemsx.cisd.openbis.dss.etl.AbstractHCSImageFileExtractor; import ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; /** * @author Franz-Josef Elmer */ public class BDSImagingDatabaseMigrator extends AbstractBDSMigrator { - private IImagingUploadDAO dao; + private IImagingQueryDAO dao; private List<String> channelNames; @@ -75,7 +75,7 @@ public class BDSImagingDatabaseMigrator extends AbstractBDSMigrator public BDSImagingDatabaseMigrator(Properties properties) { DataSource dataSource = ServiceProvider.getDataSourceProvider().getDataSource(properties); - dao = QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + dao = QueryTool.getQuery(dataSource, IImagingQueryDAO.class); channelNames = PropertyUtils.getMandatoryList(properties, PlateStorageProcessor.CHANNEL_NAMES); channelColorComponentsOrNull = diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDbUploader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDbUploader.java index 3e3679ddbfc59ab410792f888de6d216b1dd337e..6ef193e48afb4984095548647a4d4b6b412ff4be 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDbUploader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/bdsmigration/BDSImagingDbUploader.java @@ -49,9 +49,9 @@ import ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor; import ch.systemsx.cisd.openbis.dss.etl.RelativeImageReference; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; import ch.systemsx.cisd.openbis.dss.etl.HCSImageFileExtractionResult.Channel; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; /** * Uploads data to the imaging database. @@ -62,7 +62,7 @@ class BDSImagingDbUploader { public static IMigrator createImagingDbUploaderMigrator(Properties properties) { - final IImagingUploadDAO dao = createQuery(properties); + final IImagingQueryDAO dao = createQuery(properties); final List<String> channelNames = PropertyUtils.getMandatoryList(properties, PlateStorageProcessor.CHANNEL_NAMES); final List<ColorComponent> channelColorComponentsOrNull = @@ -101,13 +101,13 @@ class BDSImagingDbUploader } } - private static IImagingUploadDAO createQuery(Properties properties) + private static IImagingQueryDAO createQuery(Properties properties) { DataSource dataSource = ServiceProvider.getDataSourceProvider().getDataSource(properties); - return QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + return QueryTool.getQuery(dataSource, IImagingQueryDAO.class); } - private static boolean migrateDataset(File dataset, IImagingUploadDAO dao, + private static boolean migrateDataset(File dataset, IImagingQueryDAO dao, List<String> channelNames, List<ColorComponent> channelColorComponentsOrNull) { String originalDatasetDirName = tryGetOriginalDatasetDirName(dataset); @@ -121,7 +121,7 @@ class BDSImagingDbUploader private final File dataset; - private final IImagingUploadDAO dao; + private final IImagingQueryDAO dao; private final String originalDatasetDirName; @@ -129,7 +129,7 @@ class BDSImagingDbUploader private final List<ColorComponent> channelColorComponentsOrNull; - BDSImagingDbUploader(File dataset, IImagingUploadDAO dao, String originalDatasetDirName, + BDSImagingDbUploader(File dataset, IImagingQueryDAO dao, String originalDatasetDirName, List<String> channelNames, List<ColorComponent> channelColorComponentsOrNull) { this.dataset = dataset; 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/HCSImageDatasetLoader.java similarity index 71% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSDatasetLoader.java rename to screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/HCSImageDatasetLoader.java index 0b7dee61ddf96ed4aee92ccc60a0ac77f6178381..ec93ee30c00da85bb7930d8780050d4c53b995f2 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/HCSImageDatasetLoader.java @@ -21,94 +21,38 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import javax.imageio.ImageIO; import org.apache.commons.lang.StringUtils; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; -import ch.systemsx.cisd.bds.hcs.Geometry; import ch.systemsx.cisd.bds.hcs.Location; import ch.systemsx.cisd.common.io.IContent; import ch.systemsx.cisd.openbis.dss.etl.AbsoluteImageReference; import ch.systemsx.cisd.openbis.dss.etl.IContentRepository; -import ch.systemsx.cisd.openbis.dss.etl.IHCSDatasetLoader; +import ch.systemsx.cisd.openbis.dss.etl.IHCSImageDatasetLoader; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDatasetDownloadServlet.Size; import ch.systemsx.cisd.openbis.dss.generic.shared.utils.ImageUtil; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.HCSDatasetLoader; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgImageDTO; /** - * Helper class for easy handling of HCS image dataset standard structure. + * {@link HCSDatasetLoader} extension with code for handling images. * * @author Tomasz Pylak * @author Piotr Buczek */ -public class HCSDatasetLoader implements IHCSDatasetLoader +public class HCSImageDatasetLoader extends HCSDatasetLoader implements IHCSImageDatasetLoader { - private final IImagingUploadDAO query; - - private final ImgDatasetDTO dataset; - private final IContentRepository contentRepository; - private ImgContainerDTO container; - - private Integer channelCount; - - private List<String> channelNames; - - public HCSDatasetLoader(IImagingUploadDAO query, String datasetPermId, + public HCSImageDatasetLoader(IImagingQueryDAO query, String datasetPermId, IContentRepository contentRepository) { + super(query, datasetPermId); this.contentRepository = contentRepository; - this.query = query; - this.dataset = query.tryGetDatasetByPermId(datasetPermId); - if (dataset == null) - { - throw new IllegalStateException(String.format("Dataset '%s' not found", datasetPermId)); - } - } - - /** has to be called at the end */ - public void close() - { - query.close(); - } - - private ImgContainerDTO getContainer() - { - if (container == null) - { - container = query.getContainerById(dataset.getContainerId()); - } - return container; - } - - public Geometry getPlateGeometry() - { - return new Geometry(getContainer().getNumberOfRows(), getContainer().getNumberOfColumns()); - } - - private ImgDatasetDTO getDataset() - { - return dataset; - } - - public Geometry getWellGeometry() - { - return new Geometry(getDataset().getFieldNumberOfRows(), getDataset() - .getFieldNumberOfColumns()); - } - - public int getChannelCount() - { - if (channelCount == null) - { - channelCount = getChannelsNames().size(); - } - return channelCount; } /** @@ -224,15 +168,4 @@ public class HCSDatasetLoader implements IHCSDatasetLoader } } - public List<String> getChannelsNames() - { - if (channelNames == null) - { - String[] namesAsArray = - query.getChannelNamesByDatasetIdOrExperimentId(getDataset().getId(), - getContainer().getExperimentId()); - channelNames = new ArrayList<String>(Arrays.asList(namesAsArray)); - } - return channelNames; - } } \ No newline at end of file diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IFeatureVectorDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IFeatureVectorDAO.java deleted file mode 100644 index d6bbc3895e910eb0e61b4652e4135f8891eaf1e8..0000000000000000000000000000000000000000 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IFeatureVectorDAO.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2010 ETH Zuerich, CISD - * - * 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.dss.etl.dataaccess; - -import java.util.List; - -import net.lemnik.eodsql.Select; -import net.lemnik.eodsql.TransactionQuery; - -import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ByteArrayMapper; - -/** - * DAO for interacting with feature vector tables. - * - * @author Chandrasekhar Ramakrishnan - */ -public interface IFeatureVectorDAO extends TransactionQuery -{ - public static final int FETCH_SIZE = 1000; - - // Simple Getters - @Select("SELECT * from FEATURE_DEFS where DS_ID = ?{1}") - public List<ImgFeatureDefDTO> listFeatureDefsByDataSetId(long dataSetId); - - @Select(value = "SELECT * from FEATURE_VALUES where FD_ID = ?{1.id}", resultSetBinding = FeatureVectorDataObjectBinding.class) - public List<ImgFeatureValuesDTO> getFeatureValues(ImgFeatureDefDTO featureDef); - - // Inserts - @Select("INSERT into FEATURE_DEFS (NAME, DESCRIPTION, DS_ID) values " - + "(?{1.name}, ?{1.description}, ?{1.dataSetId}) RETURNING ID") - public long addFeatureDef(ImgFeatureDefDTO featureDef); - - @Select(value = "INSERT into FEATURE_VALUES (VALUES, Z_in_M, T_in_SEC, FD_ID) values " - + "(?{1.values}, ?{1.z}, ?{1.t}, ?{1.featureDefId}) RETURNING ID", parameterBindings = - { ByteArrayMapper.class }) - public long addFeatureValues(ImgFeatureValuesDTO featureValues); -} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/AbstractFeatureVectorMigrator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/AbstractFeatureVectorMigrator.java index ce06b80ce704d1d7b22d018fa7f9d4c22d9d3bf9..e43840968c93b2e2be99e2e63cd52c1aff97e37f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/AbstractFeatureVectorMigrator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/AbstractFeatureVectorMigrator.java @@ -28,8 +28,6 @@ import net.lemnik.eodsql.QueryTool; import ch.systemsx.cisd.etlserver.plugins.IMigrator; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgDatasetDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; @@ -40,6 +38,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgDatasetDTO; /** * Imports individual data sets into the imaging db. @@ -48,7 +48,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConst */ public abstract class AbstractFeatureVectorMigrator implements IMigrator { - protected final IImagingUploadDAO dao; + protected final IImagingQueryDAO dao; protected final IEncapsulatedOpenBISService openBisService; @@ -59,7 +59,7 @@ public abstract class AbstractFeatureVectorMigrator implements IMigrator public AbstractFeatureVectorMigrator(Properties properties) { DataSource dataSource = ServiceProvider.getDataSourceProvider().getDataSource(properties); - dao = QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + dao = QueryTool.getQuery(dataSource, IImagingQueryDAO.class); openBisService = ServiceProvider.getOpenBISService(); knownDataSets = openBisService.listDataSets(); knownDataSetsByCode = @@ -247,7 +247,7 @@ public abstract class AbstractFeatureVectorMigrator implements IMigrator */ protected abstract static class AbstractImageDbImporter { - protected final IImagingUploadDAO dao; + protected final IImagingQueryDAO dao; protected final ScreeningContainerDatasetInfo screeningDataSetInfo; @@ -255,7 +255,7 @@ public abstract class AbstractFeatureVectorMigrator implements IMigrator protected boolean isSuccessful = false; - protected AbstractImageDbImporter(IImagingUploadDAO dao, + protected AbstractImageDbImporter(IImagingQueryDAO dao, ScreeningContainerDatasetInfo screeningDataSetInfo, File fileToMigrate) { this.dao = dao; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CanonicalFeatureVector.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CanonicalFeatureVector.java index 555a8e75a99e0e578d9b8f2bbe69abfacb7b41c9..e77f3823826a884fb227fa645cb0861e7a476212 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CanonicalFeatureVector.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CanonicalFeatureVector.java @@ -19,8 +19,8 @@ package ch.systemsx.cisd.openbis.dss.etl.featurevector; import java.util.ArrayList; import java.util.List; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * Image feature vectors stored in a standardized form. diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java index 816657cea5a3783d3bca740a01f15a040f83b633..07f9511253b20ea870ac5f6e391ba7b955553e12 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java @@ -25,10 +25,10 @@ import java.util.Properties; import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked; import ch.systemsx.cisd.etlserver.DefaultStorageProcessor; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.etl.featurevector.CsvToCanonicalFeatureVector.CsvToCanonicalFeatureVectorConfiguration; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.DatasetFileLines; import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; import ch.systemsx.cisd.utils.CsvFileReaderHelper; /** @@ -120,7 +120,7 @@ public class CsvFeatureVectorMigrator extends AbstractFeatureVectorMigrator private final CsvToCanonicalFeatureVectorConfiguration convertorConfig; - protected ImporterCsv(IImagingUploadDAO dao, + protected ImporterCsv(IImagingQueryDAO dao, ScreeningContainerDatasetInfo screeningDataSetInfo, File fileToMigrate, FeatureVectorStorageProcessorConfiguration configuration, CsvToCanonicalFeatureVectorConfiguration convertorConfig) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java index 3b9faf97c4c85c2884f417b96f6ea3e2290cf183..d297d9904a18648fc6ca489096db9884ba544222 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java @@ -24,9 +24,9 @@ import java.util.List; import ch.systemsx.cisd.base.mdarray.MDDoubleArray; import ch.systemsx.cisd.bds.hcs.Location; import ch.systemsx.cisd.common.geometry.Point; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.DatasetFileLines; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * Converts feature vectors from CSV files to CanonicaFeatureVector objects. diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java index 2d0ae122776d81d3338717264b90290cf5c06131..e68f87a4eb8b0caaa3a105479468ed2ca5a743cc 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java @@ -31,7 +31,6 @@ import ch.systemsx.cisd.common.mail.IMailClient; import ch.systemsx.cisd.etlserver.AbstractDelegatingStorageProcessor; import ch.systemsx.cisd.etlserver.ITypeExtractor; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.etl.featurevector.CsvToCanonicalFeatureVector.CsvToCanonicalFeatureVectorConfiguration; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.DatasetFileLines; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; @@ -39,6 +38,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; import ch.systemsx.cisd.utils.CsvFileReaderHelper; /** @@ -59,7 +59,7 @@ public class FeatureVectorStorageProcessor extends AbstractDelegatingStorageProc private final IEncapsulatedOpenBISService openBisService; // Execution state of this object -- set to null after an execution is finished. - private IImagingUploadDAO dataAccessObject = null; + private IImagingQueryDAO dataAccessObject = null; public FeatureVectorStorageProcessor(Properties properties) { @@ -138,9 +138,9 @@ public class FeatureVectorStorageProcessor extends AbstractDelegatingStorageProc return sampleOrNull; } - private IImagingUploadDAO createDAO() + private IImagingQueryDAO createDAO() { - return QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + return QueryTool.getQuery(dataSource, IImagingQueryDAO.class); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploader.java index 9d2a93642e8afb9a5f0f7e9238f342b35daca003..fa698dca418d6f98bc76f15d627c6dd09e143538 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploader.java @@ -20,9 +20,9 @@ import java.util.List; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfoHelper; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * Helper class for uploading feature vectors from the file system into the data base. @@ -31,11 +31,11 @@ import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; */ public class FeatureVectorUploader { - private final IImagingUploadDAO dao; + private final IImagingQueryDAO dao; private final ScreeningContainerDatasetInfo info; - public FeatureVectorUploader(IImagingUploadDAO imagingDao, ScreeningContainerDatasetInfo info) + public FeatureVectorUploader(IImagingQueryDAO imagingDao, ScreeningContainerDatasetInfo info) { this.dao = imagingDao; this.info = info; @@ -58,13 +58,13 @@ public class FeatureVectorUploader private static class FeatureVectorUploaderHelper { - private final IImagingUploadDAO dao; + private final IImagingQueryDAO dao; private final long dataSetId; private final CanonicalFeatureVector fvec; - FeatureVectorUploaderHelper(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, + FeatureVectorUploaderHelper(IImagingQueryDAO dao, ScreeningContainerDatasetInfo info, long dataSetId, CanonicalFeatureVector fvec) { this.dao = dao; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java index 90797bd2ddc37e12aee06e46a2f678f519046d24..bc898ea13d60df25f1d389aac614bd1f2ec30e19 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessor.java @@ -37,7 +37,6 @@ import ch.systemsx.cisd.etlserver.ITypeExtractor; import ch.systemsx.cisd.etlserver.utils.Column; import ch.systemsx.cisd.etlserver.utils.TableBuilder; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.etl.featurevector.CanonicalFeatureVector; import ch.systemsx.cisd.openbis.dss.etl.featurevector.FeatureVectorUploader; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; @@ -45,6 +44,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; /** * @author Franz-Josef Elmer @@ -60,7 +60,7 @@ public class FeatureStorageProcessor extends AbstractDelegatingStorageProcessor private final IEncapsulatedOpenBISService openBisService; // Execution state of this object -- set to null after an execution is finished. - private IImagingUploadDAO dataAccessObject = null; + private IImagingQueryDAO dataAccessObject = null; private final class ColumnsBuilder { @@ -260,9 +260,9 @@ public class FeatureStorageProcessor extends AbstractDelegatingStorageProcessor return sampleOrNull; } - protected IImagingUploadDAO createDAO() + protected IImagingQueryDAO createDAO() { - return QueryTool.getQuery(dataSource, IImagingUploadDAO.class); + return QueryTool.getQuery(dataSource, IImagingQueryDAO.class); } private String convertColumnsToString(String barCode, ColumnsBuilder columnsBuilder) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFeatureVectorMigrator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFeatureVectorMigrator.java index 4d956f9fe718d9756d04b1893c7b47cf3b626028..668b94c3af65bdb1229a770dc4282aab24d671a0 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFeatureVectorMigrator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFeatureVectorMigrator.java @@ -25,11 +25,11 @@ import java.util.Properties; import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.etlserver.DefaultStorageProcessor; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.etl.featurevector.AbstractFeatureVectorMigrator; import ch.systemsx.cisd.openbis.dss.etl.featurevector.CanonicalFeatureVector; import ch.systemsx.cisd.openbis.dss.etl.featurevector.FeatureVectorUploader; import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; /** * Imports Genedata feature vectors into the database. @@ -112,7 +112,7 @@ public class GenedataFeatureVectorMigrator extends AbstractFeatureVectorMigrator /** * @param fileToMigrate */ - private ImporterGenedata(IImagingUploadDAO dao, + private ImporterGenedata(IImagingQueryDAO dao, ScreeningContainerDatasetInfo screeningDataSetInfo, File fileToMigrate) { super(dao, screeningDataSetInfo, fileToMigrate); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVector.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVector.java index ae2a11c49a450724ac855067f0baf2eac6c1c82a..66b820fec504f6a457bf3fad68b51ad9401a02fd 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVector.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVector.java @@ -27,9 +27,9 @@ import org.apache.commons.lang.StringUtils; import ch.systemsx.cisd.base.mdarray.MDDoubleArray; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.common.geometry.Point; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; import ch.systemsx.cisd.openbis.dss.etl.featurevector.CanonicalFeatureVector; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * Converts currentFeature vectors from the Genedata currentFeature vector file format to diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java index 808b22874e880e1f718099b5070ddf07626214c1..649a762c2f5c223fc1c142fdbe51584a53b59c67 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/images/ImageChannelsUtils.java @@ -26,11 +26,11 @@ import ch.systemsx.cisd.bds.hcs.Location; import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.common.io.IContent; import ch.systemsx.cisd.openbis.dss.etl.AbsoluteImageReference; -import ch.systemsx.cisd.openbis.dss.etl.HCSDatasetLoaderFactory; -import ch.systemsx.cisd.openbis.dss.etl.IHCSDatasetLoader; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.dss.etl.HCSImageDatasetLoaderFactory; +import ch.systemsx.cisd.openbis.dss.etl.IHCSImageDatasetLoader; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDatasetDownloadServlet.Size; import ch.systemsx.cisd.openbis.dss.generic.shared.utils.ImageUtil; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; /** * Utility classes to create an image of a specified size containing one channel or a subset of all @@ -49,7 +49,8 @@ public class ImageChannelsUtils public static List<AbsoluteImageReference> getImagePaths(File datasetRoot, String datasetCode, TileImageReference params) { - IHCSDatasetLoader imageAccessor = HCSDatasetLoaderFactory.create(datasetRoot, datasetCode); + IHCSImageDatasetLoader imageAccessor = + HCSImageDatasetLoaderFactory.create(datasetRoot, datasetCode); Location wellLocation = params.getWellLocation(); Location tileLocation = params.getTileLocation(); List<AbsoluteImageReference> images = new ArrayList<AbsoluteImageReference>(); @@ -218,7 +219,7 @@ public class ImageChannelsUtils * @param chosenChannel starts from 1 * @throw {@link EnvironmentFailureException} when image does not exist */ - public static AbsoluteImageReference getImage(IHCSDatasetLoader imageAccessor, + public static AbsoluteImageReference getImage(IHCSImageDatasetLoader imageAccessor, Location wellLocation, Location tileLocation, String chosenChannel, Size thumbnailSizeOrNull) { diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/ScreeningPlateImageParamsReportingPlugin.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/ScreeningPlateImageParamsReportingPlugin.java index 058a401cd27a7b30fe243773ab3b8bdcbfc72916..e7273040dae8b7f10d3af33836d919270ffb43f9 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/ScreeningPlateImageParamsReportingPlugin.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/ScreeningPlateImageParamsReportingPlugin.java @@ -27,8 +27,8 @@ import java.util.Properties; import org.apache.commons.lang.StringEscapeUtils; import ch.systemsx.cisd.bds.hcs.Geometry; -import ch.systemsx.cisd.openbis.dss.etl.HCSDatasetLoaderFactory; -import ch.systemsx.cisd.openbis.dss.etl.IHCSDatasetLoader; +import ch.systemsx.cisd.openbis.dss.etl.HCSImageDatasetLoaderFactory; +import ch.systemsx.cisd.openbis.dss.etl.IHCSImageDatasetLoader; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.AbstractDatastorePlugin; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IReportingPluginTask; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.SimpleTableModelBuilder; @@ -74,8 +74,8 @@ public class ScreeningPlateImageParamsReportingPlugin extends AbstractDatastoreP for (DatasetDescription dataset : datasets) { File datasetFile = new File(storeRoot, dataset.getDataSetLocation()); - IHCSDatasetLoader imageAccessor = - HCSDatasetLoaderFactory.create(datasetFile, dataset.getDatasetCode()); + IHCSImageDatasetLoader imageAccessor = + HCSImageDatasetLoaderFactory.create(datasetFile, dataset.getDatasetCode()); addReportRows(builder, dataset, imageAccessor); imageAccessor.close(); } @@ -94,7 +94,7 @@ public class ScreeningPlateImageParamsReportingPlugin extends AbstractDatastoreP } private void addReportRows(SimpleTableModelBuilder builder, DatasetDescription dataset, - IHCSDatasetLoader imageAccessor) + IHCSImageDatasetLoader imageAccessor) { Geometry plateGeometry = imageAccessor.getPlateGeometry(); Geometry wellGeometry = imageAccessor.getWellGeometry(); 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 38a0556b98275cc705aa902fed7c1a88aa1db4dc..d1faeadb7ec31115878104290fdd88fa7adb56db 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 @@ -40,8 +40,8 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.common.io.ConcatenatedContentInputStream; import ch.systemsx.cisd.common.io.IContent; import ch.systemsx.cisd.openbis.dss.etl.AbsoluteImageReference; -import ch.systemsx.cisd.openbis.dss.etl.HCSDatasetLoaderFactory; -import ch.systemsx.cisd.openbis.dss.etl.IHCSDatasetLoader; +import ch.systemsx.cisd.openbis.dss.etl.HCSImageDatasetLoaderFactory; +import ch.systemsx.cisd.openbis.dss.etl.IHCSImageDatasetLoader; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDssServiceRpc; import ch.systemsx.cisd.openbis.dss.generic.server.images.ImageChannelsUtils; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.DatasetFileLines; @@ -170,8 +170,8 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements private static ImageDatasetMetadata extractImageMetadata(IImageDatasetIdentifier dataset, File datasetRoot) { - IHCSDatasetLoader imageAccessor = - HCSDatasetLoaderFactory.create(datasetRoot, dataset.getDatasetCode()); + IHCSImageDatasetLoader imageAccessor = + HCSImageDatasetLoaderFactory.create(datasetRoot, dataset.getDatasetCode()); IContent imageFile = getAnyImagePath(imageAccessor, dataset); Geometry wellGeometry = imageAccessor.getWellGeometry(); int channelsNumber = imageAccessor.getChannelCount(); @@ -181,7 +181,7 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements image.getHeight()); } - private static IContent getAnyImagePath(IHCSDatasetLoader imageAccessor, + private static IContent getAnyImagePath(IHCSImageDatasetLoader imageAccessor, IImageDatasetIdentifier dataset) { Geometry plateGeometry = imageAccessor.getPlateGeometry(); @@ -232,14 +232,14 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements public InputStream loadImages(String sessionToken, List<PlateImageReference> imageReferences) { - Map<String, IHCSDatasetLoader> imageLoadersMap = + Map<String, IHCSImageDatasetLoader> imageLoadersMap = getImageDatasetsMap(sessionToken, imageReferences); List<IContent> imageFiles = new ArrayList<IContent>(); try { for (PlateImageReference imageReference : imageReferences) { - IHCSDatasetLoader imageAccessor = + IHCSImageDatasetLoader imageAccessor = imageLoadersMap.get(imageReference.getDatasetCode()); assert imageAccessor != null : "imageAccessor not found for: " + imageReference; AbsoluteImageReference image = tryGetImage(imageAccessor, imageReference); @@ -260,20 +260,20 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements return new ConcatenatedContentInputStream(true, imageFiles); } - private static void closeDatasetLoaders(Collection<IHCSDatasetLoader> loaders) + private static void closeDatasetLoaders(Collection<IHCSImageDatasetLoader> loaders) { - for (IHCSDatasetLoader loader : loaders) + for (IHCSImageDatasetLoader loader : loaders) { loader.close(); } } // throws exception if some datasets cannot be found - private Map<String/* image or feature vector dataset code */, IHCSDatasetLoader> getImageDatasetsMap( + private Map<String/* image or feature vector dataset code */, IHCSImageDatasetLoader> getImageDatasetsMap( String sessionToken, List<PlateImageReference> imageReferences) { - Map<String/* dataset code */, IHCSDatasetLoader> imageDatasetsMap = - new HashMap<String, IHCSDatasetLoader>(); + Map<String/* dataset code */, IHCSImageDatasetLoader> imageDatasetsMap = + new HashMap<String, IHCSImageDatasetLoader>(); for (PlateImageReference imageReference : imageReferences) { if (imageDatasetsMap.containsKey(imageReference.getDatasetCode()) == false) @@ -282,7 +282,8 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements tryFindImageDataset(sessionToken, imageReference.getDatasetCode()); if (imageDataset != null) { - IHCSDatasetLoader imageAccessor = createImageLoader(imageDataset.getCode()); + IHCSImageDatasetLoader imageAccessor = + createImageLoader(imageDataset.getCode()); imageDatasetsMap.put(imageReference.getDatasetCode(), imageAccessor); } else { @@ -294,7 +295,7 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements return imageDatasetsMap; } - private AbsoluteImageReference tryGetImage(IHCSDatasetLoader imageAccessor, + private AbsoluteImageReference tryGetImage(IHCSImageDatasetLoader imageAccessor, PlateImageReference imageRef) { Location wellLocation = asLocation(imageRef.getWellPosition()); @@ -328,10 +329,10 @@ public class DssServiceRpcScreening extends AbstractDssServiceRpc implements return new Location(wellPosition.getWellColumn(), wellPosition.getWellRow()); } - private IHCSDatasetLoader createImageLoader(String datasetCode) + private IHCSImageDatasetLoader createImageLoader(String datasetCode) { File datasetRoot = getRootDirectoryForDataSet(datasetCode); - return HCSDatasetLoaderFactory.create(datasetRoot, datasetCode); + return HCSImageDatasetLoaderFactory.create(datasetRoot, datasetCode); } private ExternalData tryFindImageDataset(String sessionToken, String datasetCode) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java index cfc006f87e5bf929bc9ba4b9c83c86bae0456717..97248a938d60e84eea8d06f04dc51db3fbf75f88 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java @@ -25,6 +25,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.datasetlister.IDatase import ch.systemsx.cisd.openbis.generic.server.business.bo.materiallister.IMaterialLister; import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoader; /** * A <i>screening</i> plugin specific business object factory. @@ -33,6 +34,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.Session; */ public interface IScreeningBusinessObjectFactory { + public IHCSDatasetLoader createHCSDatasetLoader(final String datasetPermId); + public ISampleBO createSampleBO(final Session session); public IExternalDataTable createExternalDataTable(final Session session); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java index 56bf93ad896a0e0d6af9ebb89a35e3b2989629be..e5dc92736c6a22dfcd884f453c3a856d91039e57 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.plugin.screening.server; +import javax.annotation.Resource; + import org.springframework.stereotype.Component; import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO; @@ -28,7 +30,10 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.materiallister.IMater import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.plugin.AbstractPluginBusinessObjectFactory; +import ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.IScreeningDAOFactory; import ch.systemsx.cisd.openbis.plugin.screening.shared.ResourceNames; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.HCSDatasetLoader; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoader; /** * The unique {@link IScreeningBusinessObjectFactory} implementation. @@ -40,6 +45,18 @@ public final class ScreeningBusinessObjectFactory extends AbstractPluginBusiness implements IScreeningBusinessObjectFactory { + @Resource(name = ResourceNames.SCREENING_DAO_FACTORY) + private IScreeningDAOFactory specificDAOFactory; + + public ScreeningBusinessObjectFactory() + { + } + + public final IHCSDatasetLoader createHCSDatasetLoader(final String datasetPermId) + { + return new HCSDatasetLoader(specificDAOFactory.getImagingQueryDAO(), datasetPermId); + } + public final ISampleBO createSampleBO(final Session session) { return getCommonBusinessObjectFactory().createSampleBO(session); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningDAOFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningDAOFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..e37c8c943b1dccc40c8ea7909f406b99a71f1a6a --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/IScreeningDAOFactory.java @@ -0,0 +1,32 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * 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.dataaccess; + +import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; + +/** + * A factory for Screening specific DAOs. + * + * @author Piotr Buczek + */ +public interface IScreeningDAOFactory +{ + public DatabaseConfigurationContext getContext(); + + public IImagingQueryDAO getImagingQueryDAO(); +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/db/ScreeningDAOFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/db/ScreeningDAOFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..9a8095fdcf54ba1675a25e34a4b9c5af26e54de5 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/dataaccess/db/ScreeningDAOFactory.java @@ -0,0 +1,79 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * 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.dataaccess.db; + +import java.sql.Connection; +import java.sql.SQLException; + +import net.lemnik.eodsql.QueryTool; + +import org.apache.log4j.Logger; + +import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; +import ch.systemsx.cisd.common.logging.LogCategory; +import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.dbmigration.DBMigrationEngine; +import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; +import ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.IScreeningDAOFactory; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; + +/** + * @author Piotr Buczek + */ +public class ScreeningDAOFactory implements IScreeningDAOFactory +{ + /** Current version of the database. */ + public static final String DATABASE_VERSION = "003"; // S83 + + private static final Logger operationLog = + LogFactory.getLogger(LogCategory.OPERATION, ScreeningDAOFactory.class); + + private final IImagingQueryDAO imagingQueryDAO; + + private final DatabaseConfigurationContext imagingDatabaseContext; + + public ScreeningDAOFactory(DatabaseConfigurationContext context) + { + this.imagingDatabaseContext = context; + DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(context, DATABASE_VERSION); + Connection connection = null; + try + { + connection = context.getDataSource().getConnection(); + } catch (SQLException ex) + { + throw CheckedExceptionTunnel.wrapIfNecessary(ex); + } + // TODO this is the same solution as in PhosphoNetX - is it ok to use connection here? + // shouldn't it be a data source passed here in constructor? + imagingQueryDAO = QueryTool.getQuery(connection, IImagingQueryDAO.class); + if (operationLog.isInfoEnabled()) + { + operationLog.info("DAO factory for Screening created."); + } + } + + public DatabaseConfigurationContext getContext() + { + return imagingDatabaseContext; + } + + public IImagingQueryDAO getImagingQueryDAO() + { + return imagingQueryDAO; + } +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/ResourceNames.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/ResourceNames.java index 3890e43995811a92bea38b8fe8a80153562da4ce..cba01cf953cd84f0a8a859b60ffd4159388ba05f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/ResourceNames.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/ResourceNames.java @@ -37,8 +37,9 @@ public final class ResourceNames public final static String SCREENING_PLUGIN_SERVER = "screening-plugin-server"; - public final static String SCREENING_BUSINESS_OBJECT_FACTORY = - "screening-business-object-factory"; + public final static String SCREENING_BUSINESS_OBJECT_FACTORY = "screening-bo-factory"; + + public final static String SCREENING_DAO_FACTORY = "screening-dao-factory"; public final static String SCREENING_SAMPLE_SERVER_PLUGIN = "screening-sample-server-plugin"; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java new file mode 100644 index 0000000000000000000000000000000000000000..11b03d9d39bb76548585bcc961320d5a6313c035 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/HCSDatasetLoader.java @@ -0,0 +1,108 @@ +/* + * Copyright 2010 ETH Zuerich, CISD + * + * 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.imaging; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import ch.systemsx.cisd.bds.hcs.Geometry; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgContainerDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgDatasetDTO; + +/** + * Helper class for easy handling of HCS image dataset standard structure with no code for handling + * images. + * + * @author Tomasz Pylak + * @author Piotr Buczek + */ +public class HCSDatasetLoader implements IHCSDatasetLoader +{ + protected final IImagingQueryDAO query; + + protected final ImgDatasetDTO dataset; + + protected ImgContainerDTO container; + + protected Integer channelCount; + + protected List<String> channelNames; + + public HCSDatasetLoader(IImagingQueryDAO query, String datasetPermId) + { + this.query = query; + this.dataset = query.tryGetDatasetByPermId(datasetPermId); + if (dataset == null) + { + throw new IllegalStateException(String.format("Dataset '%s' not found", datasetPermId)); + } + } + + /** has to be called at the end */ + public void close() + { + query.close(); + } + + protected final ImgContainerDTO getContainer() + { + if (container == null) + { + container = query.getContainerById(dataset.getContainerId()); + } + return container; + } + + public Geometry getPlateGeometry() + { + return new Geometry(getContainer().getNumberOfRows(), getContainer().getNumberOfColumns()); + } + + protected final ImgDatasetDTO getDataset() + { + return dataset; + } + + public Geometry getWellGeometry() + { + return new Geometry(getDataset().getFieldNumberOfRows(), getDataset() + .getFieldNumberOfColumns()); + } + + public int getChannelCount() + { + if (channelCount == null) + { + channelCount = getChannelsNames().size(); + } + return channelCount; + } + + public List<String> getChannelsNames() + { + if (channelNames == null) + { + String[] namesAsArray = + query.getChannelNamesByDatasetIdOrExperimentId(getDataset().getId(), + getContainer().getExperimentId()); + channelNames = new ArrayList<String>(Arrays.asList(namesAsArray)); + } + return channelNames; + } +} \ No newline at end of file diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingDatabaseVersionHolder.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java similarity index 58% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingDatabaseVersionHolder.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java index d5ce9a1180e937442e71d5e7c9ecd66cf975cea7..80756fb4bdedc40daf690585fe298d3a08d13a96 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingDatabaseVersionHolder.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/IHCSDatasetLoader.java @@ -14,23 +14,27 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging; -import ch.systemsx.cisd.openbis.dss.generic.shared.IDatabaseVersionHolder; +import java.util.List; + +import ch.systemsx.cisd.bds.hcs.Geometry; /** - * Stores current version of special purpose imaging database. - * * @author Tomasz Pylak */ -public class ImagingDatabaseVersionHolder implements IDatabaseVersionHolder +public interface IHCSDatasetLoader { - /** Current version of the database. */ - static final String DATABASE_VERSION = "003"; // S83 - public String getDatabaseVersion() - { - return DATABASE_VERSION; - } + /** has to be called at the end */ + void close(); + + Geometry getPlateGeometry(); + + Geometry getWellGeometry(); + + int getChannelCount(); + + List<String> getChannelsNames(); -} +} \ No newline at end of file diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ColorComponent.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ColorComponent.java similarity index 95% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ColorComponent.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ColorComponent.java index ad63813c897511622dc96f64c346f988aa995e3d..140dfe5af190382a058a87be3eee1b907136bb00 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ColorComponent.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ColorComponent.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import java.awt.Color; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/FeatureVectorDataObjectBinding.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/FeatureVectorDataObjectBinding.java similarity index 94% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/FeatureVectorDataObjectBinding.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/FeatureVectorDataObjectBinding.java index 3b8476fd48ba44d94693d8b8bf4c52a68090e88b..1fe2ee364354b4cdc72afe61c27733a263586287 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/FeatureVectorDataObjectBinding.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/FeatureVectorDataObjectBinding.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java similarity index 98% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java index c4a421f49c98f92b9e5a85a86b52f29fd7baa92d..8fed686e6bcc7f86dfbc790fb2e675bd059c2d0e 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/IImagingUploadDAO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/IImagingQueryDAO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import java.util.List; @@ -28,7 +28,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.ByteArrayMapper; /** * @author Tomasz Pylak */ -public interface IImagingUploadDAO extends TransactionQuery +public interface IImagingQueryDAO extends TransactionQuery { public static final int FETCH_SIZE = 1000; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgAcquiredImageDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgAcquiredImageDTO.java similarity index 96% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgAcquiredImageDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgAcquiredImageDTO.java index 235e525767d98c0c574c41583a5ce9872ebe8910..9ef3b0e381cad657fcf9e526781c79edd9f75dd9 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgAcquiredImageDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgAcquiredImageDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgChannelDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgChannelDTO.java similarity index 97% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgChannelDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgChannelDTO.java index 48336231307e8a911b62b08b17881f469c7b2a0f..f473c2d77892d6692e61e7012df098c37ca2e610 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgChannelDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgChannelDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgChannelStackDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgChannelStackDTO.java similarity index 97% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgChannelStackDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgChannelStackDTO.java index 44ff7859cef51079ce5b332482710249e8494998..2fd24910d0be2fc6abf6685fc661c802d5aa762a 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgChannelStackDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgChannelStackDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgContainerDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgContainerDTO.java similarity index 96% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgContainerDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgContainerDTO.java index 4427208dd4286348d36ff2e3b5f6de64fc85be92..e5932271494f2718599a0513d2b1bceaa4a2a27c 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgContainerDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgContainerDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgDatasetDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgDatasetDTO.java similarity index 97% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgDatasetDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgDatasetDTO.java index 18a1ee6d1090b95769835af1ab91297690146f5f..58cf4871a10249c28dbf11f1f0f237e775b7dc0d 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgDatasetDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgDatasetDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgFeatureDefDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgFeatureDefDTO.java similarity index 96% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgFeatureDefDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgFeatureDefDTO.java index 166b39c1847af86bdde8e32f829ac1ec9f836338..7ba947e07c6ed9ec0121d38086502accf6bea568 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgFeatureDefDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgFeatureDefDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgFeatureValuesDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgFeatureValuesDTO.java similarity index 97% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgFeatureValuesDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgFeatureValuesDTO.java index 0cda1a2925fbb083021929723a9f2d1999cb8525..b3d418f221f0913d9d9cc30d8df6429cd6073c14 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgFeatureValuesDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgFeatureValuesDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgImageDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgImageDTO.java similarity index 96% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgImageDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgImageDTO.java index 19ad6ed07cb06f7caed07fd12b0ab3d5ec88b11a..ebdeabae3cb8941c8d0248e80129fd49a9fa32a1 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgImageDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgImageDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgSpotDTO.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgSpotDTO.java similarity index 96% rename from screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgSpotDTO.java rename to screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgSpotDTO.java index 2927d99d3ca32d4d72b62addd96c4afd0be2b5fd..57546b6dbe376b68733c2f8f911417c678f00a7a 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImgSpotDTO.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImgSpotDTO.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import net.lemnik.eodsql.AutoGeneratedKeys; import net.lemnik.eodsql.ResultColumn; diff --git a/screening/source/java/screening-applicationContext.xml b/screening/source/java/screening-applicationContext.xml index 3a5e07e65e54083814018656a114da2a88eb8aa2..c8f42648252ace1fe19d2b3baa070af337d321e9 100644 --- a/screening/source/java/screening-applicationContext.xml +++ b/screening/source/java/screening-applicationContext.xml @@ -9,6 +9,31 @@ <import resource="applicationContext.xml"/> + <bean id="imaging-db-configuration-context" + class="ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext"> + <property name="basicDatabaseName" value="imaging" /> + <property name="createFromScratch" value="${imaging.database.create-from-scratch}" /> + <property name="scriptSingleStepMode" value="${imaging.database.script-single-step-mode}" /> + <property name="sequenceNameMapper"> + <bean class="ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SequenceNameMapper" /> + </property> + <property name="urlHostPart" value="${imaging.database.url-host-part}" /> + <property name="adminUser" value="${imaging.database.admin-user}" /> + <property name="owner" value="${imaging.database.owner}" /> + <property name="readOnlyGroup" value="imaging_readonly" /> + <property name="password" value="${imaging.database.owner-password}" /> + <property name="adminPassword" value="${imaging.database.admin-password}" /> + <property name="databaseKind" value="${imaging.database.kind}" /> + <property name="databaseEngineCode" value="${imaging.database.engine}" /> + <property name="scriptFolder" value="${imaging.script-folder}/sql" /> + <property name="databaseInstance" value="${imaging.database-instance}" /> + </bean> + + <bean id="screening-dao-factory" + class="ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.db.ScreeningDAOFactory"> + <constructor-arg ref="imaging-db-configuration-context"/> + </bean> + <!-- //Mail Client Parameters --> diff --git a/screening/source/java/service.properties b/screening/source/java/service.properties index 3db582c2b9315a568fcd793f80e163338579b873..1d4aa1792cebe508c4faa4d855454f61b81e8e35 100644 --- a/screening/source/java/service.properties +++ b/screening/source/java/service.properties @@ -21,6 +21,17 @@ database.owner-password = database.admin-user = database.admin-password = +imaging.database.engine = postgresql +imaging.database.create-from-scratch = false +imaging.database.script-single-step-mode = false +imaging.database.url-host-part = +imaging.database.kind = dev +imaging.database.owner = +imaging.database.owner-password = +imaging.database.admin-user = +imaging.database.admin-password = +imaging.script-folder = source + crowd.service.host = crowd-bsse.ethz.ch crowd.service.port = 8443 crowd.application.name = lims diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploaderTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploaderTest.java index 29d73a330bdb87a0c30fee2666477282f90159a7..cc1195ae175bcb943192a9ea9e6dd177ba6af210 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploaderTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorUploaderTest.java @@ -28,11 +28,11 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.base.mdarray.MDDoubleArray; import ch.systemsx.cisd.openbis.dss.etl.ScreeningContainerDatasetInfo; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.AbstractDBTest; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.DBUtils; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.AbstractDBTest; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.DBUtils; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * @author Chandrasekhar Ramakrishnan @@ -47,12 +47,12 @@ public class FeatureVectorUploaderTest extends AbstractDBTest private static final String TEST_FEATURE_NAME = "test"; - private IImagingUploadDAO dao; + private IImagingQueryDAO dao; @BeforeClass(alwaysRun = true) public void init() throws SQLException { - dao = DBUtils.getQuery(datasource, IImagingUploadDAO.class); + dao = DBUtils.getQuery(datasource, IImagingQueryDAO.class); } @Test diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessorTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessorTest.java index 560164ab8f7aa74ac1fb71ba6bd4df7923c1fa96..5b8598843768a96f9920f695e7f5c52dc758420c 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessorTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/FeatureStorageProcessorTest.java @@ -33,10 +33,6 @@ import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase; import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.etlserver.IStorageProcessor; import ch.systemsx.cisd.etlserver.PlateDimensionParser; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgDatasetDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; @@ -44,6 +40,10 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericValueEntityPrope import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgDatasetDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * @author Franz-Josef Elmer @@ -63,7 +63,7 @@ public class FeatureStorageProcessorTest extends AbstractFileSystemTestCase private Mockery context; - private IImagingUploadDAO dao; + private IImagingQueryDAO dao; private DataSource dataSource; @@ -76,7 +76,7 @@ public class FeatureStorageProcessorTest extends AbstractFileSystemTestCase super.setUp(); context = new Mockery(); - dao = context.mock(IImagingUploadDAO.class); + dao = context.mock(IImagingQueryDAO.class); dataSource = context.mock(DataSource.class); openBisService = context.mock(IEncapsulatedOpenBISService.class); @@ -128,7 +128,7 @@ public class FeatureStorageProcessorTest extends AbstractFileSystemTestCase // For Testing @Override - protected IImagingUploadDAO createDAO() + protected IImagingQueryDAO createDAO() { return dao; } diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVectorTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVectorTest.java index 2427bd798e6f01dd65081a0fde60fa537f641c2e..a35e0b1e23e18a5a40b96339a5b8856e1c7716fc 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVectorTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/genedata/GenedataFormatToCanonicalFeatureVectorTest.java @@ -25,9 +25,9 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.base.mdarray.MDDoubleArray; import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase; import ch.systemsx.cisd.common.filesystem.FileUtilities; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureDefDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgFeatureValuesDTO; import ch.systemsx.cisd.openbis.dss.etl.featurevector.CanonicalFeatureVector; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** * Check that Genedata feature vectors can be converted to the canonical form. diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/screening/shared/.gitignore b/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/screening/shared/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/AbstractDBTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/AbstractDBTest.java similarity index 96% rename from screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/AbstractDBTest.java rename to screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/AbstractDBTest.java index 4b2c4bcf666d65c15e1ddda346cad251f3ca797d..1c6adfba79950e2a2ee93f9c5cecf0f93190dce1 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/AbstractDBTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/AbstractDBTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import java.sql.SQLException; diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/DBUtils.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/DBUtils.java similarity index 96% rename from screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/DBUtils.java rename to screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/DBUtils.java index 4b6845f2aa8b0778f805972c3db02661cad394d7..1206b6ee82e53be02f49df8cbe2314942d324d2a 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/DBUtils.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/DBUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import javax.sql.DataSource; diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/DBUtilsForTests.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/DBUtilsForTests.java similarity index 79% rename from screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/DBUtilsForTests.java rename to screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/DBUtilsForTests.java index 4d6d2293d4118d44380e1750d1b996e84489e0f9..702e5448ec29ca8a2224923c3d748d61e0ca06a3 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/DBUtilsForTests.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/DBUtilsForTests.java @@ -14,25 +14,25 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import ch.rinn.restrictions.Friend; import ch.systemsx.cisd.dbmigration.DBMigrationEngine; import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImagingDatabaseVersionHolder; +import ch.systemsx.cisd.openbis.plugin.screening.server.dataaccess.db.ScreeningDAOFactory; /** * Utilities for dealing with databases in tests. * * @author Piotr Buczek */ -@Friend(toClasses = ImagingDatabaseVersionHolder.class) +@Friend(toClasses = ScreeningDAOFactory.class) public class DBUtilsForTests { public static void init(DatabaseConfigurationContext context) { DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(context, - ImagingDatabaseVersionHolder.DATABASE_VERSION); + ScreeningDAOFactory.DATABASE_VERSION); } } diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/FeatureVectorDAOTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/FeatureVectorDAOTest.java similarity index 85% rename from screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/FeatureVectorDAOTest.java rename to screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/FeatureVectorDAOTest.java index d436277100ca336c1be74fcb8376b83ac3c7a3cd..9ead171b15832b931a770e0c506a99d020524abb 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/FeatureVectorDAOTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/FeatureVectorDAOTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import static org.testng.AssertJUnit.assertEquals; @@ -25,9 +25,14 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import ch.systemsx.cisd.base.mdarray.MDDoubleArray; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgContainerDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgDatasetDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureDefDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgFeatureValuesDTO; /** - * Tests for {@link IImagingUploadDAO} methods that deal with feature vectors. + * Tests for {@link IImagingQueryDAO} methods that deal with feature vectors. * * @author Chandrasekhar Ramakrishnan */ @@ -35,7 +40,7 @@ import ch.systemsx.cisd.base.mdarray.MDDoubleArray; { "db", "screening" }) public class FeatureVectorDAOTest extends AbstractDBTest { - private IImagingUploadDAO dao; + private IImagingQueryDAO dao; private ImgDatasetDTO dataset; @@ -50,12 +55,12 @@ public class FeatureVectorDAOTest extends AbstractDBTest @BeforeClass(alwaysRun = true) public void init() throws SQLException { - dao = DBUtils.getQuery(datasource, IImagingUploadDAO.class); + dao = DBUtils.getQuery(datasource, IImagingQueryDAO.class); } private ImgDatasetDTO createDataSet() { - IImagingUploadDAO imagingDao = dao; + IImagingQueryDAO imagingDao = dao; // Create an Experiment final long experimentId = imagingDao.addExperiment(EXP_PERM_ID); diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImagingQueryDAOTest.java similarity index 89% rename from screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java rename to screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImagingQueryDAOTest.java index c78efa3c11318f55ca893f69e22517a7492782ae..7d3496c9c8f092e4b7c54d27944ef0da833fb66d 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/dss/etl/dataaccess/ImagingUploadDAOTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/imaging/dataaccess/ImagingQueryDAOTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.etl.dataaccess; +package ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNotNull; @@ -27,15 +27,24 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import ch.systemsx.cisd.bds.hcs.Location; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ColorComponent; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.IImagingQueryDAO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgAcquiredImageDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgChannelDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgChannelStackDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgContainerDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgDatasetDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgImageDTO; +import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.dataaccess.ImgSpotDTO; /** - * Tests for {@link IImagingUploadDAO}. + * Tests for {@link IImagingQueryDAO}. * * @author Piotr Buczek */ @Test(groups = { "db", "screening" }) -public class ImagingUploadDAOTest extends AbstractDBTest +public class ImagingQueryDAOTest extends AbstractDBTest { private static final String PERM_ID = "PERM_ID"; @@ -68,12 +77,12 @@ public class ImagingUploadDAOTest extends AbstractDBTest private static final String EXP_CHANNEL = "expChannel"; - private IImagingUploadDAO dao; + private IImagingQueryDAO dao; @BeforeClass(alwaysRun = true) public void init() throws SQLException { - dao = DBUtils.getQuery(datasource, IImagingUploadDAO.class); + dao = DBUtils.getQuery(datasource, IImagingQueryDAO.class); } @Test