From 2870a9d60d1c320d69ee3bff90869ea323c65a59 Mon Sep 17 00:00:00 2001 From: "eduardo.davila@creatis.insa-lyon.fr" Date: Fri, 21 Jun 2024 15:01:40 +0200 Subject: [PATCH] #3520 Add DropDuplicatePositions to bbgdcmvtk::GetXCoherentInfoGdcmReader box --- .../bbgdcmvtkGetXCoherentInfoGdcmReader.cxx | 2 + .../src/bbgdcmvtkGetXCoherentInfoGdcmReader.h | 51 ++++++++++--------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx index 25700ec..02a1466 100644 --- a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx +++ b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx @@ -173,6 +173,7 @@ void GetXCoherentInfoGdcmReader::Process() } } // for i sh = GDCM_NAME_SPACE::SerieHelper::New(); + sh->SetDropDuplicatePositions( bbGetInputDropDuplicatePositions() ); l = &lstFiles; sh->ImagePositionPatientOrdering( l ); } else{ @@ -363,6 +364,7 @@ void GetXCoherentInfoGdcmReader::bbUserSetDefaultValues() bbSetInputIn(init); bbSetInputReadRaw(true); bbSetInputRespectSerieUID(true); + bbSetInputDropDuplicatePositions(true); //reader=NULL; /// \TODO fixme JPR } diff --git a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h index da22dc0..4133ac2 100644 --- a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h +++ b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.h @@ -57,18 +57,19 @@ class bbgdcmvtk_EXPORT GetXCoherentInfoGdcmReader BBTK_BLACK_BOX_INTERFACE(GetXCoherentInfoGdcmReader,bbtk::AtomicBlackBox); - BBTK_DECLARE_INPUT(In , std::vector); - BBTK_DECLARE_INPUT(IPPSort , bool); - BBTK_DECLARE_INPUT(DicomTags , std::vector); - BBTK_DECLARE_INPUT(ReadRaw , bool); - BBTK_DECLARE_INPUT(RespectSerieUID, bool); - - BBTK_DECLARE_OUTPUT(Out , vtkImageData *); - BBTK_DECLARE_OUTPUT(OutFileNames , std::vector); - BBTK_DECLARE_OUTPUT(IPP , std::vector); - BBTK_DECLARE_OUTPUT(IOP , std::vector); - BBTK_DECLARE_OUTPUT(PixelSpacing , std::vector); - BBTK_DECLARE_OUTPUT(DicomInfo , VectorMapInfoDicom); + BBTK_DECLARE_INPUT(In , std::vector); + BBTK_DECLARE_INPUT(IPPSort , bool); + BBTK_DECLARE_INPUT(DicomTags , std::vector); + BBTK_DECLARE_INPUT(ReadRaw , bool); + BBTK_DECLARE_INPUT(RespectSerieUID , bool); + BBTK_DECLARE_INPUT(DropDuplicatePositions , bool); + + BBTK_DECLARE_OUTPUT(Out , vtkImageData *); + BBTK_DECLARE_OUTPUT(OutFileNames , std::vector); + BBTK_DECLARE_OUTPUT(IPP , std::vector); + BBTK_DECLARE_OUTPUT(IOP , std::vector); + BBTK_DECLARE_OUTPUT(PixelSpacing , std::vector); + BBTK_DECLARE_OUTPUT(DicomInfo , VectorMapInfoDicom); BBTK_PROCESS(Process); void Process(); @@ -98,18 +99,20 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(GetXCoherentInfoGdcmReader,bbtk::AtomicBlackBox); BBTK_DESCRIPTION("Get Dicom info from a File Set (a list of Dicom image file names) and read (as a vtkImageData)"); BBTK_CATEGORY(""); - BBTK_INPUT(GetXCoherentInfoGdcmReader,In ,"List of Dicom image file names", std::vector,""); - BBTK_INPUT(GetXCoherentInfoGdcmReader,IPPSort ,"Sort on Image Position Patient", bool,""); - BBTK_INPUT(GetXCoherentInfoGdcmReader,DicomTags ,"Dicom Tags (vector of Dicom tags ex: D0028_0030 D0020_0037)", std::vector,""); - BBTK_INPUT(GetXCoherentInfoGdcmReader,ReadRaw ,"(default true) false: not read raw just dicom tags", bool,""); - BBTK_INPUT(GetXCoherentInfoGdcmReader,RespectSerieUID ,"(default true) Respect Serie UID to be read", bool,""); - - BBTK_OUTPUT(GetXCoherentInfoGdcmReader,Out ,"Output image" , vtkImageData *,""); - BBTK_OUTPUT(GetXCoherentInfoGdcmReader,OutFileNames ,"List of the files in the good order" , std::vector,""); - BBTK_OUTPUT(GetXCoherentInfoGdcmReader,IPP ,"Image Position (Patient)" , std::vector,""); - BBTK_OUTPUT(GetXCoherentInfoGdcmReader,IOP ,"Image Orientation (Patient)" , std::vector,""); - BBTK_OUTPUT(GetXCoherentInfoGdcmReader,PixelSpacing ,"Pixel Spacing" , std::vector,""); - BBTK_OUTPUT(GetXCoherentInfoGdcmReader,DicomInfo ,"vector of maps of Dicom tags" , VectorMapInfoDicom,""); + BBTK_INPUT(GetXCoherentInfoGdcmReader,In ,"List of Dicom image file names", std::vector,""); + BBTK_INPUT(GetXCoherentInfoGdcmReader,IPPSort ,"Sort on Image Position Patient", bool,""); + BBTK_INPUT(GetXCoherentInfoGdcmReader,DicomTags ,"Dicom Tags (vector of Dicom tags ex: D0028_0030 D0020_0037)", std::vector,""); + BBTK_INPUT(GetXCoherentInfoGdcmReader,ReadRaw ,"(default true) false: not read raw just dicom tags", bool,""); + BBTK_INPUT(GetXCoherentInfoGdcmReader,RespectSerieUID ,"(default true) Respect Serie UID to be read", bool,""); + BBTK_INPUT(GetXCoherentInfoGdcmReader,DropDuplicatePositions ,"(default true) Drop slices with Duplicate Positions", bool,""); + + + BBTK_OUTPUT(GetXCoherentInfoGdcmReader,Out ,"Output image" , vtkImageData *,""); + BBTK_OUTPUT(GetXCoherentInfoGdcmReader,OutFileNames ,"List of the files in the good order" , std::vector,""); + BBTK_OUTPUT(GetXCoherentInfoGdcmReader,IPP ,"Image Position (Patient)" , std::vector,""); + BBTK_OUTPUT(GetXCoherentInfoGdcmReader,IOP ,"Image Orientation (Patient)" , std::vector,""); + BBTK_OUTPUT(GetXCoherentInfoGdcmReader,PixelSpacing ,"Pixel Spacing" , std::vector,""); + BBTK_OUTPUT(GetXCoherentInfoGdcmReader,DicomInfo ,"vector of maps of Dicom tags" , VectorMapInfoDicom,""); BBTK_END_DESCRIBE_BLACK_BOX(GetXCoherentInfoGdcmReader); } // EO namespace bbgdcmvtk -- 2.46.2