Medical Imaging Interaction Toolkit  2024.12.99-0da743f6
Medical Imaging Interaction Toolkit
mitk::Forms::QuestionWithOptions Class Reference

Base class for questions with options to choose from as response. More...

#include <mitkQuestionWithOptions.h>

Inheritance diagram for mitk::Forms::QuestionWithOptions:
Collaboration diagram for mitk::Forms::QuestionWithOptions:

Public Member Functions

 ~QuestionWithOptions () override
 
std::vector< std::string > GetResponsesAsStrings () const override
 Return the question's response(s) as strings. More...
 
void ClearResponses () override
 Clear the/all response(s). More...
 
bool IsComplete () const override
 Check if a question is considered to be answered completely. More...
 
size_t AddOption (const std::string &option)
 Add a non-exclusive option as possible answer to the question. More...
 
std::vector< std::string > GetOptions () const
 
- Public Member Functions inherited from mitk::Forms::Question
 Question ()
 
virtual ~Question ()
 
std::string GetQuestionText () const
 Get the literal question. More...
 
void SetQuestionText (const std::string &question)
 Set the literal question. More...
 
bool IsRequired () const
 Check whether a response to this question is required to complete a form. More...
 
void SetRequired (bool required=true)
 Set whether a resonse to this question is required to complete a form. More...
 
virtual std::string GetRequiredText () const
 Get the text that should be displayed to clearly mark a question as required. More...
 
virtual bool HasFileResponses () const
 Query whether the responses given to this question are file paths. More...
 
virtual std::vector< fs::path > SubmitFileResponses (const fs::path &basePath) const
 Attach response files to submission. More...
 
virtual std::string GetType () const =0
 Return the type of a question as string, e.g. "Multiple choice" or "Drop-down". More...
 
virtual QuestionCreateAnother () const =0
 Create a new instance of the derived question class type. More...
 
virtual void FromJSON (const nlohmann::ordered_json &j)=0
 Deserialize from JSON. More...
 
virtual void ToJSON (nlohmann::ordered_json &j) const =0
 Serialize to JSON. More...
 

Protected Member Functions

void AddResponse (size_t i)
 Add one of the possible answer options to the responses. More...
 
void RemoveResponse (size_t i)
 Remove one of the already given responses. More...
 
virtual void SetResponse (size_t i)
 Set one of the possible answer options as the single response. More...
 

Detailed Description

Base class for questions with options to choose from as response.

This base class represents both, questions with mutually exclusive options as well as questions with multiple answer options. Derived classes should use using-declarations to change the visibility of the respective protected member functions to public, i.e., SetResponse() vs. AddResponse() and RemoveResponse().

Definition at line 28 of file mitkQuestionWithOptions.h.

Constructor & Destructor Documentation

◆ ~QuestionWithOptions()

mitk::Forms::QuestionWithOptions::~QuestionWithOptions ( )
override

Member Function Documentation

◆ AddOption()

size_t mitk::Forms::QuestionWithOptions::AddOption ( const std::string &  option)

Add a non-exclusive option as possible answer to the question.

The option is appended to the list of already existing options.

Returns
The index of the option

◆ AddResponse()

void mitk::Forms::QuestionWithOptions::AddResponse ( size_t  i)
protected

Add one of the possible answer options to the responses.

Indexes to responses are inserted in ascending order.

See also
AddOption()

◆ ClearResponses()

void mitk::Forms::QuestionWithOptions::ClearResponses ( )
overridevirtual

Clear the/all response(s).

Implements mitk::Forms::Question.

Reimplemented in mitk::Forms::QuestionWithOtherOption.

◆ GetOptions()

std::vector<std::string> mitk::Forms::QuestionWithOptions::GetOptions ( ) const

◆ GetResponsesAsStrings()

std::vector<std::string> mitk::Forms::QuestionWithOptions::GetResponsesAsStrings ( ) const
overridevirtual

Return the question's response(s) as strings.

This is the single common generic interface for retrieving responses from all types of questions. It is typically used to store responses in text-based formats like CSV.

It is implemented as vector since certain types of questions like a checkboxes question may support multiple responses. Otherwise, return a vector with a single element.

std::vector<std::string> RhetoricalQuestion::GetResponsesAsStrings() const
{
return { m_Response };
}

Implements mitk::Forms::Question.

Reimplemented in mitk::Forms::QuestionWithOtherOption.

◆ IsComplete()

bool mitk::Forms::QuestionWithOptions::IsComplete ( ) const
overridevirtual

Check if a question is considered to be answered completely.

This method is typically called when IsRequired() returns true to determine whether the requirements are fulfilled.

Implements mitk::Forms::Question.

Reimplemented in mitk::Forms::QuestionWithOtherOption.

◆ RemoveResponse()

void mitk::Forms::QuestionWithOptions::RemoveResponse ( size_t  i)
protected

Remove one of the already given responses.

See also
AddOption(), AddResponse()

◆ SetResponse()

virtual void mitk::Forms::QuestionWithOptions::SetResponse ( size_t  i)
protectedvirtual

Set one of the possible answer options as the single response.

Note
This will remove any responses added by AddResponse().

Reimplemented in mitk::Forms::QuestionWithOtherOption.


The documentation for this class was generated from the following file: