MeVisLab Toolbox Reference
ml::DicomSOPCommonModuleTagInterface Class Reference

Manages the module field interface according to SOP Common Module shown in DICOM Table 12-1. More...

#include <mlDicomSOPCommonModuleTagInterface.h>

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

Public Types

enum  { NumSpecialCharacterSetStrings = 15 }
 Number of supported special character set strings. More...
 
- 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...
 

Public Member Functions

 DicomSOPCommonModuleTagInterface (Module &modRef, const std::string &sopClassUID)
 Constructor, setting the reference of the module for which the fields shall be managed; the SOP CLassUID must be defined as constructor parameter, the sopInstanceUID is newly created whenever applyModifications is called. More...
 
void addFields () override
 Add fields to field container of module. 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; adds field values as tags to dcmTree. More...
 
std::string checkConsistency () const override
 Checks for invalid parameters; return textual description on error, or empty string on success; requires that setInputPagedImage was called with a valid image before for successful proper operation. More...
 
StringFieldgetSopClassUIDFld ()
 Access interface to members; see corresponding member for details. More...
 
const StringFieldgetSopClassUIDFld () const
 
StringFieldgetSopInstanceUIDFld ()
 
const StringFieldgetSopInstanceUIDFld () const
 
BoolFieldgetWriteSpecificCharacterSetFld ()
 
const BoolFieldgetWriteSpecificCharacterSetFld () const
 
BoolFieldgetInheritSpecificCharacterSetFld ()
 
const BoolFieldgetInheritSpecificCharacterSetFld () const
 
NotifyFieldgetSetDefaultSpecificCharacterSetFld ()
 
const NotifyFieldgetSetDefaultSpecificCharacterSetFld () const
 
BoolFieldgetUseMMSUIDPrefixFld ()
 
const BoolFieldgetUseMMSUIDPrefixFld () const
 
DicomGeneralEquipmentModuleTagInterfacegetGeneralEquipmentForContributingEquipmentSettings ()
 
const DicomGeneralEquipmentModuleTagInterfacegetGeneralEquipmentForContributingEquipmentSettings () const
 
BoolFieldgetCreateOrExtendContributingEquipmentSequenceFld ()
 
const BoolFieldgetCreateOrExtendContributingEquipmentSequenceFld () const
 
ContributingEquipmentSettingsgetContributingEquipmentSettings ()
 
const ContributingEquipmentSettingsgetContributingEquipmentSettings () const
 
- 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...
 

Static Public Attributes

static const char *const SpecialCharacterSetStrings [NumSpecialCharacterSetStrings]
 List of supported values for SpecialCharacterSet (0008,0005). More...
 

Protected Attributes

const std::string _sopClassUID
 Stored sopClassUID constructor parameter. More...
 
StringField_sopClassUIDFld
 The SOP Class UID tag of the SOP Instance Reference Macro, Table 12-1. More...
 
StringField_sopInstanceUIDFld
 The SOP Instance UID tag of the SOP Instance Reference Macro, Table 12-1. More...
 
StringField_specificCharacterSetFld
 The Specific Character Set (0008,0005) of the SOP Instance Reference Macro, Table 12-1. More...
 
BoolField_writeSpecificCharacterSetFld
 Save Specific Character Set (0008,0005) value if true. More...
 
BoolField_inheritSpecificCharacterSetFld
 Inherit settings related to Specific Character Set (0008,0005); if true then _specificCharacterSetFld and _writeSpecificCharacterSetFld are updated on inheritance. More...
 
NotifyField_setDefaultSpecificCharacterSetFld
 Sets the recommended "ISO_IR 192" character set as default which matches the internal UTF-8 coding in MeVisLab. More...
 
BoolField_useMMSUIDPrefixFld
 Usually true but can be set false to create SOPInstanceUIDs with FMEGeneralUIDPrefixString instead of DCMTree_MeVis_UidPrefix. More...
 
DicomGeneralEquipmentModuleTagInterface _generalEquipmentForContributingEquipmentSettings
 Makes General Equipment configurable for the case that an entry in the ContributingEquipmentSequence is needed. More...
 
BoolField_createOrExtendContributingEquipmentSequenceFld
 If enabled then a new entry in the Contributing Equipment Sequence (0018,A001) is generated and filled with tag contents of the input (image); if available the input sequence is copied and extended with a new item. More...
 
ContributingEquipmentSettings _contributingEquipmentSettings
 Buffer object for the settings of the input DCMTree on inheritance. More...
 

Additional Inherited Members

- 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 the module field interface according to SOP Common Module shown in DICOM Table 12-1.

Definition at line 23 of file mlDicomSOPCommonModuleTagInterface.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Number of supported special character set strings.

Enumerator
NumSpecialCharacterSetStrings 

Definition at line 28 of file mlDicomSOPCommonModuleTagInterface.h.

Constructor & Destructor Documentation

◆ DicomSOPCommonModuleTagInterface()

ml::DicomSOPCommonModuleTagInterface::DicomSOPCommonModuleTagInterface ( Module modRef,
const std::string &  sopClassUID 
)

Constructor, setting the reference of the module for which the fields shall be managed; the SOP CLassUID must be defined as constructor parameter, the sopInstanceUID is newly created whenever applyModifications is called.

Parameters
modRefThe reference to the module for/into which the fields are created/managed.
sopClassUIDThe SOP Class UID of the DICOM IOD to be managed.

Member Function Documentation

◆ addFields()

void ml::DicomSOPCommonModuleTagInterface::addFields ( )
overridevirtual

Add fields to field container of module.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ applyModifications()

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

See DicomModifyFieldAddOnBase::applyModifications() for documentation; adds field values as tags to dcmTree.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ checkConsistency()

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

Checks for invalid parameters; return textual description on error, or empty string on success; requires that setInputPagedImage was called with a valid image before for successful proper operation.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ getContributingEquipmentSettings() [1/2]

ContributingEquipmentSettings& ml::DicomSOPCommonModuleTagInterface::getContributingEquipmentSettings ( )
inline

Definition at line 79 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getContributingEquipmentSettings() [2/2]

const ContributingEquipmentSettings& ml::DicomSOPCommonModuleTagInterface::getContributingEquipmentSettings ( ) const
inline

Definition at line 80 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getCreateOrExtendContributingEquipmentSequenceFld() [1/2]

BoolField& ml::DicomSOPCommonModuleTagInterface::getCreateOrExtendContributingEquipmentSequenceFld ( )
inline

Definition at line 77 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getCreateOrExtendContributingEquipmentSequenceFld() [2/2]

const BoolField& ml::DicomSOPCommonModuleTagInterface::getCreateOrExtendContributingEquipmentSequenceFld ( ) const
inline

Definition at line 78 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getGeneralEquipmentForContributingEquipmentSettings() [1/2]

DicomGeneralEquipmentModuleTagInterface& ml::DicomSOPCommonModuleTagInterface::getGeneralEquipmentForContributingEquipmentSettings ( )
inline

Definition at line 75 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getGeneralEquipmentForContributingEquipmentSettings() [2/2]

const DicomGeneralEquipmentModuleTagInterface& ml::DicomSOPCommonModuleTagInterface::getGeneralEquipmentForContributingEquipmentSettings ( ) const
inline

Definition at line 76 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getInheritSpecificCharacterSetFld() [1/2]

BoolField& ml::DicomSOPCommonModuleTagInterface::getInheritSpecificCharacterSetFld ( )
inline

Definition at line 69 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getInheritSpecificCharacterSetFld() [2/2]

const BoolField& ml::DicomSOPCommonModuleTagInterface::getInheritSpecificCharacterSetFld ( ) const
inline

Definition at line 70 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getSetDefaultSpecificCharacterSetFld() [1/2]

NotifyField& ml::DicomSOPCommonModuleTagInterface::getSetDefaultSpecificCharacterSetFld ( )
inline

Definition at line 71 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getSetDefaultSpecificCharacterSetFld() [2/2]

const NotifyField& ml::DicomSOPCommonModuleTagInterface::getSetDefaultSpecificCharacterSetFld ( ) const
inline

Definition at line 72 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getSopClassUIDFld() [1/2]

StringField& ml::DicomSOPCommonModuleTagInterface::getSopClassUIDFld ( )
inline

Access interface to members; see corresponding member for details.

Definition at line 63 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getSopClassUIDFld() [2/2]

const StringField& ml::DicomSOPCommonModuleTagInterface::getSopClassUIDFld ( ) const
inline

Definition at line 64 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getSopInstanceUIDFld() [1/2]

StringField& ml::DicomSOPCommonModuleTagInterface::getSopInstanceUIDFld ( )
inline

Definition at line 65 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getSopInstanceUIDFld() [2/2]

const StringField& ml::DicomSOPCommonModuleTagInterface::getSopInstanceUIDFld ( ) const
inline

Definition at line 66 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getUseMMSUIDPrefixFld() [1/2]

BoolField& ml::DicomSOPCommonModuleTagInterface::getUseMMSUIDPrefixFld ( )
inline

Definition at line 73 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getUseMMSUIDPrefixFld() [2/2]

const BoolField& ml::DicomSOPCommonModuleTagInterface::getUseMMSUIDPrefixFld ( ) const
inline

Definition at line 74 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getWriteSpecificCharacterSetFld() [1/2]

BoolField& ml::DicomSOPCommonModuleTagInterface::getWriteSpecificCharacterSetFld ( )
inline

Definition at line 67 of file mlDicomSOPCommonModuleTagInterface.h.

◆ getWriteSpecificCharacterSetFld() [2/2]

const BoolField& ml::DicomSOPCommonModuleTagInterface::getWriteSpecificCharacterSetFld ( ) const
inline

Definition at line 68 of file mlDicomSOPCommonModuleTagInterface.h.

◆ handleFieldActivationChanges()

void ml::DicomSOPCommonModuleTagInterface::handleFieldActivationChanges ( )
overridevirtual

Handle class changes according to Module::activateAttachments.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ handleFieldChanges()

FieldAddOnBase::FieldChangeState ml::DicomSOPCommonModuleTagInterface::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::DicomSOPCommonModuleTagInterface::inheritValues ( DCMTree::Const_TreePtr  dcmTree)
overridevirtual

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

Reimplemented from ml::DicomModifyFieldAddOnBase.

Member Data Documentation

◆ _contributingEquipmentSettings

ContributingEquipmentSettings ml::DicomSOPCommonModuleTagInterface::_contributingEquipmentSettings
protected

Buffer object for the settings of the input DCMTree on inheritance.

Definition at line 124 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _createOrExtendContributingEquipmentSequenceFld

BoolField* ml::DicomSOPCommonModuleTagInterface::_createOrExtendContributingEquipmentSequenceFld
protected

If enabled then a new entry in the Contributing Equipment Sequence (0018,A001) is generated and filled with tag contents of the input (image); if available the input sequence is copied and extended with a new item.

Contributing Equipment Sequence (0018,A001) is of Type 3 (not required) but according to PS3.4 "C.3.5 New Instance Creation for Enhanced Multi-Frame Image Conversion" "The new Composite Instance shall contain the Contributing Equipment Sequence (0018,A001)" e.g. on LegacyEnhanced creation.

Definition at line 121 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _generalEquipmentForContributingEquipmentSettings

DicomGeneralEquipmentModuleTagInterface ml::DicomSOPCommonModuleTagInterface::_generalEquipmentForContributingEquipmentSettings
protected

Makes General Equipment configurable for the case that an entry in the ContributingEquipmentSequence is needed.

Definition at line 112 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _inheritSpecificCharacterSetFld

BoolField* ml::DicomSOPCommonModuleTagInterface::_inheritSpecificCharacterSetFld
protected

Inherit settings related to Specific Character Set (0008,0005); if true then _specificCharacterSetFld and _writeSpecificCharacterSetFld are updated on inheritance.

Definition at line 102 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _setDefaultSpecificCharacterSetFld

NotifyField* ml::DicomSOPCommonModuleTagInterface::_setDefaultSpecificCharacterSetFld
protected

Sets the recommended "ISO_IR 192" character set as default which matches the internal UTF-8 coding in MeVisLab.

Definition at line 105 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _sopClassUID

const std::string ml::DicomSOPCommonModuleTagInterface::_sopClassUID
protected

Stored sopClassUID constructor parameter.

Definition at line 86 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _sopClassUIDFld

StringField* ml::DicomSOPCommonModuleTagInterface::_sopClassUIDFld
protected

The SOP Class UID tag of the SOP Instance Reference Macro, Table 12-1.

Definition at line 89 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _sopInstanceUIDFld

StringField* ml::DicomSOPCommonModuleTagInterface::_sopInstanceUIDFld
protected

The SOP Instance UID tag of the SOP Instance Reference Macro, Table 12-1.

Definition at line 92 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _specificCharacterSetFld

StringField* ml::DicomSOPCommonModuleTagInterface::_specificCharacterSetFld
protected

The Specific Character Set (0008,0005) of the SOP Instance Reference Macro, Table 12-1.

Definition at line 95 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _useMMSUIDPrefixFld

BoolField* ml::DicomSOPCommonModuleTagInterface::_useMMSUIDPrefixFld
protected

Usually true but can be set false to create SOPInstanceUIDs with FMEGeneralUIDPrefixString instead of DCMTree_MeVis_UidPrefix.

Definition at line 109 of file mlDicomSOPCommonModuleTagInterface.h.

◆ _writeSpecificCharacterSetFld

BoolField* ml::DicomSOPCommonModuleTagInterface::_writeSpecificCharacterSetFld
protected

Save Specific Character Set (0008,0005) value if true.

Definition at line 98 of file mlDicomSOPCommonModuleTagInterface.h.

◆ SpecialCharacterSetStrings

const char* const ml::DicomSOPCommonModuleTagInterface::SpecialCharacterSetStrings[NumSpecialCharacterSetStrings]
static

List of supported values for SpecialCharacterSet (0008,0005).

Definition at line 31 of file mlDicomSOPCommonModuleTagInterface.h.


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