22 #include <FMEThirdPartyWarningsDisable.h>
25 #include <FMEThirdPartyWarningsRestore.h>
32 class DicomMessageCollector;
33 class DicomConfigurableMessageFilter;
109 bool useRelativePaths,
148 const std::string& cacheFileRootDirPath,
149 bool useRelativePaths,
150 const std::string& userInfo=std::string())
const;
167 std::string& currCacheState,
168 const std::string& lineEndStr,
169 bool useRelativePaths,
170 const std::string &optionalFilePrefix =
"");
185 const std::string& cacheDirPath,
187 bool lightLoad=
false,
353 bool forceSearchInEnhancedHandles,
354 bool alsoSearchInSMFTrees,
375 const std::string& tagValue,
378 bool forceSearchInEnhancedHandles,
379 bool alsoSearchInSMFTrees,
390 const std::string& tagValue,
391 bool alsoSearchInSMFTrees)
const;
397 bool separateWithTerminatorIfNecessary);
425 std::string _outVolumeName;
435 std::string _fileFormat;
453 std::vector<std::string> _issues;
460 std::string _inputFilterLabel;
464 std::string _inputFilterConfig;
474 Module* _mlItkImageFileReader;
Project global and OS specific declarations.
#define MLMULTI_FILE_VOLUME_EXPORT
Only for diagnostic purposes.
An instance of this class creates singleton proxies for DICOMCachedIO cache classes such that all cac...
Class to collect messages and errors related to a given frame handle.
Base class for an image processing module of the ML.
Container which stores additional options for MultiFileVolumes which can have an arbitrary number of ...
Management class used by DirectDicomImport to create, represent and describe volumes composed of mult...
int getFillValueUInt8() const
Fill value for gaps in volume.
Module ** getMLItkImageFileReaderPointer()
Provide access to a pointer to an MLItkImageFileReader which is created on demand.
bool setUpIssues(const DicomMessageCollector *dcmMsgCollector=nullptr)
Sets up the member 'issues' to a description of known problems for this volume and return true or - i...
size_t getZExt() const
Z-Extent of the volume.
PagedImage & getModifiableImageProperties()
const PagedImage & getImageProperties() const
MLPaged image properties of the volume.
MLErrorCode setFromString(const std::string &state, const std::string &cacheDirPath, size_t &readPos, bool lightLoad=false, DicomMessageCollector *dcmMsgCollector=nullptr)
Reads the MultFileVolume state from the string state starting at readPos.
void appendFilteredIssue(const std::string &issue, const DicomMessageCollector *dcmMsgCollector, bool separateWithTerminatorIfNecessary)
If possible then filter issue with dcmMsgCollector and append it to getIssuesVector() if not filtered...
bool equals(const MultiFileVolume &obj) const
Returns true if all properties stored with setFromString and restored with getAsString() of *this and...
const std::string & getFileFormat() const
String set to the file format if it is not a DICOM or DICOM/Tiff import.
virtual ~MultiFileVolume()
Destructor.
int getPlanarConfig() const
Planar configuration of the volume.
const DICOMCachedIOFileHandle & getFirstFileName() const
Name of first file used to compose the output image.
void setFirstFileName(const std::string &fName)
size_t getTExt() const
Time extent of the volume.
bool hasTagWithValueInTree(DCMTree::RawTagId tagId, const std::string &tagValue, bool alsoSearchInSMFTrees) const
Returns true if the DICOM tree of this has a tag with id tagId and value tagValue; otherwise false is...
std::string getInfoDump(const std::string &cacheFileRootDirPath, bool useRelativePaths, const DicomMessageCollector *dcmMsgCollector=nullptr) const
Returns information about *this as human readable string.
void setFileFormat(const std::string &fFormat)
void setFillValueUInt8(int fVal)
MLErrorCode appendToCache(const std::string &cacheDirPath, std::string &currCacheState, const std::string &lineEndStr, bool useRelativePaths, const std::string &optionalFilePrefix="")
Converts the current state of this to a string, appends it to the currCacheState, stores DICOM trees ...
static const char *const DDISMFTreeCacheFileSuffix
A constant suffix for SMF tree file generated for cache files.
std::string getVolumeInfoString(const std::string &lineEndStr, const std::string &cacheFileRootDirPath, bool useRelativePaths, const std::string &userInfo=std::string()) const
Return a human-readable subset of information about this volume which is also used for persistence wh...
void setImportTime(MLdouble iTime)
MultiFileVolume()
Default constructor.
const DICOMCachedIOFileHandle & getDirectDCMTreeFileName() const
DicomToMLTools::FillPageMethods getFillPageMethod() const
The way how a page is filled with data from the source file or tree.
MLErrorCode copyToSubImage(SubImage &outSubImg, PagedImage &, DicomMessageCollector &dcmMsgCollector)
Same as copyToSubImage(SubImage& outSubImg, DicomMessageCollector& dcmMsgCollector) for backward comp...
void setUpMetaDataDumpsFromAdditionalOptions()
Calls setUpMetaDataDumpsFromAdditionalOptions(this->_additionalOptions and this->_imgProps).
MLImageFormat ** getMLImageFormatFileLoaderPointer()
Provide access to a pointer to an MLImageFormatLoader which is created on demand.
void setInputFilterConfig(const std::string &config)
void appendFrameFile(MLint imgDim, const std::string &fileName, ImageVector &ext)
Append an image frame with image dimension imgDim (where color extents > 1 are not considered as exte...
const std::vector< std::string > & getIssuesVector() const
String vector containing a description of issues related to the imported volume or empty if no proble...
ZTUFileNameSet & getModifiablePageFileNames()
2D vector of all DICOM file names to be composed to the result image.
MultiFileVolume & operator=(const MultiFileVolume &ref)
Assignment operator.
static const char *const DDIVersionStringBase
A constant version string used as base for all currently used version strings written to cache files.
void setSMFTree(DCMTree::Const_StructuredMFPtr tree)
Set the SMF DCMTree of the volume.
MLErrorCode removeSpatialSlices(std::vector< size_t > zIndexesToRemove)
Removes all entries of pageFileNames in z-dimension which are given in zIndexesToRemove and updates t...
void setDicomSMFTagTreeCacheFileName(const std::string &fName)
size_t getUExt() const
U extent of the volume.
void setInputFilterLabel(const std::string &label)
void setOvrDataSrcFile(const std::string &oDFile)
const ZTUFileNameSet & getConstPageFileNames() const
const DCMTree::Const_StructuredMFPtr getSMFTree(bool checkImgProps=false) const
Returns a constant pointer to the SMF DICOM tree available for this volume.
void setPlanarConfig(int pConfig)
static void setUpMetaDataDumpsFromAdditionalOptions(const MultiFileVolumeAdditionalOptions &additionalOptions, PagedImage &imgProps)
Setting up meta data from additionalOptions.
const std::string & getInputFilterLabel() const
Return the volume label defined input filters; default is "".
std::string getIssues(const DicomMessageCollector *dcmMsgCollector=nullptr) const
Returns a string containing a description of issues related to the imported volume or "" if no proble...
void invalidateImage(const std::string &stateInfo, MLErrorCode stateErrCode)
Invalidate image properties, sets outOfDate and UpdateOfImagePropertiesNeeded flags,...
bool searchFrameWithValueInTag(DCMTree::RawTagId tagId, const std::string &tagValue, DICOMCachedIOFileHandle &foundHandle, DICOMTagTools::ZTUIndex &ztuPosition, bool forceSearchInEnhancedHandles, bool alsoSearchInSMFTrees, DicomMessageCollector &dcmMsgCollector) const
Returns file handle and position of the first frame in the volume with the given tagValue in tag with...
MultiFileVolumeAdditionalOptions & getAdditionalOptionsContainer()
Provide access to the container with additional options.
void setOutVolumeName(const std::string &fName)
const std::string & getOutVolumeName() const
Name base (without extension) of generated output volumes or empty if no output is generated.
MLErrorCode copyToSubImage(SubImage &outSubImg, DicomMessageCollector &dcmMsgCollector)
Copies overlapping regions of the volume with outSubImg into outSubImg, non-constant since needed loa...
void addImportTime(MLdouble iTimeToAdd)
bool searchFrameWithSOPInstanceUID(const std::string &sopInstanceUID, DICOMCachedIOFileHandle &foundHandle, DICOMTagTools::ZTUIndex &ztuPosition, bool forceSearchInEnhancedHandles, bool alsoSearchInSMFTrees, DicomMessageCollector &dcmMsgCollector) const
Returns position and file handle of the first frame with the given SOPInstanceUID.
const DCMTree::Const_TreePtr getDCMTree(bool checkImgProps=false) const
Returns a constant pointer to the DICOM tree available for this volume, however, it may not have load...
MLdouble getImportTime() const
Rough time needed to import this volume in seconds (not very precise).
void setFillPageMethod(DicomToMLTools::FillPageMethods fpMode)
const DICOMCachedIOFileHandle & getOvrDataSrcFile() const
In case of DCM/Tiff pairs or other formats this stores the file the data comes from instead of the or...
void setDirectDCMTreeFileName(const std::string &fName)
DCMTree::Const_TreePtr getDCMTreeAlsoFromFiles() const
Returns an associated DCMTree if there is any in the volume, otherwise nullptr; the difference to get...
const std::string & getInputFilterConfig() const
Return the DPL configuration defined by input filters; default is "".
const DICOMCachedIOFileHandle & getDicomSMFTagTreeCacheFileName() const
Name of the cache file associated with the dicomSMFTagTree if it was written to a cache or reloaded f...
MultiFileVolume(const MultiFileVolume &ref)
Copy constructor.
The class PagedImage, representing a fragmented image that manages properties and data of an image lo...
This class manages/represents a rectangular 6D image region that is organized linearly in memory.
Class to manage a 3D set of handles describing frames or volumes to be composed to a higher dimension...
MLint32 MLErrorCode
Type of an ML Error code.
Header of FileHandle class which should be used in DICOM importing modules to resolve the filename fo...
An instance of this class creates singleton proxies for DICOMCachedIO cache classes such that all cac...
Header file of container class storing additional options for MultiFileVolumes.
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...
Header file of class to manage a 3D set of handles describing frames or volumes to be composed to a h...
boost::shared_ptr< const StructuredMF > Const_StructuredMFPtr
boost::shared_ptr< const Tree > Const_TreePtr
MultiFileVolume DirectDicomImportVolumeReference
For backward compatibility to DirectDicomImport applications: