comparison OrthancServer/FromDcmtkBridge.cpp @ 1927:b60f27664b8f

simplification in FromDcmtkBridge
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 21 Mar 2016 13:31:56 +0100
parents 6c73df12ca51
children 84c7eaeb5244
comparison
equal deleted inserted replaced
1926:2a129de4b5e2 1927:b60f27664b8f
28 * You should have received a copy of the GNU General Public License 28 * You should have received a copy of the GNU General Public License
29 * along with this program. If not, see <http://www.gnu.org/licenses/>. 29 * along with this program. If not, see <http://www.gnu.org/licenses/>.
30 **/ 30 **/
31 31
32 32
33
34 #include "PrecompiledHeadersServer.h" 33 #include "PrecompiledHeadersServer.h"
35 34
36 #ifndef NOMINMAX 35 #ifndef NOMINMAX
37 #define NOMINMAX 36 #define NOMINMAX
38 #endif 37 #endif
39 38
40 #include "Internals/DicomImageDecoder.h"
41
42 #include "FromDcmtkBridge.h" 39 #include "FromDcmtkBridge.h"
43 #include "ToDcmtkBridge.h"
44 #include "OrthancInitialization.h" 40 #include "OrthancInitialization.h"
45 #include "../Core/Logging.h" 41 #include "../Core/Logging.h"
46 #include "../Core/Toolbox.h" 42 #include "../Core/Toolbox.h"
47 #include "../Core/OrthancException.h" 43 #include "../Core/OrthancException.h"
48 #include "../Core/Images/PngWriter.h"
49 #include "../Core/Uuid.h"
50 #include "../Core/DicomFormat/DicomIntegerPixelAccessor.h"
51 44
52 #include <list> 45 #include <list>
53 #include <limits> 46 #include <limits>
54 47
55 #include <boost/lexical_cast.hpp> 48 #include <boost/lexical_cast.hpp>
56 #include <boost/filesystem.hpp> 49 #include <boost/filesystem.hpp>
57 50 #include <boost/algorithm/string/predicate.hpp>
58 #include <dcmtk/dcmdata/dcchrstr.h> 51
52 #include <dcmtk/dcmdata/dcdeftag.h>
59 #include <dcmtk/dcmdata/dcdicent.h> 53 #include <dcmtk/dcmdata/dcdicent.h>
60 #include <dcmtk/dcmdata/dcdict.h> 54 #include <dcmtk/dcmdata/dcdict.h>
61 #include <dcmtk/dcmdata/dcfilefo.h> 55 #include <dcmtk/dcmdata/dcfilefo.h>
62 #include <dcmtk/dcmdata/dcistrmb.h> 56 #include <dcmtk/dcmdata/dcostrmb.h>
57 #include <dcmtk/dcmdata/dcpixel.h>
63 #include <dcmtk/dcmdata/dcuid.h> 58 #include <dcmtk/dcmdata/dcuid.h>
64 #include <dcmtk/dcmdata/dcmetinf.h>
65 #include <dcmtk/dcmdata/dcdeftag.h>
66 59
67 #include <dcmtk/dcmdata/dcvrae.h> 60 #include <dcmtk/dcmdata/dcvrae.h>
68 #include <dcmtk/dcmdata/dcvras.h> 61 #include <dcmtk/dcmdata/dcvras.h>
62 #include <dcmtk/dcmdata/dcvrat.h>
69 #include <dcmtk/dcmdata/dcvrcs.h> 63 #include <dcmtk/dcmdata/dcvrcs.h>
70 #include <dcmtk/dcmdata/dcvrda.h> 64 #include <dcmtk/dcmdata/dcvrda.h>
71 #include <dcmtk/dcmdata/dcvrds.h> 65 #include <dcmtk/dcmdata/dcvrds.h>
72 #include <dcmtk/dcmdata/dcvrdt.h> 66 #include <dcmtk/dcmdata/dcvrdt.h>
73 #include <dcmtk/dcmdata/dcvrfd.h> 67 #include <dcmtk/dcmdata/dcvrfd.h>
83 #include <dcmtk/dcmdata/dcvrtm.h> 77 #include <dcmtk/dcmdata/dcvrtm.h>
84 #include <dcmtk/dcmdata/dcvrui.h> 78 #include <dcmtk/dcmdata/dcvrui.h>
85 #include <dcmtk/dcmdata/dcvrul.h> 79 #include <dcmtk/dcmdata/dcvrul.h>
86 #include <dcmtk/dcmdata/dcvrus.h> 80 #include <dcmtk/dcmdata/dcvrus.h>
87 #include <dcmtk/dcmdata/dcvrut.h> 81 #include <dcmtk/dcmdata/dcvrut.h>
88 #include <dcmtk/dcmdata/dcpixel.h>
89 #include <dcmtk/dcmdata/dcpixseq.h>
90 #include <dcmtk/dcmdata/dcpxitem.h>
91 #include <dcmtk/dcmdata/dcvrat.h>
92
93 #include <dcmtk/dcmnet/dul.h>
94
95 #include <boost/math/special_functions/round.hpp>
96 #include <boost/algorithm/string/predicate.hpp>
97 #include <dcmtk/dcmdata/dcostrmb.h>
98 82
99 83
100 namespace Orthanc 84 namespace Orthanc
101 { 85 {
102 static inline uint16_t GetCharValue(char c) 86 static inline uint16_t GetCharValue(char c)
186 } 170 }
187 171
188 172
189 void FromDcmtkBridge::InitializeDictionary() 173 void FromDcmtkBridge::InitializeDictionary()
190 { 174 {
191 /* Disable "gethostbyaddr" (which results in memory leaks) and use raw IP addresses */
192 dcmDisableGethostbyaddr.set(OFTrue);
193
194 { 175 {
195 DictionaryLocker locker; 176 DictionaryLocker locker;
196 177
197 locker->clear(); 178 locker->clear();
198 179
1569 1550
1570 1551
1571 DcmPixelSequence* FromDcmtkBridge::GetPixelSequence(DcmDataset& dataset) 1552 DcmPixelSequence* FromDcmtkBridge::GetPixelSequence(DcmDataset& dataset)
1572 { 1553 {
1573 DcmElement *element = NULL; 1554 DcmElement *element = NULL;
1574 if (!dataset.findAndGetElement(ToDcmtkBridge::Convert(DICOM_TAG_PIXEL_DATA), element).good()) 1555 if (!dataset.findAndGetElement(DCM_PixelData, element).good())
1575 { 1556 {
1576 throw OrthancException(ErrorCode_BadFileFormat); 1557 throw OrthancException(ErrorCode_BadFileFormat);
1577 } 1558 }
1578 1559
1579 DcmPixelData& pixelData = dynamic_cast<DcmPixelData&>(*element); 1560 DcmPixelData& pixelData = dynamic_cast<DcmPixelData&>(*element);