X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRT_ROI.cxx;h=88bab72d80ad025c8e2dba52fe2a97d8cad0bb3f;hb=d91a03193e84e5a74aeeb8bda9686c48108890c6;hp=25a2f4322548a1de065c220654352490d7368219;hpb=573d80d0f7a17607d2ee883c21c940c0ba020282;p=clitk.git diff --git a/common/clitkDicomRT_ROI.cxx b/common/clitkDicomRT_ROI.cxx index 25a2f43..88bab72 100644 --- a/common/clitkDicomRT_ROI.cxx +++ b/common/clitkDicomRT_ROI.cxx @@ -36,7 +36,6 @@ clitk::DicomRT_ROI::DicomRT_ROI() mMeshIsUpToDate = false; mBackgroundValue = 0; mForegroundValue = 1; - mZDelta = 0; } //-------------------------------------------------------------------- @@ -163,6 +162,8 @@ void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::Item cons gdcm::Tag tcsq(0x3006,0x0040); if( !nestedds.FindDataElement( tcsq ) ) { + std::cerr << "Warning. Could not read contour for structure <" << mName << ">, number" << mNumber << " ? I ignore it" << std::endl; + return; } const gdcm::DataElement& csq = nestedds.GetDataElement( tcsq ); gdcm::SmartPointer sqi2 = csq.GetValueAsSQ(); @@ -171,28 +172,15 @@ void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::Item cons } unsigned int nitems = sqi2->GetNumberOfItems(); - bool contour_processed=false; - bool delta_computed=false; - double last_z=0; for(unsigned int i = 0; i < nitems; ++i) { - const gdcm::Item & j = sqi2->GetItem(i+1); // Item start at #1 - DicomRT_Contour::Pointer c = DicomRT_Contour::New(); - bool b = c->Read(j); - if (b) { - mListOfContours.push_back(c); - if (contour_processed) { - double delta=c->GetZ() - last_z; - if (delta_computed) - assert(mZDelta == delta); - else - mZDelta = delta; - } else - contour_processed=true; - last_z=c->GetZ(); + const gdcm::Item & j = sqi2->GetItem(i+1); // Item start at #1 + DicomRT_Contour::Pointer c = DicomRT_Contour::New(); + bool b = c->Read(j); + if (b) { + mListOfContours.push_back(c); + } } - } - } #else void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * item) @@ -213,25 +201,20 @@ void clitk::DicomRT_ROI::Read(std::map & rois, gdcm::SQItem * // Read contours [Contour Sequence] gdcm::SeqEntry * contours=item->GetSeqEntry(0x3006,0x0040); - bool contour_processed=false; - bool delta_computed=false; - double last_z=0; - for(gdcm::SQItem* j=contours->GetFirstSQItem(); j!=0; j=contours->GetNextSQItem()) { - DicomRT_Contour::Pointer c = DicomRT_Contour::New(); - bool b = c->Read(j); - if (b) { - mListOfContours.push_back(c); - if (contour_processed) { - double delta=c->GetZ() - last_z; - if (delta_computed) - assert(mZDelta == delta); - else - mZDelta = delta; - } else - contour_processed=true; - last_z=c->GetZ(); + if (contours) { + int i=0; + for(gdcm::SQItem* j=contours->GetFirstSQItem(); j!=0; j=contours->GetNextSQItem()) { + DicomRT_Contour::Pointer c = DicomRT_Contour::New(); + bool b = c->Read(j); + if (b) { + mListOfContours.push_back(c); + } + ++i; } } + else { + std::cerr << "Warning. Could not read contour for structure <" << mName << ">, number" << mNumber << " ? I ignore it" << std::endl; + } } #endif //-------------------------------------------------------------------- @@ -277,9 +260,9 @@ void clitk::DicomRT_ROI::ComputeMesh() //-------------------------------------------------------------------- void clitk::DicomRT_ROI::SetFromBinaryImage(vvImage * image, int n, - std::string name, - std::vector color, - std::string filename) + std::string name, + std::vector color, + std::string filename) { // ROI number [Referenced ROI Number]