ImFusion C++ SDK 4.5.0
ImFusion::Dicom::DicomGeSignaExciteIOD Class Reference

#include <ImFusion/Dicom/DicomIOD_GE.h>

Extra IOD specialization for basic support of loading 4D MRI sequences created by GE Signa Excite devices. More...

Inheritance diagram for ImFusion::Dicom::DicomGeSignaExciteIOD:

Detailed Description

Extra IOD specialization for basic support of loading 4D MRI sequences created by GE Signa Excite devices.

See also
http://www3.gehealthcare.com/~/media/documents/us-global/products/interoperability/dicom/magnetic-resonance/gehc-dicom-conformance_signaexcite1-5t_doc0394474_rev1.pdf

Public Member Functions

 DicomGeSignaExciteIOD (DcmDataset &dataset, const OFString &sopClassUID)
std::vector< FrameDescriptorSetsortAndGroupFrames (const std::vector< FrameDescriptor > &frames) const override
 Sorts and groups the given frames into sets of associated frames (e.g.
void loadFrameProperties (const FrameDescriptor &desc, SharedImageSet &image) override
 Loads any additional properties into the given image.
DcmDataset & dataset () override
 Dataset (or sub-item of a dataset) that will be used by the Modules.
Public Member Functions inherited from ImFusion::Dicom::VolumetricImageIOD
 VolumetricImageIOD (DcmDataset &dataset, const OFString &sopClassUID)
std::vector< FrameDescriptorSetsortAndGroupFrames (const std::vector< FrameDescriptor > &frames) const override
 Sorts and groups the frame into volumetric groups if possible.
std::vector< FrameDescriptorloadFrames () override
 Loads all frames and initializes the matrix of each FrameDescriptor.
void save (SharedImageSet &imageSet, int sharedImageIndex, int sliceIndex) override
 Stores the general image descriptor and metadata of imageSet in the DICOM data set.
Public Member Functions inherited from ImFusion::Dicom::MultiFrameImageIOD
 MultiFrameImageIOD (DcmDataset &dataset, const OFString &sopClassUID)
void loadFrameData (const FrameDescriptor &desc, MemImage &image, int slice=-1) override
 Loads the actual frame data into the given image.
void loadFrameProperties (const FrameDescriptor &desc, SharedImageSet &image) override
 Loads any additional properties into the given image.
void savePixelData (SharedImageSet &imageSet, int sharedImageIndex, int sliceIndex) override
 Writes the pixel data of imageSet in the DICOM data set.
Public Member Functions inherited from ImFusion::Dicom::IOD
 IOD (DcmDataset &dataset, const OFString &sopClassUID)
 Creates a new IOD representation using the given DcmDataset and SOP class UID.
virtual void checkErrors () const
 Checks modules for errors and adds them to the list.
template<typename T>
const T * searchModule ()
 Returns the first module of the given type or nullptr if no such module exists.
DcmDataset & dataset () override
 Returns the dataset represented by this IOD.
Public Member Functions inherited from ImFusion::Dicom::ModuleList
const std::vector< const Module * > & modules () const
 List of all modules.
Public Member Functions inherited from ImFusion::Dicom::ElementList
const std::vector< ElementBase * > & elements () const
 List of all elements.
Public Member Functions inherited from ImFusion::Dicom::ErrorRecorder
virtual void * registerErrorHandler (ErrorCallback handler)
 Registers a new handler callback function.
virtual void unregisterErrorHandler (void *handler)
 Removes a previously registered handler again.
void * forwardErrors (const ErrorRecorder *otherRecorder)
 Convenient function to forward all errors registered to this recorder to another recorder.
virtual void registerError (const Error &error) const
 Sends the given error to all error handler callbacks.
void registerError (Error::Code code, Error::Type type, const std::string &details, TagProxy tag=TagProxy()) const

Static Public Member Functions

static Dicom::IODcanLoad (DcmDataset &dataset, const OFString &sopClassUID)

Public Attributes

Element< int > cardiacPhaseNumber
Element< double > triggerTime
Public Attributes inherited from ImFusion::Dicom::VolumetricImageIOD
ImagePlane imagePlane
Element< int > echoNumbers
Element< int > acquisitionNumber
Dicom::Element< std::vector< int > > sliceVector
 The following elements are used for sorting if numberOfFrames is greater 1:
Dicom::Element< std::vector< int > > angularViewVector
Public Attributes inherited from ImFusion::Dicom::MultiFrameImageIOD
PixelSpacingCalibration pixelSpacingCalib
ModalityLUT modalityLut
Public Attributes inherited from ImFusion::Dicom::IOD
const OFString sopClassUID
 DICOM SOP used.
std::string pathInfo
 Optional information from which file this IOD was loaded from (only use for display purposes).
CommonModule common
ImagePixel imagePixel
Element< int > numberOfFrames
 If this element exists and is larger than 1, multiple frames will be loaded regardless of the SOP Class defining it or not.

Additional Inherited Members

Public Types inherited from ImFusion::Dicom::ErrorRecorder
using ErrorCallback = std::function<void(const Error&)>
 Alias for a function to call for each error recorded.
Protected Member Functions inherited from ImFusion::Dicom::ModuleList
virtual void addModule (const Module &m)
 Adds a the module to the list. Should only be called by the Module constructor.
virtual void removeModule (const Module &m)
Protected Member Functions inherited from ImFusion::Utils::NotCopyable
 NotCopyable (NotCopyable &&) noexcept=default
NotCopyable & operator= (NotCopyable &&) noexcept=default
 NotCopyable (const NotCopyable &)=delete
NotCopyable & operator= (const NotCopyable &)=delete
Protected Attributes inherited from ImFusion::Dicom::IOD
DcmDataset & m_dataset
Protected Attributes inherited from ImFusion::Dicom::ModuleList
std::vector< const Module * > m_modules
 List of all modules.
Protected Attributes inherited from ImFusion::Dicom::ElementList
std::vector< ElementBase * > m_elements
 List of all elements.

Member Function Documentation

◆ sortAndGroupFrames()

std::vector< FrameDescriptorSet > ImFusion::Dicom::DicomGeSignaExciteIOD::sortAndGroupFrames ( const std::vector< FrameDescriptor > & frames) const
overridevirtual

Sorts and groups the given frames into sets of associated frames (e.g.

volumes).

All given frames should be somehow part of the returned frame sets. 2D images (i.e. IMAGESET) can be returned as framesets with only a single item. The exact order of the given frames is undefined. For multiframe Dicoms, this method is only called on the first frame. The IOD pointer held by each frame can be used to access special elements that are required for sorting and/or grouping.

Note
When overriding this method, it should be treated like a static method, i.e. no members should be accessed.

Implements ImFusion::Dicom::IOD.

◆ loadFrameProperties()

void ImFusion::Dicom::DicomGeSignaExciteIOD::loadFrameProperties ( const FrameDescriptor & desc,
SharedImageSet & image )
overridevirtual

Loads any additional properties into the given image.

This method is called after the complete image data has been loaded. desc will contain valid sharedImageIndex and sliceIndex parameters indicating where this frame has been stored in the image. Implementations must not reorder, remove or resize the images of the given SharedImageSet!

The order or amount of images must not be changed inside the SharedImageSet! Also, the size of the individual images must not change. Otherwise, this would lead to inconsistent sharedImageIndex and sliceIndex values.

This method might throw an exception if the properties somehow make the image completely invalid. This should only be used as a last restort if there is really no way to use the image in any meaningful way!

Note
The default implementation will create an ImageInfoDataComponent instance and attach it to image. Thus, when overriding this method make sure to call the base class method.

Reimplemented from ImFusion::Dicom::IOD.

◆ dataset()

DcmDataset & ImFusion::Dicom::DicomGeSignaExciteIOD::dataset ( )
overridevirtual

Dataset (or sub-item of a dataset) that will be used by the Modules.

Implements ImFusion::Dicom::ModuleList.


The documentation for this class was generated from the following file:
  • ImFusion/Dicom/DicomIOD_GE.h
Search Tab / S to search, Esc to close