This module contains classes to read, write, create, modify and access various DICOM Radiation Therapy (RT) objects. These classes are generated automatically from the official DocBook/XML version of the DICOM standard.
The main interface classes are:
To simplify working with this low-level interface, there are some hand-written classes which provide commonly needed functionality.
These classes are:
Tools
This module contains the following command line tools:
Examples
The following example shows how to load an RT Dose file and output the patient's name:
{
{
{
cout << "Patient's Name: " << patientName << endl;
} else
cerr <<
"Error: cannot access Patient's Name (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot read RT Dose object (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot load DICOM file (" << status.
text() <<
")" << endl;
Interface class for RTDoseIOD.
Definition: drtdose.h:92
virtual OFCondition read(DcmItem &dataset)
read object from dataset
virtual OFCondition getPatientName(OFString &value, const signed long pos=0) const
get PatientName (0010,0010)
General purpose class for condition codes.
Definition: ofcond.h:164
const char * text() const
get a human readable text representation of this error code.
Definition: ofcond.h:277
OFBool good() const
check if the status is OK.
Definition: ofcond.h:293
a simple string class that implements a subset of std::string.
Definition: ofstring.h:76
The following example shows how to load an RT Dose file and access the scaled dose image:
{
const unsigned int frame = 0;
{
for (int y = 0; y < doseImage.getDoseImageHeight(); ++y)
{
for (int x = 0; x < doseImage.getDoseImageWidth(); ++x)
{
double value = *it++;
}
}
} else
cerr <<
"Error: cannot read RT Dose image (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot load RT Dose object (" << status.
text() <<
")" << endl;
helper class for working with radio therapy dose information objects.
Definition: drmdose.h:38
virtual OFCondition getDoseImage(OFVector< double > &result, unsigned int frame) const
get the dose information for a single frame of the image.
virtual OFCondition loadFile(const OFFilename &fileName, const E_FileReadMode readMode=ERM_autoDetect, const E_TransferSyntax readXfer=EXS_Unknown)
load an object from a file
this is a resizable array.
Definition: ofvector.h:54
iterator begin()
get an iterator for the first element in this object.
Definition: ofvector.h:170
T * iterator
the type of mutable iterators on this object
Definition: ofvector.h:61
The following example shows how to load an RT Plan file, change the patient's name and save it to a new file:
{
{
{
{
status = fileformat.
saveFile(
"rtplan_new.dcm");
cerr <<
"Error: cannot save DICOM file (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot write RT Plan object (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot change Patient's Name (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot read RT Plan object (" << status.
text() <<
")" << endl;
} else
cerr <<
"Error: cannot load DICOM file (" << status.
text() <<
")" << endl;
Interface class for RTPlanIOD.
Definition: drtplan.h:92
virtual OFCondition write(DcmItem &dataset)
write object to dataset
virtual OFCondition setPatientName(const OFString &value, const OFBool check=OFTrue)
set PatientName (0010,0010)
virtual OFCondition read(DcmItem &dataset)
read object from dataset
OFBool bad() const
check if the status is not OK, i.e. error or failure.
Definition: ofcond.h:302
Known Issues
Since most of the classes in this module are generated automatically from a machine-readable version of the DICOM standard and the RT objects are known to "re-use" the same sequence attributes with different content at various places, there still might be some issues with wrong definitions in a few sub-sequences. E.g., the Referenced Beam Sequence (300C,0004) and the Referenced SOP Sequence (0008,1199) are candidates that might not be handled 100% correctly yet.