Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 776:be87dd517416
rename
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 30 Apr 2014 17:53:01 +0200 |
parents | 3bd0589af992 |
children | d466b3606aca |
comparison
equal
deleted
inserted
replaced
774:4e3593c3511d | 776:be87dd517416 |
---|---|
73 { | 73 { |
74 return; | 74 return; |
75 } | 75 } |
76 | 76 |
77 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); | 77 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); |
78 ReusableDicomUserConnection::Connection connection(context.GetReusableDicomUserConnection(), remote); | 78 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote); |
79 | 79 |
80 DicomFindAnswers answers; | 80 DicomFindAnswers answers; |
81 connection.GetConnection().FindPatient(answers, m); | 81 locker.GetConnection().FindPatient(answers, m); |
82 | 82 |
83 Json::Value result; | 83 Json::Value result; |
84 answers.ToJson(result); | 84 answers.ToJson(result); |
85 call.GetOutput().AnswerJson(result); | 85 call.GetOutput().AnswerJson(result); |
86 } | 86 } |
101 { | 101 { |
102 return; | 102 return; |
103 } | 103 } |
104 | 104 |
105 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); | 105 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); |
106 ReusableDicomUserConnection::Connection connection(context.GetReusableDicomUserConnection(), remote); | 106 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote); |
107 | 107 |
108 DicomFindAnswers answers; | 108 DicomFindAnswers answers; |
109 connection.GetConnection().FindStudy(answers, m); | 109 locker.GetConnection().FindStudy(answers, m); |
110 | 110 |
111 Json::Value result; | 111 Json::Value result; |
112 answers.ToJson(result); | 112 answers.ToJson(result); |
113 call.GetOutput().AnswerJson(result); | 113 call.GetOutput().AnswerJson(result); |
114 } | 114 } |
130 { | 130 { |
131 return; | 131 return; |
132 } | 132 } |
133 | 133 |
134 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); | 134 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); |
135 ReusableDicomUserConnection::Connection connection(context.GetReusableDicomUserConnection(), remote); | 135 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote); |
136 | 136 |
137 DicomFindAnswers answers; | 137 DicomFindAnswers answers; |
138 connection.GetConnection().FindSeries(answers, m); | 138 locker.GetConnection().FindSeries(answers, m); |
139 | 139 |
140 Json::Value result; | 140 Json::Value result; |
141 answers.ToJson(result); | 141 answers.ToJson(result); |
142 call.GetOutput().AnswerJson(result); | 142 call.GetOutput().AnswerJson(result); |
143 } | 143 } |
160 { | 160 { |
161 return; | 161 return; |
162 } | 162 } |
163 | 163 |
164 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); | 164 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); |
165 ReusableDicomUserConnection::Connection connection(context.GetReusableDicomUserConnection(), remote); | 165 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote); |
166 | 166 |
167 DicomFindAnswers answers; | 167 DicomFindAnswers answers; |
168 connection.GetConnection().FindInstance(answers, m); | 168 locker.GetConnection().FindInstance(answers, m); |
169 | 169 |
170 Json::Value result; | 170 Json::Value result; |
171 answers.ToJson(result); | 171 answers.ToJson(result); |
172 call.GetOutput().AnswerJson(result); | 172 call.GetOutput().AnswerJson(result); |
173 } | 173 } |
182 { | 182 { |
183 return; | 183 return; |
184 } | 184 } |
185 | 185 |
186 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); | 186 RemoteModalityParameters remote = GetModalityUsingSymbolicName(call.GetUriComponent("id", "")); |
187 ReusableDicomUserConnection::Connection connection(context.GetReusableDicomUserConnection(), remote); | 187 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), remote); |
188 | 188 |
189 DicomFindAnswers patients; | 189 DicomFindAnswers patients; |
190 connection.GetConnection().FindPatient(patients, m); | 190 locker.GetConnection().FindPatient(patients, m); |
191 | 191 |
192 // Loop over the found patients | 192 // Loop over the found patients |
193 Json::Value result = Json::arrayValue; | 193 Json::Value result = Json::arrayValue; |
194 for (size_t i = 0; i < patients.GetSize(); i++) | 194 for (size_t i = 0; i < patients.GetSize(); i++) |
195 { | 195 { |
202 return; | 202 return; |
203 } | 203 } |
204 m.CopyTagIfExists(patients.GetAnswer(i), DICOM_TAG_PATIENT_ID); | 204 m.CopyTagIfExists(patients.GetAnswer(i), DICOM_TAG_PATIENT_ID); |
205 | 205 |
206 DicomFindAnswers studies; | 206 DicomFindAnswers studies; |
207 connection.GetConnection().FindStudy(studies, m); | 207 locker.GetConnection().FindStudy(studies, m); |
208 | 208 |
209 patient["Studies"] = Json::arrayValue; | 209 patient["Studies"] = Json::arrayValue; |
210 | 210 |
211 // Loop over the found studies | 211 // Loop over the found studies |
212 for (size_t j = 0; j < studies.GetSize(); j++) | 212 for (size_t j = 0; j < studies.GetSize(); j++) |
221 } | 221 } |
222 m.CopyTagIfExists(studies.GetAnswer(j), DICOM_TAG_PATIENT_ID); | 222 m.CopyTagIfExists(studies.GetAnswer(j), DICOM_TAG_PATIENT_ID); |
223 m.CopyTagIfExists(studies.GetAnswer(j), DICOM_TAG_STUDY_INSTANCE_UID); | 223 m.CopyTagIfExists(studies.GetAnswer(j), DICOM_TAG_STUDY_INSTANCE_UID); |
224 | 224 |
225 DicomFindAnswers series; | 225 DicomFindAnswers series; |
226 connection.GetConnection().FindSeries(series, m); | 226 locker.GetConnection().FindSeries(series, m); |
227 | 227 |
228 // Loop over the found series | 228 // Loop over the found series |
229 study["Series"] = Json::arrayValue; | 229 study["Series"] = Json::arrayValue; |
230 for (size_t k = 0; k < series.GetSize(); k++) | 230 for (size_t k = 0; k < series.GetSize(); k++) |
231 { | 231 { |
317 { | 317 { |
318 return; | 318 return; |
319 } | 319 } |
320 | 320 |
321 RemoteModalityParameters p = GetModalityUsingSymbolicName(remote); | 321 RemoteModalityParameters p = GetModalityUsingSymbolicName(remote); |
322 ReusableDicomUserConnection::Connection connection(context.GetReusableDicomUserConnection(), p); | 322 ReusableDicomUserConnection::Locker locker(context.GetReusableDicomUserConnection(), p); |
323 | 323 |
324 for (std::list<std::string>::const_iterator | 324 for (std::list<std::string>::const_iterator |
325 it = instances.begin(); it != instances.end(); ++it) | 325 it = instances.begin(); it != instances.end(); ++it) |
326 { | 326 { |
327 LOG(INFO) << "Sending resource " << *it << " to modality \"" << remote << "\""; | 327 LOG(INFO) << "Sending resource " << *it << " to modality \"" << remote << "\""; |
328 | 328 |
329 std::string dicom; | 329 std::string dicom; |
330 context.ReadFile(dicom, *it, FileContentType_Dicom); | 330 context.ReadFile(dicom, *it, FileContentType_Dicom); |
331 connection.GetConnection().Store(dicom); | 331 locker.GetConnection().Store(dicom); |
332 } | 332 } |
333 | 333 |
334 call.GetOutput().AnswerBuffer("{}", "application/json"); | 334 call.GetOutput().AnswerBuffer("{}", "application/json"); |
335 } | 335 } |
336 | 336 |