ImFusion SDK 4.3
DicomParameter< T > Class Template Reference

#include <ImFusion/Dicom/DicomParameter.h>

A specialized Parameter<T> class that can additionally serialize from and to DICOM. More...

+ Inheritance diagram for DicomParameter< T >:

Detailed Description

template<typename T>
class ImFusion::Dicom::DicomParameter< T >

A specialized Parameter<T> class that can additionally serialize from and to DICOM.

Especially useful for DataComponents that represent a DICOM module. This class can be used in non-DCMTK code, but instantiating it will require DCMTK. Because of this limitation, it can currently only be used with bool, int, double and std::string.

Example:

struct MyStruct: public Configurable {
DicomParameter<std::string> p_patientName{"patientName", "", *this, DCM_PatientName};
void loadFromDicom(DcmItem& dataset) { DicomParameterHelper::loadFromDicom(dataset, m_params); }
void saveToDicom(DcmItem& dataset) { DicomParameterHelper::saveToDicom(dataset, m_params); }
}
MyStruct test;
test.p_patientName = "Totorro";
DcmDataset dataset;
test.saveToDicom(dataset);
test.loadFromDicom(dataset);
std::vector< Param > m_params
List of all registered Parameter and SubProperty instances.
Definition Configurable.h:121

Public Member Functions

template<typename U>
 DicomParameter (const std::string &name, U &&value, const DcmTag &tag, WritePolicy writePolicy=WritePolicy::Always)
 
template<typename U>
 DicomParameter (const std::string &name, U &&value, Configurable *parent, const DcmTag &tag, WritePolicy writePolicy=WritePolicy::Always)
 
template<typename U>
 DicomParameter (const std::string &name, U &&value, Configurable &parent, const DcmTag &tag, WritePolicy writePolicy=WritePolicy::Always)
 
 DicomParameter (const DicomParameter< T > &other)
 
DicomParameter< T > & operator= (const DicomParameter< T > &other)
 
template<typename U>
DicomParameter< T > & operator= (U &&value)
 
void load (DcmItem &item) override
 Loads the parameter value from the given dataset.
 
void save (DcmItem &item) const override
 Saves the parameter value to the given dataset.
 
- Public Member Functions inherited from Parameter< T >
template<typename U>
 Parameter (const std::string &name, U &&value)
 Creates a Parameter that will be configured under the given name and with the given initial value.
 
template<typename U>
 Parameter (const std::string &name, U &&value, Configurable *parent)
 Create a Parameter that is directly registered with the parent Configurable instance.
 
template<typename U>
 Parameter (const std::string &name, U &&value, Configurable &parent)
 
 Parameter (const Parameter< T > &other)
 
 Parameter (Parameter< T > &&other)
 
Parameter< T > & operator= (const Parameter< T > &other)
 Assigns value, default value, type, and attributes from another Parameter instance of the same type and emits signalValueChanged.
 
Parameter< T > & operator= (Parameter< T > &other)
 Assigns value, default value, type, and attributes from another Parameter instance of the same type and emits signalValueChanged.
 
Parameter< T > & operator= (Parameter< T > &&other)
 Assigns value, default value, type, and attributes from another Parameter instance of the same type and emits signalValueChanged.
 
template<typename U>
Parameter< T > & operator= (U &&value)
 Updates the Parameter's stored value, emits the signalValueChanged if needed.
 
template<typename U>
void setValue (U &&value)
 Updates the Parameter's stored value, emits the signalValueChanged if needed.
 
const T & value () const
 Returns the currently stored value.
 
 operator const T & () const
 Returns the currently stored value.
 
void setDefault (const T &defaultValue)
 Sets the default value for this parameter.
 
void removeDefault ()
 Removes the default value for this parameter.
 
std::optional< T > defaultValue () const
 Returns the default value of this parameter if specified.
 
void setType (Properties::ParamType type)
 Sets an optional custom ParamType.
 
template<typename Q = T>
std::enable_if_t< std::is_arithmetic_v< Q > > setRange (T min, T max)
 Set the min/max parameter attributes of arithmetic parameters.
 
template<typename Q = T>
std::enable_if_t< std::is_same_v< Q, std::optional< typename Q::value_type > > &&std::is_arithmetic_v< typename Q::value_type > > setRange (typename Q::value_type min, typename Q::value_type max)
 Set the min/max parameter attributes of optional arithmetic parameters.
 
void configure (const Properties *p) override
 Configure this parameter/sub property by de-serializing the given Properties.
 
void configuration (Properties *p) const override
 Serialize the current parameter/sub property state into the given Properties object.
 
- Public Member Functions inherited from ParameterBase
 ParameterBase (const std::string &name)
 
const Configurableparent () const
 Return the parent Configurable instance that this parameter is registered with.
 
virtual const std::stringname () const
 Returns parameter name, can only be set during construction.
 
void setAttribute (const std::string &key, const std::string &value)
 Add the given attribute key-value pair to the set of parameter attributes.
 
void removeAttribute (const std::string &key)
 Remove the attribute with the given key.
 
const std::map< std::string, std::string > & attributes () const
 Get the attribute map.
 
void setLabel (const std::string &label)
 Sets an optional label for the Parameter if displayed in the UI.
 
void addDeprecatedName (const std::string &deprecatedName)
 Adds an optional alternative parameter name that should be used for param lookup for during configure() in case de-serialization from m_name was not successful.
 
const std::vector< std::string > & deprecatedNames () const
 Returns the list of deprecated parameter names that should be used for param lookup (see addDeprecatedName()).
 
- Public Member Functions inherited from DicomParameterBase
 DicomParameterBase (const DcmTag &tag, WritePolicy policy)
 
 DicomParameterBase (const DicomParameterBase &other)
 
DicomParameterBaseoperator= (const DicomParameterBase &other)
 

Additional Inherited Members

- Public Attributes inherited from ParameterBase
Signal signalValueChanged
 Signal gets emitted when the underlying value of the Parameter/SubProperty has changed (either through setValue() or configure()).
 
- Protected Member Functions inherited from ParameterBase
void setParentFromCopy (const ParameterBase &other)
 Helper function to be called from a copy/move ctor in order to correctly set the parent relation ship to the new parent Configurable.
 
- Protected Attributes inherited from Parameter< T >
m_value
 
std::optional< T > m_defaultValue
 
Properties::ParamType m_type = Properties::ParamType::Unknown
 
- Protected Attributes inherited from ParameterBase
Configurablem_parent = nullptr
 
const std::string m_name
 
std::vector< std::stringm_deprecatedNames
 
std::map< std::string, std::stringm_attributes
 
- Protected Attributes inherited from DicomParameterBase
Impl * m_impl
 

Member Function Documentation

◆ load()

template<typename T>
void load ( DcmItem & item)
overridevirtual

Loads the parameter value from the given dataset.

If the dataset does not contain the tag or there is an error retrieving the value, the default value of the parameter will be used. If the parameter does not have an default value, the value remains unchanged.

Implements DicomParameterBase.

◆ save()

template<typename T>
void save ( DcmItem & item) const
overridevirtual

Saves the parameter value to the given dataset.

This overwrites any existing value with the same tag. Depending on the WritePolicy, empty values will not be written (and actively removed if already existing).

Implements DicomParameterBase.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close