comparison OrthancServer/Sources/ServerContext.h @ 5743:8bb3f2fca242

refactored ServerContext::DecodeDicomFrame to have a single implementation
author Alain Mazy <am@orthanc.team>
date Thu, 29 Aug 2024 13:46:49 +0200
parents 0c218d90096e
children 9d6167ddcb35 796cb17db15c 8279eaab0d1d
comparison
equal deleted inserted replaced
5742:078b724dcbf8 5743:8bb3f2fca242
303 std::string instancePublicId_; 303 std::string instancePublicId_;
304 std::unique_ptr<ParsedDicomCache::Accessor> accessor_; 304 std::unique_ptr<ParsedDicomCache::Accessor> accessor_;
305 std::unique_ptr<ParsedDicomFile> dicom_; 305 std::unique_ptr<ParsedDicomFile> dicom_;
306 size_t dicomSize_; 306 size_t dicomSize_;
307 std::unique_ptr<Semaphore::Locker> largeDicomLocker_; 307 std::unique_ptr<Semaphore::Locker> largeDicomLocker_;
308 std::string buffer_;
308 309
309 public: 310 public:
310 DicomCacheLocker(ServerContext& context, 311 DicomCacheLocker(ServerContext& context,
311 const std::string& instancePublicId); 312 const std::string& instancePublicId);
312 313
313 ~DicomCacheLocker(); 314 ~DicomCacheLocker();
314 315
315 ParsedDicomFile& GetDicom() const; 316 ParsedDicomFile& GetDicom() const;
317
318 const std::string& GetBuffer();
316 }; 319 };
317 320
318 ServerContext(IDatabaseWrapper& database, 321 ServerContext(IDatabaseWrapper& database,
319 IStorageArea& area, 322 IStorageArea& area,
320 bool unitTesting, 323 bool unitTesting,
553 unsigned int frameIndex); 556 unsigned int frameIndex);
554 557
555 ImageAccessor* DecodeDicomFrame(const void* dicom, 558 ImageAccessor* DecodeDicomFrame(const void* dicom,
556 size_t size, 559 size_t size,
557 unsigned int frameIndex); 560 unsigned int frameIndex);
558 561
562 ImageAccessor* DecodeDicomFrame(const ParsedDicomFile& parsedDicom,
563 const void* buffer, // actually the buffer that is the source of the ParsedDicomFile
564 size_t size,
565 unsigned int frameIndex);
566
559 void StoreWithTranscoding(std::string& sopClassUid, 567 void StoreWithTranscoding(std::string& sopClassUid,
560 std::string& sopInstanceUid, 568 std::string& sopInstanceUid,
561 DicomStoreUserConnection& connection, 569 DicomStoreUserConnection& connection,
562 const std::string& dicom, 570 const std::string& dicom,
563 bool hasMoveOriginator, 571 bool hasMoveOriginator,