MeVisLab Toolbox Reference
ml::DicomCIDEditTagInterface Class Reference

Manages a module field interface to edit a list of CID value from a given table. More...

#include <mlDicomCIDEditTagInterface.h>

Inheritance diagram for ml::DicomCIDEditTagInterface:
ml::DicomModifyFieldAddOnBase ml::DicomModifyList ml::FieldAddOnBase ml::Base

Public Member Functions

 DicomCIDEditTagInterface (Module &modRef, const char *const CIDGroupTable[][CIDGroups::NUM_CID_COLUMNS], size_t CIDGroupTableSize, const std::string &sequenceName, size_t numAllowedEntries, bool zeroEntriesAllowed, const std::string &cidEntryDefault="")
 Constructor, setting the reference of the module for which the fields shall be managed. More...
 
void addFields () override
 Add fields to field container of module. More...
 
virtual void setCIDEntryDefault ()
 Initializes _cidEntryFld to the default value as described for constructor parameter cidEntryDefault (which may cause side effects due to the field change). More...
 
void handleFieldActivationChanges () override
 Handle class changes according to Module::activateAttachments. More...
 
FieldAddOnBase::FieldChangeState handleFieldChanges (Field *field) override
 Handle field notifications according to Module::activateAttachments with a return of field change state. More...
 
void inheritValues (DCMTree::Const_TreePtr dcmTree) override
 Implements the copy of tag values from the given dcmTree to the fields. More...
 
std::string applyModifications (DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos=nullptr) override
 See DicomModifyFieldAddOnBase::applyModifications() for documentation. More...
 
std::string checkConsistency () const override
 Checks for invalid parameters; return textual description on error, or empty string on success. More...
 
BoolFieldgetMakeGUIInsensitiveFld ()
 Return reference to _makeGUIInsensitiveFld to allow modules hosting this add to change sensitivity. More...
 
void setActive (bool active)
 Sets flag which (de)activates this FieldAddOn; if deactivated: checkConsistency always returns an empty string and applyModifications does not change dcmTree. More...
 
bool isActive () const
 Returns true if FieldAddOn is active,,otherwise false. More...
 
ReleaseToolsString::StringVector getCodeSequence () const
 Returns the sequence of codes which is managed by the editor as string vector; always returns an empty sequence if the FieldAddOn is not active. More...
 
- Public Member Functions inherited from ml::DicomModifyFieldAddOnBase
 DicomModifyFieldAddOnBase (FieldContainer &fieldContainerRef, size_t numInstances=1, bool createInputModifyTagsPluginBaseConnectorField=false, bool createOutputModifyTagsPluginBaseConnectorField=false)
 Constructor, setting the reference of the FieldContainer managing the fields, the number of field instances to create and optionally input and output fields to create modification pipelines. More...
 
 ~DicomModifyFieldAddOnBase () override
 Destructor resetting connector fields if they exist. More...
 
size_t getNumInstances () const
 Returns the number of instances to be created by derived fields. More...
 
BaseFieldgetOutputModifierListFld () const
 Provide access to output base field if it was created. More...
 
BaseFieldgetInputModifierListFld () const
 Provide access to input base connector field if it was created. More...
 
- Public Member Functions inherited from ml::DicomModifyList
 DicomModifyList ()
 Constructor creating an empty list of tag modifiers and setting the optional input plugin with a concatenated DicomModifyList. More...
 
 ~DicomModifyList () override
 Destructor also destroying all of its stored Modifiers. More...
 
void addModifier (DicomModifyBase *modifier, bool atEnd=true)
 Add an object derived from DicomModifyBase which then will be owned (and on destruction deleted) by this. More...
 
void clear ()
 Makes modifier array empty and deletes all of them. More...
 
std::vector< DicomModifyBase * > & getModifierList ()
 Get direct access to internal list to allow callers direct manipulations which, however, must obey the restriction that ownership belongs to *this, i.e. More...
 
const std::vector< DicomModifyBase * > & getModifierList () const
 Same as getModifierList() only for constant access. More...
 
void setInputPlugin (DicomModifyList *inputPlugin=nullptr)
 Sets an optional plugin to be called by applyModififcations or resets it to nullptr; the input is called after the objects in _modfiers list. More...
 
DicomModifyListgetInputPlugin () const
 Returns the optional plugin to be called by applyModififcations. More...
 
- Public Member Functions inherited from ml::Base
 Base ()
 Constructor. More...
 
virtual ~Base ()
 Destructor. More...
 
virtual BasedeepCopy () const
 Set addStateToTree version number that can be accessed via getAddStateVersion() More...
 
bool isOfAllowedType (const std::vector< const RuntimeType * > &types) const
 Check if this object's type is equal to or derived from one of the types given in the argument. More...
 
virtual bool isRefCountedBase () const
 Returns if the instance is derived from RefCountedBase. More...
 
virtual std::string detailString () const
 Return a string describing this object. More...
 
virtual bool implementsPersistence (PersistenceInterface) const
 Override this method to declare which persistence interfaces are implemented by your derived class. More...
 
virtual std::string persistentState () const
 Returns a string describing the object's internal state. More...
 
virtual void setPersistentState (const std::string &state)
 Restores the object's internal state from a string that had been previously generated using persistentState(). More...
 
virtual void addStateToTree (TreeNode *) const
 Attaches the object state as children of the given parent node. More...
 
virtual void readStateFromTree (TreeNode *)
 Reads the object state from the children of the given parent node. More...
 
virtual void writeTo (AbstractPersistenceOutputStream *) const
 Write the objects state to the data stream object. More...
 
virtual void readFrom (AbstractPersistenceInputStream *, int)
 Read the objects state from the data stream object. More...
 
- Public Member Functions inherited from ml::FieldAddOnBase
 FieldAddOnBase (FieldContainer &fieldContainerRef)
 Constructor, setting the reference of the FieldContainer managing the fields. More...
 
virtual ~FieldAddOnBase ()
 Destructor. More...
 
FieldContainergetFieldContainer ()
 Returns the referenced container. More...
 
const FieldContainergetFieldContainer () const
 Returns the referenced container. More...
 
std::vector< Field * > & getFields ()
 Return modification access to the list of managed fields, use at own risk! More...
 
const std::vector< Field * > & getFields () const
 Return constant access to the list of managed fields! More...
 
virtual FieldChangeState getMergedFieldChangeState (FieldChangeState state1, FieldChangeState state2) const
 Returns a FieldChangeState which best represents a merge of the two given states. More...
 
virtual bool hasField (Field *field) const
 Returns true if the passed fieldPtr is in _fieldPointers, otherwise false. More...
 

Protected Attributes

Fields.
StringField_contextGroupSequenceFld
 The string containing the composition of CID entries separated by "/"; it is the field
which typically should be made persistent. More...
 
EnumField_cidEntryFld
 Enumerator field selecting one of the entries of the CIDGroupTable. More...
 
NotifyField_appendEntryFld
 Appends the selected entry to _contextGroupSequenceFld. More...
 
NotifyField_prependEntryFld
 Inserts the selected entry at first position to _contextGroupSequenceFld. More...
 
NotifyField_clearFld
 Removes all entries from _contextGroupSequenceFld. More...
 

Additional Inherited Members

- Public Types inherited from ml::Base
enum  PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream }
 This enum describes the different persistence interfaces available. More...
 
- Public Types inherited from ml::FieldAddOnBase
enum  FieldChangeState { NoChange = 0 , StatusOnlyChange , RecalculationRequired }
 Describes the type of a field changes detected in handleFieldChanges(Field *field). More...
 
- Static Public Member Functions inherited from ml::DicomModifyFieldAddOnBase
static bool isIn (const std::string &str, const char *const *values, size_t numValues)
 Static helper function which checks whether str is part of the given list of values which has numValues entries. More...
 
- Protected Member Functions inherited from ml::Base
virtual char * getPersistentState () const
 Returns a C string describing the object's internal state. More...
 
virtual void setPersistentState (const char *)
 Restores the object's internal state from a string that had been previously generated using getPersistentState(). More...
 
virtual void clearPersistentState (char *) const
 Disposes a string previously allocated by getPersistentState(). More...
 
- Protected Member Functions inherited from ml::FieldAddOnBase
void _addFieldPointer (Field *field)
 Helper routine to add a Field pointer to _fieldPointers, empty pointers and pointers added more than once will be handled fatally. More...
 

Detailed Description

Manages a module field interface to edit a list of CID value from a given table.

Definition at line 23 of file mlDicomCIDEditTagInterface.h.

Constructor & Destructor Documentation

◆ DicomCIDEditTagInterface()

ml::DicomCIDEditTagInterface::DicomCIDEditTagInterface ( Module modRef,
const char *const  CIDGroupTable[][CIDGroups::NUM_CID_COLUMNS],
size_t  CIDGroupTableSize,
const std::string &  sequenceName,
size_t  numAllowedEntries,
bool  zeroEntriesAllowed,
const std::string &  cidEntryDefault = "" 
)

Constructor, setting the reference of the module for which the fields shall be managed.

Parameters
modRefThe module into which the field interface shall be added.
CIDGroupTableThe Context Identifier Group table (CID group) providing enumerator entries; it is not copied and must permanently exist during instance life-time.
CIDGroupTableSizeThe number of entries in CIDGroupTable.
sequenceNameThe user defined name of the identifier sequence to be edited, for example "CID 7203 Image Derivation", "Image Derivation Identifier List" or so. It is only for logging purposes.
numAllowedEntriesDefines the maximum number of entries allowed to be composed by the user; checkConsistency() will return a non empty error description otherwise.
zeroEntriesAllowedIf true, then zero entries are allowed, otherwise the editor checks for at least one entry and checkConsistency() will return a non empty error description if that is not true.
cidEntryDefaultIgnored if empty or if not found in any CIDGroupTable[X][1], otherwise cidEntryFld will be set to the CID as default; cidEntryDefault must be only and exactly the code value (number) from CIDGroupTable without any descriptive string or any other stuff. For example "113069" for the code meaning "Time To Peak" of "CID 7203 Image Derivation".

Member Function Documentation

◆ addFields()

void ml::DicomCIDEditTagInterface::addFields ( )
overridevirtual

Add fields to field container of module.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ applyModifications()

std::string ml::DicomCIDEditTagInterface::applyModifications ( DCMTree::TreePtr  dcmTree,
const FieldContainer treeInfos = nullptr 
)
overridevirtual

◆ checkConsistency()

std::string ml::DicomCIDEditTagInterface::checkConsistency ( ) const
overridevirtual

Checks for invalid parameters; return textual description on error, or empty string on success.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ getCodeSequence()

ReleaseToolsString::StringVector ml::DicomCIDEditTagInterface::getCodeSequence ( ) const

Returns the sequence of codes which is managed by the editor as string vector; always returns an empty sequence if the FieldAddOn is not active.

◆ getMakeGUIInsensitiveFld()

BoolField& ml::DicomCIDEditTagInterface::getMakeGUIInsensitiveFld ( )

Return reference to _makeGUIInsensitiveFld to allow modules hosting this add to change sensitivity.

◆ handleFieldActivationChanges()

void ml::DicomCIDEditTagInterface::handleFieldActivationChanges ( )
overridevirtual

Handle class changes according to Module::activateAttachments.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ handleFieldChanges()

FieldAddOnBase::FieldChangeState ml::DicomCIDEditTagInterface::handleFieldChanges ( Field field)
overridevirtual

Handle field notifications according to Module::activateAttachments with a return of field change state.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ inheritValues()

void ml::DicomCIDEditTagInterface::inheritValues ( DCMTree::Const_TreePtr  dcmTree)
overridevirtual

Implements the copy of tag values from the given dcmTree to the fields.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ isActive()

bool ml::DicomCIDEditTagInterface::isActive ( ) const

Returns true if FieldAddOn is active,,otherwise false.

◆ setActive()

void ml::DicomCIDEditTagInterface::setActive ( bool  active)

Sets flag which (de)activates this FieldAddOn; if deactivated: checkConsistency always returns an empty string and applyModifications does not change dcmTree.

◆ setCIDEntryDefault()

virtual void ml::DicomCIDEditTagInterface::setCIDEntryDefault ( )
virtual

Initializes _cidEntryFld to the default value as described for constructor parameter cidEntryDefault (which may cause side effects due to the field change).

Member Data Documentation

◆ _appendEntryFld

NotifyField* ml::DicomCIDEditTagInterface::_appendEntryFld
protected

Appends the selected entry to _contextGroupSequenceFld.

Definition at line 104 of file mlDicomCIDEditTagInterface.h.

◆ _cidEntryFld

EnumField* ml::DicomCIDEditTagInterface::_cidEntryFld
protected

Enumerator field selecting one of the entries of the CIDGroupTable.

Definition at line 101 of file mlDicomCIDEditTagInterface.h.

◆ _clearFld

NotifyField* ml::DicomCIDEditTagInterface::_clearFld
protected

Removes all entries from _contextGroupSequenceFld.

Definition at line 110 of file mlDicomCIDEditTagInterface.h.

◆ _contextGroupSequenceFld

StringField* ml::DicomCIDEditTagInterface::_contextGroupSequenceFld
protected

The string containing the composition of CID entries separated by "/"; it is the field
which typically should be made persistent.

Definition at line 98 of file mlDicomCIDEditTagInterface.h.

◆ _prependEntryFld

NotifyField* ml::DicomCIDEditTagInterface::_prependEntryFld
protected

Inserts the selected entry at first position to _contextGroupSequenceFld.

Definition at line 107 of file mlDicomCIDEditTagInterface.h.


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