public void SetDescriptorFile(
string fileName,
string characterSet
)
- (BOOL)setDescriptorFile:(NSString *)fileName characterSet:(NSString *)characterSet error:(NSError **)error;
public:
void SetDescriptorFile(
String^ fileName,
String^ characterSet
)
fileName
The name of the file-set descriptor file.
characterSet
The name of the character set used in the descriptor file. For information on the possible character set names, refer to "Specific Character Set of File-set Descriptor File" (0004, 1142) element in the DICOM Standard.
This method sets the values of the File-set Descriptor File ID (0004,1141) and the Specific Character Set of File-set Descriptor File (0004,1142) elements. If the parameter characterSet is set to a null reference (Nothing in VB), the latter element will be deleted (if it exists). If the parameter fileName is set to a null reference, both elements will be deleted. If the name of a descriptor file is to be specified, then before using this method, a destination folder must have been specified, either at construction time or later, using the method Reset. Otherwise, the method will fail.
The descriptor filename must refer to an existing file that resides in the destination folder or in a subfolder of the destination folder. Otherwise, the method will fail. Please notice that the filename passed to the method must specify the absolute path of the file, not the relative one.
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 application
DicomEngine.Startup();
using (MyDicomDir dicomDir = new MyDicomDir(null, null))
{
bool autoSearch = true;
// Set the destination folder
dicomDir.Reset(Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1"));
// Set the File-set Identifier
dicomDir.SetFileSetId("SOME ID");
// Set some options
DicomDirOptions options = dicomDir.Options;
dicomDir.ResetOptions();
options.IncludeSubfolders = true;
options.InsertIconImageSequence = false;
options.RejectInvalidFileId = true;
dicomDir.Options = options;
// Set the File-set descriptor file
string path = Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1\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 Directory
using (DicomDataSet ds = new DicomDataSet())
{
ds.Load(Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1\Image1"), DicomDataSetLoadFlags.None);
dicomDir.InsertDataSet(ds, Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1\IMAGE1"));
}
// Add some DICOM files to the Directory
dicomDir.InsertFile(Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1\IMAGE2"));
dicomDir.InsertFile(Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1\IMAGE3"));
dicomDir.InsertFile(Path.Combine(LEAD_VARS.ImagesDir, @"TEMP\DCMTEST\PATIENT1\IMAGE4"));
}
// Test the DataSet
DicomElement first = dicomDir.DataSet.FindFirstElement(null, DicomTag.PatientID, false);
Console.WriteLine(first.Length.ToString());
// Save the DICOMDIR File
dicomDir.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:\LEADTOOLS22\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