]> Creatis software - clitk.git/commitdiff
now dump anatomical info (carina position) into a DB
authordsarrut <dsarrut>
Mon, 4 Oct 2010 08:03:04 +0000 (08:03 +0000)
committerdsarrut <dsarrut>
Mon, 4 Oct 2010 08:03:04 +0000 (08:03 +0000)
segmentation/clitkExtractAirwayTreeInfo.cxx
segmentation/clitkExtractAirwayTreeInfoFilter.h
segmentation/clitkExtractAirwayTreeInfoFilter.txx
segmentation/clitkExtractAirwayTreeInfoGenericFilter.txx

index e5a60c476012e9be2ac6b0d6edbc78f272ae0f4e..293dd454fb128fbcab0e728be5cc897121ddf3ad 100644 (file)
@@ -33,10 +33,11 @@ int main(int argc, char * argv[])
   FilterType::Pointer filter = FilterType::New();
 
   filter->SetArgsInfo(args_info);
-  filter->Update();
-
-  if (filter->HasError()) {
-    std::cout << filter->GetLastError() << std::endl;
+  
+  try {
+    filter->Update();
+  } catch(std::runtime_error e) {
+    std::cout << e.what() << std::endl;
   }
 
   return EXIT_SUCCESS;
index f5373114b52c829e8103f72e5bdba03082328ba7..8d1e5ee8fe44af8a9a2681e8b5481ddefb72e87f 100644 (file)
@@ -108,6 +108,7 @@ namespace clitk {
     
     // Get results
     itkGetConstMacro(FirstTracheaPoint, ImagePointType);
+    itkGetConstMacro(CarinaPoint, ImagePointType);
 
   protected:
     ExtractAirwayTreeInfoFilter();
@@ -126,6 +127,7 @@ namespace clitk {
 
     // Results
     ImagePointType m_FirstTracheaPoint;
+    ImagePointType m_CarinaPoint;
     
     virtual void GenerateOutputInformation();
     virtual void GenerateData();
index ba99b3dbe5f6459315119b3c01235826c7b1b763..8b9a557c17b359e3558d64c893ba3fbc4ff66907 100644 (file)
@@ -87,7 +87,7 @@ GenerateOutputInformation()
   // Get input pointer
   input   = dynamic_cast<const ImageType*>(itk::ProcessObject::GetInput(0));
 
-  StartNewStepOrStop("Find bronchial bifurcations");
+  StartNewStep("Find bronchial bifurcations");
   // Step 1 : extract skeleton
   // Define the thinning filter
   typedef itk::BinaryThinningImageFilter3D<ImageType, ImageType> ThinningFilterType;
@@ -108,7 +108,7 @@ GenerateOutputInformation()
     --it;
   }
   if (it.IsAtEnd()) {
-    this->SetLastError("ERROR: first point in the skeleton not found ! Abort");
+    throw clitk::ExceptionObject("ERROR: first point in the skeleton not found ! Abort");
     return;
   }
   DD(skeleton->GetLargestPossibleRegion().GetIndex());
@@ -142,7 +142,11 @@ GenerateOutputInformation()
     skeleton->TransformIndexToPhysicalPoint(listOfBifurcations[i].index, p);
     DD(p);
   }
-
+  
+  // The first bifurcation is supposed to be the carina
+  skeleton->TransformIndexToPhysicalPoint(listOfBifurcations[0].index, m_CarinaPoint);
+  DD(listOfBifurcations[0].index);
+  DD(m_CarinaPoint);
 }
 //--------------------------------------------------------------------
 
@@ -153,11 +157,6 @@ void
 clitk::ExtractAirwayTreeInfoFilter<ImageType>::
 GenerateData() 
 {
-  // Do not put some "startnewstep" here, because the object if
-  // modified and the filter's pipeline it do two times. But it is
-  // required to quit if MustStop was set before.
-  if (GetMustStop()) return;
-  
   // If everything goes well, set the output
   this->GraftOutput(skeleton); // not SetNthOutput
 }
index 47511e4749f4168aaa935048da16665b6af51aa3..4b42b19c9be30fa073e52d1922574e1b75765f7f 100644 (file)
@@ -77,19 +77,11 @@ void clitk::ExtractAirwayTreeInfoGenericFilter<ArgsInfoType>::UpdateWithInputIma
   this->SetFilterBase(filter);
     
   // Set global Options 
-  filter->SetStopOnError(this->GetStopOnError());
   filter->SetArgsInfo(mArgsInfo);
   filter->SetInput(input);
 
   // Go !
   filter->Update();
-  
-  // Check if error
-  if (filter->HasError()) {
-    SetLastError(filter->GetLastError());
-    // No output
-    return;
-  }
 
   // Write/Save results
   typename ImageType::Pointer output = filter->GetOutput();