Mercurial > hg > orthanc
comparison OrthancServer/ServerContext.cpp @ 792:111a1738e11e
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 06 May 2014 09:57:39 +0200 |
parents | 381f90e2b69d |
children | 437c4a83d2cc |
comparison
equal
deleted
inserted
replaced
791:381f90e2b69d | 792:111a1738e11e |
---|---|
244 that_.dicomCacheMutex_.unlock(); | 244 that_.dicomCacheMutex_.unlock(); |
245 #endif | 245 #endif |
246 } | 246 } |
247 | 247 |
248 | 248 |
249 static DcmFileFormat& GetDicom(ParsedDicomFile& file) | |
250 { | |
251 return *reinterpret_cast<DcmFileFormat*>(file.GetDcmtkObject()); | |
252 } | |
253 | |
254 | |
249 StoreStatus ServerContext::Store(std::string& resultPublicId, | 255 StoreStatus ServerContext::Store(std::string& resultPublicId, |
250 ParsedDicomFile& dicomInstance, | 256 ParsedDicomFile& dicomInstance, |
251 const char* dicomBuffer, | 257 const char* dicomBuffer, |
252 size_t dicomSize) | 258 size_t dicomSize) |
253 { | 259 { |
254 DicomMap dicomSummary; | 260 DicomMap dicomSummary; |
255 FromDcmtkBridge::Convert(dicomSummary, *dicomInstance.GetDicom().getDataset()); | 261 FromDcmtkBridge::Convert(dicomSummary, *GetDicom(dicomInstance).getDataset()); |
256 | 262 |
257 try | 263 try |
258 { | 264 { |
259 DicomInstanceHasher hasher(dicomSummary); | 265 DicomInstanceHasher hasher(dicomSummary); |
260 resultPublicId = hasher.HashInstance(); | 266 resultPublicId = hasher.HashInstance(); |
261 | 267 |
262 Json::Value dicomJson; | 268 Json::Value dicomJson; |
263 FromDcmtkBridge::ToJson(dicomJson, *dicomInstance.GetDicom().getDataset()); | 269 FromDcmtkBridge::ToJson(dicomJson, *GetDicom(dicomInstance).getDataset()); |
264 | 270 |
265 StoreStatus status = StoreStatus_Failure; | 271 StoreStatus status = StoreStatus_Failure; |
266 if (dicomSize > 0) | 272 if (dicomSize > 0) |
267 { | 273 { |
268 status = Store(dicomBuffer, dicomSize, dicomSummary, dicomJson, ""); | 274 status = Store(dicomBuffer, dicomSize, dicomSummary, dicomJson, ""); |
284 | 290 |
285 StoreStatus ServerContext::Store(std::string& resultPublicId, | 291 StoreStatus ServerContext::Store(std::string& resultPublicId, |
286 ParsedDicomFile& dicomInstance) | 292 ParsedDicomFile& dicomInstance) |
287 { | 293 { |
288 std::string buffer; | 294 std::string buffer; |
289 if (!FromDcmtkBridge::SaveToMemoryBuffer(buffer, dicomInstance.GetDicom().getDataset())) | 295 if (!FromDcmtkBridge::SaveToMemoryBuffer(buffer, GetDicom(dicomInstance).getDataset())) |
290 { | 296 { |
291 throw OrthancException(ErrorCode_InternalError); | 297 throw OrthancException(ErrorCode_InternalError); |
292 } | 298 } |
293 | 299 |
294 if (buffer.size() == 0) | 300 if (buffer.size() == 0) |