| 18 | |
| 19 | |
| 20 | mitk::ClassicDICOMSeriesReader |
| 21 | ::ClassicDICOMSeriesReader() |
| 22 | :ThreeDnTDICOMSeriesReader() |
| 23 | { |
| 24 | mitk::DICOMTagBasedSorter::Pointer tagSorter = mitk::DICOMTagBasedSorter::New(); |
| 25 | |
| 26 | // all the things that split by tag in mitk::DicomSeriesReader |
| 27 | tagSorter->AddDistinguishingTag( DICOMTag(0x0020, 0x000e) ); // Series Instance UID |
| 28 | //tagSorter->AddDistinguishingTag( DICOMTag(0x0020, 0x0052) ); // Frame of Reference UID |
| 29 | |
| 30 | // a sorter... |
| 31 | mitk::DICOMSortCriterion::ConstPointer sorting = |
| 32 | mitk::SortByImagePositionPatient::New( // image position patient and image orientation |
| 33 | mitk::DICOMSortByTag::New( DICOMTag(0x0020, 0x0012), // acquisition number |
| 34 | mitk::DICOMSortByTag::New( DICOMTag(0x0008, 0x0032), // acquisition time |
| 35 | mitk::DICOMSortByTag::New( DICOMTag(0x0018, 0x1060), // trigger time |
| 36 | mitk::DICOMSortByTag::New( DICOMTag(0x0008, 0x0018) // SOP instance UID (last resort, not really meaningful but decides clearly) |
| 37 | ).GetPointer() |
| 38 | ).GetPointer() |
| 39 | ).GetPointer() |
| 40 | ).GetPointer() |
| 41 | ).GetPointer(); |
| 42 | tagSorter->SetSortCriterion( sorting ); |
| 43 | tagSorter->SetStrictSorting(false); // nothing did enforce constant distances before, there was just the EquiDistantBlocksSorter logic |
| 44 | |
| 45 | // define above sorting for this class |
| 46 | this->AddSortingElement( tagSorter ); |
| 47 | |
| 48 | this->SetFixTiltByShearing(true); // that was configurable, default was true |
| 49 | this->SetToleratedOriginOffset(0.005); // was hard-coded |
| 50 | this->SetGroup3DandT(true); // that was configurable, default was true |
| 51 | this->OnlyCondenseSameSeriesOff(); |
| 52 | |
| 53 | m_EquiDistantBlocksSorter->SetAcceptTwoSlicesGroups(false); // old reader did not accept that |
| 54 | |
| 55 | this->SetConfigurationLabel("2013 sorting logic"); |
| 56 | this->SetConfigurationDescription("Sort by Image Position, then Acquisition Number, Time, Trigger time, group by 3D+t, group tilted images, condense blocks even if series does not match"); |
| 57 | } |
| 58 | |
| 59 | mitk::ClassicDICOMSeriesReader |
| 60 | ::ClassicDICOMSeriesReader(const ClassicDICOMSeriesReader& other ) |
nothing calls this directly
no test coverage detected