MeVisLab Toolbox Reference
mlMultiFileVolumeListBaseOutput.h
Go to the documentation of this file.
1// Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2// **InsertLicense** code
3//----------------------------------------------------------------------------------
5
10//----------------------------------------------------------------------------------
11#pragma once
12
14
15// ML includes
16#include <mlModuleIncludes.h>
17
18// List of volumes loaded or accessed via connected module.
20
23
24// Needed to maintain the DICOM pixel frame-, tag-, and tree caches alife as long as instances of this module exist.
26
27// Needed to maintain the DICOM pixel frame-, tag-, and tree caches alife as long as instances of this module exist.
28#include <DCMTree_Lib.h>
29
32
33ML_START_NAMESPACE
34
35// Forward to internally used classes.
36class MultiFileVolume;
37class DicomTagDumpFieldAddOn;
38class RelatedDicomVolumeFieldAddOn;
39
40//----------------------------------------------------------------------------------
43//----------------------------------------------------------------------------------
45{
46public:
47
63 int numOutputs=0,
64 bool autoInstallTagDumpFieldAddOn=true,
65 bool installInputAccessConnector=true,
66 bool installInputMessageFilterPlugin=true,
67 bool installOutputAccessConnector=true);
68
71
72public:
73
77 virtual void updateToVolume(MultiFileVolume *outVolToUse);
78
81
84
86 MultiFileVolumeListRefCountedPtr getCurrentVolumeListRefCounted();
87
89 BoolField &getUseBaseInputFld () const { return *_useBaseInputFld ; }
90 NotifyField &getLoadResultCacheFld () const { return *_loadResultCacheFld ; }
91 BoolField &getAutoLoadResultCacheFld () const { return *_autoLoadResultCacheFld ; }
92 StringField &getCacheFilePathFld () const { return *_cacheFilePathFld ; }
93 IntField &getOutVolIdxFld () const { return *_outVolIdxFld ; }
94 const IntField &getNumVolumesFld () const { return *_numVolumesFld ; }
95 const StringField &getIssuesFld () const { return *_issuesFld ; }
96 const StringField &getVolumeInfoDumpFld () const { return *_volumeInfoDumpFld ; }
98
100 BaseField *getInputAccessConnectorFld () const { return _inputAccessConnectorFld ; }
101 BaseField *getInputMessageFilterPluginFld() const { return _inputMessageFilterPluginFld; }
102 BaseField *getOutputAccessConnectorFld () const { return _outputAccessConnectorFld ; }
104
105 // Convenience support for FieldAddOns:
106
110
113
117
120
121protected:
122
124 void activateAttachments () override;
125
127 void handleNotification (Field *field) override;
128
132
136 virtual DicomConfigurableMessageFilterBaseRefCountedPtr _getMessageCollector();
137
138 // Tool function useful to create text dumps of extracted tag information in derived classes:
148 DCMTree::TagId tagId,
149 const std::string prefixStr,
150 std::string &resultStr,
151 const std::string &lineBreakStr="\n");
152
153 // Tool function useful to create text dumps of extracted tag information in derived classes:
158 DCMTree::TagId tagId,
159 const std::string prefixStr,
160 std::string &resultStr);
161
162 // Tool function useful to create text dumps of extracted tag information in derived classes:
172 DCMTree::TagId seqTagId,
173 const std::string seqNameStr,
174 std::string &resultStr,
175 const std::string &sep=".");
176
177private:
178
180
182 void _initFieldsAndMembers();
183
187 bool _updateLoadedCache();
188
194 MultiFileVolume *_selectVolumeFromListAndFields();
195
200 //void _clampOutVolIndexField();
201
204 void _updateInformationFields(MultiFileVolume *outVolToUse);
205
207
210 MLDICOMCachedIOProxies _cacheProxies;
211
213 DicomTagDumpFieldAddOn *_dicomTagDumpFieldAddOn;
214
216 RelatedDicomVolumeFieldAddOn *_relatedDicomVolumeFieldAddOn;
217
219 std::string _previousCacheFileContent;
220
222 MultiFileVolumeListRefCountedPtr _outVolumesFromCacheFile;
223
225 MultiFileVolume *_currOutVolume;
226
227 // --------------- User modifiable fields.
228
231 BoolField *_useBaseInputFld;
232
234 NotifyField *_loadResultCacheFld;
235
238 BoolField *_autoLoadResultCacheFld;
239
241 StringField *_cacheFilePathFld;
242
247 BaseField *_inputAccessConnectorFld;
248
252 BaseField *_inputMessageFilterPluginFld;
253
256 BaseField *_outputAccessConnectorFld;
257
259 IntField *_outVolIdxFld;
260
261 // --------------- Read-only output information fields
263 IntField *_numVolumesFld;
264
266 StringField *_issuesFld;
267
269 StringField *_volumeInfoDumpFld;
270
273 NotifyField *_updateBaseOutputInformationDoneFld;
274
277};
278
279
280ML_END_NAMESPACE
Project global and OS specific declarations.
#define MLDIRECTDICOMIMPORTOUTPUTS_EXPORT
DLL export macro definition.
Class to wrap a tag ID.
Class managing fields to show and handle a DICOM tree tag dump.
Module(int numInputImages, int numOutputImages)
DicomTagDumpFieldAddOn * getDicomTagDumpFieldAddOn() const
Returns the DicomTagDumpFieldAddOn if installed or nullptr otherwise.
BaseField * getInputAccessConnectorFld() const
Access methods to optional fields which return nullptr if fields are not requested during constructor...
static std::string extractValueAndAppend(DCMTree::Const_TreePtr dcmTree, DCMTree::TagId tagId, const std::string prefixStr, std::string &resultStr, const std::string &lineBreakStr="\n")
virtual void _updateVolumeInformation(MultiFileVolume *currVol)
void handleNotification(Field *field) override
Handle field changes of the field field.
BoolField & getUseBaseInputFld() const
Access methods to fields; see field members for documentation.
virtual DicomConfigurableMessageFilterBaseRefCountedPtr _getMessageCollector()
RelatedDicomVolumeFieldAddOn * getRelatedDicomVolumeFieldAddOn() const
Returns the RelatedDicomVolumeFieldAddOn if installed or nullptr otherwise.
static DCMTree::Const_TagPtr extractSequenceAndAppend(DCMTree::Const_TreePtr dcmTree, DCMTree::TagId seqTagId, const std::string seqNameStr, std::string &resultStr, const std::string &sep=".")
virtual void updateToVolume(MultiFileVolume *outVolToUse)
void activateAttachments() override
Update internal module state after load or clone and enable notification handling again.
MultiFileVolumeListRefCountedPtr getCurrentVolumeListRefCounted()
Returns the refcounted base pointer to the currently used volume list if there is one or nullptr othe...
MultiFileVolumeListBaseOutput(int numInputs=0, int numOutputs=0, bool autoInstallTagDumpFieldAddOn=true, bool installInputAccessConnector=true, bool installInputMessageFilterPlugin=true, bool installOutputAccessConnector=true)
static int extractIntValueAndAppend(DCMTree::Const_TreePtr dcmTree, DCMTree::TagId tagId, const std::string prefixStr, std::string &resultStr)
~MultiFileVolumeListBaseOutput() override
Destructor.
MultiFileVolume * getCurrentlySetVolume()
Returns the currently set volume or nullptr if none is set.
MultiFileVolumeList * getCurrentVolumeList()
Returns the pointer to the currently used volume list if there is one or nullptr otherwise.
Class managing fields fields to show and reference other volumes in a MultiFileVolumeList.
#define ML_MODULE_CLASS_HEADER(className)
Reference counted Base class encapsulating a list of MultiFileVolume instances.
Class managing a list of MultiFileVolume instances.
boost::shared_ptr< const Tag > Const_TagPtr
Definition DCMTree_Lib.h:57
boost::shared_ptr< const Tree > Const_TreePtr
Definition DCMTree_Lib.h:67