]> Creatis software - clitk.git/commitdiff
Add preserve studyUID in clitkImage2Dicom
authortbaudier <thomas.baudier@creatis.insa-lyon.fr>
Tue, 12 Mar 2019 16:22:55 +0000 (17:22 +0100)
committertbaudier <thomas.baudier@creatis.insa-lyon.fr>
Tue, 12 Mar 2019 16:22:55 +0000 (17:22 +0100)
Before the script automatically change the serie UID but it's preferable to not change it
Adding the flag to change it

tools/clitkImage2Dicom.ggo
tools/clitkImage2DicomGenericFilter.txx

index 47ee878a8b0f5599290ee4e6dfc699ebcc2306e0..3c3022ae0c62634b7e9e0acf38bce8e33604b3cc 100644 (file)
@@ -10,4 +10,5 @@ option "input"      i "Input image filename"    string  no
 option "inputDcm"   d "Input dicom filename"    string  no
 option "outputDcm"  o "Output dicom folder"     string  no
 option "nameDicom"  n "Output dicom filename"   string  no
+option "newUID"     u "Write output with new UID" flag  off
 
index da30589e125085dbc921179967144a794620d0fd..37fa8a55a3cfc45052692396cb6300fcc22281af 100644 (file)
@@ -216,14 +216,22 @@ Image2DicomGenericFilter<args_info_type>::UpdateWithDimAndPixelType()
   // to keep the same study UID. But we need new series and frame of
   // reference UID's.
 #if ITK_VERSION_MAJOR >= 4
-  gdcm::UIDGenerator suid;
-  std::string seriesUID = suid.Generate();
   gdcm::UIDGenerator fuid;
   std::string frameOfReferenceUID = fuid.Generate();
 #else
-  std::string seriesUID = gdcm::Util::CreateUniqueUID( gdcmIO->GetUIDPrefix());
   std::string frameOfReferenceUID = gdcm::Util::CreateUniqueUID( gdcmIO->GetUIDPrefix());
 #endif
+  std::string seriesUID;
+  if (m_ArgsInfo.newUID_flag) {
+#if ITK_VERSION_MAJOR >= 4
+    gdcm::UIDGenerator suid;
+    seriesUID = suid.Generate();
+#else
+    seriesUID = gdcm::Util::CreateUniqueUID( gdcmIO->GetUIDPrefix());
+#endif
+  } else {
+    itk::ExposeMetaData<std::string>(*inputDict, "0020|000e", seriesUID);
+  }
   std::string studyUID;
   std::string sopClassUID;
   itk::ExposeMetaData<std::string>(*inputDict, "0020|000d", studyUID);