11#ifndef PACS_NETWORK_PDU_ENCODER_HPP
12#define PACS_NETWORK_PDU_ENCODER_HPP
111 uint8_t source, uint8_t reason);
141 const std::vector<presentation_data_value>& pdvs);
160 static void write_uint16_be(std::vector<uint8_t>& buffer, uint16_t value);
165 static void write_uint32_be(std::vector<uint8_t>& buffer, uint32_t value);
171 const std::string& ae_title);
176 static void write_uid(std::vector<uint8_t>& buffer,
177 const std::string&
uid);
188 const std::string& context_name);
213 const std::string& called_ae,
214 const std::string& calling_ae);
Encoder for DICOM PDU (Protocol Data Unit) messages.
static void write_uint32_be(std::vector< uint8_t > &buffer, uint32_t value)
Writes a 32-bit unsigned integer in big-endian format.
static std::vector< uint8_t > encode_associate_rq(const associate_rq &rq)
Encodes an A-ASSOCIATE-RQ PDU.
static std::vector< uint8_t > encode_release_rp()
Encodes an A-RELEASE-RP PDU.
static void encode_associate_header(std::vector< uint8_t > &buffer, pdu_type type, const std::string &called_ae, const std::string &calling_ae)
Encodes the common header portion for ASSOCIATE-RQ/AC PDUs.
static std::vector< uint8_t > encode_p_data_tf(const std::vector< presentation_data_value > &pdvs)
Encodes a P-DATA-TF PDU.
static void encode_user_information(std::vector< uint8_t > &buffer, const user_information &user_info)
Encodes a User Information item.
static std::vector< uint8_t > encode_associate_ac(const associate_ac &ac)
Encodes an A-ASSOCIATE-AC PDU.
static void encode_presentation_context_rq(std::vector< uint8_t > &buffer, const presentation_context_rq &pc)
Encodes a Presentation Context item for A-ASSOCIATE-RQ.
static void update_pdu_length(std::vector< uint8_t > &buffer)
Updates the PDU length field at position 2-5.
static void encode_presentation_context_ac(std::vector< uint8_t > &buffer, const presentation_context_ac &pc)
Encodes a Presentation Context item for A-ASSOCIATE-AC.
static void write_ae_title(std::vector< uint8_t > &buffer, const std::string &ae_title)
Writes an AE Title (16 bytes, space-padded).
static std::vector< uint8_t > encode_associate_rj(const associate_rj &rj)
Encodes an A-ASSOCIATE-RJ PDU.
static std::vector< uint8_t > encode_release_rq()
Encodes an A-RELEASE-RQ PDU.
static std::vector< uint8_t > encode_abort(uint8_t source, uint8_t reason)
Encodes an A-ABORT PDU.
static void write_uint16_be(std::vector< uint8_t > &buffer, uint16_t value)
Writes a 16-bit unsigned integer in big-endian format.
static void write_uid(std::vector< uint8_t > &buffer, const std::string &uid)
Writes a UID string.
static void encode_application_context(std::vector< uint8_t > &buffer, const std::string &context_name)
Encodes an Application Context item.
pdu_type
PDU (Protocol Data Unit) types as defined in DICOM PS3.8.
abort_reason
Abort reason values when source is service-provider.
abort_source
Abort source values.
Presentation Context for A-ASSOCIATE-AC.
Presentation Context for A-ASSOCIATE-RQ.
Presentation Data Value (PDV) item for P-DATA-TF.