comparison Core/DicomNetworking/DicomStoreUserConnection.h @ 3880:cdd0cb5ec4e4 transcoding

DicomStoreUserConnection::LookupTranscoding()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 04 May 2020 22:10:55 +0200
parents a18b34dec94a
children f23ab7829a8d
comparison
equal deleted inserted replaced
3879:a18b34dec94a 3880:cdd0cb5ec4e4
67 67
68 class DicomStoreUserConnection : public boost::noncopyable 68 class DicomStoreUserConnection : public boost::noncopyable
69 { 69 {
70 private: 70 private:
71 typedef std::map<std::string, std::set<DicomTransferSyntax> > RegisteredClasses; 71 typedef std::map<std::string, std::set<DicomTransferSyntax> > RegisteredClasses;
72
73 // "ProposedOriginalClasses" keeps track of the storage classes
74 // that were proposed with a single transfer syntax
75 typedef std::set< std::pair<std::string, DicomTransferSyntax> > ProposedOriginalClasses;
72 76
73 DicomAssociationParameters parameters_; 77 DicomAssociationParameters parameters_;
74 boost::shared_ptr<DicomAssociation> association_; // "shared_ptr" is for PImpl 78 boost::shared_ptr<DicomAssociation> association_; // "shared_ptr" is for PImpl
75 RegisteredClasses registeredClasses_; 79 RegisteredClasses registeredClasses_;
80 ProposedOriginalClasses proposedOriginalClasses_;
76 bool proposeCommonClasses_; 81 bool proposeCommonClasses_;
77 bool proposeUncompressedSyntaxes_; 82 bool proposeUncompressedSyntaxes_;
78 bool proposeRetiredBigEndian_; 83 bool proposeRetiredBigEndian_;
79 84
80 // Return "false" if there is not enough room remaining in the association 85 // Return "false" if there is not enough room remaining in the association
83 88
84 void LookupParameters(std::string& sopClassUid, 89 void LookupParameters(std::string& sopClassUid,
85 std::string& sopInstanceUid, 90 std::string& sopInstanceUid,
86 DicomTransferSyntax& transferSyntax, 91 DicomTransferSyntax& transferSyntax,
87 DcmDataset& dataset); 92 DcmDataset& dataset);
93
94 bool LookupPresentationContext(uint8_t& presentationContextId,
95 const std::string& sopClassUid,
96 DicomTransferSyntax transferSyntax);
97
98 bool NegotiatePresentationContext(uint8_t& presentationContextId,
99 const std::string& sopClassUid,
100 DicomTransferSyntax transferSyntax);
88 101
89 void StoreInternal(std::string& sopClassUid, 102 void StoreInternal(std::string& sopClassUid,
90 std::string& sopInstanceUid, 103 std::string& sopInstanceUid,
91 DcmDataset& dataset, 104 DcmDataset& dataset,
92 const std::string& moveOriginatorAET, 105 const std::string& moveOriginatorAET,
131 } 144 }
132 145
133 void RegisterStorageClass(const std::string& sopClassUid, 146 void RegisterStorageClass(const std::string& sopClassUid,
134 DicomTransferSyntax syntax); 147 DicomTransferSyntax syntax);
135 148
136 // Should only be used if transcoding
137 // TODO => to private
138 bool LookupPresentationContext(uint8_t& presentationContextId,
139 const std::string& sopClassUid,
140 DicomTransferSyntax transferSyntax);
141
142 // TODO => to private
143 bool NegotiatePresentationContext(uint8_t& presentationContextId,
144 const std::string& sopClassUid,
145 DicomTransferSyntax transferSyntax);
146
147 void Store(std::string& sopClassUid, 149 void Store(std::string& sopClassUid,
148 std::string& sopInstanceUid, 150 std::string& sopInstanceUid,
149 const void* buffer, 151 const void* buffer,
150 size_t size, 152 size_t size,
151 const std::string& moveOriginatorAET, 153 const std::string& moveOriginatorAET,
156 const void* buffer, 158 const void* buffer,
157 size_t size) 159 size_t size)
158 { 160 {
159 Store(sopClassUid, sopInstanceUid, buffer, size, "", 0); // Not a C-Move 161 Store(sopClassUid, sopInstanceUid, buffer, size, "", 0); // Not a C-Move
160 } 162 }
163
164 bool LookupTranscoding(std::set<DicomTransferSyntax>& acceptedSyntaxes,
165 const std::string& sopClassUid,
166 DicomTransferSyntax sourceSyntax);
161 }; 167 };
162 } 168 }