diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureVectorContainerDataSet.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureVectorContainerDataSet.java index 2fd157e7a69337b64d20e9eb55ed6c594bc3be8b..6b8a87eb973240730278afbb79264ad0b90e2064 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureVectorContainerDataSet.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/dto/api/impl/FeatureVectorContainerDataSet.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.dss.etl.dto.api.impl; +import static ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConstants.ANALYSIS_PROCEDURE; + import java.io.File; import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationDetails; @@ -26,6 +28,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.IExperimentImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v1.ISampleImmutable; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; +import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty; /** * @author jakubs @@ -61,7 +64,8 @@ public class FeatureVectorContainerDataSet extends DataSet<DataSetInformation> i @Override public void setAnalysisProcedure(String analysisProcedure) { - originalDataset.setAnalysisProcedure(analysisProcedure); + getRegistrationDetails().getDataSetInformation().getDataSetProperties() + .add(new NewProperty(ANALYSIS_PROCEDURE, analysisProcedure)); } @Override @@ -96,10 +100,7 @@ public class FeatureVectorContainerDataSet extends DataSet<DataSetInformation> i @Override public void setPropertyValue(String propertyCode, String propertyValue) { - if (originalDataset != null) - { - originalDataset.setPropertyValue(propertyCode, propertyValue); - } + getRegistrationDetails().setPropertyValue(propertyCode, propertyValue); } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java index f196ee26971f9914f56c4aefebdd1045259af1c4..e259d1395e68f07a8e6a2ad62086e219b8999cba 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/ImagingDataSetRegistrationTransaction.java @@ -127,6 +127,36 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr */ public IFeatureVectorDataSet createNewFeatureVectorDataSet( SimpleFeatureVectorDataConfig featureDataSetConfig, File featureVectorFileOrNull) + { + DataSetRegistrationDetails<FeatureVectorDataSetInformation> registrationDetails = + createFeatureVectorDataSetRegistrationDetails(featureDataSetConfig, + featureVectorFileOrNull); + return createFeatureVectorDataSet(registrationDetails); + } + + private IFeatureVectorDataSet createFeatureVectorDataSet( + DataSetRegistrationDetails<FeatureVectorDataSetInformation> registrationDetails) + { + @SuppressWarnings("unchecked") + DataSet<FeatureVectorDataSetInformation> dataSet = + (DataSet<FeatureVectorDataSetInformation>) super + .createNewDataSet(registrationDetails); + + FeatureVectorDataSet featureDataset = + new FeatureVectorDataSet(dataSet, getGlobalState().getOpenBisService()); + + // create container + FeatureVectorContainerDataSet containerDataset = + createFeatureVectorContainerDataSet(featureDataset); + + registrationDetails.getDataSetInformation().setContainerDatasetPermId( + containerDataset.getDataSetCode()); + + return containerDataset; + } + + private DataSetRegistrationDetails<FeatureVectorDataSetInformation> createFeatureVectorDataSetRegistrationDetails( + SimpleFeatureVectorDataConfig featureDataSetConfig, File featureVectorFileOrNull) { List<FeatureDefinition> featureDefinitions; Properties properties = featureDataSetConfig.getProperties(); @@ -148,21 +178,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr } DataSetRegistrationDetails<FeatureVectorDataSetInformation> registrationDetails = factory.createFeatureVectorRegistrationDetails(featureDefinitions); - @SuppressWarnings("unchecked") - DataSet<FeatureVectorDataSetInformation> dataSet = - (DataSet<FeatureVectorDataSetInformation>) createNewDataSet(registrationDetails); - - FeatureVectorDataSet featureDataset = - new FeatureVectorDataSet(dataSet, getGlobalState().getOpenBisService()); - - // create container - FeatureVectorContainerDataSet containerDataset = - createFeatureVectorContainerDataSet(featureDataset); - - registrationDetails.getDataSetInformation().setContainerDatasetPermId( - containerDataset.getDataSetCode()); - - return containerDataset; + return registrationDetails; } /** @@ -444,6 +460,11 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr DataSetRegistrationDetails<ImageDataSetInformation> imageRegistrationDetails = (DataSetRegistrationDetails<ImageDataSetInformation>) registrationDetails; return createNewImageDataSet(imageRegistrationDetails); + } else if (registrationDetails.getDataSetInformation() instanceof FeatureVectorDataSetInformation) + { + DataSetRegistrationDetails<FeatureVectorDataSetInformation> featureRegistrationDetails = + (DataSetRegistrationDetails<FeatureVectorDataSetInformation>) registrationDetails; + return createFeatureVectorDataSet(featureRegistrationDetails); } else { return super.createNewDataSet(registrationDetails); diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AggregatedFeatureVectorsTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AggregatedFeatureVectorsTest.java index f5962ed2f97ddf60e6f69ca398be19b7e0ce8173..9eb391cf28ae3d81f1d130f7bdf217bb230ba354 100644 --- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AggregatedFeatureVectorsTest.java +++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/screening/systemtests/AggregatedFeatureVectorsTest.java @@ -247,12 +247,14 @@ public class AggregatedFeatureVectorsTest extends AbstractScreeningSystemTestCas { Properties properties = new Properties(); properties.setProperty(AnalysisSettings.KEY, - ScreeningConstants.DEFAULT_ANALYSIS_WELL_DATASET_TYPE + ":" + getClass().getSimpleName() + "-viewer"); + ScreeningConstants.DEFAULT_ANALYSIS_WELL_CONTAINER_DATASET_TYPE + ":" + + getClass().getSimpleName() + "-viewer"); analysisSettingSetter.setAnalysisSettings(new AnalysisSettings(properties)); List<DataSetType> dataSetTypes = commonServer.listDataSetTypes(sessionToken); for (DataSetType dataSetType : dataSetTypes) { - if (dataSetType.getCode().equals(ScreeningConstants.DEFAULT_ANALYSIS_WELL_DATASET_TYPE)) + if (dataSetType.getCode().equals( + ScreeningConstants.DEFAULT_ANALYSIS_WELL_CONTAINER_DATASET_TYPE)) { dataSetType.setMainDataSetPattern(".*csv"); commonServer.updateDataSetType(sessionToken, dataSetType);