public struct DicomDirOptions public value class DicomDirOptions : public System.ValueType using Leadtools;using Leadtools.Dicom;public class MyDicomDir : DicomDir{public MyDicomDir(string destinationFolder, string path) : base(destinationFolder, path) { }public override DicomDirInsertFileCommand OnInsertFile(string fileName, DicomDataSet ds, DicomDirInsertFileStatus status, DicomExceptionCode code){if (status == DicomDirInsertFileStatus.PreAdd){string msg = string.Format("About to add the file '{0}'{1}{1}Proceed?", fileName, Environment.NewLine);Console.WriteLine($"{msg}");return DicomDirInsertFileCommand.Continue;}else if (status == DicomDirInsertFileStatus.Success){string msg = string.Format("The file '{0}' has been added successfully.", fileName);Console.WriteLine(msg);}return DicomDirInsertFileCommand.Continue;}};public void CreateDicomDirectory(){//Make sure to initialize the DICOM engine, this needs to be done only once//In the whole applicationDicomEngine.Startup();using (MyDicomDir dicomDir = new MyDicomDir(null, null)){bool autoSearch = true;// Set the destination folderdicomDir.Reset(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "HeadCBCT"));// Set the File-set IdentifierdicomDir.SetFileSetId("SOME_ID");// Set some optionsDicomDirOptions options = dicomDir.Options;dicomDir.ResetOptions();options.IncludeSubfolders = true;options.InsertIconImageSequence = false;options.RejectInvalidFileId = true;dicomDir.Options = options;// Set the File-set descriptor filestring path = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "HeadCBCT", "README");dicomDir.SetDescriptorFile(path, null);if (autoSearch){try{dicomDir.InsertFile(null);}catch (Exception ex){Console.WriteLine($"{ex.GetType().ToString()} {ex.Message}");}}else{// Load a Data Set and add it to the Directoryusing (DicomDataSet ds = new DicomDataSet()){ds.Load(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "HeadCBCT", "CT", "CT_001"), DicomDataSetLoadFlags.None);dicomDir.InsertDataSet(ds, Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "HeadCBCT", "CT", "CT_001"));}// Add some DICOM files to the DirectorydicomDir.InsertFile(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "HeadCBCT", "CT", "CT_002"));dicomDir.InsertFile(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "HeadCBCT", "CT", "CT_003"));}// Test the DataSetDicomElement first = dicomDir.DataSet.FindFirstElement(null, DicomTag.PatientID, false);Console.WriteLine(first.Length.ToString());// Save the DICOMDIR FiledicomDir.Save();//We can now call something like this to call the DICOMDIR back//dicomDir.Load(LeadtoolsExamples.Common.ImagesPath.Path + @"TEMP\DCMTEST\PATIENT1\DICOMDIR",DicomDataSetLoadFlags.LoadAndClose);}DicomEngine.Shutdown();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
