MeVisLab Toolbox Reference
ml::DicomGeneralSeriesModuleTagInterface Class Reference

Manages the module field interface according to DICOM General Series, C.7.3.1. More...

#include <mlDicomGeneralSeriesModuleTagInterface.h>

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

Public Types

enum  LateralityValues { DoNotWriteLateralityTag = 0 , WriteEmptyLateralityTag , Left , Right }
 Enumerator for the laterality tag. More...
 
enum  { NumLateralityEnumerators = 4 }
 Number of available laterality enumerators. More...
 
enum  LateralityChecksValues { AsError = 0 , AsWarning , Ignore }
 Enumerator for modes of laterality checks tag. More...
 
enum  { NumLateralityChecksEnumerators = 3 }
 Number of available laterality checks enumerators. More...
 
enum  BodyPartExaminedValues {
  ABDOMEN =0 , ABDOMENPELVIS , ADRENAL , ANKLE ,
  AORTA , ARM , ATLANTOAXIAL , ATLANTOOCCIPITAL ,
  AXILLA , BACK , BLADDER , BRAIN ,
  BREAST , BRONCHUS , BUTTOCK , CALCANEUS ,
  CALF , CAROTID , CARPUS , CEREBELLUM ,
  CERVIX , CHEEK , CHEST , CHESTABDOMEN ,
  CHESTABDPELVIS , CIRCLEOFWILLIS , CLAVICLE , COCCYX ,
  COLON , CORNEA , CORONARYARTERY , CSPINE ,
  CTSPINE , DIGIT , DISTALPHALANX , DUODENUM ,
  EAR , ELBOW , ESOPHAGUS , EXTREMITY ,
  EYE , EYELID , FACE , FEMUR ,
  FIBULA , FINGER , FOOT , FOREFETLOCK ,
  FOREFOOT , FORENAVICULAR , FOREPASTERN , FRONTALSINUS ,
  GALLBLADDER , HAND , HEAD , HEADNECK ,
  HEART , HINDFETLOCK , HINDFOOT , HINDNAVICULAR ,
  HINDPASTERN , HIP , HUMERUS , IAC ,
  ILEUM , ILIUM , JAW , JEJUNUM ,
  KIDNEY , KNEE , LARYNX , LEG ,
  LEGS , LIVER , LSPINE , LSSPINE ,
  LUNG , MAXILLA , MEDIASTINUM , METACARPUS ,
  METATARSUS , MOUTH , NECK , NECKCHEST ,
  NECKCHESTABDOMEN , NECKCHESTABDPELV , NOSE , ORBIT ,
  OVARY , PANCREAS , PAROTID , PATELLA ,
  PELVIS , PENIS , PHARYNX , PROSTATE ,
  RADIUS , RADIUSULNA , RECTUM , RIB ,
  SCALP , SCAPULA , SCLERA , SCROTUM ,
  SHOULDER , SKULL , SPINE , SPLEEN ,
  SSPINE , STERNUM , STIFLE , STOMACH ,
  SUBMANDIBULAR , TAIL , TARSUS , TESTIS ,
  THIGH , THUMB , THYMUS , THYROID ,
  TIBIA , TIBIAFIBULA , TLSPINE , TMJ ,
  TOE , TONGUE , TRACHEA , TSPINE ,
  UGITRACT , ULNA , URETER , URETHRA ,
  URINARYTRACT , UTERUS , VAGINA , VULVA ,
  WHOLEBODY , WING , WRIST , ZYGOMA
}
 Available values for BodyPartExaminedValues. More...
 
enum  { NumBodyPartExaminedValues = 140 }
 Number of available BodyPartExaminedValues. More...
 
enum  { NumUnpairedBodyPartExaminedValues = 74 }
 Number of available UnpairedBodyPartExaminedValues. 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

 DicomGeneralSeriesModuleTagInterface (Module &modRef, bool useEnhancedSeriesNumber=false, const std::string &modality="", bool forceSeriesInstanceUIDAsType1=false)
 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...
 
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...
 
FieldAddOnBase::FieldChangeState handleFieldChanges (Field *field) override
 Handle field notifications. More...
 
std::string checkConsistency () const override
 Checks for invalid parameters; return textual description on error, or empty string on success. 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...
 
void handleFieldActivationChanges () override
 Handle class changes according to Module::activateAttachments. 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...
 

Public Attributes

DicomValueInheritAndCreateTagInterface _seriesInstanceUIDAddOn
 Fields. More...
 
StringField_seriesNumberFld
 Content of the corresponding DICOM tag definition. More...
 
BoolField_inheritSeriesNumberFld
 If true then the seriesNumber field is overwritten with inherited states, otherwise not. More...
 
EnumField_lateralityFld
 Laterality tag (0020,0060), type 2C. More...
 
BoolField_useEmptyLateralityTagIfNotFoundOnInheritanceFld
 If true then WriteEmptyLateralityTag is selected on inheritance even if no one laterality tag was found in the input; otherwise DoNotWriteLateralityTag is selected. More...
 
EnumField_lateralityChecksFld
 Checking for valid combinations of Laterality and BodyPartExamined values is difficult and still incomplete, and there are still unclear circumstances how to do that correctly in all cases. More...
 
StringField_seriesDescriptionFld
 Describes the series for which this DICOM file is created. More...
 
DicomCopyTagSetInterface _otherGeneralSeriesTags
 All other General Series tags not available in the interface, allow public access. More...
 

Static Public Attributes

static const char *const LateralityStringValues [NumLateralityEnumerators]
 String representations for the _lateralityFld enum.
More...
 
static const char *const LateralityChecksStringValues [NumLateralityChecksEnumerators]
 String representations for the LateralityChecksValues enum.
More...
 
static const char *const BodyPartExaminedStringValues [NumBodyPartExaminedValues]
 String representations for the _bodyPartExaminedValuesFld.
More...
 
static const char *const UnpairedBodyPartExaminedStringValues [NumUnpairedBodyPartExaminedValues]
 String representations for the _unpairedBodyPartExaminedValuesFld.
More...
 

Protected Attributes

BoolField_writeBodyPartExaminedFld
 Enables/disabled whether bodyPartExamined shall be written or not. More...
 
StringField_bodyPartExaminedFld
 Value of possibly inherited BodyPartExamined tag. More...
 
StringField_bodyPartExaminedValuesFld
 Available values for _bodyPartExaminedFld. More...
 
const bool _useEnhancedSeriesNumber
 If true then Series Number will be checked to be non-empty. More...
 
const std::string _modality
 If not empty then the content will be set as Modality tag, otherwise ignored. 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 DICOM General Series, C.7.3.1.

Definition at line 23 of file mlDicomGeneralSeriesModuleTagInterface.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Number of available laterality enumerators.

Enumerator
NumLateralityEnumerators 

Definition at line 79 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ anonymous enum

anonymous enum

Number of available laterality checks enumerators.

Enumerator
NumLateralityChecksEnumerators 

Definition at line 100 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ anonymous enum

anonymous enum

Number of available BodyPartExaminedValues.

Enumerator
NumBodyPartExaminedValues 

Definition at line 136 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ anonymous enum

anonymous enum

Number of available UnpairedBodyPartExaminedValues.

Enumerator
NumUnpairedBodyPartExaminedValues 

Definition at line 142 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ BodyPartExaminedValues

Available values for BodyPartExaminedValues.

Enumerator
ABDOMEN 
ABDOMENPELVIS 
ADRENAL 
ANKLE 
AORTA 
ARM 
ATLANTOAXIAL 
ATLANTOOCCIPITAL 
AXILLA 
BACK 
BLADDER 
BRAIN 
BREAST 
BRONCHUS 
BUTTOCK 
CALCANEUS 
CALF 
CAROTID 
CARPUS 
CEREBELLUM 
CERVIX 
CHEEK 
CHEST 
CHESTABDOMEN 
CHESTABDPELVIS 
CIRCLEOFWILLIS 
CLAVICLE 
COCCYX 
COLON 
CORNEA 
CORONARYARTERY 
CSPINE 
CTSPINE 
DIGIT 
DISTALPHALANX 
DUODENUM 
EAR 
ELBOW 
ESOPHAGUS 
EXTREMITY 
EYE 
EYELID 
FACE 
FEMUR 
FIBULA 
FINGER 
FOOT 
FOREFETLOCK 
FOREFOOT 
FORENAVICULAR 
FOREPASTERN 
FRONTALSINUS 
GALLBLADDER 
HAND 
HEAD 
HEADNECK 
HEART 
HINDFETLOCK 
HINDFOOT 
HINDNAVICULAR 
HINDPASTERN 
HIP 
HUMERUS 
IAC 
ILEUM 
ILIUM 
JAW 
JEJUNUM 
KIDNEY 
KNEE 
LARYNX 
LEG 
LEGS 
LIVER 
LSPINE 
LSSPINE 
LUNG 
MAXILLA 
MEDIASTINUM 
METACARPUS 
METATARSUS 
MOUTH 
NECK 
NECKCHEST 
NECKCHESTABDOMEN 
NECKCHESTABDPELV 
NOSE 
ORBIT 
OVARY 
PANCREAS 
PAROTID 
PATELLA 
PELVIS 
PENIS 
PHARYNX 
PROSTATE 
RADIUS 
RADIUSULNA 
RECTUM 
RIB 
SCALP 
SCAPULA 
SCLERA 
SCROTUM 
SHOULDER 
SKULL 
SPINE 
SPLEEN 
SSPINE 
STERNUM 
STIFLE 
STOMACH 
SUBMANDIBULAR 
TAIL 
TARSUS 
TESTIS 
THIGH 
THUMB 
THYMUS 
THYROID 
TIBIA 
TIBIAFIBULA 
TLSPINE 
TMJ 
TOE 
TONGUE 
TRACHEA 
TSPINE 
UGITRACT 
ULNA 
URETER 
URETHRA 
URINARYTRACT 
UTERUS 
VAGINA 
VULVA 
WHOLEBODY 
WING 
WRIST 
ZYGOMA 

Definition at line 114 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ LateralityChecksValues

Enumerator for modes of laterality checks tag.

Enumerator
AsError 

Handle a possible problem as error.

AsWarning 

Log a possible problem as console warning.

Ignore 

Ignore any possible problem.

Definition at line 93 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ LateralityValues

Enumerator for the laterality tag.

Enumerator
DoNotWriteLateralityTag 

Do not write the tag at all.

WriteEmptyLateralityTag 

Write the tag with empty value.

Left 

Write the tag with value "L".

Right 

Write the tag with value "R".

Definition at line 71 of file mlDicomGeneralSeriesModuleTagInterface.h.

Constructor & Destructor Documentation

◆ DicomGeneralSeriesModuleTagInterface()

ml::DicomGeneralSeriesModuleTagInterface::DicomGeneralSeriesModuleTagInterface ( Module modRef,
bool  useEnhancedSeriesNumber = false,
const std::string &  modality = "",
bool  forceSeriesInstanceUIDAsType1 = false 
)

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

Parameters
modRefThe reference to the ML Module instance in which this FieldAdddOn will be inserted.
useEnhancedSeriesNumberIf true then the series number content will be handled as Type 1, if false it will be handled as Type 2.
modalityIgnored if empty; if not empty then the Modality tag is added with the given string as value.
forceSeriesInstanceUIDAsType1If true then SeriesInstanceUID is handled as Type 1 (mandatory and not empty) tag, otherwise it is allowed to be empty (only for backward compatibility and not recommended).

Member Function Documentation

◆ addFields()

void ml::DicomGeneralSeriesModuleTagInterface::addFields ( )
overridevirtual

Add fields to field container of module.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ applyModifications()

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

◆ checkConsistency()

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

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

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ handleFieldChanges()

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

Handle field notifications.

Reimplemented from ml::DicomModifyFieldAddOnBase.

◆ inheritValues()

void ml::DicomGeneralSeriesModuleTagInterface::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

◆ _bodyPartExaminedFld

StringField* ml::DicomGeneralSeriesModuleTagInterface::_bodyPartExaminedFld
protected

Value of possibly inherited BodyPartExamined tag.

Definition at line 152 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _bodyPartExaminedValuesFld

StringField* ml::DicomGeneralSeriesModuleTagInterface::_bodyPartExaminedValuesFld
protected

Available values for _bodyPartExaminedFld.

Definition at line 155 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _inheritSeriesNumberFld

BoolField* ml::DicomGeneralSeriesModuleTagInterface::_inheritSeriesNumberFld

If true then the seriesNumber field is overwritten with inherited states, otherwise not.

Definition at line 68 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _lateralityChecksFld

EnumField* ml::DicomGeneralSeriesModuleTagInterface::_lateralityChecksFld

Checking for valid combinations of Laterality and BodyPartExamined values is difficult and still incomplete, and there are still unclear circumstances how to do that correctly in all cases.

Definition at line 108 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _lateralityFld

EnumField* ml::DicomGeneralSeriesModuleTagInterface::_lateralityFld

Laterality tag (0020,0060), type 2C.

Definition at line 85 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _modality

const std::string ml::DicomGeneralSeriesModuleTagInterface::_modality
protected

If not empty then the content will be set as Modality tag, otherwise ignored.

Definition at line 161 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _otherGeneralSeriesTags

DicomCopyTagSetInterface ml::DicomGeneralSeriesModuleTagInterface::_otherGeneralSeriesTags

All other General Series tags not available in the interface, allow public access.

Definition at line 165 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _seriesDescriptionFld

StringField* ml::DicomGeneralSeriesModuleTagInterface::_seriesDescriptionFld

Describes the series for which this DICOM file is created.

Definition at line 111 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _seriesInstanceUIDAddOn

DicomValueInheritAndCreateTagInterface ml::DicomGeneralSeriesModuleTagInterface::_seriesInstanceUIDAddOn

Fields.

FieldAddOn managing field value, create mode, inherit modes, create button etc. for the SeriesInstanceUID.

Definition at line 63 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _seriesNumberFld

StringField* ml::DicomGeneralSeriesModuleTagInterface::_seriesNumberFld

Content of the corresponding DICOM tag definition.

Definition at line 66 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _useEmptyLateralityTagIfNotFoundOnInheritanceFld

BoolField* ml::DicomGeneralSeriesModuleTagInterface::_useEmptyLateralityTagIfNotFoundOnInheritanceFld

If true then WriteEmptyLateralityTag is selected on inheritance even if no one laterality tag was found in the input; otherwise DoNotWriteLateralityTag is selected.

Definition at line 90 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _useEnhancedSeriesNumber

const bool ml::DicomGeneralSeriesModuleTagInterface::_useEnhancedSeriesNumber
protected

If true then Series Number will be checked to be non-empty.

Definition at line 158 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ _writeBodyPartExaminedFld

BoolField* ml::DicomGeneralSeriesModuleTagInterface::_writeBodyPartExaminedFld
protected

Enables/disabled whether bodyPartExamined shall be written or not.

Definition at line 149 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ BodyPartExaminedStringValues

const char* const ml::DicomGeneralSeriesModuleTagInterface::BodyPartExaminedStringValues[NumBodyPartExaminedValues]
static

String representations for the _bodyPartExaminedValuesFld.

Definition at line 139 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ LateralityChecksStringValues

const char* const ml::DicomGeneralSeriesModuleTagInterface::LateralityChecksStringValues[NumLateralityChecksEnumerators]
static

String representations for the LateralityChecksValues enum.

Definition at line 103 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ LateralityStringValues

const char* const ml::DicomGeneralSeriesModuleTagInterface::LateralityStringValues[NumLateralityEnumerators]
static

String representations for the _lateralityFld enum.

Definition at line 82 of file mlDicomGeneralSeriesModuleTagInterface.h.

◆ UnpairedBodyPartExaminedStringValues

const char* const ml::DicomGeneralSeriesModuleTagInterface::UnpairedBodyPartExaminedStringValues[NumUnpairedBodyPartExaminedValues]
static

String representations for the _unpairedBodyPartExaminedValuesFld.

Definition at line 145 of file mlDicomGeneralSeriesModuleTagInterface.h.


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