]> Creatis software - clitk.git/blobdiff - segmentation/clitkExtractLymphStationsGenericFilter.txx
New way to extract support
[clitk.git] / segmentation / clitkExtractLymphStationsGenericFilter.txx
index 9dfa850f67eb7e20683f6f38521b78ef2e5231d9..a27b4a629e41e2893b95513646ef599f5a790485 100644 (file)
@@ -63,10 +63,76 @@ void
 clitk::ExtractLymphStationsGenericFilter<ArgsInfoType>::
 SetOptionsFromArgsInfoToFilter(FilterType * f)
 {
-  f->SetVerboseOption(mArgsInfo.verbose_flag);
-  f->SetVerboseStep(mArgsInfo.verboseStep_flag);
-  f->SetWriteStep(mArgsInfo.writeStep_flag);
+  f->SetVerboseOptionFlag(mArgsInfo.verbose_flag);
+  f->SetVerboseStepFlag(mArgsInfo.verboseStep_flag);
+  f->SetWriteStepFlag(mArgsInfo.writeStep_flag);
+  f->SetVerboseMemoryFlag(mArgsInfo.verboseMemory_flag);
   f->SetAFDBFilename(mArgsInfo.afdb_arg);  
+  if (mArgsInfo.afdb_path_given) f->SetAFDBPath(mArgsInfo.afdb_path_arg);  
+  f->SetForceSupportsFlag(mArgsInfo.force_support_flag);
+  f->SetSupportLimitsFilename(mArgsInfo.support_limits_arg);
+  f->SetCheckSupportFlag(mArgsInfo.check_support_limits_flag);
+
+  // Station 8
+  //f->SetDistanceMaxToAnteriorPartOfTheSpine(mArgsInfo.S8_maxAntSpine_arg);
+  f->SetFuzzyThreshold("8", "Esophagus", mArgsInfo.S8_ft_Esophagus_arg);
+  //  f->SetInjectedThresholdForS8(mArgsInfo.tS8_injectedThreshold_arg);
+
+  // Check multiple options for radius dilatation
+  /*
+    typename FilterType::MaskImagePointType p;
+    SetMultipleOptionMacro(mArgsInfo, esophagusDilatation, 3, p);
+    default ? = set before
+    exception if fail
+   */
+  typename FilterType::MaskImagePointType p;
+  p[0] = 7; p[1] = 5; p[2] = 0; // default value
+  if (mArgsInfo.S8_esophagusDilatationForAnt_given == 3) {
+    for(uint i=0; i<3; i++)
+      p[i] = mArgsInfo.S8_esophagusDilatationForAnt_arg[i];
+  }
+  else {
+    if (mArgsInfo.S8_esophagusDilatationForAnt_given == 1) {
+      for(uint i=0; i<3; i++)
+        p[i] = mArgsInfo.S8_esophagusDilatationForAnt_arg[0];
+    }
+  }
+  f->SetEsophagusDiltationForAnt(p);
+  
+  p[0] = 5; p[1] = 10; p[2] = 1; // default value
+  if (mArgsInfo.S8_esophagusDilatationForRight_given == 3) {
+    for(uint i=0; i<3; i++)
+      p[i] = mArgsInfo.S8_esophagusDilatationForRight_arg[i];
+  }
+  else {
+    if (mArgsInfo.S8_esophagusDilatationForRight_given == 1) {
+      for(uint i=0; i<3; i++)
+        p[i] = mArgsInfo.S8_esophagusDilatationForRight_arg[0];
+    }
+  }
+  f->SetEsophagusDiltationForRight(p);  
+  
+  for(uint i=0; i<mArgsInfo.station_given; i++)
+    f->AddComputeStation(mArgsInfo.station_arg[i]);
+
+  // Station 3A
+  
+  // Station 7
+  f->SetFuzzyThreshold("7", "Bronchi", mArgsInfo.S7_ft_Bronchi_arg);
+  f->SetFuzzyThreshold("7", "LeftSuperiorPulmonaryVein", mArgsInfo.S7_ft_LeftSuperiorPulmonaryVein_arg);
+  f->SetFuzzyThreshold("7", "RightSuperiorPulmonaryVein", mArgsInfo.S7_ft_RightSuperiorPulmonaryVein_arg);
+  f->SetFuzzyThreshold("7", "RightPulmonaryArtery", mArgsInfo.S7_ft_RightPulmonaryArtery_arg);
+  f->SetFuzzyThreshold("7", "LeftPulmonaryArtery", mArgsInfo.S7_ft_LeftPulmonaryArtery_arg);
+  f->SetFuzzyThreshold("7", "SVC", mArgsInfo.S7_ft_SVC_arg);
+  f->SetS7_UseMostInferiorPartOnlyFlag(mArgsInfo.S7_UseMostInferiorPartOnly_flag);
+
+  // Station 2RL
+
+  // Station 1RL
+
+  // Set RelativePositionList filenames
+  for(uint i=0; i<mArgsInfo.relpos_given; i++) 
+    f->AddRelativePositionListFilename(mArgsInfo.relpos_arg[i]);
 }
 //--------------------------------------------------------------------