namesGenerator->SetInputDirectory( m_ArgsInfo.inputDir_arg );
namesGenerator->SetOutputDirectory( m_ArgsInfo.outputDir_arg );
typename ReaderType::FileNamesContainer filenames_in = namesGenerator->GetInputFileNames();
- typename ReaderType::FileNamesContainer filenames_out;
+ typename ReaderType::FileNamesContainer filenames_out = namesGenerator->GetOutputFileNames();
// Output the dicom files
unsigned int numberOfFilenames = filenames_in.size();
// Read the series
typename ReaderType::Pointer reader = ReaderType::New();
+ if (m_ArgsInfo.preserve_flag) {
+#if GDCM_MAJOR_VERSION >= 2
+ gdcmIO->LoadPrivateTagsOn();
+ gdcmIO->KeepOriginalUIDOn();
+#endif
+ }
reader->SetImageIO( gdcmIO );
reader->SetFileNames( filenames_in );
try {
bool useInputFileUID = true;
if (m_ArgsInfo.newSeriesUID_flag || m_ArgsInfo.newStudyUID_flag || seriesUIDGiven || studyUIDGiven) {
useInputFileUID = false;
+ }
+ else {
#if GDCM_MAJOR_VERSION < 2
gdcmIO->SetKeepOriginalUID(true);
#endif
- }
- else {
namesGenerator->SetOutputDirectory( m_ArgsInfo.outputDir_arg );
- filenames_out = namesGenerator->GetOutputFileNames();
}
filenames_out.resize(numberOfFilenames);
// file UIDs are recreated for new studies or series
if (!useInputFileUID)
{
+ if (m_ArgsInfo.verbose_flag)
+ std::cout << "Recreating file UIDs" << std::endl;
+
std::string fileUID;
#if GDCM_MAJOR_VERSION >= 2
gdcm::UIDGenerator fid;
// Write
try {
+ if (m_ArgsInfo.verbose_flag)
+ std::cout << seriesWriter << std::endl;
seriesWriter->Update();
} catch( itk::ExceptionObject & excp ) {
std::cerr << "Error: Exception thrown while writing the series!!" << std::endl;