21 #ifndef __ctkDICOMItem_h
22 #define __ctkDICOMItem_h
24 #include "ctkDICOMCoreExport.h"
28 #include <dcmtk/dcmdata/dcdatset.h>
32 class DcmDataDictionary;
35 class ctkDICOMItemPrivate;
91 const E_TransferSyntax readXfer = EXS_Unknown,
92 const E_GrpLenEncoding groupLength = EGL_noChange,
93 const Uint32 maxReadLength = DCM_MaxReadLength,
94 const E_FileReadMode readMode = ERM_autoDetect);
151 QString
Decode(
const DcmTag& tag,
const OFString& raw)
const;
157 OFString
Encode(
const DcmTag& tag,
const QString& qstring)
const;
162 OFCondition
findAndGetElement(
const DcmTag& tag, DcmElement*& element,
const OFBool searchIntoSub=OFFalse)
const;
167 OFCondition
findAndGetOFString(
const DcmTag& tag, OFString& value,
const unsigned long pos = 0,
const OFBool searchIntoSub=OFFalse)
const;
225 static QString
TagKey(
const DcmTag& tag );
235 static QString
TagVR(
const DcmTag& tag );
255 QScopedPointer<ctkDICOMItemPrivate>
d_ptr;
static QString TranslateDefinedTermModality(const QString &dt)
Get a human-readable version of modality enumerations used e.g. in DICOM series.
static QString TagKey(const DcmTag &tag)
Nicely formatted (group,element) version of a tag.
bool SetElementAsPersonNameList(const DcmTag &tag, ctkDICOMPersonNameList personNameList)
bool SetElementAsString(const DcmTag &tag, QString string)
Set-methods for for all subtypes of DcmByteString.
bool IsInitialized() const
Is this dataset initialized ?
QString GetStudyInstanceUID() const
Some convenience getter.
bool SetElementAsPersonName(const DcmTag &tag, ctkDICOMPersonName personName)
void Serialize()
Store a string representation of the object to a database field.
static QString TranslateDefinedTermPatientPosition(const QString &dt)
Get a human-readable version of patient position enumerations used e.g. in DICOM series.
OFString Encode(const DcmTag &tag, const QString &qstring) const
creates an OFString from the QtString
double GetElementAsDouble(const DcmTag &tag, unsigned long pos=0) const
void EnsureDcmDataSetIsInitialized() const
Called by all Get/Set methods to initialize DcmDataSet if needed.
OFCondition findAndGetOFString(const DcmTag &tag, OFString &value, const unsigned long pos=0, const OFBool searchIntoSub=OFFalse) const
A const-correct version of DcmDataset::findAndGetOFString.
QString GetElementAsString(const DcmTag &tag, unsigned long pos=0) const
QString Decode(const DcmTag &tag, const OFString &raw) const
creates a QString from the OFString, respecting the "specific character set" of the Dataset.
bool SetElementAsUnsignedShort(const DcmTag &tag, int value, unsigned long pos=0)
int GetElementAsUnsignedShort(const DcmTag &tag, unsigned long pos=0) const
QStringList GetElementAsStringList(const DcmTag &tag) const
void MarkForInitialization()
To be called from InitializeData, flags status as dirty.
bool SetElementAsDate(const DcmTag &tag, QDate date)
static QString TagVR(const DcmTag &tag)
Value Representation.
bool SetElementAsSignedShort(const DcmTag &tag, int value, unsigned long pos=0)
virtual void InitializeFromItem(DcmItem *dataset, bool takeOwnership=false)
For initialization from a DcmDataset in a constructor / assignment.
QScopedPointer< ctkDICOMItemPrivate > d_ptr
void Deserialize()
Restore the object from a string representation in a database field.
bool SaveToFile(const QString &filePath) const
Save dataset to file.
OFCondition findAndGetElement(const DcmTag &tag, DcmElement *&element, const OFBool searchIntoSub=OFFalse) const
A const-correct version of DcmDataset::findAndGetElement.
long GetElementAsInteger(const DcmTag &tag, unsigned long pos=0) const
bool SetElementAsInteger(const DcmTag &tag, long value, unsigned long pos=0)
bool SetElementAsTime(const DcmTag &tag, QTime time)
virtual QString GetStoredSerialization()
Callback for retrieving a serialized version of this class.
int GetElementAsSignedShort(const DcmTag &tag, unsigned long pos=0) const
QTime GetElementAsTime(const DcmTag &tag, unsigned long pos=0) const
ctkDICOMItem(bool strictErrorHandling=false)
Create an empty object. This has to be initialized by one of the InitializeFrom......
ctkDICOMPersonNameList GetElementAsPersonNameList(const DcmTag &tag) const
QString GetSOPInstanceUID() const
bool SetElementAsDateTime(const DcmTag &tag, QDateTime dateTime)
QDateTime GetElementAsDateTime(const DcmTag &tag, unsigned long pos=0) const
QString GetSeriesInstanceUID() const
ctkDICOMPersonName GetElementAsPersonName(const DcmTag &tag, unsigned long pos=0) const
bool SetElementAsStringList(const DcmTag &tag, QStringList stringList)
static bool CheckCondition(const OFCondition &)
QDate GetElementAsDate(const DcmTag &tag, unsigned long pos=0) const
DcmItem & GetDcmItem() const
static QString TagDescription(const DcmTag &tag)
Description (name) of the tag.
bool CopyElement(DcmDataset *dataset, const DcmTagKey &tag, int type)
Find element in dataset and copy it into internal DcmDataset.
virtual void SetStoredSerialization(QString serializedDataset)
Callback for storing a serialized version of this class.
QString GetAllElementValuesAsString(const DcmTag &tag) const
Get-methods for for all subtypes of DcmByteString.
virtual void InitializeFromFile(const QString &filename, const E_TransferSyntax readXfer=EXS_Unknown, const E_GrpLenEncoding groupLength=EGL_noChange, const Uint32 maxReadLength=DCM_MaxReadLength, const E_FileReadMode readMode=ERM_autoDetect)
For initialization from file in a constructor / assignment.
A person's name as modelled in DICOM.
ctkDICOMItem ctkDICOMItem