MeVisLab Toolbox Reference
mlDICOMGetTools.h File Reference

A collection of tools related to DICOM tags and dictionaries. More...

#include "MLDICOMTagsSystem.h"
#include <FMEThirdPartyWarningsDisable.h>
#include <list>
#include <set>
#include <string>
#include <tuple>
#include <vector>
#include <FMEThirdPartyWarningsRestore.h>
#include <mlLinearAlgebra.h>
#include <mlScaleShiftData.h>
#include <DCMTree_Lib.h>

Go to the source code of this file.

Namespaces

namespace  ml
 Defines the class GetTileJob.
namespace  ml::DICOMTagTools
 A namespace collecting tools related to DICOM tags and tree tools.

Enumerations

enum  ml::DICOMTagTools::OrientationType {
  ml::DICOMTagTools::InvalidOrientation = 0 , ml::DICOMTagTools::Axial , ml::DICOMTagTools::Prone , ml::DICOMTagTools::Cranial ,
  ml::DICOMTagTools::Coronal , ml::DICOMTagTools::Sagittal , ml::DICOMTagTools::AlmostAxial , ml::DICOMTagTools::AlmostCoronal ,
  ml::DICOMTagTools::AlmostSagittal , ml::DICOMTagTools::LessAlmostAxial , ml::DICOMTagTools::LessAlmostCoronal , ml::DICOMTagTools::LessAlmostSagittal ,
  ml::DICOMTagTools::Oblique , ml::DICOMTagTools::OtherOrientation , ml::DICOMTagTools::NoValues , ml::DICOMTagTools::NotApplicable ,
  ml::DICOMTagTools::NumberOfOrientationTypes
}
 Enumerator for typical human readable anatomic orientations. More...

Functions

MLDICOMTags_EXPORT std::string ml::DICOMTagTools::createInstanceUID (bool useFMEUIDPrefix=false)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::looksLikeValidDICOMUID (const std::string &uidStrToCheck)
 Returns true if uidStrToCheck looks like a plausible valid DICOM UID, otherwise false.
MLDICOMTags_EXPORT bool ml::DICOMTagTools::isValidCSVrCharacter (const char ch)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::looksLikeValidCSVrValue (const std::string &codedString, std::string *explanation=nullptr)
MLDICOMTags_EXPORT void ml::DICOMTagTools::deepSearchTags (DCMTree::Const_TreePtr treePtr, const DCMTree::TagId &tagId, const size_t numTagsToFind, std::vector< DCMTree::Const_TagPtr > &tagVector)
MLDICOMTags_EXPORT void ml::DICOMTagTools::deepSearchTags (DCMTree::TreePtr treePtr, const DCMTree::TagId &tagId, const size_t numTagsToFind, std::vector< DCMTree::TagPtr > &tagVector)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::deepSearchTag (DCMTree::Const_TreePtr treePtr, const DCMTree::TagId &tagId, DCMTree::Const_TagPtr &result)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::deepSearchTag (DCMTree::TreePtr treePtr, const DCMTree::TagId &tagId, DCMTree::TagPtr &result)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::deepSearchTag (DCMTree::Const_TreePtr treePtr, const std::string &tagIdStr, DCMTree::Const_TagPtr &result)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::deepSearchTag (DCMTree::TreePtr treePtr, const std::string &tagIdStr, DCMTree::TagPtr &result)
MLDICOMTags_EXPORT const DCMTree::TreePtrVectorml::DICOMTagTools::getSequenceItemTreePtrVector (DCMTree::Const_TreePtr dcmMFTree, DCMTree::RawTagId sequenceTagId)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::getTagValue (DCMTree::Const_TreePtr treePtr, DCMTree::RawTagId tagId, bool useNumericTagValueSorting)
MLDICOMTags_EXPORT size_t ml::DICOMTagTools::getTripleTag (DCMTree::Const_TreePtr treePtr, DCMTree::RawTagId tagId, double &ippX, double &ippY, double &ippZ, double initX, double initY, double initZ)
MLDICOMTags_EXPORT size_t ml::DICOMTagTools::getHexTag (DCMTree::Const_TreePtr treePtr, DCMTree::RawTagId tagId, double &ippX1, double &ippY1, double &ippZ1, double &ippX2, double &ippY2, double &ippZ2, double initX1, double initY1, double initZ1, double initX2, double initY2, double initZ2)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::isValidDICOMDate (std::string str, bool allowEmptyStrings=true, bool allowOldFormat=true)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::isValidDICOMTime (const std::string &str, bool allowEmptyStrings=true)
MLDICOMTags_EXPORT std::pair< std::string, bool > ml::DICOMTagTools::checkDICOMPersonName (const std::string &str)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::getCompressionDescription (DCMTree::Const_TreePtr treePtr, bool *isRetired=nullptr)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::isLossyCompressed (DCMTree::Const_TreePtr treePtr)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::isCompressed (DCMTree::Const_TreePtr treePtr)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::getTransferSyntaxUIDAsString (DCMTree::Const_TreePtr treePtr, bool searchOnlyOnTopLevel=false)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::isJPEG2000Compressed (DCMTree::Const_TreePtr treePtr)
MLDICOMTags_EXPORT size_t ml::DICOMTagTools::getImagePositionPatient (DCMTree::Const_TreePtr treePtr, double &ippX, double &ippY, double &ippZ, bool replaceOnlyIfFound)
MLDICOMTags_EXPORT size_t ml::DICOMTagTools::getImageOrientationPatient (DCMTree::Const_TreePtr treePtr, double &iopX1, double &iopY1, double &iopZ1, double &iopX2, double &iopY2, double &iopZ2)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::getHumanReadableImageOrientationPatient (DCMTree::Const_TreePtr dcmTree, int *resultOType=nullptr)
MLDICOMTags_EXPORT ScaleShiftData ml::DICOMTagTools::getRescaleSlopeInterceptAsScaleShift (DCMTree::Const_TreePtr treePtr)
MLDICOMTags_EXPORT DCMTree::Const_TagPtr ml::DICOMTagTools::getAnyPixelDataTag (DCMTree::Const_TreePtr treePtr, bool searchRecursivly=false)
MLDICOMTags_EXPORT DCMTree::PixelData ml::DICOMTagTools::getPixelDataPtrFromTree (DCMTree::Const_TreePtr treePtr, size_t *valSizeInBytes, DicomMessageCollector &dcmMsgCollector)
 Same as DICOMCachedIOTools::getPixelDataPtrFromTree().
MLDICOMTags_EXPORT bool ml::DICOMTagTools::hasMFPixelDataTag (DCMTree::Const_TreePtr treePtr, DCMTree::Const_TagPtr &tagPtr)
MLDICOMTags_EXPORT const DCMTree::MFPixelTagml::DICOMTagTools::getAsMFPixelPtr (DCMTree::Const_TagPtr tag)
MLDICOMTags_EXPORT const boost::shared_array< unsigned char > ml::DICOMTagTools::getPixelDataFrame (DCMTree::Const_TagPtr pixTag, boost::uint32_t frameIdx)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::usesNegativeNMStacking (DCMTree::Const_TreePtr treePtr)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::hasNegativeSliceSpacing (DCMTree::Const_TreePtr treePtr)
 Returns true if the tree has a SpacingBetweenSlices tag with a negative value.
MLDICOMTags_EXPORT bool ml::DICOMTagTools::hasAtMostOneFrameInSMFGrid (const DCMTree::StructuredMFPtr &smfTree)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::hasAtMostOneFrameInSMFGrid (const DCMTree::Const_StructuredMFPtr &smfTree)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::isBitImageDICOM (DCMTree::Const_TreePtr treePtr)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::updateMinMaxFromDICOMTags (DCMTree::Const_TreePtr treePtr, MLdouble &minPixVal, MLdouble &maxPixVal)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::getDoubleFromTag (DCMTree::Const_TagPtr tagPtr, double &returnDbl)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::getDoubleVectorFromTag (DCMTree::Const_TagPtr tagPtr, std::vector< double > &returnDbls)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::getVector2FromTag (DCMTree::Const_TagPtr tagPtr, Vector2 &returnVec)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::getVector3FromTag (DCMTree::Const_TagPtr tagPtr, Vector3 &returnVec)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::getVector6FromTag (DCMTree::Const_TagPtr tagPtr, Vector6 &returnVec)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::get4x4DoubleMatrixFromTag (DCMTree::Const_TagPtr tagPtr, Matrix4 &returnMat)
MLDICOMTags_EXPORT DCMTree::TagPtr ml::DICOMTagTools::getTagIfItExists (DCMTree::TreePtr dcmTree, DCMTree::TagId tagId, std::string *errStr=nullptr)
MLDICOMTags_EXPORT DCMTree::TreePtr ml::DICOMTagTools::cloneDCMTree (DCMTree::Const_TreePtr dcmTree, std::string *errStr)
MLDICOMTags_EXPORT unsigned int ml::DICOMTagTools::findPrivateTagGroup (DCMTree::TreePtr dcmTree, const std::string &privateCreatorString)
MLDICOMTags_EXPORT unsigned int ml::DICOMTagTools::searchPrivateCreator (DCMTree::TreePtr dcmTree, const std::string &privateCreatorString="", MLuint16 desiredPrivateGroupId=0x09, MLuint8 desiredPrivateElementGroupId=0x10)
MLDICOMTags_EXPORT DCMTree::Const_TagPtr ml::DICOMTagTools::getPrivateFMETag (DCMTree::RawTagId lowerEightBitOfElementId, DCMTree::Const_TreePtr dcmTree)
MLDICOMTags_EXPORT bool ml::DICOMTagTools::getTopLevelSOPUID (DCMTree::Const_TreePtr dcmTree, std::string &sopUIDStr, const unsigned short fmeSOPElementUID, const DCMTree::RawTagId sopUID, bool tryEnhancedSOPClassUIDReconstruction=false)
MLDICOMTags_EXPORT void ml::DICOMTagTools::getTagStringValuesFromSequence (DCMTree::RawTagId rawTagId, DCMTree::Const_TagPtr sequenceInWhichToSearch, std::string &tagValuesStringListToExtend, const std::string &sep, std::set< std::string > *makeUniqueSet=nullptr, bool searchAsLower8BitOfPrivateFMETag=false)
MLDICOMTags_EXPORT DCMTree::Const_TagPtr ml::DICOMTagTools::getMeVisStructuredMFDimensionSequence (DCMTree::Const_TreePtr dcmTree)
 Searches the structured multi-frame sequence tag on top-level in dcmTree or nullptr if not found or dcmTree is nullptr.
MLDICOMTags_EXPORT DCMTree::Const_TagPtr ml::DICOMTagTools::getPrivateTag (const std::string &privateCreatorString, unsigned short groupId, DCMTree::RawTagId lowerEightBitOfElementId, DCMTree::Const_TreePtr dcmTree)
 See DICOMCachedIOTools::getPrivateTag().
MLDICOMTags_EXPORT bool ml::DICOMTagTools::isPhilips3D (DCMTree::Const_TreePtr treePtr, MLint *spatialExtent=nullptr)
 See DICOMCachedIOTools::isPhilips3D().
MLDICOMTags_EXPORT unsigned int ml::DICOMTagTools::getNumberOfFrames (DCMTree::Const_TreePtr dcmTree, unsigned int *fromTagOnly=nullptr)
 See DICOMCachedIOTools::getNumberOfFrames().
MLDICOMTags_EXPORT void ml::DICOMTagTools::extractTagValuesFromPerFrameAndMeVisMFSequence (DCMTree::RawTagId rawTagId, DCMTree::Const_TreePtr dcmTree, std::string &tagValuesStringListToExtend, bool alsoAddTopLevelTags, const std::string &sep, std::set< std::string > *makeUniqueSet=nullptr)
MLDICOMTags_EXPORT void ml::DICOMTagTools::getTagStringValuesFromSMFSequence (DCMTree::Const_TreePtr inputDcmTree, const std::vector< MLuint64 > &rawTagIds, bool appendFrameCount, bool appendCoords, std::list< std::vector< std::string > > &tagValuesListToExtend)
MLDICOMTags_EXPORT void ml::DICOMTagTools::getTagStringValuesFromTopLevel (DCMTree::Const_TreePtr inputDcmTree, const std::vector< MLuint64 > &rawTagIds, std::vector< std::string > &rootEntries)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::checkForMultipleSeriesInstanceUIDs (DCMTree::Const_TreePtr dcmTree)
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::checkForExpectedModality (DCMTree::Const_TreePtr inTree, const std::string &modalityValue)
 Returns an empty string if the input DCMTree has the modality modalityValue or an error string otherwise.
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::checkFor8Or16BitIntType (MLDataType dType, const std::string &errMsgSuffix=" at input 0 for Enhanced MR Image")
 Returns an empty string if dType is of an 8 or 16 bit integer type, otherwise a descriptive error message + msgSuffix.
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::checkForMinMaxRangeInDataType (const double minVal, const double maxVal, MLDataType dType, const std::string &errMsgSuffix=" at input 0")
 Returns an empty string if minVal and maxVal are inside range of given data type, otherwise a descriptive error message + msgSuffix.
MLDICOMTags_EXPORT std::string ml::DICOMTagTools::checkFor32BitRangedInputImage (const ImageVector &inImgExt, MLDataType dType)

Variables

const char *const ml::DICOMTagTools::OrientationName [NumberOfOrientationTypes]

Detailed Description

A collection of tools related to DICOM tags and dictionaries.

Author
Wolf Spindler.
Date
07/2013

Definition in file mlDICOMGetTools.h.