MeVisLab Toolbox Reference
mlDicomModifySubTreeSelectorFieldAddOn.h
Go to the documentation of this file.
1 // Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2 // **InsertLicense** code
3 //----------------------------------------------------------------------------------
7 
12 //----------------------------------------------------------------------------------
13 #pragma once
14 
15 #include "MLDicomModifySystem.h"
17 #include <mlZTUIndex.h>
18 
19 ML_START_NAMESPACE
20 
21 // Forward to internally used classes.
22 class UInt32MultiField;
23 class StringLineMultiField;
24 
25 //----------------------------------------------------------------------------------
29 //----------------------------------------------------------------------------------
31 {
32 public:
33 
37  ModifyZTU_SMF_FrameSlices,
40  ModifySequenceWithId
41  };
42 
44  enum { NumSubTreeSelectionModes = DicomModifySubTreeSelectorFieldAddOn::ModifySequenceWithId+1 };
45 
48  DicomModifyFieldAddOnBase(fieldContainerRef, 1, true, true){};
49 
51  void addFields() override;
52 
55 
58 
64  std::string applyModifications(DCMTree::TreePtr dcmTree,
65  const FieldContainer *treeInfos) override;
66 
67 protected:
68 
71  std::vector<DCMTree::TreePtr> _determineSubTreesToModify(DCMTree::TreePtr parentTree,
72  DICOMTagTools::ZTUVector &ztuIndexes) const;
79  const FieldContainer *treeInfos);
80 
81 private:
82 
84 
86  BaseField *_preInputModifierListFld;
87 
89  EnumField *_subTreeSelectionModeFld;
90 
92  StringField *_zSlicesEntriesFld;
93 
95  StringField *_tSlicesEntriesFld;
96 
98  StringField *_uSlicesEntriesFld;
99 
101  UInt32MultiField *_ztuFramesFld;
102 
104  StringLineMultiField *_ztuFrameValueListFld;
105 
107  StringField *_tagIdFld;
108 
110  BoolField *_isValidIdFld;
111 
114  StringField *_sequenceEntriesFld;
115 
117 
122 };
123 
124 ML_END_NAMESPACE
Project global and OS specific declarations.
#define ML_DICOM_MODIFY_EXPORT
DLL export macro definition.
Field to encapsulate a pointer to an ML base object.
Definition: mlFields.h:1187
Field to encapsulate a boolean value.
Definition: mlFields.h:62
The class DicomModifyFieldAddOnBase is dedicated to manage fields for ML modules and instances derive...
DicomModifyFieldAddOnBase class managing fields to select DCMTree sequence or MeVis SMF subtrees whic...
void addFields() override
Add fields to field container of module.
std::string _applyPreModifications(DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos)
Apply all plugins from _preInputModifierListFld to dcmTree.
std::vector< DCMTree::TreePtr > _determineSubTreesToModify(DCMTree::TreePtr parentTree, DICOMTagTools::ZTUVector &ztuIndexes) const
Returns the array of subtrees of parentTree which are described by the fields; the corresponding inde...
SubTreeSelectionModes
Available modes for subtree selection.
@ ModifyZTU_SMF_Frames
The frames of the MeVis Structured multi-frame sequence which are described in _ztuFramesFld are modi...
FieldAddOnBase::FieldChangeState handleFieldChanges(Field *field) override
Handle field changes and field validation.
std::string applyModifications(DCMTree::TreePtr dcmTree, const FieldContainer *treeInfos) override
Apply all DicomModify from getModifierList to dcmTree as well as all connected ones.
void handleFieldActivationChanges() override
Handle class changes according to Module::activateAttachments.
DicomModifySubTreeSelectorFieldAddOn(FieldContainer &fieldContainerRef)
See DicomModifyFieldAddOnBase::DicomModifyFieldAddOnBase(fieldContainerRef, numInstances) for details...
Field to encapsulate an enumerated value.
Definition: mlFields.h:363
FieldChangeState
Describes the type of a field changes detected in handleFieldChanges(Field *field).
Defines the class FieldContainer to encapsulate a vector of fields for (see class Field).
Base class for all fields used in the ML.
Definition: mlField.h:73
Field to encapsulate a string value.
Definition: mlFields.h:1000
The field class StringLineMultiField which manages a vector of std::string lines typically separated ...
Class UInt32MultiField. See MultiField for documentation.
#define ML_ABSTRACT_CLASS_HEADER(className)
Same like ML_ABSTRACT_CLASS_HEADER_EXPORTED with a non existing export symbol.
Header file of the DicomModifyFieldAddOnBase class dedicated to manage fields for ML modules and inst...
Header file of class ZTUIndex managing a multi-frame Z, T, and U-dimension plus a string value.
boost::shared_ptr< Tree > TreePtr
shared pointer to a DCMTree::Tree
Definition: DCMTree_Lib.h:70
@ DoNotModify
The value of the DICOM tag is not modified.
std::vector< ZTUIndex > ZTUVector
A std::vector typedef of ZTUIndexes to describe indexes of handles in the multi-frame Z,...
Definition: mlZTUIndex.h:70