comparison Framework/Deprecated/Toolbox/OrthancSlicesLoader.cpp @ 739:be9c1530d40a

deprecating enum SliceImageQuality
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 22 May 2019 09:13:04 +0200
parents c35e98d22764
children 4fe4b221a31f
comparison
equal deleted inserted replaced
738:8e31b174ab26 739:be9c1530d40a
76 Mode mode_; 76 Mode mode_;
77 unsigned int frame_; 77 unsigned int frame_;
78 unsigned int sliceIndex_; 78 unsigned int sliceIndex_;
79 const Slice* slice_; 79 const Slice* slice_;
80 std::string instanceId_; 80 std::string instanceId_;
81 OrthancStone::SliceImageQuality quality_; 81 SliceImageQuality quality_;
82 82
83 Operation(Mode mode) : 83 Operation(Mode mode) :
84 mode_(mode) 84 mode_(mode)
85 { 85 {
86 } 86 }
89 Mode GetMode() const 89 Mode GetMode() const
90 { 90 {
91 return mode_; 91 return mode_;
92 } 92 }
93 93
94 OrthancStone::SliceImageQuality GetQuality() const 94 SliceImageQuality GetQuality() const
95 { 95 {
96 assert(mode_ == Mode_LoadImage || 96 assert(mode_ == Mode_LoadImage ||
97 mode_ == Mode_LoadRawImage); 97 mode_ == Mode_LoadRawImage);
98 return quality_; 98 return quality_;
99 } 99 }
142 return operation.release(); 142 return operation.release();
143 } 143 }
144 144
145 static Operation* DownloadSliceImage(unsigned int sliceIndex, 145 static Operation* DownloadSliceImage(unsigned int sliceIndex,
146 const Slice& slice, 146 const Slice& slice,
147 OrthancStone::SliceImageQuality quality) 147 SliceImageQuality quality)
148 { 148 {
149 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadImage)); 149 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadImage));
150 tmp->sliceIndex_ = sliceIndex; 150 tmp->sliceIndex_ = sliceIndex;
151 tmp->slice_ = &slice; 151 tmp->slice_ = &slice;
152 tmp->quality_ = quality; 152 tmp->quality_ = quality;
157 const Slice& slice) 157 const Slice& slice)
158 { 158 {
159 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadRawImage)); 159 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadRawImage));
160 tmp->sliceIndex_ = sliceIndex; 160 tmp->sliceIndex_ = sliceIndex;
161 tmp->slice_ = &slice; 161 tmp->slice_ = &slice;
162 tmp->quality_ = OrthancStone::SliceImageQuality_InternalRaw; 162 tmp->quality_ = SliceImageQuality_InternalRaw;
163 return tmp.release(); 163 return tmp.release();
164 } 164 }
165 165
166 static Operation* DownloadDicomFile(const Slice& slice) 166 static Operation* DownloadDicomFile(const Slice& slice)
167 { 167 {
776 (*this, &OrthancSlicesLoader::ParseSliceImagePng), 776 (*this, &OrthancSlicesLoader::ParseSliceImagePng),
777 new OrthancStone::Callable<OrthancSlicesLoader, 777 new OrthancStone::Callable<OrthancSlicesLoader,
778 IWebService::HttpRequestErrorMessage> 778 IWebService::HttpRequestErrorMessage>
779 (*this, &OrthancSlicesLoader::OnSliceImageError), 779 (*this, &OrthancSlicesLoader::OnSliceImageError),
780 Operation::DownloadSliceImage( 780 Operation::DownloadSliceImage(
781 static_cast<unsigned int>(index), slice, OrthancStone::SliceImageQuality_FullPng)); 781 static_cast<unsigned int>(index), slice, SliceImageQuality_FullPng));
782 } 782 }
783 783
784 void OrthancSlicesLoader::ScheduleSliceImagePam(const Slice& slice, 784 void OrthancSlicesLoader::ScheduleSliceImagePam(const Slice& slice,
785 size_t index) 785 size_t index)
786 { 786 {
812 (*this, &OrthancSlicesLoader::ParseSliceImagePam), 812 (*this, &OrthancSlicesLoader::ParseSliceImagePam),
813 new OrthancStone::Callable<OrthancSlicesLoader, 813 new OrthancStone::Callable<OrthancSlicesLoader,
814 IWebService::HttpRequestErrorMessage> 814 IWebService::HttpRequestErrorMessage>
815 (*this, &OrthancSlicesLoader::OnSliceImageError), 815 (*this, &OrthancSlicesLoader::OnSliceImageError),
816 Operation::DownloadSliceImage(static_cast<unsigned int>(index), 816 Operation::DownloadSliceImage(static_cast<unsigned int>(index),
817 slice, OrthancStone::SliceImageQuality_FullPam)); 817 slice, SliceImageQuality_FullPam));
818 } 818 }
819 819
820 820
821 821
822 void OrthancSlicesLoader::ScheduleSliceImageJpeg(const Slice& slice, 822 void OrthancSlicesLoader::ScheduleSliceImageJpeg(const Slice& slice,
823 size_t index, 823 size_t index,
824 OrthancStone::SliceImageQuality quality) 824 SliceImageQuality quality)
825 { 825 {
826 unsigned int value; 826 unsigned int value;
827 827
828 switch (quality) 828 switch (quality)
829 { 829 {
830 case OrthancStone::SliceImageQuality_Jpeg50: 830 case SliceImageQuality_Jpeg50:
831 value = 50; 831 value = 50;
832 break; 832 break;
833 833
834 case OrthancStone::SliceImageQuality_Jpeg90: 834 case SliceImageQuality_Jpeg90:
835 value = 90; 835 value = 90;
836 break; 836 break;
837 837
838 case OrthancStone::SliceImageQuality_Jpeg95: 838 case SliceImageQuality_Jpeg95:
839 value = 95; 839 value = 95;
840 break; 840 break;
841 841
842 default: 842 default:
843 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); 843 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
861 } 861 }
862 862
863 863
864 864
865 void OrthancSlicesLoader::ScheduleLoadSliceImage(size_t index, 865 void OrthancSlicesLoader::ScheduleLoadSliceImage(size_t index,
866 OrthancStone::SliceImageQuality quality) 866 SliceImageQuality quality)
867 { 867 {
868 if (state_ != State_GeometryReady) 868 if (state_ != State_GeometryReady)
869 { 869 {
870 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); 870 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
871 } 871 }
874 874
875 if (slice.HasOrthancDecoding()) 875 if (slice.HasOrthancDecoding())
876 { 876 {
877 switch (quality) 877 switch (quality)
878 { 878 {
879 case OrthancStone::SliceImageQuality_FullPng: 879 case SliceImageQuality_FullPng:
880 ScheduleSliceImagePng(slice, index); 880 ScheduleSliceImagePng(slice, index);
881 break; 881 break;
882 case OrthancStone::SliceImageQuality_FullPam: 882 case SliceImageQuality_FullPam:
883 ScheduleSliceImagePam(slice, index); 883 ScheduleSliceImagePam(slice, index);
884 break; 884 break;
885 default: 885 default:
886 ScheduleSliceImageJpeg(slice, index, quality); 886 ScheduleSliceImageJpeg(slice, index, quality);
887 } 887 }