Mercurial > hg > orthanc
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); |