From 4556e821fec1fe0c2b2283152e7375b7d2f16c3e Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 21 Jun 2010 10:49:07 +0000 Subject: [PATCH] OBP-22 Column for biological experiment added to the view and the API. Minor version of API incremented. SVN: 16639 --- .../client/api/v1/RawDataApiTest.java | 3 ++- .../client/web/public/phosphonetx-dictionary.js | 1 + .../web/server/RawDataSampleProvider.java | 11 +++++++++++ .../server/api/v1/RawDataService.java | 8 +++++++- .../shared/api/v1/dto/MsInjectionDataInfo.java | 13 +++++++++++++ .../web/server/RawDataSampleProviderTest.java | 17 +++++++++++------ 6 files changed, 45 insertions(+), 8 deletions(-) diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/api/v1/RawDataApiTest.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/api/v1/RawDataApiTest.java index 9434db53ec9..8ac8fadc944 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/api/v1/RawDataApiTest.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/api/v1/RawDataApiTest.java @@ -52,7 +52,8 @@ public class RawDataApiTest if (latestDataSets.isEmpty() == false) { System.out.println(" " + info.getMsInjectionSampleCode() + " -> " - + info.getBiologicalSampleIdentifier() + ": latest data sets: " + + info.getBiologicalSampleIdentifier() + " -> " + + info.getBiologicalExperimentIdentifier() + ": latest data sets: " + latestDataSets); } } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/public/phosphonetx-dictionary.js b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/public/phosphonetx-dictionary.js index 0c634318f3b..16a371fbf88 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/public/phosphonetx-dictionary.js +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/public/phosphonetx-dictionary.js @@ -45,6 +45,7 @@ var phosphonetx = { openbis_raw_data_sample_browser_CODE: "MS INJECTION Sample", openbis_raw_data_sample_browser_REGISTRATION_DATE: "Registration Date", openbis_raw_data_sample_browser_PARENT: "Biological Sample", + openbis_raw_data_sample_browser_EXPERIMENT: "Experiment", copy_data_sets_button_label: "Process Data Sets", copy_data_sets_title: "Process Data Sets", copy_data_sets_message: "Please, enter the data set type of the data sets of the samples {1} to be processed by '{0}'.", diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java index f8a58957e7f..f7213cca791 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProvider.java @@ -25,6 +25,7 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper.Column; import ch.systemsx.cisd.openbis.generic.client.web.server.GenericColumnsHelper.PropertyColumns; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IOriginalDataProvider; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; @@ -39,6 +40,9 @@ import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample; class RawDataSampleProvider implements IOriginalDataProvider<GenericTableRow> { + @Private + static final String EXPERIMENT = "EXPERIMENT"; + @Private static final String PARENT = "PARENT"; @@ -97,10 +101,12 @@ class RawDataSampleProvider implements IOriginalDataProvider<GenericTableRow> Column dateColumn = new Column(GenericTableColumnHeader.untitledStringHeader(1, REGISTRATION_DATE)); Column parentColumn = new Column(GenericTableColumnHeader.untitledStringHeader(2, PARENT)); + Column experimentColumn = new Column(GenericTableColumnHeader.untitledLinkableStringHeader(3, EXPERIMENT)); List<Column> columns = new ArrayList<Column>(); columns.add(codeColumn); columns.add(dateColumn); columns.add(parentColumn); + columns.add(experimentColumn); int fixedColumns = columns.size(); PropertyColumns samplePropertyColumns = new PropertyColumns(); PropertyColumns parentPropertyColumns = new PropertyColumns(); @@ -111,6 +117,11 @@ class RawDataSampleProvider implements IOriginalDataProvider<GenericTableRow> dateColumn.addDate(i, sample.getRegistrationDate()); Sample parent = sample.getGeneratedFrom(); parentColumn.addStringWithID(i, parent.getIdentifier(), parent.getId()); + Experiment experiment = parent.getExperiment(); + if (experiment != null) + { + experimentColumn.addStringWithID(i, experiment.getIdentifier(), experiment.getId()); + } addPropertyTypes(samplePropertyColumns, i, sample); addPropertyTypes(parentPropertyColumns, i, sample.getGeneratedFrom()); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/api/v1/RawDataService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/api/v1/RawDataService.java index 43f83366751..4600bbe58f4 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/api/v1/RawDataService.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/api/v1/RawDataService.java @@ -36,6 +36,7 @@ import ch.systemsx.cisd.openbis.generic.server.AbstractServer; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; @@ -117,6 +118,11 @@ public class RawDataService extends AbstractServer<IRawDataService> implements I Sample bioSample = msiSample.getGeneratedFrom(); info.setBiologicalSampleID(bioSample.getId()); info.setBiologicalSampleIdentifier(bioSample.getIdentifier()); + Experiment experiment = bioSample.getExperiment(); + if (experiment != null) + { + info.setBiologicalExperimentIdentifier(experiment.getIdentifier()); + } info.setBiologicalSampleProperties(translate(bioSample.getProperties())); Map<String, Date> latestDataSetRegistrationDates = new HashMap<String, Date>(); for (Entry<String, ExternalData> entry : sample.getLatestDataSets().entrySet()) @@ -206,7 +212,7 @@ public class RawDataService extends AbstractServer<IRawDataService> implements I public int getMinorVersion() { - return 0; + return 1; } } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/api/v1/dto/MsInjectionDataInfo.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/api/v1/dto/MsInjectionDataInfo.java index f972537b185..8bf75e5b448 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/api/v1/dto/MsInjectionDataInfo.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/shared/api/v1/dto/MsInjectionDataInfo.java @@ -25,6 +25,7 @@ import java.util.Map; * for * <ul><li>MS_INJECTION sample: ID, properties, code and registration date * <li>Biological sample: identifier and properties + * <li>Identifier of biological experiment (i.e. experiment of biological sample) if present * <li>Registration dates of the most recently registered data sets for each data set type * </ul> * @@ -46,6 +47,8 @@ public class MsInjectionDataInfo implements Serializable private String biologicalSampleIdentifier; + private String biologicalExperimentIdentifier; + private Map<PropertyKey, Serializable> biologicalSampleProperties; private Map<String, Date> latestDataSetRegistrationDates; @@ -111,6 +114,16 @@ public class MsInjectionDataInfo implements Serializable this.biologicalSampleIdentifier = biologicalSampleIdentifier; } + public final String getBiologicalExperimentIdentifier() + { + return biologicalExperimentIdentifier; + } + + public final void setBiologicalExperimentIdentifier(String biologicalExperimentIdentifier) + { + this.biologicalExperimentIdentifier = biologicalExperimentIdentifier; + } + public Map<PropertyKey, Serializable> getBiologicalSampleProperties() { return biologicalSampleProperties; diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java index 816d9e7278c..3607d05d025 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/RawDataSampleProviderTest.java @@ -32,6 +32,7 @@ import ch.rinn.restrictions.Friend; import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericValueEntityProperty; @@ -102,15 +103,19 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase { Sample ms1 = sample("MS1", sample("ABC", "beta", "alpha"), "one"); Sample ms2 = sample("MS2", sample("DE", "gamma", "beta"), "one"); - Sample ms3 = sample("MS3", sample("FG", "alpha", "gamma"), "2"); + Sample parent = sample("FG", "alpha", "gamma"); + Experiment experiment = new Experiment(); + experiment.setIdentifier("/G/P/E1"); + parent.setExperiment(experiment); + Sample ms3 = sample("MS3", parent, "2"); prepareListRawDataSamples(ms1, ms2, ms3); List<GenericTableRow> data = provider.getOriginalData(); assertEquals(3, data.size()); - assertRow("MS1, Mon Mar 30 17:18:20 CET 1970, /G/ABC, null, 3.0, 6, 4, null", data.get(0)); - assertRow("MS2, Mon Mar 30 17:20:00 CET 1970, /G/DE, null, 3.0, null, 5, 5", data.get(1)); - assertRow("MS3, Mon Mar 30 17:21:40 CET 1970, /G/FG, 1, null, 5, null, 6", data.get(2)); + assertRow("MS1, Mon Mar 30 17:18:20 CET 1970, /G/ABC, null, null, 3.0, 6, 4, null", data.get(0)); + assertRow("MS2, Mon Mar 30 17:20:00 CET 1970, /G/DE, null, null, 3.0, null, 5, 5", data.get(1)); + assertRow("MS3, Mon Mar 30 17:21:40 CET 1970, /G/FG, /G/P/E1, 1, null, 5, null, 6", data.get(2)); context.assertIsSatisfied(); } @@ -135,9 +140,9 @@ public class RawDataSampleProviderTest extends AbstractServerTestCase assertFixedColumns(headers); for (int i = 0; i < expectedTitles.length; i++) { - assertPropertyHeader(expectedTitles[i], i + 3, headers); + assertPropertyHeader(expectedTitles[i], i + 4, headers); } - assertEquals(expectedTitles.length + 3, headers.size()); + assertEquals(expectedTitles.length + 4, headers.size()); } private void assertFixedColumns(List<GenericTableColumnHeader> headers) -- GitLab