DCMTK
Version 3.6.1 20170228
OFFIS DICOM Toolkit
|
Class for managing sets of dicom attributes (e.g. macros and modules). More...
Public Member Functions | |
IODComponent (OFshared_ptr< DcmItem > item, OFshared_ptr< IODRules > rules, IODComponent *parent=NULL) | |
Constructor. More... | |
IODComponent (IODComponent *parent=NULL) | |
Constructor, creates rules and item from scratch. More... | |
IODComponent & | operator= (const IODComponent &rhs) |
Assignment operator, copies contained item and rule set from rhs to "this" attribute set. More... | |
IODComponent (const IODComponent &rhs) | |
Copy constructor, copies reference to contained item and rule set to "this" attribute set. More... | |
virtual | ~IODComponent () |
Virtual Destructor. | |
void | clearData () |
Clear all attributes from the data that are handled by this module. More... | |
virtual void | inventMissing () |
Set missing values by inventing "default values". More... | |
virtual void | resetRules ()=0 |
Resets rules to their original values. | |
OFshared_ptr< IODRules > | getRules () |
Get rules handled by this module. More... | |
virtual void | makeOptional () |
Make component optional by turning all attributes requirement types of it to type 3. More... | |
virtual OFString | getName () const =0 |
Get name of component. More... | |
DcmItem & | getData () |
Get the data handled by this module. More... | |
virtual OFCondition | read (DcmItem &source, const OFBool clearOldData=OFTrue) |
Read attributes from given item into this class. More... | |
virtual OFCondition | write (DcmItem &destination) |
Write attributes from this class into given item. More... | |
virtual OFCondition | check (const OFBool quiet=OFFalse) |
Check whether this component's data satisfies the underlying rules. More... | |
virtual int | compare (const IODComponent &rhs) const |
Comparison operator for IOD Components. More... | |
Static Public Member Functions | |
static OFCondition | read (DcmItem &source, IODRules &rules, DcmItem &destination, const OFString &componentName) |
Static helper function that reads attributes from given item into destination item, as determined by the provided rules and component name. More... | |
static OFCondition | write (DcmItem &source, IODRules &rules, DcmItem &destination, const OFString &componentName) |
Static helper function that writes attributes from given item into destination item, as determined by the provided rules and component name. More... | |
Protected Attributes | |
OFshared_ptr< DcmItem > | m_Item |
Shared pointer to the data handled by this class. More... | |
OFshared_ptr< IODRules > | m_Rules |
Rules describing the attributes governed by this class. | |
IODComponent * | m_Parent |
The parent component (may be NULL) of this class. | |
Class for managing sets of dicom attributes (e.g. macros and modules).
The data is hold in a container (DcmItem) that can be shared with other components, i.e. different modules that hold their data in a common container. In order to know which attributes in the container should be actually handled by a component, the component also has a set of rules, which can also be shared between different components (e.g. all modules of an IOD can share the same set of rules). For each attribute there is one rule in the rule set, denoting the requirement type (1,2,3,1C,2C), the VM, and besides others also the name of the component that the attribute belongs to (e.g. "PatientModule"). Since the component knows its own name, it can decide which attributes in the data container it is responsible for. This class is meant to support nested substructures but so far only writes attributes on a single level (including sequences). Also, in this context the class carries a parent relationship which is not used at the moment.
IODComponent::IODComponent | ( | OFshared_ptr< DcmItem > | item, |
OFshared_ptr< IODRules > | rules, | ||
IODComponent * | parent = NULL |
||
) |
Constructor.
item | The item to be used for data storage. If NULL, the class creates an empty data container. |
rules | The rule set for this class. If NULL, the class creates an empty rule set. |
parent | The parent of the IOD component (NULL if none or unknown) |
IODComponent::IODComponent | ( | IODComponent * | parent = NULL | ) |
Constructor, creates rules and item from scratch.
parent | The parent of the IOD component (NULL if none or unknown) |
IODComponent::IODComponent | ( | const IODComponent & | rhs | ) |
Copy constructor, copies reference to contained item and rule set to "this" attribute set.
rhs | The component to be assigned |
|
virtual |
Check whether this component's data satisfies the underlying rules.
quiet | If OFTrue, not error / warning messages will be produced. Only the returned error code will indicate error or OK. Per default, logging output is produced (OFFalse). |
Reimplemented in CodeWithModifiers, TrcTractographyResultsModule, and TrcTrack.
void IODComponent::clearData | ( | ) |
Clear all attributes from the data that are handled by this module.
An attribute is considered belonging to the module if there are rules marked as belonging to this module via the rule's module name.
Referenced by DcmIODImage< IODImagePixelModule< Uint8 > >::clearData().
|
virtual |
Comparison operator for IOD Components.
rhs | The right hand side of the comparison |
Reimplemented in ImageSOPInstanceReferenceMacro, and CodeWithModifiers.
|
inline |
Get the data handled by this module.
|
pure virtual |
Get name of component.
Implemented in MandatoryViewAndSliceProgressionDirectionMacro, HL7HierarchicDesignatorMacro, IODSeriesAndInstanceReferenceMacro, IODSeriesAndInstanceReferenceMacro, SOPInstanceReferenceMacro, IODMultiframeDimensionModule, TrcTrackSetStatistic, CodeWithModifiers, TrcMeasurement, ContentItemMacro, IODCommonInstanceReferenceModule, IODDoubleFloatingPointImagePixelModule, IODMultiFrameFGModule::ConcatenationInfo, TrcTracksStatistic, IODMultiframeDimensionModule::DimensionIndexItem, ContentItemMacro::ReferencedSOPSequenceItem, IODEnhGeneralEquipmentModule, IODGeneralEquipmentModule, IODCommonInstanceReferenceModule, TrcMeasurement::Values, CodeSequenceMacro, IODEnhUSImageModule, IODImagePixelModule< T >, TrcTrackSet, IODFloatingPointImagePixelModule, TrcTractographyResultsModule, IODMultiframeDimensionModule::DimensionOrganizationItem, IODGeneralImageModule, IODEnhancedUSSeriesModule, IODGeneralSeriesModule, IODGeneralStudyModule, IODSOPCommonModule, TrcTrack, DPMParametricMapImageModule, IODUSFoRModule, IODImagePixelBase, IODPatientStudyModule, IODSynchronizationModule, IODPatientModule, IODSegmentationSeriesModule, IODAcquisitionContextModule, IODMultiFrameFGModule, DPMParametricMapSeriesModule, and IODFoRModule.
|
inline |
Get rules handled by this module.
|
virtual |
Set missing values by inventing "default values".
Automatically called during write() in IODComponent; does nothing in this base class implementation but can be overwritten by derived classes if default values are desired.
Reimplemented in TrcTrackSet, IODGeneralSeriesModule, IODSOPCommonModule, and IODGeneralStudyModule.
|
virtual |
Make component optional by turning all attributes requirement types of it to type 3.
In order to reset to the attribute's original types, resetRules() can be used.
IODComponent& IODComponent::operator= | ( | const IODComponent & | rhs | ) |
Assignment operator, copies contained item and rule set from rhs to "this" attribute set.
Performs deep copy, i.e. the contained item and the rule set are copied. The parent component is set to NULL.
rhs | The IODComponent to be assigned |
|
virtual |
Read attributes from given item into this class.
source | The source to read from |
clearOldData | If OFTrue, old data is cleared before reading. Otherwise old data is overwritten (or amended) |
Reimplemented in MandatoryViewAndSliceProgressionDirectionMacro, ImageSOPInstanceReferenceMacro, IODSeriesAndInstanceReferenceMacro, IODSeriesAndInstanceReferenceMacro, IODMultiframeDimensionModule, CodeWithModifiers, TrcTrackSetStatistic, ContentItemMacro, TrcMeasurement, IODCommonInstanceReferenceModule, IODDoubleFloatingPointImagePixelModule, TrcTracksStatistic, ContentItemMacro::ReferencedSOPSequenceItem, IODEnhUSImageModule, TrcTrackSet, TrcTrack, IODGeneralSeriesModule, IODCommonInstanceReferenceModule, IODGeneralStudyModule, IODEnhancedUSSeriesModule, DPMParametricMapImageModule, IODImagePixelModule< T >, IODFloatingPointImagePixelModule, DPMParametricMapSeriesModule, TrcStatistic, and TrcTractographyResultsModule.
Referenced by DcmIODImage< IODImagePixelModule< Uint8 > >::read().
|
static |
Static helper function that reads attributes from given item into destination item, as determined by the provided rules and component name.
The rules are only applied when reading from the source (which may result in warning messages on the logger), but if they could be found they are taken over into the destination item no matter whether the element validates against the rule.
source | The item to read from |
rules | The rules that provide the attributes and requirements for these attributes |
destination | The destination to write to |
componentName | The name of the module/component to write |
|
virtual |
Write attributes from this class into given item.
destination | The item to write to |
Reimplemented in MandatoryViewAndSliceProgressionDirectionMacro, ImageSOPInstanceReferenceMacro, IODSeriesAndInstanceReferenceMacro, IODSeriesAndInstanceReferenceMacro, IODMultiframeDimensionModule, CodeWithModifiers, TrcTrackSetStatistic, ContentItemMacro, TrcMeasurement, IODCommonInstanceReferenceModule, IODDoubleFloatingPointImagePixelModule, TrcTracksStatistic, ContentItemMacro::ReferencedSOPSequenceItem, TrcTrackSet, IODEnhUSImageModule, TrcTrack, IODGeneralSeriesModule, IODCommonInstanceReferenceModule, IODGeneralStudyModule, IODEnhancedUSSeriesModule, DPMParametricMapImageModule, IODImagePixelModule< T >, IODFloatingPointImagePixelModule, DPMParametricMapSeriesModule, TrcStatistic, and TrcTractographyResultsModule.
Referenced by DcmIODImage< IODImagePixelModule< Uint8 > >::write().
|
static |
Static helper function that writes attributes from given item into destination item, as determined by the provided rules and component name.
The rules are only applied when writing to the destination (which may result in warning messages on the logger, and the whole call returning with an error). During reading from the source item the elements read are not validated against the rules.
source | The item to read from |
rules | The rules that provide the attributes and requirements for these attributes |
destination | The destination to write to |
componentName | The name of the module/component to write |
|
protected |
Shared pointer to the data handled by this class.
The item may contain more attributes than this class is actually responsible for