X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvMeshReader.cxx;h=d03b0ac29c69013051926ae048ddebaa51deb1ca;hb=3750a66140f2bce96943760132383b368178671d;hp=736dbcf0ba5bd9475fed3b92db4d32a17a2a6bb4;hpb=3d1a811fcee80cb36cb8938a529d69c482f4fea2;p=clitk.git diff --git a/vv/vvMeshReader.cxx b/vv/vvMeshReader.cxx index 736dbcf..d03b0ac 100644 --- a/vv/vvMeshReader.cxx +++ b/vv/vvMeshReader.cxx @@ -61,8 +61,6 @@ vtk_mode(false) //------------------------------------------------------------------------------ void vvMeshReader::Update() { - DD("vvMeshReader::Update"); - //Show a progress bar only when opening a DC-struct (ie. multiple contours) vvProgressDialog progress("Opening " + filename,(!vtk_mode) && (selected_contours.size()>1)); this->start(); @@ -107,25 +105,17 @@ std::vector > vvMeshReader::GetROINames() { assert(filename!=""); std::vector > roi_names; - DD(GDCM_MAJOR_VERSION); - DD(CLITK_USE_SYSTEM_GDCM); -#if GDCM_MAJOR_VERSION == 2 +#if CLITK_USE_SYSTEM_GDCM == 1 // Read RT-struct data - DD("before read"); - vtkSmartPointer reader = vtkGDCMPolyDataReader::New(); - reader->SetFileName(filename.c_str()); - reader->Update(); - DD("after read"); + vtkSmartPointer areader = vtkGDCMPolyDataReader::New(); + areader->SetFileName(filename.c_str()); + areader->Update(); // get info on roi names - vtkRTStructSetProperties * p = reader->GetRTStructSetProperties(); - DD(p->GetNumberOfStructureSetROIs()); - DD(p->GetStructureSetROIName(0)); - DD(p->GetStructureSetROINumber(0)); + vtkRTStructSetProperties * p = areader->GetRTStructSetProperties(); int n = p->GetNumberOfStructureSetROIs(); - DD(n); for(unsigned int i=0; iGetStructureSetROIName(i); @@ -133,20 +123,16 @@ std::vector > vvMeshReader::GetROINames() roi_names.push_back(make_pair(nb,name)); } - // ==================== +#else +#if GDCM_MAJOR_VERSION == 2 - if (false) { // duplicate code from clitk::DicomRT_StructureSet::Read gdcm::Reader * reader = new gdcm::Reader; reader->SetFileName( filename.c_str() ); reader->Read(); - DD("after gdcm read"); const gdcm::DataSet &ds = reader->GetFile().GetDataSet(); - DD("after ds"); - DD(ds.IsEmpty()); - // Check file type //Verify if the file is a RT-Structure-Set dicom file gdcm::File * mFile = &(reader->GetFile()); @@ -172,7 +158,6 @@ std::vector > vvMeshReader::GetROINames() gdcm::Attribute<0x20,0x10> studyid; studyid.SetFromDataSet( ds ); - DD(studyid.GetValue()); gdcm::Tag tssroisq(0x3006,0x0020); // 0x3006,0x0020 = [ Structure Set ROI Sequence ] @@ -182,38 +167,29 @@ std::vector > vvMeshReader::GetROINames() } const gdcm::DataElement &ssroisq = ds.GetDataElement( tssroisq ); - DD("after ssroisq"); gdcm::SmartPointer roi_seq = ssroisq.GetValueAsSQ(); assert(roi_seq); // FIXME error message - DD(roi_seq->GetNumberOfItems()); - for(unsigned int ridx = 0; ridx < roi_seq->GetNumberOfItems(); ++ridx) { - DD(ridx); - gdcm::Item & item = roi_seq->GetItem( ridx + 1); // Item starts at 1 + gdcm::Item & item = roi_seq->GetItem( ridx + 1); // Item starts at 1 const gdcm::Item & sitem = roi_seq->GetItem(ridx+1); // Item start at #1 const gdcm::DataSet& snestedds = sitem.GetNestedDataSet(); const gdcm::DataSet& nestedds = item.GetNestedDataSet(); - DD(nestedds.IsEmpty()); - if( snestedds.FindDataElement( gdcm::Tag(0x3006,0x22) ) ) { - DD("tag found"); // const gdcm::DataElement & a = nestedds.GetDataElement(gdcm::Tag(0x3006,0x26)); // DD(a.GetValue()); gdcm::Attribute<0x3006,0x26> roiname; roiname.SetFromDataSet( snestedds ); std::string name = roiname.GetValue(); // 0x3006,0x0026 = [ROI Name] - DD(name); gdcm::Attribute<0x3006,0x0022> roinumber; roinumber.SetFromDataSet( snestedds ); int nb = roinumber.GetValue(); // 0x3006,0x0022 = [ROI Number] - DD(nb); roi_names.push_back(make_pair(nb,name)); } @@ -221,8 +197,6 @@ std::vector > vvMeshReader::GetROINames() delete reader; - } - #else gdcm::File reader; reader.SetFileName(filename.c_str()); @@ -237,6 +211,8 @@ std::vector > vvMeshReader::GetROINames() if (i->GetEntryValue(0x3006,0x0022)!= gdcm::GDCM_UNFOUND) roi_names.push_back(make_pair(atoi(i->GetEntryValue(0x3006,0x0022).c_str()),i->GetEntryValue(0x3006,0x0026))); #endif +#endif + return roi_names; } //------------------------------------------------------------------------------ @@ -247,6 +223,13 @@ std::vector vvMeshReader::readSelectedContours() { std::vector result; #if GDCM_MAJOR_VERSION == 2 + +#if CLITK_USE_SYSTEM_GDCM == 0 + + clitkExceptionMacro("ERROR ! You need to compile vv with itk4 + system_gdcm to use this function"); + +#endif + gdcm::Reader reader; reader.SetFileName(filename.c_str()); reader.Read();