MeVisLab Toolbox Reference
ml::DicomSaveBase Class Referenceabstract

#include <mlDicomSaveBase.h>

Inheritance diagram for ml::DicomSaveBase:
ml::Module ml::FieldContainer ml::Base ml::DicomDOCSave ml::DicomEnhancedSave ml::DicomFIDSave ml::DicomREGSave ml::DicomSCSave ml::DicomSEGSave ml::DicomSRSave

Public Member Functions

 DicomSaveBase (int numInputs=1, int numOutputs=0)
 Constructor, currently 0-3 input images are allowed to be set by derived modules.
const BoolFieldgetCopyOtherInputTagsFld () const
 Access to internal fields fields, see corresponding member documentation for details.
BoolFieldgetDumpPrivateTagValuesFld () const
const StringFieldgetFileNameField () const
const NotifyFieldgetInheritDICOMTagsFld () const
const BoolFieldgetPostBadParamErrorsField () const
NotifyFieldgetSaveField () const
StringFieldgetStatusField () const
IntFieldgetTagDumpSizeFld () const
StringFieldgetTagDumpFld () const
Public Member Functions inherited from ml::Module
MLMetaProfilePtrgetMetaProfile () const
 Returns the metaprofile for the base operator.
const char * getTypeNameFast () const
 Module (int numInputImages, int numOutputImages)
 ~Module () override
InputConnectorFieldgetInputImageField (MLint i) const
 Returns the field representing input image i. i must be a valid index.
OutputConnectorFieldgetOutputImageField (MLint i=0) const
 Returns the field representing output image i. i must be a valid index.
MLint getNumInputImages () const
 Returns the number of input images of this module.
MLint getNumOutputImages () const
 Returns the number of output images of this module.
PagedImagegetOutputImage (MLint outputIndex=0) const
 Returns the output image outputIndex. The index needs to be in the range [0, getNumOutputImages()-1].
InputConnectorFieldaddInputImage (const char *name=nullptr)
OutputConnectorFieldaddOutputImage (const char *name=nullptr)
PagedImagegetInputImage (MLint inputIndex, bool getReal=false) const
PagedImagegetUpdatedInputImage (MLint inputIndex, bool getReal=false) const
MLErrorCode processAllPages (int outputIndex=-1, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
MLErrorCode processAllPages (ProcessAllPagesHandler &handler, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
MLErrorCode processMissingPages (int outputIndex=0, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
void clearOutputImage (MLint i=0)
 Clears cached output image pages of output image i.
MLint getOutputImageInplace (MLint outputIndex=0) const
MLint getBypass (MLint outputIndex=0) const
THREAD_SUPPORT getThreadSupport () const
bool areRecursiveHandleNotificationsPermitted () const
MLint getHandleNotificationEntryCounter () const
PERMITTED_TYPES getVoxelDataTypeSupport () const
bool isSupportedVoxelDataType (MLDataType dt) const
virtual INPUT_HANDLE handleInput (int, INPUT_STATE) const
INPUT_STATE getInputState (MLint index)
INPUT_STATE getUpdatedInputState (MLint index)
bool isInputImageField (Field *field) const
void touchOutputImageFields () const
 Touches all output image fields to indicate that the images have changed.
virtual void beginSaveFields ()
virtual void endSaveFields ()
Public Member Functions inherited from ml::FieldContainer
 FieldContainer ()
 Constructor.
 ~FieldContainer () override
 Destructor: Deletes all added fields.
std::string whoAmI (bool withInstanceName=true) const
FieldaddField (const char *name, const char *type, const char *value)
FieldaddField (Field *field)
 Adds a field, the ownership of the field is passed to the FieldContainer.
BoolFieldaddBool (const char *name)
 Creates a BoolField with name and adds it to the container. Default value is false.
BoolFieldaddBool (const char *name, bool value)
 Creates a BoolField with name and adds it to the container.
IntFieldaddInt (const char *name)
 Creates an IntField with name and adds it to the container. Default value is 0.
IntFieldaddInt (const char *name, MLint value)
 Creates an IntField with name and adds it to the container.
EnumFieldaddEnum (const char *name, const char *const *enumerationItemNames, MLint numEnumerationItems)
EnumFieldaddEnum (const char *name, const std::vector< std::string > &enumerationItemNames)
template<typename EnumType>
TypedEnumField< EnumType > * addEnum (const char *name, const EnumValues< EnumType > &values, EnumType initialValue)
FloatFieldaddFloat (const char *name)
 Creates a FloatField with name and adds it to the container. Default value is 0.f.
FloatFieldaddFloat (const char *name, float value)
 Creates a FloatField with name and adds it to the container.
ProgressFieldaddProgress (const char *name)
 Creates a float ProgressField with name and adds it to the container. Default value is 0.f.
ProgressFieldaddProgress (const char *name, float value)
 Creates a float ProgressField with name and adds it to the container.
DoubleFieldaddDouble (const char *name)
 Creates a DoubleField with name and adds it to the container. Default value is 0.
DoubleFieldaddDouble (const char *name, double value)
 Creates a DoubleField with name and adds it to the container.
StringFieldaddString (const char *name)
 Creates a StringField with name and adds it to the container. Default value is empty string.
StringFieldaddString (const char *name, const std::string &value)
 Creates a StringField with name and adds it to the container.
NotifyFieldaddNotify (const char *name)
 Creates a NotifyField field with name and adds it to the container.
TriggerFieldaddTrigger (const char *name)
BaseFieldaddBase (const char *name)
 Creates a Base field with name and adds it to the container. Default value is NULL.
BaseFieldaddBase (const char *name, Base *value)
 Creates a Base field with name and adds it to the container.
BaseFieldaddBase (const char *name, const RefCountedBasePtr &value)
 Creates a Base field with name and adds it to the container. Sets the value from intrusive pointer.
template<typename T>
BaseFieldaddBaseWithAllowedType (const char *name, T *value=nullptr)
 As above, but also sets the allowed type of the field.
template<typename T>
BaseFieldaddBaseWithAllowedType (const char *name, const ::boost::intrusive_ptr< T > &value)
 As above, but also sets the allowed type of the field.
template<typename T>
TypedBaseField< T > * addTypedBase (const char *name)
 Creates a TypedBaseField with name and adds it to the container. Default value is NULL.
template<typename T>
TypedBaseField< T > * addTypedBase (const char *name, T *value)
 Creates a TypedBaseField with name and adds it to the container.
template<typename T>
TypedBaseField< T > * addTypedBase (const char *name, const ::boost::intrusive_ptr< T > &value)
 Creates a TypedBaseField with name and adds it to the container. Sets the value from intrusive pointer.
SoNodeFieldaddSoNode (const char *name)
 Creates a SoNodeField with name and adds it to the container. Default value is NULL.
SoNodeFieldaddSoNode (const char *name, SoNode *value)
 Creates a SoNodeField with name and adds it to the container.
PointerFieldaddPointer (const char *name)
 Creates a PointerField with name and adds it to the container.
Vector2FieldaddVector2 (const char *name)
 Creates a Vector2Field with name and adds it to the container.
Vector2FieldaddVector2 (const char *name, const Vector2 &value)
 Creates a Vector2Field with name and adds it to the container.
Vector2FieldaddVector2 (const char *name, double x, double y)
 Creates a Vector2Field with name and adds it to the container.
Vector3FieldaddVector3 (const char *name)
 Creates a Vector3Field with name and adds it to the container.
Vector3FieldaddVector3 (const char *name, const Vector3 &value)
 Creates a Vector3Field with name and adds it to the container.
Vector3FieldaddVector3 (const char *name, double x, double y, double z)
 Creates a Vector3Field with name and adds it to the container.
Vector4FieldaddVector4 (const char *name)
 Creates a Vector4Field with name and adds it to the container.
Vector4FieldaddVector4 (const char *name, const Vector4 &value)
 Creates a Vector4Field with name and adds it to the container.
Vector4FieldaddVector4 (const char *name, double x, double y, double z, double w)
 Creates a Vector4Field with name and adds it to the container.
Vector5FieldaddVector5 (const char *name)
 Creates a Vector5Field with name and adds it to the container.
Vector5FieldaddVector5 (const char *name, const Vector5 &value)
 Creates a Vector5Field with name and adds it to the container.
Vector6FieldaddVector6 (const char *name)
 Creates a Vector6Field with name and adds it to the container.
Vector6FieldaddVector6 (const char *name, const Vector6 &value)
 Creates a Vector6Field with name and adds it to the container.
Vector10FieldaddVector10 (const char *name)
 Creates a Vector10Field with name and adds it to the container.
Vector10FieldaddVector10 (const char *name, const Vector10 &value)
 Creates a Vector10Field with name and adds it to the container.
ImageVectorFieldaddImageVector (const char *name)
 Creates a ImageVectorField with name and adds it to the container.
ImageVectorFieldaddImageVector (const char *name, const ImageVector &value)
 Creates a ImageVectorField with name and adds it to the container.
ImageVectorFieldaddImageVector (const char *name, MLint x, MLint y, MLint z, MLint c, MLint t, MLint u)
 Creates a ImageVectorField with name and adds it to the container.
SubImageBoxFieldaddSubImageBox (const char *name)
 Creates a SubImageBoxField with name and adds it to the container.
SubImageBoxFieldaddSubImageBox (const char *name, const SubImageBox &value)
 Creates a SubImageBoxField with name and adds it to the container.
SubImageBoxdFieldaddSubImageBoxd (const char *name)
 Creates a SubImageBoxd field with name and adds it to the container.
SubImageBoxdFieldaddSubImageBoxd (const char *name, const SubImageBoxd &value)
 Creates a SubImageBoxd field with name and adds it to the container.
ColorFieldaddColor (const char *name)
 Creates a ColorField with name and adds it to the container.
ColorFieldaddColor (const char *name, float r, float g, float b)
 Creates a ColorField with name and adds it to the container.
ColorFieldaddColor (const char *name, const Vector3 &value)
 Creates a ColorField with name and adds it to the container.
PlaneFieldaddPlane (const char *name)
 Creates a PlaneField with name and adds it to the container.
PlaneFieldaddPlane (const char *name, double f0, double f1, double f2, double f3)
 Creates a PlaneField with name and adds it to the container.
PlaneFieldaddPlane (const char *name, const Plane &value)
 Creates a PlaneField with name and adds it to the container.
RotationFieldaddRotation (const char *name)
 Creates a RotationField with name and adds it to the container.
RotationFieldaddRotation (const char *name, const Rotation &value)
 Creates a RotationField with name and adds it to the container.
Matrix2FieldaddMatrix2 (const char *name)
 Creates a Matrix2Field with name and adds it to the container.
Matrix2FieldaddMatrix2 (const char *name, const Matrix2 &value)
 Creates a Matrix2Field with name and adds it to the container.
Matrix3FieldaddMatrix3 (const char *name)
 Creates a Matrix3Field with name and adds it to the container.
Matrix3FieldaddMatrix3 (const char *name, const Matrix3 &value)
 Creates a Matrix3Field with name and adds it to the container.
Matrix4FieldaddMatrix4 (const char *name)
 Creates a Matrix4Field with name and adds it to the container.
Matrix4FieldaddMatrix4 (const char *name, const Matrix4 &value)
 Creates a Matrix4Field with name and adds it to the container.
Matrix5FieldaddMatrix5 (const char *name)
 Creates a Matrix5Field with name and adds it to the container.
Matrix5FieldaddMatrix5 (const char *name, const Matrix5 &value)
 Creates a Matrix5Field with name and adds it to the container.
Matrix6FieldaddMatrix6 (const char *name)
 Creates a Matrix6Field with name and adds it to the container.
Matrix6FieldaddMatrix6 (const char *name, const Matrix6 &value)
 Creates a Matrix6Field with name and adds it to the container.
MatrixFieldaddMatrix (const char *name)
 Creates a MatrixField with name and adds it to the container.
MatrixFieldaddMatrix (const char *name, const Matrix4 &value)
 Creates a MatrixField with name and adds it to the container.
MLDataTypeFieldaddMLDataType (const char *name)
 Creates a MTDataTypeField with name and adds it to the container.
MLDataTypeFieldaddMLDataType (const char *name, MLDataType value)
 Creates a MTDataTypeField with name and adds it to the container.
UniversalTypeFieldaddUniversalType (const char *name)
 Creates an UniversalTypeField field with name and adds it to the container.
IntListFieldaddIntList (const char *name)
 Creates an IntListField field with name and empty list value and adds it to the container.
IntListFieldaddIntList (const char *name, const std::vector< MLint > &value)
 Creates an IntListField field with name and given list value and adds it to the container.
DoubleListFieldaddDoubleList (const char *name)
 Creates an DoubleListField field with name and empty list value and adds it to the container.
DoubleListFieldaddDoubleList (const char *name, const std::vector< double > &value)
 Creates an DoubleListField field with name and given list value and adds it to the container.
Vector2ListFieldaddVector2List (const char *name)
 Creates an Vector2ListField field with name and empty list value and adds it to the container.
Vector2ListFieldaddVector2List (const char *name, const std::vector< Vector2 > &value)
 Creates an Vector2ListField field with name and given list value and adds it to the container.
Vector3ListFieldaddVector3List (const char *name)
 Creates an Vector3ListField field with name and empty list value and adds it to the container.
Vector3ListFieldaddVector3List (const char *name, const std::vector< Vector3 > &value)
 Creates an Vector3ListField field with name and given list value and adds it to the container.
Vector4ListFieldaddVector4List (const char *name)
 Creates an Vector4ListField field with name and empty list value and adds it to the container.
Vector4ListFieldaddVector4List (const char *name, const std::vector< Vector4 > &value)
 Creates an Vector4ListField field with name and given list value and adds it to the container.
size_t getNumFields () const
 Returns the number of added fields.
bool hasField (const std::string &name) const
 Returns true if the field with name name exists; otherwise, false is returned.
FieldgetField (const std::string &name) const
FieldgetField (MLint index) const
 Returns pointer of field at index if it exists. If not, -1 is returned.
MLint getFieldIndex (Field *field) const
 Returns index of field if it exists. If not, -1 is returned.
void setFieldStringValue (const std::string &name, const std::string &value)
std::string getFieldStringValue (const std::string &name) const
virtual void deactivateAttachments ()
Public Member Functions inherited from ml::Base
 Base ()
 Constructor.
virtual ~Base ()
 Destructor.
virtual BasedeepCopy () const
bool isOfAllowedType (const std::vector< const RuntimeType * > &types) const
virtual bool isRefCountedBase () const
 Returns whether the instance is derived from RefCountedBase.
virtual std::string detailString () const
virtual bool implementsPersistence (PersistenceInterface) const
virtual std::string persistentState () const
 Returns a string describing the object's internal state.
virtual void setPersistentState (const std::string &state)
virtual void addStateToTree (TreeNode *) const
 Attaches the object state as children of the given parent node.
virtual void readStateFromTree (TreeNode *)
 Reads the object state from the children of the given parent node.
virtual void writeTo (AbstractPersistenceOutputStream *) const
virtual void readFrom (AbstractPersistenceInputStream *, int)

Static Public Member Functions

static std::string checkXYZValues (const ImageVector &ext)
static std::string checkMaximumPixelDataSize (const PagedImage &inImg)
Static Public Member Functions inherited from ml::Module
static MLErrorCode getTile (PagedImage *image, SubImageBox loc, MLDataType datatype, void **data, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
static MLErrorCode getTile (PagedImage *image, SubImage &subimg, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
static MLErrorCode updateImageProperties (PagedImage *image)
static void freeTile (void *data)
 For documentation see Host::freeTile().
static void updateProgress (const char *info1, const char *info2)
 For documentation see Host::updateProgress().
static bool shouldTerminate ()
 For documentation see Host::shouldTerminate().
static FieldgetPressedNotifyField ()
 For documentation see Host::getPressedNotifyField().
static void adaptPageExtent (ImageVector &pageExtent, MLDataType imageType, const ImageVector &newImgExtent, const ImageVector &oldImgExtent, const ImageVector &pageUnit=ImageVector(0), const ImageVector &minPageExtent=ImageVector(0), const ImageVector &maxPageExtent=ImageVector(0))
static std::string getVoxelValueAsString (PagedImage *image, const ImageVector &position, MLErrorCode *errorCode=nullptr, const std::string &errorResult="")
static size_t getNumModules ()
 Returns the number of instantiated modules.
static ModulegetModule (size_t index)
 Returns a pointer to instantiated module index.
static MLint findModuleIndex (Module &module)
 Returns the index of Module module. If not found, -1 is returned.
static void destroyModule ()

Protected Member Functions

void handleNotification (Field *field) override
 Handles field changes of the field field.
void activateAttachments () override
 Updates the internal module state after loading or cloning the module, and enables notification handling again.
virtual void _inheritFieldValuesFromDCMTree (DCMTree::Const_TreePtr dcmTree)=0
DCMTree::Const_TreePtr _getCurrentOriginalInputTree () const
 Returns content of the _currentOriginalInputTree after the recent call of _updateInputState().
DCMTree::TreePtr _getCurrentModifiableTree () const
 Returns content of _currentModifiableTree after the recent call of _updateInputState().
PagedImage_getCurrentInImg () const
 Returns content of _currentInImg after the recent call of _updateInputState().
bool & _getAllowNULLInputTree ()
 Provides access to _allowNULLInputTree.
virtual std::string _checkConsistency () const =0
virtual std::string _setUpTreeContent ()=0
virtual DCMTree::Const_TreePtr _getInputDCMTree (DicomMessageCollector &dcmMsgCollector)
virtual std::string _getInputImageConfiguration (int inputImageConnector, DCMTree::Const_TreePtr &originalInputImageTree, DCMTree::TreePtr &resultDcmTree, PagedImage *&inImg)
virtual void _updateInputState ()
virtual void _updateTagDump (DCMTree::Const_TreePtr dcmTree)
virtual void _createInputModifierConnector ()
virtual std::string _applyInputModifiersIfAvailable (DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos=nullptr)
virtual void _save ()
Protected Member Functions inherited from ml::Module
void handleNotificationInternal (Field *field, FieldSensor::Strength strength) override
virtual CalculateOutputImageHandlercreateCalculateOutputImageHandler (PagedImage *outputImage)
virtual void calculateOutputImageProperties (int outputIndex, PagedImage *outputImage)
virtual SubImageBox calculateInputSubImageBox (int, const SubImageBox &outputSubImageBox, int)
virtual void calculateOutputSubImage (SubImage *outputSubImage, int outputIndex, SubImage *inputSubImages)
virtual void provideCustomPage (int, const SubImageBox &, MLMemoryBlockHandle &)
void handleNotificationOff ()
void handleNotificationOn ()
bool isHandleNotificationOn ()
 Returns true if handleNotification calls are permitted; otherwise, it returns false.
void setOutputImageInplace (MLint outputIndex=0, MLint inputIndex=0)
void unsetOutputImageInplace (MLint outputIndex=0)
void setBypass (MLint outputIndex=0, MLint inputIndex=0)
void setClampPagesToImageExtent (bool flag=true)
void setThreadSupport (THREAD_SUPPORT supportMode)
void permitRecursiveHandleNotifications (bool enable)
void setVoxelDataTypeSupport (PERMITTED_TYPES permTypes)

Protected Attributes

TreeAndVolumeInputFieldAddOn _dcmTreeInputFieldAddOn
 Field AddOn to manage selectors and input connectors for DCMTrees and MultiFileVolumes.
DicomTagDumpFieldAddOn _dicomTagDumpFieldAddOn
 Field AddOns managing the DICOM tag dump as string field.

Additional Inherited Members

Public Types inherited from ml::Module
enum  PERMITTED_TYPES { ONLY_SCALAR_TYPES , ONLY_DEFAULT_TYPES , ALL_REGISTERED_TYPES }
 See documentation of setVoxelDataTypeSupport. More...
enum  INPUT_STATE { DISCONNECTED = 0 , CONNECTED_BUT_INVALID = 1 , CONNECTED_AND_VALID = 2 , CONNECTED_BUT_NEEDS_UPDATE = 3 }
 See documentation of handleInput. More...
enum  INPUT_HANDLE { INVALIDATE = 0 , ALLOW_INVALID_INPUT = 2 }
 See documentation of handleInput. More...
Public Types inherited from ml::Base
enum  PersistenceInterface { PersistenceByString , PersistenceByTreeNode , PersistenceByStream }
 This enum describes the different persistence interfaces available. More...
Protected Types inherited from ml::Module
enum  THREAD_SUPPORT { NO_THREAD_SUPPORT = PagedImage::NO_THREAD_SUPPORT , MULTITHREADED = PagedImage::MULTITHREADED , IO_THREAD = PagedImage::IO_THREAD }

Detailed Description

Definition at line 50 of file mlDicomSaveBase.h.

Constructor & Destructor Documentation

◆ DicomSaveBase()

ml::DicomSaveBase::DicomSaveBase ( int numInputs = 1,
int numOutputs = 0 )

Constructor, currently 0-3 input images are allowed to be set by derived modules.

Member Function Documentation

◆ _applyInputModifiersIfAvailable()

virtual std::string ml::DicomSaveBase::_applyInputModifiersIfAvailable ( DCMTree::TreePtr dcmTree,
const FieldContainer * treeInfos = nullptr )
protectedvirtual

If an InputModifierConnector is available and modifiers are connected then apply them to dcmTree, otherwise the call is ignored. Called automatically by _save() before saving the tree.

Parameters
dcmTreeThe DICOM tree to be modified.
treeInfosA FieldContainer which - if not nullptr - can contain additional user defined information fields about dcmTree and the changes to perform.
Returns
An empty string on success, otherwise a cumulative descriptive string of all problems.

◆ _checkConsistency()

virtual std::string ml::DicomSaveBase::_checkConsistency ( ) const
protectedpure virtual

Checks for invalid parameters which could cause problems in file creation and return textual description on error, otherwise and empty string. must be implemented by derived classes to verify the consistency of the fields to be added in _setUpTreeContents. Called by _save after updating input state.

Implemented in ml::DicomDOCSave, ml::DicomEnhancedSave, ml::DicomFIDSave, ml::DicomREGSave, ml::DicomSCSave, ml::DicomSEGSave, and ml::DicomSRSave.

◆ _createInputModifierConnector()

virtual void ml::DicomSaveBase::_createInputModifierConnector ( )
protectedvirtual

If called then an input Base field for a DicomModifyList object is installed, typically called in constructor where fields are created.. It allows application of DICOM tag modifiers on the created DICOM tree after its final setup and as last operation before it is saved.

◆ _getAllowNULLInputTree()

bool & ml::DicomSaveBase::_getAllowNULLInputTree ( )
inlineprotected

Provides access to _allowNULLInputTree.

Definition at line 104 of file mlDicomSaveBase.h.

◆ _getCurrentInImg()

PagedImage * ml::DicomSaveBase::_getCurrentInImg ( ) const
inlineprotected

Returns content of _currentInImg after the recent call of _updateInputState().

Definition at line 101 of file mlDicomSaveBase.h.

References ml::Module::PagedImage.

◆ _getCurrentModifiableTree()

DCMTree::TreePtr ml::DicomSaveBase::_getCurrentModifiableTree ( ) const
inlineprotected

Returns content of _currentModifiableTree after the recent call of _updateInputState().

Definition at line 98 of file mlDicomSaveBase.h.

◆ _getCurrentOriginalInputTree()

DCMTree::Const_TreePtr ml::DicomSaveBase::_getCurrentOriginalInputTree ( ) const
inlineprotected

Returns content of the _currentOriginalInputTree after the recent call of _updateInputState().

Definition at line 95 of file mlDicomSaveBase.h.

◆ _getInputDCMTree()

virtual DCMTree::Const_TreePtr ml::DicomSaveBase::_getInputDCMTree ( DicomMessageCollector & dcmMsgCollector)
protectedvirtual

Gets a DCMTree from the selected input or a nullptr tree if that is not available or empty.

Parameters
dcmMsgCollectorCollects error, info and issue messages (typically related to a handle).
Returns
The Const_DCMTreePtr from the selected input or a nullptr tree if that is not available or empty.

◆ _getInputImageConfiguration()

virtual std::string ml::DicomSaveBase::_getInputImageConfiguration ( int inputImageConnector,
DCMTree::Const_TreePtr & originalInputImageTree,
DCMTree::TreePtr & resultDcmTree,
PagedImage *& inImg )
protectedvirtual

Returns some important parameters of the module's input image configuration:

  • The original input DICOM tree of the given input image if possible/available
  • A copy of the input DICOM tree from the given input connector if available and _copyOtherInputTagsFld is on, or otherwise a newly created DCMTree otherwise.
  • The pointer to the input PagedImage or nullptr if not possible.
    Parameters
    inputImageConnectorThe input image connector from which the DCMtree shall be retrieved.
    originalInputImageTreeThe unchanged input DICOM tree pointer from the specified input or reset if not possible.
    resultDcmTreeThe DICOM tree pointer to be updated with the new tree copy.
    inImgThe pointer to the input image specified by inputImageConnector.
    Returns
    An empty string on success, otherwise a textual description of the error. If returned string is non-empty then originalInputTree and resulDcmTree are reset and inImg set to nullptr, otherwise originalTree points to the DCMTree in the image properties of the specified input, resultDcmTree will be a valid modifiable copy owned by the caller, and inImg points to the input PagedImage specified with inputImageConnector.

References ml::Module::PagedImage.

◆ _inheritFieldValuesFromDCMTree()

virtual void ml::DicomSaveBase::_inheritFieldValuesFromDCMTree ( DCMTree::Const_TreePtr dcmTree)
protectedpure virtual

Tries to copy all DICOM tag field information from a given DCMTree; dcmTree will be nullptr if not available; must be implemented by derived classes to fill DICOM tag fields with data from connected inputs.

Implemented in ml::DicomDOCSave, ml::DicomEnhancedSave, ml::DicomFIDSave, ml::DicomREGSave, ml::DicomSCSave, ml::DicomSEGSave, and ml::DicomSRSave.

◆ _save()

virtual void ml::DicomSaveBase::_save ( )
protectedvirtual

Saves the DICOM object in the file(s) defined by _fileNameFld. To be (re)implemented in derived classes.

Reimplemented in ml::DicomSCSave, and ml::DicomSRSave.

◆ _setUpTreeContent()

virtual std::string ml::DicomSaveBase::_setUpTreeContent ( )
protectedpure virtual

Allows the user to apply changes to the tree before it is saved; called after _updateInputState() and checkConsistency(). Must be implemented by derived classes to actually add the tag field contents to the DICOM tree to be saved.

Returns
An empty string on success, otherwise a textual description of the error.

Implemented in ml::DicomDOCSave, ml::DicomEnhancedSave, ml::DicomFIDSave, ml::DicomREGSave, ml::DicomSCSave, and ml::DicomSEGSave.

◆ _updateInputState()

virtual void ml::DicomSaveBase::_updateInputState ( )
protectedvirtual

Checks the input state and updates status fields accordingly: it gets the validity of the expected input image at connector 0 (if the connector exists), updates the three _current* members and the status field; if statusField is empty then no error has been found. Note that calls to this method also replace _currentModifiableTree, previous changes on it will be lost. Called automatically by

Reimplemented in ml::DicomEnhancedSave, ml::DicomREGSave, and ml::DicomSEGSave.

◆ _updateTagDump()

virtual void ml::DicomSaveBase::_updateTagDump ( DCMTree::Const_TreePtr dcmTree)
protectedvirtual

Updates the _dicomTagDumpFieldAddOn according to the content of dcmTree; called automatically by _save().

◆ activateAttachments()

void ml::DicomSaveBase::activateAttachments ( )
overrideprotectedvirtual

Updates the internal module state after loading or cloning the module, and enables notification handling again.

Reimplemented from ml::FieldContainer.

Reimplemented in ml::DicomSCSave, ml::DicomSEGSave, and ml::DicomSRSave.

◆ checkMaximumPixelDataSize()

std::string ml::DicomSaveBase::checkMaximumPixelDataSize ( const PagedImage & inImg)
static

Returns an empty string if the passed PagedImage describes an image whose pixel data would fit into a DICOM PixelData tag and also calls checkXYValues(); if any range is exceeded a non-empty error string is returned.

References ml::Module::PagedImage.

◆ checkXYZValues()

std::string ml::DicomSaveBase::checkXYZValues ( const ImageVector & ext)
static

If Y and X are used as row and column, they can hold at most values of 65535, because these tags are of Vr US (unsigned short); NumberOfFrames tag is usually used for the z-slices and is an integer string and should not exceed is of type IS, which can hold up values up at most of 2^31-1; If any of these values exceed these ranges, a non empty error description is returned, otherwise an empty string.

◆ getCopyOtherInputTagsFld()

const BoolField & ml::DicomSaveBase::getCopyOtherInputTagsFld ( ) const
inline

Access to internal fields fields, see corresponding member documentation for details.

Definition at line 59 of file mlDicomSaveBase.h.

◆ getDumpPrivateTagValuesFld()

BoolField & ml::DicomSaveBase::getDumpPrivateTagValuesFld ( ) const
inline

Definition at line 60 of file mlDicomSaveBase.h.

References _dicomTagDumpFieldAddOn.

◆ getFileNameField()

const StringField & ml::DicomSaveBase::getFileNameField ( ) const
inline

Definition at line 61 of file mlDicomSaveBase.h.

◆ getInheritDICOMTagsFld()

const NotifyField & ml::DicomSaveBase::getInheritDICOMTagsFld ( ) const
inline

Definition at line 62 of file mlDicomSaveBase.h.

◆ getPostBadParamErrorsField()

const BoolField & ml::DicomSaveBase::getPostBadParamErrorsField ( ) const
inline

Definition at line 63 of file mlDicomSaveBase.h.

◆ getSaveField()

NotifyField & ml::DicomSaveBase::getSaveField ( ) const
inline

Definition at line 64 of file mlDicomSaveBase.h.

◆ getStatusField()

StringField & ml::DicomSaveBase::getStatusField ( ) const
inline

Definition at line 65 of file mlDicomSaveBase.h.

◆ getTagDumpFld()

StringField & ml::DicomSaveBase::getTagDumpFld ( ) const
inline

Definition at line 67 of file mlDicomSaveBase.h.

References _dicomTagDumpFieldAddOn.

◆ getTagDumpSizeFld()

IntField & ml::DicomSaveBase::getTagDumpSizeFld ( ) const
inline

Definition at line 66 of file mlDicomSaveBase.h.

References _dicomTagDumpFieldAddOn.

◆ handleNotification()

void ml::DicomSaveBase::handleNotification ( Field * field)
overrideprotectedvirtual

Handles field changes of the field field.

Reimplemented from ml::Module.

Reimplemented in ml::DicomSCSave, ml::DicomSEGSave, and ml::DicomSRSave.

Member Data Documentation

◆ _dcmTreeInputFieldAddOn

TreeAndVolumeInputFieldAddOn ml::DicomSaveBase::_dcmTreeInputFieldAddOn
protected

Field AddOn to manage selectors and input connectors for DCMTrees and MultiFileVolumes.

Definition at line 183 of file mlDicomSaveBase.h.

◆ _dicomTagDumpFieldAddOn

DicomTagDumpFieldAddOn ml::DicomSaveBase::_dicomTagDumpFieldAddOn
protected

Field AddOns managing the DICOM tag dump as string field.

Definition at line 186 of file mlDicomSaveBase.h.

Referenced by getDumpPrivateTagValuesFld(), getTagDumpFld(), and getTagDumpSizeFld().


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