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)