77 std::vector<std::string> &rawTopLevelSourceFrameInfos)
const;
102 double sliceThickness,
103 bool addSpacingBetweenSlices=
false,
104 double spacingBetweenSlices=1.0);
111 const Vector3 &imagePositionPatient);
118 const Vector6 &imageOrientationPatient);
129 size_t CIDGroupTableSize,
130 const std::string &entryToAdd,
150 const std::vector<std::string> &derivationCodeSequence,
151 bool createEmpty=
false,
153 const size_t entriesToAddZ=std::string::npos,
154 const size_t entriesToAddT=std::string::npos,
155 const size_t entriesToAddU=std::string::npos,
156 const std::string &purposeOfReferenceCodeSequenceEntry=
"");
174 bool setTemporalPositionIndex,
175 bool setFrameAcquisitionDateTime,
176 const unsigned int ztuPos[3],
177 const unsigned int ztuNumFrames[3]);
194 bool removeReferencedImageSequence,
195 bool suppressWritingUnassignedContent);
242 MLint insertionIndex,
335 const std::vector<std::string> &derivationCodeSequence=std::vector<std::string>(),
338 std::vector<DCMTree::TagPtr> *dicomImageTypeTags=
nullptr,
339 std::vector<DCMTree::TagPtr> *dicomImageDescriptionTags=
nullptr,
340 bool suppressWritingUnassignedContent=
false);
374 const std::vector<DicomSegmentItem> &segmentItems,
376 bool savePaddedPixelData);
Tables containing DICOM tables from Part 16.
boost::shared_ptr< const Tree > Const_TreePtr
boost::shared_ptr< Tree > TreePtr
Shared pointer to a DCMTree::Tree.
std::set< std::pair< std::string, std::string > > StringPairSet
Set of string pairs; typically to store unique pairs of DICOM UIDs.
ML_MLToDicomTools_EXPORT void addMultiFrameFunctionalGroups(DCMTree::TreePtr dcmTree, const ImageVector &frameHeapImageExtent, const MedicalImageProperties &medicalImageProps, const std::vector< std::string > &derivationCodeSequence=std::vector< std::string >(), const EnhancedMFObjectInfosBase &enhancedMFObjectInfos=EnhancedMFObjectInfosBase(), DCMTree::Const_TreePtr inputDcmTree=DCMTree::Const_TreePtr(), std::vector< DCMTree::TagPtr > *dicomImageTypeTags=nullptr, std::vector< DCMTree::TagPtr > *dicomImageDescriptionTags=nullptr, bool suppressWritingUnassignedContent=false)
ML_MLToDicomTools_EXPORT void getUniqueValuePairSetFromSequence(DCMTree::Const_TreePtr dcmTree, DCMTree::RawTagId sequenceTagId, DCMTree::RawTagId tagId1, DCMTree::RawTagId tagId2, StringPairSet &pairSet)
ML_MLToDicomTools_EXPORT void addUnassignedSharedConvertedAttributes(DCMTree::Const_TreePtr inputDcmTree, DCMTree::TreePtr dcmTree, bool removeReferencedImageSequence, bool suppressWritingUnassignedContent)
ML_MLToDicomTools_EXPORT void addMultiFrameDimensionTags(DCMTree::TreePtr dcmTree, const ImageVector &frameHeapImageExtent, const MedicalImageProperties &medicalImageProps)
ML_MLToDicomTools_EXPORT void setPlaneOrientationFunctionalGroupTags(DCMTree::TreePtr dcmTree, const Vector6 &imageOrientationPatient)
ML_MLToDicomTools_EXPORT void setFrameContentFunctionalGroupTags(DCMTree::TreePtr dcmTree, const MedicalImageProperties &medImgProps, bool setTemporalPositionIndex, bool setFrameAcquisitionDateTime, const unsigned int ztuPos[3], const unsigned int ztuNumFrames[3])
ML_MLToDicomTools_EXPORT std::string addAndSetMultiBinarySEGPixelDataTag(DCMTree::TreePtr resultTree, PagedImage &inputPagedImage, ImageVector &imageExtentToAdapt, const std::vector< DicomSegmentItem > &segmentItems, EnhancedMFSEGObjectInfos &enhancedMFSegmentInfos, bool savePaddedPixelData)
Tvec3< MLdouble > Vector3
A vector with three components of type double.
ML_MLToDicomTools_EXPORT void setDerivationImageFunctionalGroupTags(DCMTree::TreePtr seqItemTreePtr, const std::vector< std::string > &derivationCodeSequence, bool createEmpty=false, const SourceFrameReferenceVector &sourceFrameReferences=SourceFrameReferenceVector(), const size_t entriesToAddZ=std::string::npos, const size_t entriesToAddT=std::string::npos, const size_t entriesToAddU=std::string::npos, const std::string &purposeOfReferenceCodeSequenceEntry="")
Tvec6< MLdouble > Vector6
A vector with six components of type double.
ML_MLToDicomTools_EXPORT void setPixelMeasuresFunctionalGroupTags(DCMTree::TreePtr dcmTree, const Vector2 &pixelSpacing, double sliceThickness, bool addSpacingBetweenSlices=false, double spacingBetweenSlices=1.0)
Tvec2< MLdouble > Vector2
A vector with two components of type double.
ML_MLToDicomTools_EXPORT void removedDuplicatedUnassignedSharedConvertedAttributes(DCMTree::TreePtr dcmTree)
TSubImageBox< MLint > SubImageBox
Defines the standard SubImageBox type used in the ML. Its size varies with the size of the MLint type...
ML_MLToDicomTools_EXPORT void addCIDEntry(const char *const CIDGroupTable[][CIDGroups::NUM_CID_COLUMNS], size_t CIDGroupTableSize, const std::string &entryToAdd, DCMTree::TreePtr itemTree)
ML_MLToDicomTools_EXPORT void buildImageEvidenceSequence(DCMTree::Const_TreePtr inputDcmTree, DCMTree::RawTagId inputSequenceTagId, DCMTree::TreePtr dcmTree, DCMTree::RawTagId evidenceSequenceTagId, MLint insertionIndex, bool scanFrames)
ML_MLToDicomTools_EXPORT void setPlanePositionFunctionalGroupTags(DCMTree::TreePtr dcmTree, const Vector3 &imagePositionPatient)
ML_MLToDicomTools_EXPORT void getSourceImageSequenceInformation(DCMTree::Const_TreePtr inputDcmTree, const ImageVector &inputImageExtent, SourceFrameReferenceVector &sourceFrameReferences)
std::vector< SourceFrameReference > SourceFrameReferenceVector
A vector of SourceFrameReference, each one referencing a frame of a source image.
TImageVector< MLint > ImageVector
Defines the standard ImageVector type that is used by the ML for indexing and coordinates.
Currently empty class used as base for all classes carrying additional IOD object information.
virtual ~EnhancedMFObjectInfosBase()=default
Default virtual destructor.
EnhancedMFObjectInfosBase & operator=(const EnhancedMFObjectInfosBase &)=default
Default assignment operator.
EnhancedMFObjectInfosBase()=default
Default virtual destructor.
EnhancedMFObjectInfosBase(const EnhancedMFObjectInfosBase &)=default
Default copy constructor.
std::vector< SubImageBox > frameBoxes
A vector of SubImageBoxes for all frames.
bool empty() const
Returns true if all vectors are empty which indicates that its shall not be used at all.
SourceFrameReferenceVector sourceFrameReferenceVector
std::vector< SegmentInfos > segmentInfos
A vector of SegmentInfos; one info for each segment.
std::vector< unsigned int > referencedSegmentNumbers
std::vector< std::string > purposeOfReferenceCodeSequence
Code sequence to be used in Source Image Sequence if that sequence is filled.
Structure providing SEG IOD specific information for and about composed BitImage Frame heap to be sav...
SubImageBox box
The subimage box of the segment in voxel position related to the inputPagedImage.
MLint segmentFrames
The number of frames in the Enhanced multi-frame Heap of frames unrolled in the z-dimension.
MLint startFrame
The index of the first frame in the Enhanced multi-frame Heap of frames unrolled in the z-dimension.
SourceFrameReference(DCMTree::Const_TreePtr dcmTree)
Constructor with initialization from a DCMTree.
static const std::vector< MLuint64 > rawTagIds
Raw tag ids matching to the order of the first seven fields which contain tag values.
void getFromDCMTree(DCMTree::Const_TreePtr inputDcmTree)
std::string referencedFrameNumber
ReferencedFrameNumber.
std::string fmeSOPInstanceUID
If available the SOPInstanceUID of an input frame or image from private FME tag.
std::string fmeIndexOfDecomposedFrame
If available the index of decomposed frame from private FME tag.
void setUpFromTagValueVector(const std::vector< std::string > &rawTopLevelSourceFrameReferences)
~SourceFrameReference()
Default constructor.
SourceFrameReference & operator=(const SourceFrameReference &)=default
Default copy constructor.
SourceFrameReference(const SourceFrameReference &)=default
Default copy constructor.
std::string referencedSegmentNumber
ReferencedSegmentNumber.
SourceFrameReference()=default
Default constructor.
std::string segmentNumber
SegmentNumber.
std::string sopInstanceUID
SOPInstanceUID of an input frame or image.
std::string sopClassUID
SOPClassUID of an input frame or image.
void getRawTopLevelSourceFrameReferences(DCMTree::Const_TreePtr inputDcmTree, std::vector< std::string > &rawTopLevelSourceFrameInfos) const
std::string frameCounter
Frame Counter.
std::string fmeSOPClassUID
If available the SOPClassUID of an input frame or image from private FME tag.