9 #ifndef _dcfa5213_ad7e_4194_8b4b_e630aa0df2e8
10 #define _dcfa5213_ad7e_4194_8b4b_e630aa0df2e8
12 #include "dcmtkpp/DataSet.h"
13 #include "dcmtkpp/registry.h"
14 #include "dcmtkpp/Value.h"
19 #define DCMTKPP_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function) \
21 TValueType const & get_##name() const \
23 auto const & data = this->_command_set.function(tag); \
26 throw Exception("Empty element"); \
31 void set_##name(TValueType const & value) \
33 if(!this->_command_set.has(tag)) \
35 this->_command_set.add(tag); \
37 this->_command_set.function(tag) = { value }; \
40 #define DCMTKPP_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, TValueType, function) \
41 DCMTKPP_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, TValueType, function) \
42 bool has_##name() const \
44 return this->_command_set.has(tag);; \
46 void delete_##name() \
48 this->_command_set.remove(tag); \
51 #define DCMTKPP_MESSAGE_SET_OPTIONAL_FIELD_MACRO(dataset, name, tag, function) \
52 if(dataset.has(tag)) \
54 this->set_##name(dataset.function(tag, 0)); \
57 #define DCMTKPP_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(name, tag) \
58 DCMTKPP_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, Value::Integer, as_int)
60 #define DCMTKPP_MESSAGE_MANDATORY_FIELD_STRING_MACRO(name, tag) \
61 DCMTKPP_MESSAGE_MANDATORY_FIELD_MACRO(name, tag, Value::String, as_string)
63 #define DCMTKPP_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO(name, tag) \
64 DCMTKPP_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, Value::Integer, as_int)
66 #define DCMTKPP_MESSAGE_OPTIONAL_FIELD_STRING_MACRO(name, tag) \
67 DCMTKPP_MESSAGE_OPTIONAL_FIELD_MACRO(name, tag, Value::String, as_string)
96 N_EVENT_REPORT_RQ = 0x0100,
97 N_EVENT_REPORT_RSP = 0x8100,
105 N_ACTION_RQ = 0x0130,
106 N_ACTION_RSP = 0x8130,
108 N_CREATE_RQ = 0x0140,
109 N_CREATE_RSP = 0x8140,
111 N_DELETE_RQ = 0x0150,
112 N_DELETE_RSP = 0x8150,
165 DCMTKPP_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(
166 command_field, registry::CommandField)
178 #endif // _dcfa5213_ad7e_4194_8b4b_e630aa0df2e8
DataSet _command_set
Command set of the message.
Definition: Message.h:170
Definition: Association.cpp:22
void set_data_set(DataSet const &data_set)
Set the data set of the message.
Definition: Message.cpp:80
DataSet const & get_data_set() const
Return the data set of the message, raise an exception if no data set is present. ...
Definition: Message.cpp:69
Definition: Message.h:126
Definition: Message.h:116
DataSet _data_set
Data set of the message.
Definition: Message.h:173
bool has_data_set() const
Test whether as data set is present in the message.
Definition: Message.cpp:62
DataSet const & get_command_set() const
Return the command set of the message.
Definition: Message.cpp:55
DICOM Data set.
Definition: DataSet.h:66
virtual ~Message()
Destructor;.
Definition: Message.cpp:48
Base class for all DIMSE messages.
Definition: Message.h:72
void delete_data_set()
Delete the data set in this message.
Definition: Message.cpp:88
Message()
Create a message with an empty command set and an empty data set.
Definition: Message.cpp:20