diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java index 6858c77e5a211c9d9fc01b7c46869f211bd15685..4b38e84081450ce71c8a66c34384b846048dde40 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/email/EntityTrackingEmailGenerator.java @@ -132,7 +132,6 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat if (propertyKey.contains("*")) { String spacePreffix = propertyKey.substring(0, propertyKey.lastIndexOf("*")); - System.out.println(spacePreffix); for (SpaceWithProjectsAndRoleAssignments space : spacesList) { if (space.getCode().startsWith(spacePreffix)) @@ -368,7 +367,7 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat HashMap<String, String> parentProperties = propertiesFromParentSample(dataSet, sequencingSamples, Index1, Index2); - String externalSampleName = parentProperties.get(EXTERNAL_SAMPLE_NAME_PROPERTY_CODE); + String externalSampleName = getExternalSampleNamefromDataSet(dataSet); String contactPersonName = parentProperties.get(CONTACT_PERSON_NAME_PROPERTY_CODE); String Index = null; @@ -448,6 +447,22 @@ public class EntityTrackingEmailGenerator implements IEntityTrackingEmailGenerat return null; } + private static String getExternalSampleNamefromDataSet(AbstractExternalData dataSet) + { + List<IEntityProperty> properties = dataSet.getProperties(); + + String externalSampleName = null; + for (IEntityProperty p : properties) + { + if (p.getPropertyType().getCode().equals(EXTERNAL_SAMPLE_NAME_PROPERTY_CODE)) + { + externalSampleName = p.getValue(); + return externalSampleName; + } + } + return null; + } + private static HashMap<String, String> propertiesFromParentSample(AbstractExternalData dataSet, Collection<Sample> sequencingSamples, String dsIndex1, String dsIndex2) { diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java index c97ee934c98dfdd20a0d6045502088d5d4ef41e3..54d937f0b19e4593b3cc9342bc50092489fa03c7 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java @@ -19,9 +19,9 @@ package ch.ethz.bsse.cisd.dsu.tracking.main; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; @@ -61,12 +61,6 @@ public class TrackingBO private static final String TRUE = "true"; - // private static final String CL_PARAMETER_LANES = "lanes"; - - // private static final String CL_PARAMETER_ALL = "all"; - - // private static final String CL_PARAMETER_CHANGED_LANES = "changed_lanes"; - private final ITrackingServer trackingServer; private final IEntityTrackingEmailGenerator emailGenerator; @@ -97,11 +91,12 @@ public class TrackingBO commandLineMap.get(TrackingClient.CL_PARAMETER_LANES), session); } else if (commandLineMap.containsKey(TrackingClient.CL_PARAMETER_ALL)) { - changedEntities = fetchChangedEntities(prevTrackingState, trackingServer, commandLineMap, session); + // changedEntities = fetchChangedEntities(prevTrackingState, trackingServer, commandLineMap, session); + System.out.println("This function is deactivated"); } else if (commandLineMap.containsKey(TrackingClient.CL_PARAMETER_CHANGED_LANES)) { - Set<String> changed_lanes = fetchChangedLanes(prevTrackingState, trackingServer, session); + Map<String, String> changed_lanes = fetchChangedLanes(prevTrackingState, trackingServer, session); sendEmails = false; } @@ -228,7 +223,7 @@ public class TrackingBO return gatherTrackedEntities(trackingState, trackingServer, session, dataSets, changedTrackingMap); } - private static Set<String> fetchChangedLanes(TrackingStateDTO trackingState, + private static Map<String, String> fetchChangedLanes(TrackingStateDTO trackingState, ITrackingServer trackingServer, SessionContextDTO session) { long maxDataSetId = getMaxDataSetId(trackingState); @@ -239,25 +234,32 @@ public class TrackingBO List<AbstractExternalData> dataSets = trackingServer.listDataSets(session.getSessionToken(), dataSetCriteria); - Set<String> changedLanesSet = new HashSet<String>(); + Map<String, String> changedLanesMap = new HashMap<String, String>(); // Loop over all new data sets for (AbstractExternalData d : dataSets) { Long newDataSetID = d.getId(); - String lanePermId = d.getSample().getPermId(); + Sample lane = d.getSample(); + String lanePermId = lane.getPermId(); + String laneSpace = lane.getSpace().getCode(); Long maxDatasetIdForSample = getMaxDataSetIdForSample(trackingState, lanePermId); // Check if the given lanes/samples have data sets which are newer than the last seen one (= maxDatasetIdForSample) if (newDataSetID > maxDatasetIdForSample) { SampleIdentifier currentLaneId = new SampleIdentifier(d.getSampleCode()); - changedLanesSet.add(currentLaneId.toString()); + changedLanesMap.put(currentLaneId.toString().substring(1), laneSpace); LogUtils.info("DataSetID: " + newDataSetID + " of NEW data Sets > MAX DataSet id for this sample: " + maxDatasetIdForSample); } } - LogUtils.info(changedLanesSet.toString()); - return changedLanesSet; + Set<Map.Entry<String, String>> entrySet = changedLanesMap.entrySet(); + for (Entry<String, String> entry : entrySet) + { + System.out.println(entry.getKey() + " " + entry.getValue()); + } + LogUtils.info(changedLanesMap.toString()); + return changedLanesMap; } private static TrackedEntities fetchChangedDataSets(TrackingStateDTO trackingState, @@ -295,6 +297,7 @@ public class TrackingBO { LogUtils.info("DataSetID: " + newDataSetID + " of NEW data Sets > MAX DataSet id for this sample: " + maxDatasetIdForSample); filteredDataSets.add(d); + System.out.println("Sending Email for " + newDataSetID + " which is part of " + d.getSampleCode()); addDataSetTo(changedTrackingMap, d); } } @@ -396,13 +399,13 @@ public class TrackingBO TreeMap<String, Long> newTrackingState = new TreeMap<String, Long>(); HashMap<String, ArrayList<Long>> changedTrackingMap = changedEntities.getChangedTrackingMap(); - System.out.println(changedTrackingMap.toString()); + // System.out.println(changedTrackingMap.toString()); for (Map.Entry<String, ArrayList<Long>> entry : changedTrackingMap.entrySet()) { newTrackingState.put(entry.getKey(), Collections.max(entry.getValue())); } - System.out.println(newTrackingState.entrySet().toString()); + // System.out.println(newTrackingState.entrySet().toString()); for (Map.Entry<String, Long> entry : prevState.getLastSeenDataSetIdMap().entrySet()) { diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java index bdf203c31ddc08fd6a51ab6aad4ed7be63cccb14..47d6d046be3bc15b9c4f248f35c3e1154f4d9a81 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingClient.java @@ -97,11 +97,11 @@ public class TrackingClient .withDescription("list of lanes to track") .create(CL_PARAMETER_LANES); lanes.setArgs(Option.UNLIMITED_VALUES); - Option all = new Option(CL_PARAMETER_ALL, "track all lanes, only for testing, never use in production!"); + // Option all = new Option(CL_PARAMETER_ALL, "track all lanes, only for testing, never use in production!"); Option new_lanes = new Option(CL_PARAMETER_CHANGED_LANES, "only list lanes which have new datasets"); options.addOption(lanes); - options.addOption(all); + // options.addOption(all); options.addOption(new_lanes); // automatically generate the help statement @@ -122,7 +122,9 @@ public class TrackingClient } if (line.hasOption(CL_PARAMETER_ALL)) { - commandLineMap.put(CL_PARAMETER_ALL, null); + // commandLineMap.put(CL_PARAMETER_ALL, null); + System.out.println("This option is deactivated."); + } if (line.hasOption(CL_PARAMETER_CHANGED_LANES)) {