Mercurial > hg > orthanc-stone
annotate OrthancStone/Sources/Toolbox/OrthancDatasets/OrthancHttpConnection.cpp @ 2171:8e3c403cc643
Improved support of the (0028,9132) tag for Philips multiframe images
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 22 Oct 2024 15:40:40 +0200 |
parents | 32bfccdc030f |
children |
rev | line source |
---|---|
1504 | 1 /** |
2 * Stone of Orthanc | |
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
4 * Department, University Hospital of Liege, Belgium | |
2124
16c01cc201e7
updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2114
diff
changeset
|
5 * Copyright (C) 2017-2023 Osimis S.A., Belgium |
2114
c23eef785569
update year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2077
diff
changeset
|
6 * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
1504 | 7 * |
8 * This program is free software: you can redistribute it and/or | |
1598
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public License |
1504 | 10 * as published by the Free Software Foundation, either version 3 of |
11 * the License, or (at your option) any later version. | |
12 * | |
13 * This program is distributed in the hope that it will be useful, but | |
14 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
1598
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
16 * Lesser General Public License for more details. |
1596
4fb8fdf03314
removed annoying whitespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
17 * |
1598
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
19 * License along with this program. If not, see |
8563ea5d8ae4
relicensing some files, cf. osimis bm26 and chu agreement on 2020-05-20
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
20 * <http://www.gnu.org/licenses/>. |
1504 | 21 **/ |
22 | |
23 | |
24 #include "OrthancHttpConnection.h" | |
25 | |
2153
32bfccdc030f
consistency in the way URLs are concatenated
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2124
diff
changeset
|
26 #include "../StoneToolbox.h" |
32bfccdc030f
consistency in the way URLs are concatenated
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2124
diff
changeset
|
27 |
1504 | 28 namespace OrthancStone |
29 { | |
30 void OrthancHttpConnection::Setup() | |
31 { | |
32 url_ = client_.GetUrl(); | |
33 | |
34 // Don't follow 3xx HTTP (avoid redirections to "unsupported.png" in Orthanc) | |
35 client_.SetRedirectionFollowed(false); | |
36 } | |
37 | |
38 | |
39 OrthancHttpConnection::OrthancHttpConnection() : | |
40 client_(Orthanc::WebServiceParameters(), "") | |
41 { | |
42 Setup(); | |
43 } | |
44 | |
45 | |
46 OrthancHttpConnection::OrthancHttpConnection(const Orthanc::WebServiceParameters& parameters) : | |
47 client_(parameters, "") | |
48 { | |
49 Setup(); | |
50 } | |
51 | |
52 | |
53 void OrthancHttpConnection::RestApiGet(std::string& result, | |
54 const std::string& uri) | |
55 { | |
56 boost::mutex::scoped_lock lock(mutex_); | |
57 | |
58 client_.SetMethod(Orthanc::HttpMethod_Get); | |
2153
32bfccdc030f
consistency in the way URLs are concatenated
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2124
diff
changeset
|
59 client_.SetUrl(StoneToolbox::JoinUrl(url_, uri)); |
1504 | 60 client_.ApplyAndThrowException(result); |
61 } | |
62 | |
63 | |
64 void OrthancHttpConnection::RestApiPost(std::string& result, | |
65 const std::string& uri, | |
66 const std::string& body) | |
67 { | |
68 boost::mutex::scoped_lock lock(mutex_); | |
69 | |
70 client_.SetMethod(Orthanc::HttpMethod_Post); | |
2153
32bfccdc030f
consistency in the way URLs are concatenated
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2124
diff
changeset
|
71 client_.SetUrl(StoneToolbox::JoinUrl(url_, uri)); |
1776
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
72 |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
73 #if defined(ORTHANC_FRAMEWORK_VERSION_IS_ABOVE) && ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 9, 3) |
1760
e38b9875a969
adaptation to change in API of Orthanc::HttpClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
74 client_.SetExternalBody(body); |
1504 | 75 client_.ApplyAndThrowException(result); |
1760
e38b9875a969
adaptation to change in API of Orthanc::HttpClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
76 client_.ClearBody(); |
1776
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
77 #else |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
78 client_.SetBody(body); |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
79 client_.ApplyAndThrowException(result); |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
80 #endif |
1504 | 81 } |
82 | |
83 | |
84 void OrthancHttpConnection::RestApiPut(std::string& result, | |
85 const std::string& uri, | |
86 const std::string& body) | |
87 { | |
88 boost::mutex::scoped_lock lock(mutex_); | |
89 | |
90 client_.SetMethod(Orthanc::HttpMethod_Put); | |
2153
32bfccdc030f
consistency in the way URLs are concatenated
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2124
diff
changeset
|
91 client_.SetUrl(StoneToolbox::JoinUrl(url_, uri)); |
1776
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
92 |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
93 #if defined(ORTHANC_FRAMEWORK_VERSION_IS_ABOVE) && ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 9, 3) |
1760
e38b9875a969
adaptation to change in API of Orthanc::HttpClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
94 client_.SetExternalBody(body); |
1504 | 95 client_.ApplyAndThrowException(result); |
1760
e38b9875a969
adaptation to change in API of Orthanc::HttpClient
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
96 client_.ClearBody(); |
1776
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
97 #else |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
98 client_.SetBody(body); |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
99 client_.ApplyAndThrowException(result); |
d3d883c3af65
backward compatibility with Orthanc framework <= 1.9.2
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1760
diff
changeset
|
100 #endif |
1504 | 101 } |
102 | |
103 | |
104 void OrthancHttpConnection::RestApiDelete(const std::string& uri) | |
105 { | |
106 boost::mutex::scoped_lock lock(mutex_); | |
107 | |
108 std::string result; | |
109 | |
110 client_.SetMethod(Orthanc::HttpMethod_Delete); | |
2153
32bfccdc030f
consistency in the way URLs are concatenated
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
2124
diff
changeset
|
111 client_.SetUrl(StoneToolbox::JoinUrl(url_, uri)); |
1504 | 112 client_.ApplyAndThrowException(result); |
113 } | |
114 } |