Skip to content
Snippets Groups Projects
Commit 2f33f1b9 authored by felmer's avatar felmer
Browse files

SSDM-1774: Performance improvements when calculating bounding box.

SVN: 34061
parent 0cdc8dc7
No related branches found
No related tags found
No related merge requests found
...@@ -26,9 +26,11 @@ import java.io.FileWriter; ...@@ -26,9 +26,11 @@ import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import java.util.Set;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
...@@ -530,6 +532,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr ...@@ -530,6 +532,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr
imageDataSetStructure.getImageStorageConfiguraton().tryGetImageLibrary(); imageDataSetStructure.getImageStorageConfiguraton().tryGetImageLibrary();
List<ImageFileInfo> images = imageDataSetStructure.getImages(); List<ImageFileInfo> images = imageDataSetStructure.getImages();
Set<String> usedFiles = new HashSet<String>();
if (imageDataSetInformation.isGenerateOverviewImagesFromRegisteredImages()) if (imageDataSetInformation.isGenerateOverviewImagesFromRegisteredImages())
{ {
IHierarchicalContent content = IHierarchicalContent content =
...@@ -540,7 +543,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr ...@@ -540,7 +543,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr
for (ImageFileInfo imageFileInfo : images) for (ImageFileInfo imageFileInfo : images)
{ {
setBoundingBox(imageDataSetInformation, setBoundingBox(imageDataSetInformation,
content.getNode(imageFileInfo.getImageRelativePath()), imageLibrary); content.getNode(imageFileInfo.getImageRelativePath()), imageLibrary, usedFiles);
} }
} finally } finally
{ {
...@@ -555,14 +558,20 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr ...@@ -555,14 +558,20 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr
{ {
File file = new File(incomingDirectory, imageFileInfo.getImageRelativePath()); File file = new File(incomingDirectory, imageFileInfo.getImageRelativePath());
setBoundingBox(imageDataSetInformation, new FileBasedContentNode(file), setBoundingBox(imageDataSetInformation, new FileBasedContentNode(file),
imageLibrary); imageLibrary, usedFiles);
} }
} }
} }
private void setBoundingBox(ImageDataSetInformation imageDataSetInformation, private void setBoundingBox(ImageDataSetInformation imageDataSetInformation,
IHierarchicalContentNode content, ImageLibraryInfo imageLibrary) IHierarchicalContentNode content, ImageLibraryInfo imageLibrary, Set<String> usedFiles)
{ {
String relativePath = content.getRelativePath();
if (usedFiles.contains(relativePath))
{
return;
}
usedFiles.add(relativePath);
try try
{ {
Size size = Utils.loadUnchangedImageSize(content, null, imageLibrary); Size size = Utils.loadUnchangedImageSize(content, null, imageLibrary);
...@@ -577,7 +586,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr ...@@ -577,7 +586,7 @@ public class ImagingDataSetRegistrationTransaction extends DataSetRegistrationTr
} }
} catch (Exception ex) } catch (Exception ex)
{ {
throw new UserFailureException("Error ocured when calculating bounding box of " + content.getRelativePath(), ex); throw new UserFailureException("Error ocured when calculating bounding box of " + relativePath, ex);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment