comparison OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.h @ 4465:fe774d8e904b

New configuration option: "DicomScuPreferredTransferSyntax" to control transcoding in C-STORE SCU
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 21 Jan 2021 17:08:32 +0100
parents d9473bd5ed43
children 2243f1bb909b
comparison
equal deleted inserted replaced
4464:e8c7be7a02a9 4465:fe774d8e904b
68 typedef std::map<std::string, std::set<DicomTransferSyntax> > RegisteredClasses; 68 typedef std::map<std::string, std::set<DicomTransferSyntax> > RegisteredClasses;
69 69
70 // "ProposedOriginalClasses" keeps track of the storage classes 70 // "ProposedOriginalClasses" keeps track of the storage classes
71 // that were proposed with a single transfer syntax 71 // that were proposed with a single transfer syntax
72 typedef std::set< std::pair<std::string, DicomTransferSyntax> > ProposedOriginalClasses; 72 typedef std::set< std::pair<std::string, DicomTransferSyntax> > ProposedOriginalClasses;
73 73
74 DicomAssociationParameters parameters_; 74 DicomAssociationParameters parameters_;
75 boost::shared_ptr<DicomAssociation> association_; // "shared_ptr" is for PImpl 75 boost::shared_ptr<DicomAssociation> association_; // "shared_ptr" is for PImpl
76 RegisteredClasses registeredClasses_; 76 RegisteredClasses registeredClasses_;
77 ProposedOriginalClasses proposedOriginalClasses_; 77 ProposedOriginalClasses proposedOriginalClasses_;
78 bool proposeCommonClasses_; 78 bool proposeCommonClasses_;
79 bool proposeUncompressedSyntaxes_; 79 bool proposeUncompressedSyntaxes_;
80 bool proposeRetiredBigEndian_; 80 bool proposeRetiredBigEndian_;
81 81
82 // Return "false" if there is not enough room remaining in the association 82 // Return "false" if there is not enough room remaining in the association
83 bool ProposeStorageClass(const std::string& sopClassUid, 83 bool ProposeStorageClass(const std::string& sopClassUid,
84 const std::set<DicomTransferSyntax>& syntaxes); 84 const std::set<DicomTransferSyntax>& sourceSyntaxes,
85 bool hasPreferred,
86 DicomTransferSyntax preferred);
85 87
86 bool LookupPresentationContext(uint8_t& presentationContextId, 88 bool LookupPresentationContext(uint8_t& presentationContextId,
87 const std::string& sopClassUid, 89 const std::string& sopClassUid,
88 DicomTransferSyntax transferSyntax); 90 DicomTransferSyntax transferSyntax);
89 91
90 bool NegotiatePresentationContext(uint8_t& presentationContextId, 92 bool NegotiatePresentationContext(uint8_t& presentationContextId,
91 const std::string& sopClassUid, 93 const std::string& sopClassUid,
92 DicomTransferSyntax transferSyntax); 94 DicomTransferSyntax transferSyntax,
95 bool hasPreferred,
96 DicomTransferSyntax preferred);
93 97
94 void LookupTranscoding(std::set<DicomTransferSyntax>& acceptedSyntaxes, 98 void LookupTranscoding(std::set<DicomTransferSyntax>& acceptedSyntaxes,
95 const std::string& sopClassUid, 99 const std::string& sopClassUid,
96 DicomTransferSyntax sourceSyntax); 100 DicomTransferSyntax sourceSyntax,
101 bool hasPreferred,
102 DicomTransferSyntax preferred);
97 103
98 public: 104 public:
99 explicit DicomStoreUserConnection(const DicomAssociationParameters& params); 105 explicit DicomStoreUserConnection(const DicomAssociationParameters& params);
100 106
101 const DicomAssociationParameters& GetParameters() const; 107 const DicomAssociationParameters& GetParameters() const;
138 void Transcode(std::string& sopClassUid /* out */, 144 void Transcode(std::string& sopClassUid /* out */,
139 std::string& sopInstanceUid /* out */, 145 std::string& sopInstanceUid /* out */,
140 IDicomTranscoder& transcoder, 146 IDicomTranscoder& transcoder,
141 const void* buffer, 147 const void* buffer,
142 size_t size, 148 size_t size,
149 DicomTransferSyntax preferredTransferSyntax,
143 bool hasMoveOriginator, 150 bool hasMoveOriginator,
144 const std::string& moveOriginatorAET, 151 const std::string& moveOriginatorAET,
145 uint16_t moveOriginatorID); 152 uint16_t moveOriginatorID);
146 }; 153 };
147 } 154 }