1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/comprehendmedical/ComprehendMedical_EXPORTS.h>
8 #include <aws/comprehendmedical/model/ICD10CMAttributeType.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/comprehendmedical/model/ICD10CMEntityType.h>
12 #include <aws/comprehendmedical/model/ICD10CMRelationshipType.h>
13 #include <aws/comprehendmedical/model/ICD10CMTrait.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace ComprehendMedical
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p>The detected attributes that relate to an entity. This includes an extracted
33    * segment of the text that is an attribute of an entity, or otherwise related to
34    * an entity. InferICD10CM detects the following attributes:
35    * <code>Direction</code>, <code>System, Organ or Site</code>, and
36    * <code>Acuity</code>.</p><p><h3>See Also:</h3>   <a
37    * href="http://docs.aws.amazon.com/goto/WebAPI/comprehendmedical-2018-10-30/ICD10CMAttribute">AWS
38    * API Reference</a></p>
39    */
40   class AWS_COMPREHENDMEDICAL_API ICD10CMAttribute
41   {
42   public:
43     ICD10CMAttribute();
44     ICD10CMAttribute(Aws::Utils::Json::JsonView jsonValue);
45     ICD10CMAttribute& operator=(Aws::Utils::Json::JsonView jsonValue);
46     Aws::Utils::Json::JsonValue Jsonize() const;
47 
48 
49     /**
50      * <p>The type of attribute. InferICD10CM detects entities of the type
51      * <code>DX_NAME</code>. </p>
52      */
GetType()53     inline const ICD10CMAttributeType& GetType() const{ return m_type; }
54 
55     /**
56      * <p>The type of attribute. InferICD10CM detects entities of the type
57      * <code>DX_NAME</code>. </p>
58      */
TypeHasBeenSet()59     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
60 
61     /**
62      * <p>The type of attribute. InferICD10CM detects entities of the type
63      * <code>DX_NAME</code>. </p>
64      */
SetType(const ICD10CMAttributeType & value)65     inline void SetType(const ICD10CMAttributeType& value) { m_typeHasBeenSet = true; m_type = value; }
66 
67     /**
68      * <p>The type of attribute. InferICD10CM detects entities of the type
69      * <code>DX_NAME</code>. </p>
70      */
SetType(ICD10CMAttributeType && value)71     inline void SetType(ICD10CMAttributeType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
72 
73     /**
74      * <p>The type of attribute. InferICD10CM detects entities of the type
75      * <code>DX_NAME</code>. </p>
76      */
WithType(const ICD10CMAttributeType & value)77     inline ICD10CMAttribute& WithType(const ICD10CMAttributeType& value) { SetType(value); return *this;}
78 
79     /**
80      * <p>The type of attribute. InferICD10CM detects entities of the type
81      * <code>DX_NAME</code>. </p>
82      */
WithType(ICD10CMAttributeType && value)83     inline ICD10CMAttribute& WithType(ICD10CMAttributeType&& value) { SetType(std::move(value)); return *this;}
84 
85 
86     /**
87      * <p>The level of confidence that Amazon Comprehend Medical has that the segment
88      * of text is correctly recognized as an attribute.</p>
89      */
GetScore()90     inline double GetScore() const{ return m_score; }
91 
92     /**
93      * <p>The level of confidence that Amazon Comprehend Medical has that the segment
94      * of text is correctly recognized as an attribute.</p>
95      */
ScoreHasBeenSet()96     inline bool ScoreHasBeenSet() const { return m_scoreHasBeenSet; }
97 
98     /**
99      * <p>The level of confidence that Amazon Comprehend Medical has that the segment
100      * of text is correctly recognized as an attribute.</p>
101      */
SetScore(double value)102     inline void SetScore(double value) { m_scoreHasBeenSet = true; m_score = value; }
103 
104     /**
105      * <p>The level of confidence that Amazon Comprehend Medical has that the segment
106      * of text is correctly recognized as an attribute.</p>
107      */
WithScore(double value)108     inline ICD10CMAttribute& WithScore(double value) { SetScore(value); return *this;}
109 
110 
111     /**
112      * <p>The level of confidence that Amazon Comprehend Medical has that this
113      * attribute is correctly related to this entity.</p>
114      */
GetRelationshipScore()115     inline double GetRelationshipScore() const{ return m_relationshipScore; }
116 
117     /**
118      * <p>The level of confidence that Amazon Comprehend Medical has that this
119      * attribute is correctly related to this entity.</p>
120      */
RelationshipScoreHasBeenSet()121     inline bool RelationshipScoreHasBeenSet() const { return m_relationshipScoreHasBeenSet; }
122 
123     /**
124      * <p>The level of confidence that Amazon Comprehend Medical has that this
125      * attribute is correctly related to this entity.</p>
126      */
SetRelationshipScore(double value)127     inline void SetRelationshipScore(double value) { m_relationshipScoreHasBeenSet = true; m_relationshipScore = value; }
128 
129     /**
130      * <p>The level of confidence that Amazon Comprehend Medical has that this
131      * attribute is correctly related to this entity.</p>
132      */
WithRelationshipScore(double value)133     inline ICD10CMAttribute& WithRelationshipScore(double value) { SetRelationshipScore(value); return *this;}
134 
135 
136     /**
137      * <p>The numeric identifier for this attribute. This is a monotonically increasing
138      * id unique within this response rather than a global unique identifier.</p>
139      */
GetId()140     inline int GetId() const{ return m_id; }
141 
142     /**
143      * <p>The numeric identifier for this attribute. This is a monotonically increasing
144      * id unique within this response rather than a global unique identifier.</p>
145      */
IdHasBeenSet()146     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
147 
148     /**
149      * <p>The numeric identifier for this attribute. This is a monotonically increasing
150      * id unique within this response rather than a global unique identifier.</p>
151      */
SetId(int value)152     inline void SetId(int value) { m_idHasBeenSet = true; m_id = value; }
153 
154     /**
155      * <p>The numeric identifier for this attribute. This is a monotonically increasing
156      * id unique within this response rather than a global unique identifier.</p>
157      */
WithId(int value)158     inline ICD10CMAttribute& WithId(int value) { SetId(value); return *this;}
159 
160 
161     /**
162      * <p>The 0-based character offset in the input text that shows where the attribute
163      * begins. The offset returns the UTF-8 code point in the string.</p>
164      */
GetBeginOffset()165     inline int GetBeginOffset() const{ return m_beginOffset; }
166 
167     /**
168      * <p>The 0-based character offset in the input text that shows where the attribute
169      * begins. The offset returns the UTF-8 code point in the string.</p>
170      */
BeginOffsetHasBeenSet()171     inline bool BeginOffsetHasBeenSet() const { return m_beginOffsetHasBeenSet; }
172 
173     /**
174      * <p>The 0-based character offset in the input text that shows where the attribute
175      * begins. The offset returns the UTF-8 code point in the string.</p>
176      */
SetBeginOffset(int value)177     inline void SetBeginOffset(int value) { m_beginOffsetHasBeenSet = true; m_beginOffset = value; }
178 
179     /**
180      * <p>The 0-based character offset in the input text that shows where the attribute
181      * begins. The offset returns the UTF-8 code point in the string.</p>
182      */
WithBeginOffset(int value)183     inline ICD10CMAttribute& WithBeginOffset(int value) { SetBeginOffset(value); return *this;}
184 
185 
186     /**
187      * <p>The 0-based character offset in the input text that shows where the attribute
188      * ends. The offset returns the UTF-8 code point in the string.</p>
189      */
GetEndOffset()190     inline int GetEndOffset() const{ return m_endOffset; }
191 
192     /**
193      * <p>The 0-based character offset in the input text that shows where the attribute
194      * ends. The offset returns the UTF-8 code point in the string.</p>
195      */
EndOffsetHasBeenSet()196     inline bool EndOffsetHasBeenSet() const { return m_endOffsetHasBeenSet; }
197 
198     /**
199      * <p>The 0-based character offset in the input text that shows where the attribute
200      * ends. The offset returns the UTF-8 code point in the string.</p>
201      */
SetEndOffset(int value)202     inline void SetEndOffset(int value) { m_endOffsetHasBeenSet = true; m_endOffset = value; }
203 
204     /**
205      * <p>The 0-based character offset in the input text that shows where the attribute
206      * ends. The offset returns the UTF-8 code point in the string.</p>
207      */
WithEndOffset(int value)208     inline ICD10CMAttribute& WithEndOffset(int value) { SetEndOffset(value); return *this;}
209 
210 
211     /**
212      * <p>The segment of input text which contains the detected attribute.</p>
213      */
GetText()214     inline const Aws::String& GetText() const{ return m_text; }
215 
216     /**
217      * <p>The segment of input text which contains the detected attribute.</p>
218      */
TextHasBeenSet()219     inline bool TextHasBeenSet() const { return m_textHasBeenSet; }
220 
221     /**
222      * <p>The segment of input text which contains the detected attribute.</p>
223      */
SetText(const Aws::String & value)224     inline void SetText(const Aws::String& value) { m_textHasBeenSet = true; m_text = value; }
225 
226     /**
227      * <p>The segment of input text which contains the detected attribute.</p>
228      */
SetText(Aws::String && value)229     inline void SetText(Aws::String&& value) { m_textHasBeenSet = true; m_text = std::move(value); }
230 
231     /**
232      * <p>The segment of input text which contains the detected attribute.</p>
233      */
SetText(const char * value)234     inline void SetText(const char* value) { m_textHasBeenSet = true; m_text.assign(value); }
235 
236     /**
237      * <p>The segment of input text which contains the detected attribute.</p>
238      */
WithText(const Aws::String & value)239     inline ICD10CMAttribute& WithText(const Aws::String& value) { SetText(value); return *this;}
240 
241     /**
242      * <p>The segment of input text which contains the detected attribute.</p>
243      */
WithText(Aws::String && value)244     inline ICD10CMAttribute& WithText(Aws::String&& value) { SetText(std::move(value)); return *this;}
245 
246     /**
247      * <p>The segment of input text which contains the detected attribute.</p>
248      */
WithText(const char * value)249     inline ICD10CMAttribute& WithText(const char* value) { SetText(value); return *this;}
250 
251 
252     /**
253      * <p>The contextual information for the attribute. The traits recognized by
254      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
255      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
256      */
GetTraits()257     inline const Aws::Vector<ICD10CMTrait>& GetTraits() const{ return m_traits; }
258 
259     /**
260      * <p>The contextual information for the attribute. The traits recognized by
261      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
262      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
263      */
TraitsHasBeenSet()264     inline bool TraitsHasBeenSet() const { return m_traitsHasBeenSet; }
265 
266     /**
267      * <p>The contextual information for the attribute. The traits recognized by
268      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
269      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
270      */
SetTraits(const Aws::Vector<ICD10CMTrait> & value)271     inline void SetTraits(const Aws::Vector<ICD10CMTrait>& value) { m_traitsHasBeenSet = true; m_traits = value; }
272 
273     /**
274      * <p>The contextual information for the attribute. The traits recognized by
275      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
276      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
277      */
SetTraits(Aws::Vector<ICD10CMTrait> && value)278     inline void SetTraits(Aws::Vector<ICD10CMTrait>&& value) { m_traitsHasBeenSet = true; m_traits = std::move(value); }
279 
280     /**
281      * <p>The contextual information for the attribute. The traits recognized by
282      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
283      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
284      */
WithTraits(const Aws::Vector<ICD10CMTrait> & value)285     inline ICD10CMAttribute& WithTraits(const Aws::Vector<ICD10CMTrait>& value) { SetTraits(value); return *this;}
286 
287     /**
288      * <p>The contextual information for the attribute. The traits recognized by
289      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
290      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
291      */
WithTraits(Aws::Vector<ICD10CMTrait> && value)292     inline ICD10CMAttribute& WithTraits(Aws::Vector<ICD10CMTrait>&& value) { SetTraits(std::move(value)); return *this;}
293 
294     /**
295      * <p>The contextual information for the attribute. The traits recognized by
296      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
297      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
298      */
AddTraits(const ICD10CMTrait & value)299     inline ICD10CMAttribute& AddTraits(const ICD10CMTrait& value) { m_traitsHasBeenSet = true; m_traits.push_back(value); return *this; }
300 
301     /**
302      * <p>The contextual information for the attribute. The traits recognized by
303      * InferICD10CM are <code>DIAGNOSIS</code>, <code>SIGN</code>,
304      * <code>SYMPTOM</code>, and <code>NEGATION</code>.</p>
305      */
AddTraits(ICD10CMTrait && value)306     inline ICD10CMAttribute& AddTraits(ICD10CMTrait&& value) { m_traitsHasBeenSet = true; m_traits.push_back(std::move(value)); return *this; }
307 
308 
309     /**
310      * <p>The category of attribute. Can be either of <code>DX_NAME</code> or
311      * <code>TIME_EXPRESSION</code>.</p>
312      */
GetCategory()313     inline const ICD10CMEntityType& GetCategory() const{ return m_category; }
314 
315     /**
316      * <p>The category of attribute. Can be either of <code>DX_NAME</code> or
317      * <code>TIME_EXPRESSION</code>.</p>
318      */
CategoryHasBeenSet()319     inline bool CategoryHasBeenSet() const { return m_categoryHasBeenSet; }
320 
321     /**
322      * <p>The category of attribute. Can be either of <code>DX_NAME</code> or
323      * <code>TIME_EXPRESSION</code>.</p>
324      */
SetCategory(const ICD10CMEntityType & value)325     inline void SetCategory(const ICD10CMEntityType& value) { m_categoryHasBeenSet = true; m_category = value; }
326 
327     /**
328      * <p>The category of attribute. Can be either of <code>DX_NAME</code> or
329      * <code>TIME_EXPRESSION</code>.</p>
330      */
SetCategory(ICD10CMEntityType && value)331     inline void SetCategory(ICD10CMEntityType&& value) { m_categoryHasBeenSet = true; m_category = std::move(value); }
332 
333     /**
334      * <p>The category of attribute. Can be either of <code>DX_NAME</code> or
335      * <code>TIME_EXPRESSION</code>.</p>
336      */
WithCategory(const ICD10CMEntityType & value)337     inline ICD10CMAttribute& WithCategory(const ICD10CMEntityType& value) { SetCategory(value); return *this;}
338 
339     /**
340      * <p>The category of attribute. Can be either of <code>DX_NAME</code> or
341      * <code>TIME_EXPRESSION</code>.</p>
342      */
WithCategory(ICD10CMEntityType && value)343     inline ICD10CMAttribute& WithCategory(ICD10CMEntityType&& value) { SetCategory(std::move(value)); return *this;}
344 
345 
346     /**
347      * <p>The type of relationship between the entity and attribute. Type for the
348      * relationship can be either of <code>OVERLAP</code> or
349      * <code>SYSTEM_ORGAN_SITE</code>.</p>
350      */
GetRelationshipType()351     inline const ICD10CMRelationshipType& GetRelationshipType() const{ return m_relationshipType; }
352 
353     /**
354      * <p>The type of relationship between the entity and attribute. Type for the
355      * relationship can be either of <code>OVERLAP</code> or
356      * <code>SYSTEM_ORGAN_SITE</code>.</p>
357      */
RelationshipTypeHasBeenSet()358     inline bool RelationshipTypeHasBeenSet() const { return m_relationshipTypeHasBeenSet; }
359 
360     /**
361      * <p>The type of relationship between the entity and attribute. Type for the
362      * relationship can be either of <code>OVERLAP</code> or
363      * <code>SYSTEM_ORGAN_SITE</code>.</p>
364      */
SetRelationshipType(const ICD10CMRelationshipType & value)365     inline void SetRelationshipType(const ICD10CMRelationshipType& value) { m_relationshipTypeHasBeenSet = true; m_relationshipType = value; }
366 
367     /**
368      * <p>The type of relationship between the entity and attribute. Type for the
369      * relationship can be either of <code>OVERLAP</code> or
370      * <code>SYSTEM_ORGAN_SITE</code>.</p>
371      */
SetRelationshipType(ICD10CMRelationshipType && value)372     inline void SetRelationshipType(ICD10CMRelationshipType&& value) { m_relationshipTypeHasBeenSet = true; m_relationshipType = std::move(value); }
373 
374     /**
375      * <p>The type of relationship between the entity and attribute. Type for the
376      * relationship can be either of <code>OVERLAP</code> or
377      * <code>SYSTEM_ORGAN_SITE</code>.</p>
378      */
WithRelationshipType(const ICD10CMRelationshipType & value)379     inline ICD10CMAttribute& WithRelationshipType(const ICD10CMRelationshipType& value) { SetRelationshipType(value); return *this;}
380 
381     /**
382      * <p>The type of relationship between the entity and attribute. Type for the
383      * relationship can be either of <code>OVERLAP</code> or
384      * <code>SYSTEM_ORGAN_SITE</code>.</p>
385      */
WithRelationshipType(ICD10CMRelationshipType && value)386     inline ICD10CMAttribute& WithRelationshipType(ICD10CMRelationshipType&& value) { SetRelationshipType(std::move(value)); return *this;}
387 
388   private:
389 
390     ICD10CMAttributeType m_type;
391     bool m_typeHasBeenSet;
392 
393     double m_score;
394     bool m_scoreHasBeenSet;
395 
396     double m_relationshipScore;
397     bool m_relationshipScoreHasBeenSet;
398 
399     int m_id;
400     bool m_idHasBeenSet;
401 
402     int m_beginOffset;
403     bool m_beginOffsetHasBeenSet;
404 
405     int m_endOffset;
406     bool m_endOffsetHasBeenSet;
407 
408     Aws::String m_text;
409     bool m_textHasBeenSet;
410 
411     Aws::Vector<ICD10CMTrait> m_traits;
412     bool m_traitsHasBeenSet;
413 
414     ICD10CMEntityType m_category;
415     bool m_categoryHasBeenSet;
416 
417     ICD10CMRelationshipType m_relationshipType;
418     bool m_relationshipTypeHasBeenSet;
419   };
420 
421 } // namespace Model
422 } // namespace ComprehendMedical
423 } // namespace Aws
424