DCMTK  Version 3.6.2
OFFIS DICOM Toolkit
Static Public Member Functions | Private Member Functions | List of all members
DcmIODUtil Class Reference

Class with helper functions used within the dcmiod module (and beyond) More...

Static Public Member Functions

static OFCondition getAndCheckElementFromDataset (DcmItem &dataset, DcmElement &delem, const OFString &vm, const OFString &type, const char *moduleName=NULL)
 Get element from dataset and check it for correct value multiplicity and type. More...
 
static OFCondition getAndCheckElementFromDataset (DcmItem &dataset, const DcmTagKey &tagKey, DcmElement *&delem, const OFString &vm, const OFString &type, const char *moduleName=NULL)
 Get element from dataset and check it for correct value multiplicity and type. More...
 
static OFCondition getAndCheckElementFromDataset (DcmItem &dataset, DcmElement &delem, const IODRule *rule)
 Get element from dataset and check it for correct value multiplicity and type. More...
 
static OFCondition getAndCheckElementFromDataset (DcmItem &dataset, DcmElement *&delem, const IODRule *rule)
 Get element from dataset and check it for correct value multiplicity and type. More...
 
static const OFStringcurrentDate (OFString &dateString)
 Get current date in DICOM 'DA' format (YYYYMMDD) More...
 
static const OFStringcurrentTime (OFString &timeString)
 Get current time in DICOM 'TM' format (HHMMSS) The optional UTC notation (e.g. +0100) is currently not supported. More...
 
static OFCondition copyElementToDataset (OFCondition &result, DcmItem &dataset, const DcmElement &delem, const OFString &vm, const OFString &type, const char *moduleName=NULL)
 Copy given element to the dataset The element is only added if 'result' is EC_Normal. More...
 
static OFCondition copyElementToDataset (OFCondition &result, DcmItem &dataset, const DcmElement &delem, const IODRule *rule)
 Copy given element to the dataset. More...
 
static OFCondition addElementToDataset (OFCondition &result, DcmItem &dataset, DcmElement *delem, const IODRule *rule)
 Add given element to the dataset The element is only added if 'result' is EC_Normal and the 'delem' pointer is not NULL. More...
 
static OFCondition checkElementValue (const DcmElement *delem, const DcmTagKey &tagKey, const OFString &vm, const OFString &type, const OFCondition &searchCond=EC_Normal, const char *moduleName=NULL, const dcmtk::log4cplus::LogLevel logLevel=dcmtk::log4cplus::WARN_LOG_LEVEL)
 Check element value for correct value multiplicity and type. More...
 
static OFCondition checkElementValue (const DcmElement &delem, const OFString &vm, const OFString &type, const OFCondition &searchCond=EC_Normal, const char *moduleName=NULL, const dcmtk::log4cplus::LogLevel logLevel=dcmtk::log4cplus::WARN_LOG_LEVEL)
 Check element value for correct value multiplicity and type. More...
 
static OFCondition getStringValueFromElement (const DcmElement &delem, OFString &stringValue, const signed long pos)
 Get string value from element. More...
 
static OFCondition getStringValueFromItem (const DcmTagKey &key, DcmItem &item, OFString &result, const signed long &pos)
 Get string value from item. More...
 
static OFCondition getFloat64ValueFromItem (const DcmTagKey &key, DcmItem &item, Float64 &result, const unsigned long &pos)
 Get Float64 value from item. More...
 
static OFCondition getFloat64ValuesFromItem (const DcmTagKey &key, DcmItem &item, OFVector< Float64 > &result)
 Get Float64 values from item. More...
 
static OFCondition getFloat64ValueFromElement (const DcmElement &delem, Float64 &result, const unsigned long pos)
 Get Float64 value from element. More...
 
static OFCondition getFloat64ValuesFromElement (const DcmElement &delem, OFVector< Float64 > &result)
 Get Float64 values from element. More...
 
static OFCondition setUint16ValuesOnElement (DcmElement &delem, const OFVector< Uint16 > &values, const OFString &vm, const OFBool check)
 Set a DcmElement's content from Uint16 vector. More...
 
static OFCondition getUint16ValuesFromElement (DcmElement &delem, OFVector< Uint16 > &values)
 Get Uint16 values from DcmElement. More...
 
static OFCondition getAndCheckSingleItem (DcmSequenceOfItems &seq, DcmItem *&item, const DcmTagKey &checkKey=DCM_UndefinedTagKey)
 Returns single item from given sequence. More...
 
template<class Container >
static OFCondition copyFromUint8Array (DcmElement *elem, Container &destination)
 Copies Uint8 values from given element to destination container (must support push_back() method). More...
 
static OFCondition checkSOPClass (DcmItem *item, const OFString &desiredSOPClass, OFString &valueFound)
 Check whether SOP class UID matches the expected value. More...
 
static OFBool isSequenceTag (const DcmTagKey &key, const OFString &privateCreator="")
 Check whether given tag is a sequence tag. More...
 
template<class Container >
static OFCondition readSubSequence (DcmSequenceOfItems *source, const DcmTagKey &seqKey, Container &destination, const OFString &cardinality, const OFString &type, const OFString &module)
 Reads items from DICOM sequence into container by creating a dedicated container item for each DICOM item. More...
 
template<class Container >
static OFCondition readSubSequence (DcmItem &source, const DcmTagKey &seqKey, Container &destination, const OFString &cardinality, const OFString &type, const OFString &module)
 Reads DICOM sequence into container by creating a dedicated container element for each DICOM item. More...
 
template<class Container >
static OFCondition readSubSequence (DcmItem &source, const DcmTagKey &seqKey, Container &destination, IODRule *rule)
 Reads DICOM sequence into container by creating a dedicated container element for each DICOM item. More...
 
template<class Container >
static OFCondition readSingleItem (DcmItem &source, const DcmTagKey &seqKey, Container &destination, const OFString &type, const OFString &module)
 Reads single DICOM item from a specific sequence into a destination class. More...
 
template<class Container >
static OFCondition readSingleItem (DcmItem &source, const DcmTagKey &seqKey, Container &destination, IODRule *rule=NULL)
 Reads single DICOM item from a specific sequence into a destination class. More...
 
template<class Container >
static void writeSubSequence (OFCondition &result, const DcmTagKey &seqKey, Container &source, DcmItem &destination, const OFString &cardinality, const OFString &type, const OFString &module)
 Write given container into a DICOM sequence that is created within the given item. More...
 
template<class Container >
static void writeSubSequence (OFCondition &result, const DcmTagKey &seqKey, Container &source, DcmItem &destination, IODRule *rule)
 Write given container into a DICOM sequence that is created within the given item. More...
 
template<class Container >
static void writeSingleItem (OFCondition &result, const DcmTagKey &seqKey, Container &source, DcmItem &destination, const OFString &type, const OFString &module)
 Writes given container into a DICOM item of a specific sequence. More...
 
template<class Container >
static void writeSingleItem (OFCondition &result, const DcmTagKey &seqKey, Container &source, DcmItem &destination, IODRule *rule)
 Writes given container into a DICOM item of a specific sequence. More...
 
static void checkSubSequence (OFCondition &result, DcmItem &surroundingItem, const DcmTagKey &seqKey, const OFString &cardinality, const OFString &type, const OFString &module, const dcmtk::log4cplus::LogLevel logLevel)
 Check whether a given sequence exists in a given item and whether it conforms to to its requirement type. More...
 
template<class Container >
static void freeContainer (Container &container)
 Deletes all elements from given container and calls "delete" on each of them to clear memory. More...
 
template<class Container >
static void copyContainer (const Container &src, Container &dst)
 Clones and copies all elements from source to destination container by copy constructing all elements. More...
 
static const DcmTagKey parseTagKey (const OFString &keyString)
 Function that takes a string representation of a tag key and converts it to a tag key instance if possible. More...
 
static OFCondition decompress (DcmDataset &dset)
 Decompress given dataset if possible. More...
 
static OFString createUID (const Uint8 level=0)
 Create new Unique Identifier (UID) More...
 
static Uint16 limitMaxFrames (const size_t numFramesPresent, const OFString &warning)
 Print warning if more than 65535 frames are present. More...
 

Private Member Functions

 DcmIODUtil ()
 Undefined default constructor (only static functions)
 
 ~DcmIODUtil ()
 Undefined destructor.
 

Detailed Description

Class with helper functions used within the dcmiod module (and beyond)

Member Function Documentation

◆ addElementToDataset()

static OFCondition DcmIODUtil::addElementToDataset ( OFCondition result,
DcmItem dataset,
DcmElement delem,
const IODRule rule 
)
static

Add given element to the dataset The element is only added if 'result' is EC_Normal and the 'delem' pointer is not NULL.

Parameters
resultReference to status variable (checked before adding and updated afterwards!)
datasetReference to DICOM dataset to which the element should be added
delemPointer to DICOM element which should be added. The element is always consumed by this function, i.e. insertion was successful and therefore ownership is transferred to the dataset, or the element is deleted from memory if it could not be inserted.
ruleRule describing parameters to be checked on element.
Returns
Current value of 'result', EC_Normal if successful, an error code otherwise

◆ checkElementValue() [1/2]

static OFCondition DcmIODUtil::checkElementValue ( const DcmElement delem,
const DcmTagKey tagKey,
const OFString vm,
const OFString type,
const OFCondition searchCond = EC_Normal,
const char *  moduleName = NULL,
const dcmtk::log4cplus::LogLevel  logLevel = dcmtk::log4cplus::WARN_LOG_LEVEL 
)
static

Check element value for correct value multiplicity and type.

Parameters
delemPointer to DICOM element to be checked (might be NULL)
tagKeyDICOM tag of the DICOM element the parameter 'delem' points to
vmValue multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.) Interpreted as cardinality (number of items) for sequence attributes.
typeValue type (valid value: "1", "1C", "2", something else)
searchCondOptional flag indicating the status of a previous 'search' function call
moduleNameOptional module name to be printed (default: "IOD" if NULL)
logLevelThe log level to log errors to
Returns
EC_Normal if element value is correct, error otherwise

◆ checkElementValue() [2/2]

static OFCondition DcmIODUtil::checkElementValue ( const DcmElement delem,
const OFString vm,
const OFString type,
const OFCondition searchCond = EC_Normal,
const char *  moduleName = NULL,
const dcmtk::log4cplus::LogLevel  logLevel = dcmtk::log4cplus::WARN_LOG_LEVEL 
)
static

Check element value for correct value multiplicity and type.

Parameters
delemDICOM element to be checked
vmValue multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.) Interpreted as cardinality (number of items) for sequence attributes.
typeValue type (valid value: "1", "1C", "2", something else)
searchCondOptional flag indicating the status of a previous 'search' function call
moduleNameOptional module name to be printed (default: "IOD" if NULL)
logLevelThe log level to log errors to
Returns
EC_Normal if element value is correct, error otherwise

◆ checkSOPClass()

static OFCondition DcmIODUtil::checkSOPClass ( DcmItem item,
const OFString desiredSOPClass,
OFString valueFound 
)
static

Check whether SOP class UID matches the expected value.

Parameters
itemItem to read from. NULL value causes error return value.
desiredSOPClassThe value that is expected
valueFoundThe value actually found (empty if no value could be retrieved)
Returns
EC_Normal if value could be found and equals expected value, EC_TagNotFound if SOP Class UID is not found in dataset, EC_InvalidValue if SOP class differs from expected value.

◆ checkSubSequence()

static void DcmIODUtil::checkSubSequence ( OFCondition result,
DcmItem surroundingItem,
const DcmTagKey seqKey,
const OFString cardinality,
const OFString type,
const OFString module,
const dcmtk::log4cplus::LogLevel  logLevel 
)
static

Check whether a given sequence exists in a given item and whether it conforms to to its requirement type.

Parameters
resultIf sequence is valid, result is set to EC_Normal, otherwise to an error.
surroundingItemThe item that should contain the given sequence.
seqKeyThe sequence to look for
cardinalityExpected number of items (i.e. expected number of elements in source container). See DcmElement::checkVM() for a list of valid values.
typeThe sequence type as noted in part 3 of the DICOM standard, i.e. "1,1C,2,2C or 3".
moduleName of the module/macro this sequence is contained in. Used for error messages and can also be left empty.
logLevelThe log level to write errors to

◆ copyContainer()

template<class Container >
static void DcmIODUtil::copyContainer ( const Container &  src,
Container &  dst 
)
inlinestatic

Clones and copies all elements from source to destination container by copy constructing all elements.

Parameters
srcThe container that should be copied. Must contain pointers to objects that are allocated on the heap, and that are copy-constructible
dstThe container to copy the cloned elements to.

References OFDate::getISOFormattedDate(), and OFDate::setCurrentDate().

◆ copyElementToDataset() [1/2]

static OFCondition DcmIODUtil::copyElementToDataset ( OFCondition result,
DcmItem dataset,
const DcmElement delem,
const OFString vm,
const OFString type,
const char *  moduleName = NULL 
)
static

Copy given element to the dataset The element is only added if 'result' is EC_Normal.

A copy of the given element is created, i.e. the caller is responsible for deleting the original element handed to this function (if desired).

Parameters
resultReference to status variable (checked before adding and updated afterwards!)
datasetReference to DICOM dataset to which the element should be added
delemReference to DICOM element which should be added; a copy is created so caller is responsible for deleting delem (if desired).
vmValue multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.). Interpreted as cardinality (number of items) for sequence attributes.
typeValue type (valid value: "1", "2" or something else which is not checked)
moduleNameOptional module name to be printed (NULL: no module printed at all)
Returns
Current value of 'result', EC_Normal if successful, an error code otherwise

◆ copyElementToDataset() [2/2]

static OFCondition DcmIODUtil::copyElementToDataset ( OFCondition result,
DcmItem dataset,
const DcmElement delem,
const IODRule rule 
)
static

Copy given element to the dataset.

The element is only added if 'result' is EC_Normal.

Parameters
resultreference to status variable (checked before adding and updated afterwards!)
datasetreference to DICOM dataset to which the element should be added
delemreference to DICOM element which should be added; the value is copied from the original dataset's element
ruleRule describing parameters to be checked on element.
Returns
Current value of 'result', EC_Normal if successful, an error code otherwise

◆ copyFromUint8Array()

template<class Container >
static OFCondition DcmIODUtil::copyFromUint8Array ( DcmElement elem,
Container &  destination 
)
inlinestatic

Copies Uint8 values from given element to destination container (must support push_back() method).

Parameters
elemthe element to read from. If NULL, an error is returned.
destinationthe container to store the Uint8 values to
Returns
EC_Normal if successful, an error code otherwise

References EC_IllegalParameter, DcmElement::getUint8(), DcmObject::getVM(), and OFCondition::good().

◆ createUID()

static OFString DcmIODUtil::createUID ( const Uint8  level = 0)
static

Create new Unique Identifier (UID)

Parameters
level0: instance level, 1: Series level, >=2: Study level. Calling always with level=0 is not an error but will result in unique values, too.
Returns
The UID created.

◆ currentDate()

static const OFString& DcmIODUtil::currentDate ( OFString dateString)
static

Get current date in DICOM 'DA' format (YYYYMMDD)

Parameters
dateStringString used to store the current date. (empty string if current date could not be retrieved)
Returns
Resulting character string

◆ currentTime()

static const OFString& DcmIODUtil::currentTime ( OFString timeString)
static

Get current time in DICOM 'TM' format (HHMMSS) The optional UTC notation (e.g. +0100) is currently not supported.

Parameters
timeStringString used to store the current time (empty string if current time could not be retrieved)
Returns
Resulting character string, empty if time could not be retrieved

◆ decompress()

static OFCondition DcmIODUtil::decompress ( DcmDataset dset)
static

Decompress given dataset if possible.

Decompression codecs have to be registered beforehand.

Parameters
dsetThe dataset to decompress
Returns
EC_Normal if decompression works, error otherwise

◆ freeContainer()

template<class Container >
static void DcmIODUtil::freeContainer ( Container &  container)
inlinestatic

Deletes all elements from given container and calls "delete" on each of them to clear memory.

Parameters
containerThe container that should be cleared. Must contain pointers to objects that are allocated on the heap.

◆ getAndCheckElementFromDataset() [1/4]

static OFCondition DcmIODUtil::getAndCheckElementFromDataset ( DcmItem dataset,
DcmElement delem,
const OFString vm,
const OFString type,
const char *  moduleName = NULL 
)
static

Get element from dataset and check it for correct value multiplicity and type.

Parameters
datasetDICOM dataset from which the element should be retrieved. (Would be 'const' if the methods from 'dcmdata' would also (be 'const'.)
delemDICOM element used to store the value (always creates a copy of the dataset element's value)
vmValue multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.) Interpreted as cardinality (number of items) for sequence attributes.
typeValue type (valid value: "1", "1C", "2", something else which is not checked)
moduleNameOptional module name to be printed (NULL: no module printed at all)
Returns
EC_Normal if element could be retrieved and value is correct, an error code otherwise

◆ getAndCheckElementFromDataset() [2/4]

static OFCondition DcmIODUtil::getAndCheckElementFromDataset ( DcmItem dataset,
const DcmTagKey tagKey,
DcmElement *&  delem,
const OFString vm,
const OFString type,
const char *  moduleName = NULL 
)
static

Get element from dataset and check it for correct value multiplicity and type.

Parameters
datasetDICOM dataset from which the element should be retrieved. (Would be 'const' if the methods from 'dcmdata' would also be 'const')
tagKeyTag key of the element to get
delemDICOM element that is set to a copy of the dataset's orinal element
vmValue multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.) Interpreted as cardinality (number of items) for sequence attributes.
typeValue type (valid value: "1", "1C", "2", something else which is not checked)
moduleNameOptional module name to be printed (NULL: no module printed at all)
Returns
EC_Normal if element could be retrieved and value is correct, an error code otherwise

◆ getAndCheckElementFromDataset() [3/4]

static OFCondition DcmIODUtil::getAndCheckElementFromDataset ( DcmItem dataset,
DcmElement delem,
const IODRule rule 
)
static

Get element from dataset and check it for correct value multiplicity and type.

Parameters
datasetDICOM dataset from which the element should be retrieved. (Would be 'const' if the methods from 'dcmdata' would also be 'const'.)
delemDICOM element used to store the value (always creates a copy of the value from the original element)
ruleRule describing parameters to be checked on element
Returns
EC_Normal if element could be retrieved and value is correct, an error code otherwise

◆ getAndCheckElementFromDataset() [4/4]

static OFCondition DcmIODUtil::getAndCheckElementFromDataset ( DcmItem dataset,
DcmElement *&  delem,
const IODRule rule 
)
static

Get element from dataset and check it for correct value multiplicity and type.

Parameters
datasetDICOM dataset from which the element should be retrieved. (Would be 'const' if the methods from 'dcmdata' would also be 'const')
delemDICOM element that is set to a copy of the dataset's orinal element
ruleRule describing parameters to be checked on element.
Returns
EC_Normal if element could be retrieved and value is correct, an error code otherwise

◆ getAndCheckSingleItem()

static OFCondition DcmIODUtil::getAndCheckSingleItem ( DcmSequenceOfItems seq,
DcmItem *&  item,
const DcmTagKey checkKey = DCM_UndefinedTagKey 
)
static

Returns single item from given sequence.

Returns error number of items is 0 or more than 1.

Parameters
seqSequence to read from.
itemThe resulting item, NULL in case of error
checkKeyIf given it is checked whether the given seq parameter matches the tag key provided in the checkKey parameter. If not, an error is returned.
Returns
Status EC_Normal if successful, an error code otherwise

◆ getFloat64ValueFromElement()

static OFCondition DcmIODUtil::getFloat64ValueFromElement ( const DcmElement delem,
Float64 &  result,
const unsigned long  pos 
)
static

Get Float64 value from element.

Parameters
delemThe element whose value should be retrieved
resultReference to variable in which the result should be stored.
posIndex of the value to get (0..vm-1)
Returns
EC_Normal if successful, an error code otherwise

◆ getFloat64ValueFromItem()

static OFCondition DcmIODUtil::getFloat64ValueFromItem ( const DcmTagKey key,
DcmItem item,
Float64 &  result,
const unsigned long &  pos 
)
static

Get Float64 value from item.

Parameters
keyThe tag key of the attribute whose value should be retrieved
itemThe item to search the attribute in
resultReference to variable in which the result should be stored.
posIndex of the value to get (0..vm-1)
Returns
EC_Normal if successful, an error code otherwise

◆ getFloat64ValuesFromElement()

static OFCondition DcmIODUtil::getFloat64ValuesFromElement ( const DcmElement delem,
OFVector< Float64 > &  result 
)
static

Get Float64 values from element.

Parameters
delemThe element to get the value from
resultReference to variable in which the result should be stored.
Returns
EC_Normal if successful, an error code otherwise

◆ getFloat64ValuesFromItem()

static OFCondition DcmIODUtil::getFloat64ValuesFromItem ( const DcmTagKey key,
DcmItem item,
OFVector< Float64 > &  result 
)
static

Get Float64 values from item.

Parameters
keyThe tag key of the attribute whose value should be retrieved
itemThe item to search the attribute in
resultReference to variable in which the result should be stored.
Returns
EC_Normal if successful, an error code otherwise

◆ getStringValueFromElement()

static OFCondition DcmIODUtil::getStringValueFromElement ( const DcmElement delem,
OFString stringValue,
const signed long  pos 
)
static

Get string value from element.

Parameters
delemDICOM element from which the string value should be retrieved
stringValueReference to variable in which the result should be stored. (This parameter is automatically cleared if an error occurs.)
posIndex of the value to get (0..vm-1), -1 for all components
Returns
EC_Normal if successful, an error code otherwise

◆ getStringValueFromItem()

static OFCondition DcmIODUtil::getStringValueFromItem ( const DcmTagKey key,
DcmItem item,
OFString result,
const signed long &  pos 
)
static

Get string value from item.

Parameters
keyThe tag key of the attribute whose value should be retrieved
itemThe item to search the attribute in
resultReference to variable in which the result should be stored. (This parameter is automatically cleared if an error occurs.)
posIndex of the value to get (0..vm-1), -1 for all components
Returns
EC_Normal if successful, an error code otherwise

◆ getUint16ValuesFromElement()

static OFCondition DcmIODUtil::getUint16ValuesFromElement ( DcmElement delem,
OFVector< Uint16 > &  values 
)
static

Get Uint16 values from DcmElement.

Parameters
delemDICOM element to read from
valuesVector used as destination for the values
Returns
Status EC_Normal if successful, an error code otherwise

◆ isSequenceTag()

static OFBool DcmIODUtil::isSequenceTag ( const DcmTagKey key,
const OFString privateCreator = "" 
)
static

Check whether given tag is a sequence tag.

Parameters
keythe tag key to be checked
privateCreatorThe private creator to check for if tag is private
Returns
OFTrue if given tag is a sequence tag, OFFalse otherwise

◆ limitMaxFrames()

static Uint16 DcmIODUtil::limitMaxFrames ( const size_t  numFramesPresent,
const OFString warning 
)
static

Print warning if more than 65535 frames are present.

This is the maximum number since the Number of Frames attribute is only 16 bit thus not permitting larger values. The method returns the number of frames that can be used, i.e. either 65535 if the maximum is exceeded, otherwise the actual number of frames.

Parameters
numFramesPresentThe number of frames actually present
warningThe message to be printed if Number of Frames is larger than 65535.
Returns
Number of frames that can be safely used.

◆ parseTagKey()

static const DcmTagKey DcmIODUtil::parseTagKey ( const OFString keyString)
static

Function that takes a string representation of a tag key and converts it to a tag key instance if possible.

Parameters
keyStringString of the format "(gggg,eeee)"
Returns
The tag key if it could be parsed, DCM_UndefinedTagKey is returned instead (0xffff,0xffff)

◆ readSingleItem() [1/2]

template<class Container >
static OFCondition DcmIODUtil::readSingleItem ( DcmItem source,
const DcmTagKey seqKey,
Container &  destination,
const OFString type,
const OFString module 
)
inlinestatic

Reads single DICOM item from a specific sequence into a destination class.

The container must support the read(DcmItem) function. If a single item (i.e. the first item of the specified sequence) cannot be read, an error is returned.

Parameters
sourceThe source DICOM item read the sequence from
seqKeyThe tag key of the sequence to be read
destinationThe destination container to read into See DcmElement::checkVM() for a list of valid values.
typeThe sequence type as noted in part 3 of the DICOM standard, i.e. "1,1C,2,2C or 3".
moduleName of the module/macro this sequence is contained in. Used for error messages and can also be left empty.
Returns
EC_Normal if successful, an error code otherwise

References DcmItem::findAndGetSequenceItem().

◆ readSingleItem() [2/2]

template<class Container >
static OFCondition DcmIODUtil::readSingleItem ( DcmItem source,
const DcmTagKey seqKey,
Container &  destination,
IODRule rule = NULL 
)
inlinestatic

Reads single DICOM item from a specific sequence into a destination class.

The container must support the read(DcmItem) function. If a single item (i.e. the first item of the specified sequence) cannot be read, an error is returned.

Parameters
sourceThe source DICOM item read the sequence from
seqKeyThe tag key of the sequence to be read
destinationThe destination container to read into See DcmElement::checkVM() for a list of valid values.
ruleThe rule (for the sequence) used for reading.
Returns
EC_Normal if successful, an error code otherwise. If the rule equlas NULL, then nothing is read at all and an error is returned (IOD_EC_NoSuchRule), but no error is reported to the logger.

References IODRule::getModule(), and IODRule::getType().

◆ readSubSequence() [1/3]

template<class Container >
static OFCondition DcmIODUtil::readSubSequence ( DcmSequenceOfItems source,
const DcmTagKey seqKey,
Container &  destination,
const OFString cardinality,
const OFString type,
const OFString module 
)
inlinestatic

Reads items from DICOM sequence into container by creating a dedicated container item for each DICOM item.

The container must support push_back(T) function and the container's element type T must support the read(DcmItem*) function.

Parameters
sourceThe source sequence to read items from
seqKeyThe sequence's tag key that is expected
destinationThe destination container to read into
cardinalityExpected number of items. See DcmElement::checkVM() for a list of valid values.
typeThe sequence type as noted in part 3 of the DICOM standard, i.e. "1,1C,2,2C or 3".
moduleName of the module/macro this sequence is contained in. Used for error messages and can also be left empty.
Returns
EC_Normal if successful, an error code otherwise

References OFString::c_str(), EC_Normal, and EC_TagNotFound.

◆ readSubSequence() [2/3]

template<class Container >
static OFCondition DcmIODUtil::readSubSequence ( DcmItem source,
const DcmTagKey seqKey,
Container &  destination,
const OFString cardinality,
const OFString type,
const OFString module 
)
inlinestatic

Reads DICOM sequence into container by creating a dedicated container element for each DICOM item.

The container must support push_back(T) function and the container's element type T must support the read(DcmItem*) function.

Parameters
sourceThe source DICOM item read the sequence from
seqKeyThe tag key of the sequence to be read
destinationThe destination container to read into
cardinalityExpected number of items. See DcmElement::checkVM() for a list of valid values.
typeThe sequence type as noted in part 3 of the DICOM standard, i.e. "1,1C,2,2C or 3".
moduleNname of the module/macro this sequence is contained in. Used for error messages and can also be left empty.
Returns
status EC_Normal if successful, an error code otherwise

References DcmItem::findAndGetSequence().

◆ readSubSequence() [3/3]

template<class Container >
static OFCondition DcmIODUtil::readSubSequence ( DcmItem source,
const DcmTagKey seqKey,
Container &  destination,
IODRule rule 
)
inlinestatic

Reads DICOM sequence into container by creating a dedicated container element for each DICOM item.

The container must support the push_back(T) function and the container's element type T must support the read(DcmItem*) function.

Parameters
sourceThe source DICOM item read the sequence from
seqKeyThe tag key of the sequence to be read
destinationThe destination container to read into
ruleThe rule for reading this sequence. If NULL, an error is returned.
Returns
EC_Normal if successful, an error code otherwise

References IODRule::getModule(), IODRule::getType(), and IODRule::getVM().

◆ setUint16ValuesOnElement()

static OFCondition DcmIODUtil::setUint16ValuesOnElement ( DcmElement delem,
const OFVector< Uint16 > &  values,
const OFString vm,
const OFBool  check 
)
static

Set a DcmElement's content from Uint16 vector.

Parameters
delemDICOM element to be filled
valuesVector use as a source for the values
vmValue multiplicity (according to the data dictionary) to be checked for. (See DcmElement::checkVM() for a list of valid values.)
checkIf OFTrue, then it is checked whether number of values conforms to the value provided by the vm parameter.
Returns
Dtatus, EC_Normal if successful, an error code otherwise

◆ writeSingleItem() [1/2]

template<class Container >
static void DcmIODUtil::writeSingleItem ( OFCondition result,
const DcmTagKey seqKey,
Container &  source,
DcmItem destination,
const OFString type,
const OFString module 
)
inlinestatic

Writes given container into a DICOM item of a specific sequence.

The sequence is created from scratch so that any old information will be lost.

Parameters
resultIf writing is successful, result will contain EC_Normal. Otherwise an error code is set.
seqKeyThe tag key of the sequence to be written
sourceThe source container to read from. Must support the write(DcmItem*) function.
destinationThe DICOM item that should hold the sequence (with a single item) in the end.
typeThe sequence type as noted in part 3 of the DICOM standard, i.e. "1,1C,2,2C or 3".
moduleName of the module/macro this sequence is contained in. Used for error messages and can also be left empty.

References DcmItem::findAndDeleteElement(), and OFCondition::good().

◆ writeSingleItem() [2/2]

template<class Container >
static void DcmIODUtil::writeSingleItem ( OFCondition result,
const DcmTagKey seqKey,
Container &  source,
DcmItem destination,
IODRule rule 
)
inlinestatic

Writes given container into a DICOM item of a specific sequence.

The sequence is created from scratch so that any old information will be lost.

Parameters
resultIf writing is successful, result will contain EC_Normal. Otherwise an error code is set.
seqKeyThe tag key of the sequence to be written
sourceThe source container to read from. Must support the write(DcmItem*) function.
destinationThe DICOM item that should hold the sequence (with a single item) in the end.
ruleThe rule for writing the given sequence

References EC_CannotCheck, IODRule::getModule(), IODRule::getType(), and OFCondition::good().

◆ writeSubSequence() [1/2]

template<class Container >
static void DcmIODUtil::writeSubSequence ( OFCondition result,
const DcmTagKey seqKey,
Container &  source,
DcmItem destination,
const OFString cardinality,
const OFString type,
const OFString module 
)
inlinestatic

Write given container into a DICOM sequence that is created within the given item.

The sequence is created from scratch, i.e. any old sequence (and its items) will be overwritten.

Parameters
resultIf writing is successful, result will contain EC_Normal. Otherwise an error code is set.
seqKeyThe tag key of the sequence to be write
sourceThe source container to read from. Must support the write(DcmItem*) function.
destinationThe DICOM destination item to write the sequence to See DcmElement::checkVM() for a list of valid values.
cardinalityExpected number of items (i.e. expected number of elements in source container). See DcmElement::checkVM() for a list of valid values.
typeThe sequence type as noted in part 3 of the DICOM standard, i.e. "1,1C,2,2C or 3".
moduleName of the module/macro this sequence is contained in. Used for error messages and can also be left empty.

References OFCondition::bad(), DcmItem::findAndDeleteElement(), DcmItem::findAndDeleteSequenceItem(), DcmItem::findOrCreateSequenceItem(), OFCondition::good(), DcmItem::insertEmptyElement(), and OFCondition::text().

◆ writeSubSequence() [2/2]

template<class Container >
static void DcmIODUtil::writeSubSequence ( OFCondition result,
const DcmTagKey seqKey,
Container &  source,
DcmItem destination,
IODRule rule 
)
inlinestatic

Write given container into a DICOM sequence that is created within the given item.

The container. The sequence is created from scratch, i.e. any old sequence (and its items) will be overwritten.

Parameters
resultIf writing is successful, result will contain EC_Normal. Otherwise an error code is set.
seqKeyThe tag key of the sequence to be write
sourceThe source container to read from. Must support the write(DcmItem*) function.
destinationThe DICOM destination item to write the sequence to
ruleRule describing the requirements for this sequence. If NULL an error is returned (IOD_EC_NoSuchRule), but no error error is reported to the logger.

References IODRule::getModule(), IODRule::getTagKey(), IODRule::getType(), IODRule::getVM(), and OFCondition::good().


The documentation for this class was generated from the following file:


Generated on Mon Jul 17 2017 for DCMTK Version 3.6.2 by Doxygen 1.8.13