comparison Core/DicomNetworking/DicomStoreUserConnection.h @ 3831:83ea6939293d

starting DicomStoreUserConnection::Store()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 10 Apr 2020 17:56:12 +0200
parents e82bd07c384e
children 5bba4d249422
comparison
equal deleted inserted replaced
3830:447880856ce8 3831:83ea6939293d
39 #include <boost/noncopyable.hpp> 39 #include <boost/noncopyable.hpp>
40 #include <set> 40 #include <set>
41 #include <stdint.h> // For uint8_t 41 #include <stdint.h> // For uint8_t
42 42
43 43
44 class DcmDataset;
45
44 namespace Orthanc 46 namespace Orthanc
45 { 47 {
46 /** 48 /**
47 49
48 Orthanc < 1.7.0: 50 Orthanc < 1.7.0:
60 Uncompressed | Same transfer syntax, or other uncompressed 62 Uncompressed | Same transfer syntax, or other uncompressed
61 63
62 **/ 64 **/
63 65
64 class DicomAssociation; // Forward declaration for PImpl design pattern 66 class DicomAssociation; // Forward declaration for PImpl design pattern
67 class ParsedDicomFile;
65 68
66 class DicomStoreUserConnection : public boost::noncopyable 69 class DicomStoreUserConnection : public boost::noncopyable
67 { 70 {
68 private: 71 private:
69 typedef std::map<std::string, std::set<DicomTransferSyntax> > StorageClasses; 72 typedef std::map<std::string, std::set<DicomTransferSyntax> > StorageClasses;
76 bool proposeRetiredBigEndian_; 79 bool proposeRetiredBigEndian_;
77 80
78 // Return "false" if there is not enough room remaining in the association 81 // Return "false" if there is not enough room remaining in the association
79 bool ProposeStorageClass(const std::string& sopClassUid, 82 bool ProposeStorageClass(const std::string& sopClassUid,
80 const std::set<DicomTransferSyntax>& syntaxes); 83 const std::set<DicomTransferSyntax>& syntaxes);
81 84
85 // Should only be used if transcoding
82 bool LookupPresentationContext(uint8_t& presentationContextId, 86 bool LookupPresentationContext(uint8_t& presentationContextId,
83 const std::string& sopClassUid, 87 const std::string& sopClassUid,
84 DicomTransferSyntax transferSyntax); 88 DicomTransferSyntax transferSyntax);
85 89
86 public: 90 public:
87 DicomStoreUserConnection(const DicomAssociationParameters& params); 91 DicomStoreUserConnection(const DicomAssociationParameters& params);
88 92
89 const DicomAssociationParameters& GetParameters() const 93 const DicomAssociationParameters& GetParameters() const
90 { 94 {
122 } 126 }
123 127
124 void PrepareStorageClass(const std::string& sopClassUid, 128 void PrepareStorageClass(const std::string& sopClassUid,
125 DicomTransferSyntax syntax); 129 DicomTransferSyntax syntax);
126 130
131 // TODO => to private
127 bool NegotiatePresentationContext(uint8_t& presentationContextId, 132 bool NegotiatePresentationContext(uint8_t& presentationContextId,
128 const std::string& sopClassUid, 133 const std::string& sopClassUid,
129 DicomTransferSyntax transferSyntax); 134 DicomTransferSyntax transferSyntax);
135
136 void Store(std::string& sopClassUid,
137 std::string& sopInstanceUid,
138 DcmDataset& dataset,
139 const std::string& moveOriginatorAET,
140 uint16_t moveOriginatorID);
141
142 void Store(std::string& sopClassUid,
143 std::string& sopInstanceUid,
144 ParsedDicomFile& parsed,
145 const std::string& moveOriginatorAET,
146 uint16_t moveOriginatorID);
147
148 void Store(std::string& sopClassUid,
149 std::string& sopInstanceUid,
150 const void* buffer,
151 size_t size,
152 const std::string& moveOriginatorAET,
153 uint16_t moveOriginatorID);
130 }; 154 };
131 } 155 }