Odil
A C++11 library for the DICOM standard
Loading...
Searching...
No Matches
Response.h
Go to the documentation of this file.
1/*************************************************************************
2 * odil - Copyright (C) Universite de Strasbourg
3 * Distributed under the terms of the CeCILL-B license, as published by
4 * the CEA-CNRS-INRIA. Refer to the LICENSE file or to
5 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
6 * for details.
7 ************************************************************************/
8
9#ifndef _0dd2e31e_212a_494a_a8d3_93b235336658
10#define _0dd2e31e_212a_494a_a8d3_93b235336658
11
13#include "odil/odil.h"
14#include "odil/registry.h"
15#include "odil/Value.h"
16
17namespace odil
18{
19
20namespace message
21{
22
25{
26public:
28 enum Status
29 {
30 Success=0x0000,
31 // Warning: 0001 or Bxxx
32 // Failure: Axxx or Cxxx
33 Cancel=0xFE00,
34 Pending=0xFF00,
35
36 // Warning Status Classes, PS3.7, C.3
37 AttributeListError=0x0107,
38 AttributeValueOutOfRange=0x0116,
39
40 // Failure Status Classes, PS3.7, C.4
41 SOPClassNotSupported=0x0122,
42 ClassInstanceConflict=0x0119,
43 DuplicateSOPInstance=0x0111,
44 DuplicateInvocation=0x0210,
45 InvalidArgumentValue=0x0115,
46 InvalidAttributeValue=0x0106,
47 InvalidObjectInstance=0x0117,
48 MissingAttribute=0x0120,
49 MissingAttributeValue=0x0121,
50 MistypedArgument=0x0212,
51 NoSuchArgument=0x0114,
52 NoSuchAttribute=0x0105,
53 NoSuchEventType=0x0113,
54 NoSuchSOPInstance=0x0112,
55 NoSuchSOPClass=0x0118,
56 ProcessingFailure=0x0110,
57 ResourceLimitation=0x0213,
58 UnrecognizedOperation=0x0211,
59 NoSuchActionType=0x0123,
60 RefusedNotAuthorized=0x0124,
61 };
62
64 static bool is_pending(Value::Integer status);
65
67 static bool is_warning(Value::Integer status);
68
70 static bool is_failure(Value::Integer status);
71
73 Response(Value::Integer message_id_being_responded_to, Value::Integer status);
74
81 Response(std::shared_ptr<Message const> message);
82
84 message_id_being_responded_to, registry::MessageIDBeingRespondedTo)
85 ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(status, registry::Status)
86
88 offending_element, registry::OffendingElement)
90 error_comment, registry::ErrorComment)
92 error_id, registry::ErrorID)
94 affected_sop_instance_uid, registry::AffectedSOPInstanceUID)
96 attribute_identifier_list, registry::AttributeIdentifierList)
97
99 bool is_pending() const;
100
102 bool is_warning() const;
103
105 bool is_failure() const;
106
108 void set_status_fields(std::shared_ptr<DataSet const> status_fields);
109};
110
111}
112
113}
114
115#endif // _0dd2e31e_212a_494a_a8d3_93b235336658
DICOM Data set.
Definition DataSet.h:30
int64_t Integer
Integer type.
Definition Value.h:42
Base class for all DIMSE messages.
Definition Message.h:77
Base class for all DIMSE response messages.
Definition Response.h:25
static bool is_failure(Value::Integer status)
Test whether the status class is failure.
static bool is_warning(Value::Integer status)
Test whether the status class is warning.
Response(Value::Integer message_id_being_responded_to, Value::Integer status)
Create a response with given message id and status;.
static bool is_pending(Value::Integer status)
Test whether the status class is pending.
ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(message_id_being_responded_to, registry::MessageIDBeingRespondedTo) ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO(offending_element
Response(std::shared_ptr< Message const > message)
Create a response from the Message ID Being Responded To and the Status stored in the message command...
Status
General status codes, from PS3.7, C.
Definition Response.h:29
#define ODIL_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO(name, tag)
Definition Message.h:67
#define ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO(name, tag)
Definition Message.h:70
#define ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(name, tag)
Definition Message.h:61
Definition Association.h:25
#define ODIL_API
Definition odil.h:28