comparison OrthancServer/Sources/OrthancConfiguration.cpp @ 4508:8f9090b137f1

Optimization in C-STORE SCP by avoiding an unnecessary DICOM parsing
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 11 Feb 2021 11:00:05 +0100
parents c06659885362
children 2c702cfae274
comparison
equal deleted inserted replaced
4507:b4c58795f3a8 4508:8f9090b137f1
32 32
33 33
34 #include "PrecompiledHeadersServer.h" 34 #include "PrecompiledHeadersServer.h"
35 #include "OrthancConfiguration.h" 35 #include "OrthancConfiguration.h"
36 36
37 #include "../../OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h"
37 #include "../../OrthancFramework/Sources/DicomParsing/ParsedDicomFile.h" 38 #include "../../OrthancFramework/Sources/DicomParsing/ParsedDicomFile.h"
38 #include "../../OrthancFramework/Sources/HttpServer/HttpServer.h" 39 #include "../../OrthancFramework/Sources/HttpServer/HttpServer.h"
39 #include "../../OrthancFramework/Sources/Logging.h" 40 #include "../../OrthancFramework/Sources/Logging.h"
40 #include "../../OrthancFramework/Sources/OrthancException.h" 41 #include "../../OrthancFramework/Sources/OrthancException.h"
41 #include "../../OrthancFramework/Sources/SystemToolbox.h" 42 #include "../../OrthancFramework/Sources/SystemToolbox.h"
1019 std::set<DicomTag> ignoreTagLength; 1020 std::set<DicomTag> ignoreTagLength;
1020 dicom.ExtractDicomSummary(target, ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength); 1021 dicom.ExtractDicomSummary(target, ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength);
1021 } 1022 }
1022 1023
1023 1024
1025 void OrthancConfiguration::DefaultExtractDicomSummary(DicomMap& target,
1026 DcmDataset& dicom)
1027 {
1028 std::set<DicomTag> ignoreTagLength;
1029 FromDcmtkBridge::ExtractDicomSummary(target, dicom, ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength);
1030 }
1031
1032
1024 void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target, 1033 void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target,
1025 const ParsedDicomFile& dicom) 1034 const ParsedDicomFile& dicom)
1026 { 1035 {
1027 std::set<DicomTag> ignoreTagLength; 1036 std::set<DicomTag> ignoreTagLength;
1028 DefaultDicomDatasetToJson(target, dicom, ignoreTagLength); 1037 DefaultDicomDatasetToJson(target, dicom, ignoreTagLength);
1029 } 1038 }
1039
1040
1041 void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target,
1042 DcmDataset& dicom)
1043 {
1044 std::set<DicomTag> ignoreTagLength;
1045 FromDcmtkBridge::ExtractDicomAsJson(target, dicom, DicomToJsonFormat_Full, DicomToJsonFlags_Default,
1046 ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength);
1047 }
1030 1048
1031 1049
1032 void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target, 1050 void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target,
1033 const ParsedDicomFile& dicom, 1051 const ParsedDicomFile& dicom,
1034 const std::set<DicomTag>& ignoreTagLength) 1052 const std::set<DicomTag>& ignoreTagLength)