comparison OrthancServer/Sources/ServerContext.cpp @ 4499:6f99949b2878

reorganization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 09 Feb 2021 14:25:21 +0100
parents 68f52897c119
children 3b4940bca158
comparison
equal deleted inserted replaced
4498:7b99e8bb8246 4499:6f99949b2878
34 #include "PrecompiledHeadersServer.h" 34 #include "PrecompiledHeadersServer.h"
35 #include "ServerContext.h" 35 #include "ServerContext.h"
36 36
37 #include "../../OrthancFramework/Sources/Cache/SharedArchive.h" 37 #include "../../OrthancFramework/Sources/Cache/SharedArchive.h"
38 #include "../../OrthancFramework/Sources/DicomFormat/DicomElement.h" 38 #include "../../OrthancFramework/Sources/DicomFormat/DicomElement.h"
39 #include "../../OrthancFramework/Sources/DicomFormat/DicomStreamReader.h"
39 #include "../../OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.h" 40 #include "../../OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.h"
40 #include "../../OrthancFramework/Sources/DicomParsing/DicomModification.h" 41 #include "../../OrthancFramework/Sources/DicomParsing/DicomModification.h"
41 #include "../../OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h" 42 #include "../../OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h"
42 #include "../../OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.h" 43 #include "../../OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.h"
43 #include "../../OrthancFramework/Sources/FileStorage/StorageAccessor.h" 44 #include "../../OrthancFramework/Sources/FileStorage/StorageAccessor.h"
507 overwrite = false; 508 overwrite = false;
508 break; 509 break;
509 510
510 default: 511 default:
511 throw OrthancException(ErrorCode_ParameterOutOfRange); 512 throw OrthancException(ErrorCode_ParameterOutOfRange);
512 } 513 }
514
515
516 bool hasPixelDataOffset;
517 uint64_t pixelDataOffset;
518 hasPixelDataOffset = DicomStreamReader::LookupPixelDataOffset(
519 pixelDataOffset, dicom.GetBufferData(), dicom.GetBufferSize());
520
513 521
514 try 522 try
515 { 523 {
516 MetricsRegistry::Timer timer(GetMetricsRegistry(), "orthanc_store_dicom_duration_ms"); 524 MetricsRegistry::Timer timer(GetMetricsRegistry(), "orthanc_store_dicom_duration_ms");
517 StorageAccessor accessor(area_, GetMetricsRegistry()); 525 StorageAccessor accessor(area_, GetMetricsRegistry());
571 attachments.push_back(jsonInfo); 579 attachments.push_back(jsonInfo);
572 580
573 typedef std::map<MetadataType, std::string> InstanceMetadata; 581 typedef std::map<MetadataType, std::string> InstanceMetadata;
574 InstanceMetadata instanceMetadata; 582 InstanceMetadata instanceMetadata;
575 StoreStatus status = index_.Store( 583 StoreStatus status = index_.Store(
576 instanceMetadata, dicom, attachments, overwrite); 584 instanceMetadata, dicom, attachments, overwrite, hasPixelDataOffset, pixelDataOffset);
577 585
578 // Only keep the metadata for the "instance" level 586 // Only keep the metadata for the "instance" level
579 dicom.GetMetadata().clear(); 587 dicom.GetMetadata().clear();
580 588
581 for (InstanceMetadata::const_iterator it = instanceMetadata.begin(); 589 for (InstanceMetadata::const_iterator it = instanceMetadata.begin();