private void OnOpenDICOMDatasetResult(RuntimeFileBrowser.DialogResult result) { if (!result.cancelled) { // We'll only allow one dataset at a time in the runtime GUI (for simplicity) DespawnAllDatasets(); bool recursive = true; // Read all files IEnumerable <string> fileCandidates = Directory.EnumerateFiles(result.path, "*.*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly) .Where(p => p.EndsWith(".dcm", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicom", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicm", StringComparison.InvariantCultureIgnoreCase)); // Import the dataset DICOMImporter importer = new DICOMImporter(fileCandidates, Path.GetFileName(result.path)); List <DICOMImporter.DICOMSeries> seriesList = importer.LoadDICOMSeries(); float numVolumesCreated = 0; foreach (DICOMImporter.DICOMSeries series in seriesList) { VolumeDataset dataset = importer.ImportDICOMSeries(series); // Spawn the object if (dataset != null) { VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); obj.transform.position = new Vector3(numVolumesCreated, 0, 0); numVolumesCreated++; } } } }
public static void ImportDataset(string filePath) { DatasetType datasetType = DatasetImporterUtility.GetDatasetType(filePath); switch (datasetType) { case DatasetType.Raw: { RAWDatasetImporterEditorWindow wnd = (RAWDatasetImporterEditorWindow)EditorWindow.GetWindow(typeof(RAWDatasetImporterEditorWindow)); if (wnd != null) { wnd.Close(); } wnd = new RAWDatasetImporterEditorWindow(filePath); wnd.Show(); break; } case DatasetType.DICOM: { DatasetImporterBase importer = new DICOMImporter(new FileInfo(filePath).Directory.FullName, false); VolumeDataset dataset = importer.Import(); if (dataset != null) { VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); } break; } } }
static void ShowDICOMImporter() { string dir = EditorUtility.OpenFolderPanel("Select a folder to load", "", ""); if (Directory.Exists(dir)) { bool recursive = true; // Read all files IEnumerable <string> fileCandidates = Directory.EnumerateFiles(dir, "*.*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly) .Where(p => p.EndsWith(".dcm", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicom", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicm", StringComparison.InvariantCultureIgnoreCase)); if (!fileCandidates.Any()) { #if UNITY_EDITOR if (UnityEditor.EditorUtility.DisplayDialog("Could not find any DICOM files", $"Failed to find any files with DICOM file extension.{Environment.NewLine}Do you want to include files without DICOM file extension?", "Yes", "No")) { fileCandidates = Directory.EnumerateFiles(dir, "*.*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); } #endif } if (fileCandidates.Any()) { DICOMImporter importer = new DICOMImporter(fileCandidates, Path.GetFileName(dir)); List <DICOMImporter.DICOMSeries> seriesList = importer.LoadDICOMSeries(); float numVolumesCreated = 0; foreach (DICOMImporter.DICOMSeries series in seriesList) { VolumeDataset dataset = importer.ImportDICOMSeries(series); if (dataset != null) { if (EditorPrefs.GetBool("DownscaleDatasetPrompt")) { if (EditorUtility.DisplayDialog("Optional DownScaling", $"Do you want to downscale the dataset? The dataset's dimension is: {dataset.dimX} x {dataset.dimY} x {dataset.dimZ}", "Yes", "No")) { dataset.DownScaleData(); } } VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); obj.transform.position = new Vector3(numVolumesCreated, 0, 0); numVolumesCreated++; } } } else { Debug.LogError("Could not find any DICOM files to import."); } } else { Debug.LogError("Directory doesn't exist: " + dir); } }
private void OnOpenDICOMDatasetResult(RuntimeFileBrowser.DialogResult result) { if (!result.cancelled) { // We'll only allow one dataset at a time in the runtime GUI (for simplicity) DespawnAllDatasets(); // Import the dataset DICOMImporter importer = new DICOMImporter(result.path, true); VolumeDataset dataset = importer.Import(); // Spawn the object if (dataset != null) { VolumeObjectFactory.CreateObject(dataset); } } }
static void ShowDICOMImporter() { string dir = EditorUtility.OpenFolderPanel("Select a folder to load", "", ""); if (Directory.Exists(dir)) { DICOMImporter importer = new DICOMImporter(dir, true); VolumeDataset dataset = importer.Import(); if (dataset != null) { VolumeObjectFactory.CreateObject(dataset); } } else { Debug.LogError("Directory doesn't exist: " + dir); } }
static void ShowDICOMImporter() { string dir = EditorUtility.OpenFolderPanel("Select a folder to load", "", ""); if (Directory.Exists(dir)) { bool recursive = true; // Read all files IEnumerable <string> fileCandidates = Directory.EnumerateFiles(dir, "*.*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly) .Where(p => p.EndsWith(".dcm", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicom", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicm", StringComparison.InvariantCultureIgnoreCase)); if (!fileCandidates.Any()) { #if UNITY_EDITOR if (UnityEditor.EditorUtility.DisplayDialog("Could not find any DICOM files", $"Failed to find any files with DICOM file extension.{Environment.NewLine}Do you want to include files without DICOM file extension?", "Yes", "No")) { fileCandidates = Directory.EnumerateFiles(dir, "*.*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); } #endif } if (fileCandidates.Any()) { DICOMImporter importer = new DICOMImporter(fileCandidates, Path.GetFileName(dir)); VolumeDataset dataset = importer.Import(); if (dataset != null) { VolumeObjectFactory.CreateObject(dataset); } } else { Debug.LogError("Could not find any DICOM files to import."); } } else { Debug.LogError("Directory doesn't exist: " + dir); } }
public static void ImportDataset(string filePath) { DatasetType datasetType = DatasetImporterUtility.GetDatasetType(filePath); switch (datasetType) { case DatasetType.Raw: { RAWDatasetImporterEditorWindow wnd = (RAWDatasetImporterEditorWindow)EditorWindow.GetWindow(typeof(RAWDatasetImporterEditorWindow)); if (wnd != null) { wnd.Close(); } wnd = new RAWDatasetImporterEditorWindow(filePath); wnd.Show(); break; } case DatasetType.DICOM: { string directoryPath = new FileInfo(filePath).Directory.FullName; // Find all DICOM files in directory IEnumerable <string> fileCandidates = Directory.EnumerateFiles(directoryPath, "*.*", SearchOption.TopDirectoryOnly) .Where(p => p.EndsWith(".dcm", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicom", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicm", StringComparison.InvariantCultureIgnoreCase)); DatasetImporterBase importer = new DICOMImporter(fileCandidates, Path.GetFileName(directoryPath)); VolumeDataset dataset = importer.Import(); if (dataset != null) { VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); } break; } } }
private void OnOpenDICOMDatasetResult(RuntimeFileBrowser.DialogResult result) { if (!result.cancelled) { // We'll only allow one dataset at a time in the runtime GUI (for simplicity) DespawnAllDatasets(); bool recursive = true; // Read all files IEnumerable <string> fileCandidates = Directory.EnumerateFiles(result.path, "*.*", recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly) .Where(p => p.EndsWith(".dcm", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicom", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicm", StringComparison.InvariantCultureIgnoreCase)); // Import the dataset DICOMImporter importer = new DICOMImporter(fileCandidates, Path.GetFileName(result.path)); VolumeDataset dataset = importer.Import(); // Spawn the object if (dataset != null) { VolumeObjectFactory.CreateObject(dataset); } } }
private void ImportDataset() { DatasetImporterBase importer = null; switch (datasetType) { case DatasetType.Raw: { importer = new RawDatasetImporter(fileToImport, dimX, dimY, dimZ, dataFormat, bytesToSkip); break; } case DatasetType.DICOM: { importer = new DICOMImporter(new FileInfo(fileToImport).Directory.FullName, false); break; } } VolumeDataset dataset = null; if (importer != null) { dataset = importer.Import(); } if (dataset != null) { VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); } else { Debug.LogError("Failed to import datset"); } this.Close(); }
public static void ImportDataset(string filePath) { DatasetType datasetType = DatasetImporterUtility.GetDatasetType(filePath); switch (datasetType) { case DatasetType.Raw: { RAWDatasetImporterEditorWindow wnd = (RAWDatasetImporterEditorWindow)EditorWindow.GetWindow(typeof(RAWDatasetImporterEditorWindow)); if (wnd != null) { wnd.Close(); } wnd = new RAWDatasetImporterEditorWindow(filePath); wnd.Show(); break; } case DatasetType.DICOM: { string directoryPath = new FileInfo(filePath).Directory.FullName; // Find all DICOM files in directory IEnumerable <string> fileCandidates = Directory.EnumerateFiles(directoryPath, "*.*", SearchOption.TopDirectoryOnly) .Where(p => p.EndsWith(".dcm", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicom", StringComparison.InvariantCultureIgnoreCase) || p.EndsWith(".dicm", StringComparison.InvariantCultureIgnoreCase)); DICOMImporter importer = new DICOMImporter(fileCandidates, Path.GetFileName(directoryPath)); List <DICOMImporter.DICOMSeries> seriesList = importer.LoadDICOMSeries(); foreach (DICOMImporter.DICOMSeries series in seriesList) { // Only import the series that contains the selected file if (series.dicomFiles.Any(f => Path.GetFileName(f.filePath) == Path.GetFileName(filePath))) { VolumeDataset dataset = importer.ImportDICOMSeries(series); if (dataset != null) { VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); } } } break; } case DatasetType.PARCHG: { ParDatasetImporter importer = new ParDatasetImporter(filePath); VolumeDataset dataset = importer.Import(); if (dataset != null) { VolumeRenderedObject obj = VolumeObjectFactory.CreateObject(dataset); } else { Debug.LogError("Failed to import datset"); } break; } } }