Odil
A C++11 library for the DICOM standard
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 
12 #include "odil/message/Message.h"
13 #include "odil/odil.h"
14 #include "odil/registry.h"
15 #include "odil/Value.h"
16 
17 namespace odil
18 {
19 
20 namespace message
21 {
22 
24 class ODIL_API Response: public Message
25 {
26 public:
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)
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 
98 
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
Tag const ErrorID(0x0000, 0x0903)
#define ODIL_MESSAGE_MANDATORY_FIELD_INTEGER_MACRO(name, tag)
Definition: Message.h:61
int64_t Integer
Integer type.
Definition: Value.h:42
Base class for all DIMSE messages.
Definition: Message.h:76
#define ODIL_MESSAGE_OPTIONAL_FIELD_INTEGER_MACRO(name, tag)
Definition: Message.h:67
Definition: Association.h:24
Tag const AttributeIdentifierList(0x0000, 0x1005)
Tag const AffectedSOPInstanceUID(0x0000, 0x1000)
#define ODIL_API
Definition: odil.h:28
Tag const OffendingElement(0x0000, 0x0901)
Tag const MessageIDBeingRespondedTo(0x0000, 0x0120)
#define ODIL_MESSAGE_OPTIONAL_FIELD_STRING_MACRO(name, tag)
Definition: Message.h:70
Tag const ErrorComment(0x0000, 0x0902)
Base class for all DIMSE response messages.
Definition: Response.h:24
Status
General status codes, from PS3.7, C.
Definition: Response.h:28
Tag const Status(0x0000, 0x0900)