DCMTK Version 3.6.8
OFFIS DICOM Toolkit
|
Class implementing the image2dcm engine. More...
Public Member Functions | |
Image2Dcm () | |
Constructor, initializes command line options. | |
~Image2Dcm () | |
Destructor, frees plugin memory. | |
OFCondition | convertFirstFrame (I2DImgSource *inputPlug, I2DOutputPlug *outPlug, size_t numberOfFrames, DcmDataset *&resultDset, E_TransferSyntax &proposedTS) |
Start the conversion. More... | |
OFCondition | convertNextFrame (I2DImgSource *inputPlug, size_t frameNumber) |
Start the conversion. More... | |
OFCondition | updateOffsetTable () |
Update the offset table in the case of an encapsulated image. More... | |
OFCondition | updateLossyCompressionInfo (I2DImgSource *inputPlug, size_t numberOfFrames, DcmDataset *dset) |
Finalizes the conversion after the last call to convertNextFrame() by writing the attributes related to lossy image compression. More... | |
void | setTemplateFile (const OFString &file) |
Sets a file that should serve as a template for the resulting DICOM object. More... | |
void | setTemplateFileIsXML (OFBool isXML) |
Sets the format of the template file. More... | |
void | setXMLvalidation (OFBool enabled) |
activates or deactivates XML validation More... | |
void | setXMLnamespaceCheck (OFBool enabled) |
activates or deactivates an XML namespace check More... | |
void | setSeriesFrom (const OFString &file) |
Set file from which patient/study/series data should be imported from. More... | |
void | setStudyFrom (const OFString &file) |
Set file from which patient/study/series data should be imported from. More... | |
void | setIncrementInstanceNumber (OFBool incInstNo) |
Enables/Disables incrementing instance number taken over from DICOM file. More... | |
void | setConversionFlags (size_t conversionFlags) |
Sets the conversion flags for character set conversion of the study/series file. More... | |
void | setOverrideKeys (const OFList< OFString > &ovkeys) |
Specifies some attributes that should be inserted after conversion. More... | |
void | setValidityChecking (OFBool doChecks, OFBool insertMissingType2=OFTrue, OFBool inventMissingType1=OFTrue) |
Enable/Disable basic validity checks for output dataset. More... | |
Protected Member Functions | |
void | cleanupTemplate (DcmDataset *targetDset) |
Cleans up template for future insertion of pixel data information, ie generally removes attributes from image pixel module. More... | |
OFCondition | applyStudyOrSeriesFromFile (DcmDataset *targetDset) |
Parses patient/study/series level attributes from file as defined on command line and fills internal attributes accordingly. More... | |
OFCondition | incrementInstanceNumber (DcmDataset *targetDset) |
Increments instance number in given dataset. More... | |
OFCondition | generateUIDs (DcmDataset *dset) |
Generates and inserts missing UIDs, ie UIDs not taken over from –dataset-from –study from and –series-from options. More... | |
OFCondition | readAndInsertPixelDataFirstFrame (I2DImgSource *imageSource, size_t numberOfFrames, DcmDataset *dset, E_TransferSyntax &outputTS, double &compressionRatio) |
Reads pixel data and corresponding attributes like rows etc. More... | |
OFCondition | readAndInsertPixelDataNextFrame (I2DImgSource *imageSource, size_t frameNumber) |
Reads pixel data and corresponding attributes like rows etc. More... | |
OFString | isValid (DcmDataset &dataset) const |
Do some completeness / validity checks. More... | |
OFCondition | applyOverrideKeys (DcmDataset *outputDset) |
Copy override keys over existing keys in given dataset. More... | |
OFCondition | insertLatin1 (DcmDataset *outputDset) |
Inserts "ISO_IR100" in the attribute "Specific Character Set". More... | |
OFString | checkAndInventType1Attrib (const DcmTagKey &key, DcmDataset *targetDset, const OFString &defaultValue="") const |
Check whether given type 1 attribute is present and has a length > 0. More... | |
OFString | checkAndInventType2Attrib (const DcmTagKey &key, DcmDataset *targetDset) const |
Inserts an empty element with the given tag into a dataset. More... | |
Private Member Functions | |
OFCondition | insertEncapsulatedPixelDataFirstFrame (DcmDataset *dset, char *pixData, Uint32 length, E_TransferSyntax outputTS) |
Inserts encapsulated pixel data for the first frame. More... | |
OFCondition | insertEncapsulatedPixelDataNextFrame (char *pixData, Uint32 length) |
Inserts encapsulated pixel data for another frame. More... | |
Private Attributes | |
OFList< OFString > | m_overrideKeys |
These attributes are applied to the dataset after conversion (and are not checked by the isValid() function) | |
OFString | m_templateFile |
If not empty, the DICOM or XML file specified in this variable is used as a base for the DICOM image file to be created, ie. More... | |
OFBool | m_templateFileIsXML |
if true, the template file is in XML format, otherwise DICOM | |
OFBool | m_XMLvalidation |
if true, an XML validation will be performed while parsing | |
OFBool | m_XMLnamespaceCheck |
if true, an XML namespace check will be performed while parsing | |
OFBool | m_readStudyLevel |
If true, patient and study data is read from file. | |
OFBool | m_readSeriesLevel |
If true, patient, study and series data is read from file. | |
OFString | m_studySeriesFile |
File to read study and series from. | |
OFBool | m_incInstNoFromFile |
If true, Instance Number is read from file and incremented by 1. | |
OFBool | m_disableAttribChecks |
If true, some simple attribute checks (missing type 2 attributes or missing type 1 values) are omitted. | |
OFBool | m_inventMissingType2Attribs |
If true, missing type 2 elements are inserted automatically (empty value). More... | |
OFBool | m_inventMissingType1Attribs |
If true, missing type 1 elements are inserted automatically with a predefined value, if possible. More... | |
OFBool | m_insertLatin1 |
If enabled, ISO_IR100 (ISO Latin 1) is inserted as a standard value for attribute "Specific Character Set". More... | |
Uint16 | m_rows |
number of rows | |
Uint16 | m_cols |
number of columns | |
Uint16 | m_samplesPerPixel |
samples per pixel | |
Uint16 | m_bitsAllocated |
bits allocated | |
Uint16 | m_bitsStored |
bits stored | |
Uint16 | m_highBit |
high bit | |
Uint16 | m_pixelRepresentation |
pixel representation | |
Uint16 | m_planarConfiguration |
planar configuration | |
Uint16 | m_pixelAspectRatioH |
pixel aspect ratio, horizontal | |
Uint16 | m_pixelAspectRatioV |
pixel aspect ratio, vertical | |
Uint32 | m_frameLength |
frame length in bytes | |
OFString | m_photometricInterpretation |
photometric interpretation | |
double | m_compressionRatio |
compression ratio per frame accumulated in this variable | |
size_t | m_conversionFlags |
flags for character set conversion | |
char * | m_output_buffer |
buffer into which uncompressed pixel data is written | |
DcmOffsetList | m_offsetList |
offset list object used for the creation of encapsulated datasets | |
DcmPixelSequence * | m_pixelSequence |
pixel sequence object used for the creation of encapsulated datasets | |
DcmPixelItem * | m_offsetTable |
offset table object used for the creation of encapsulated datasets | |
Class implementing the image2dcm engine.
Conversion takes place by combining an input plugin reading a general purpose image format and output plugins for conversion to specific DICOM SOP class(es)
|
protected |
Copy override keys over existing keys in given dataset.
outputDset | - [out] dataset to which the override keys are copied |
|
protected |
Parses patient/study/series level attributes from file as defined on command line and fills internal attributes accordingly.
targetDset | - [out] The dataset to write the attributes to |
|
protected |
Check whether given type 1 attribute is present and has a length > 0.
key | - [in] The attribute tag check |
targetDset | - [out] targetDset |
defaultValue | - [in] value to be inserted if attribute is missing (needs invent option for type 1 attributes enabled) |
|
protected |
Inserts an empty element with the given tag into a dataset.
key | - [in] The attribute tag to check |
targetDset | - [out] targetDset |
|
protected |
Cleans up template for future insertion of pixel data information, ie generally removes attributes from image pixel module.
targetDset | - [out] The dataset that should be cleaned up |
OFCondition Image2Dcm::convertFirstFrame | ( | I2DImgSource * | inputPlug, |
I2DOutputPlug * | outPlug, | ||
size_t | numberOfFrames, | ||
DcmDataset *& | resultDset, | ||
E_TransferSyntax & | proposedTS | ||
) |
Start the conversion.
Needs a fully configured input plugin and a fully configured output plugin to operate. Returns a dataset with the resulting DICOM object.
inputPlug | - [in] The input plugin to read pixel data |
outPlug | - [in] The output plugin for specific SOP class output |
numberOfFrames | - [in] The number of frames to be written |
resultDset | - [out] The DICOM object resulting from the conversion The dataset is allocated in this method and must be freed by the caller. |
proposedTS | - [out] The proposed transfer syntax (needed e. g. by JPEG input plugin) |
OFCondition Image2Dcm::convertNextFrame | ( | I2DImgSource * | inputPlug, |
size_t | frameNumber | ||
) |
Start the conversion.
Needs a fully configured input plugin to operate. Updates the pixel data element created by convertFirstFrame().
inputPlug | - [in] The input plugin to read pixel data |
frameNumber | - [in] The number of the current frame, must be larger than 1 and smaller or equal to the numberOfFrames value passed to convertFirstFrame(). |
|
protected |
Generates and inserts missing UIDs, ie UIDs not taken over from –dataset-from –study from and –series-from options.
dset | - [in] The dataset to write the UIDs to |
|
protected |
Increments instance number in given dataset.
targetDset | - [in/out] Dataset to increment instance number in |
|
private |
Inserts encapsulated pixel data for the first frame.
dset | [in] - The dataset to which we should add this. |
pixData | [in] - The data to add. |
length | [in] - The length of pixData. |
outputTS | [in] - The output transfer syntax to be used |
|
private |
Inserts encapsulated pixel data for another frame.
pixData | [in] - The data to add. |
length | [in] - The length of pixData. |
|
protected |
Inserts "ISO_IR100" in the attribute "Specific Character Set".
Overwrites any existing value.
outputDset | - [out] The dataset to write to |
|
protected |
Do some completeness / validity checks.
Should be called when dataset is completed and is about to be saved.
dataset | - [in] The dataset to check |
|
protected |
Reads pixel data and corresponding attributes like rows etc.
from image file and inserts them into dataset.
imageSource | - [in] The input plugin that actually reads the pixel data |
numberOfFrames | - [in] The number of frames to be written |
dset | - [out] The dataset to export the pixel data attributes to |
outputTS | - [out] The proposed transfex syntax of the dataset |
compressionRatio | - [out] compression ratio of the pixel data, 1.0 for uncompressed |
|
protected |
Reads pixel data and corresponding attributes like rows etc.
from image file and inserts them into dataset as an additional frame.
imageSource | - [in] The input plugin that actually reads the pixel data |
frameNumber | - [in] The number of the current frame, must be larger than 1 and smaller or equal to the numberOfFrames value passed to convertFirstFrame(). |
void Image2Dcm::setConversionFlags | ( | size_t | conversionFlags | ) |
Sets the conversion flags for character set conversion of the study/series file.
conversionFlags | - [in] conversion flags |
void Image2Dcm::setIncrementInstanceNumber | ( | OFBool | incInstNo | ) |
Enables/Disables incrementing instance number taken over from DICOM file.
This can either be a the study/series file or the template file provided.
incInstNo | - [in] If true, the instance number will be incremented |
Specifies some attributes that should be inserted after conversion.
They will override any identical attributes already existing in the converted result DICOM object. The override keys are applied at the very end of the conversion and do not undergoe any validity checking.
ovkeys | [in] override keys that can be tags, dictionary names and paths (see DcmPath for syntax). Also it is permitted to set a value if appropriate, e. g. "PatientName=Doe^John" would be a valid override key. |
void Image2Dcm::setSeriesFrom | ( | const OFString & | file | ) |
Set file from which patient/study/series data should be imported from.
file | - [in] The DICOM file to read from |
void Image2Dcm::setStudyFrom | ( | const OFString & | file | ) |
Set file from which patient/study/series data should be imported from.
file | - [in] The DICOM file to read from |
void Image2Dcm::setTemplateFile | ( | const OFString & | file | ) |
Sets a file that should serve as a template for the resulting DICOM object.
Only the dataset of the given file is imported.
file | - [in] The filename of the template file, which is either in DICOM or XML format. |
void Image2Dcm::setTemplateFileIsXML | ( | OFBool | isXML | ) |
Sets the format of the template file.
isXML | - [in] true for XML, false for DICOM format |
void Image2Dcm::setValidityChecking | ( | OFBool | doChecks, |
OFBool | insertMissingType2 = OFTrue , |
||
OFBool | inventMissingType1 = OFTrue |
||
) |
Enable/Disable basic validity checks for output dataset.
doChecks | - [in] OFTrue enables checking, OFFalse turns it off. |
insertMissingType2 | - [in] If true (default), missing type 2 attributes are inserted automatically |
inventMissingType1 | - [in] If true , missing type 1 attributes are inserted automatically with a predefined value (if possible). An existing empty type 1 attribute is assigned a value, too. |
void Image2Dcm::setXMLnamespaceCheck | ( | OFBool | enabled | ) |
activates or deactivates an XML namespace check
enabled | - [in] true to enable namespace check |
void Image2Dcm::setXMLvalidation | ( | OFBool | enabled | ) |
activates or deactivates XML validation
enabled | - [in] true to enable validation |
OFCondition Image2Dcm::updateLossyCompressionInfo | ( | I2DImgSource * | inputPlug, |
size_t | numberOfFrames, | ||
DcmDataset * | dset | ||
) |
Finalizes the conversion after the last call to convertNextFrame() by writing the attributes related to lossy image compression.
inputPlug | - [in] The input plugin to read pixel data |
numberOfFrames | - [in] The number of frames to be written |
dset | - [in/out] The DICOM object resulting from the conversion |
OFCondition Image2Dcm::updateOffsetTable | ( | ) |
Update the offset table in the case of an encapsulated image.
|
private |
If enabled, ISO_IR100 (ISO Latin 1) is inserted as a standard value for attribute "Specific Character Set".
Insertion takes place after loading (optional) template file.
|
private |
If true, missing type 1 elements are inserted automatically with a predefined value, if possible.
Disabled per default.
|
private |
If true, missing type 2 elements are inserted automatically (empty value).
Enabled per default.
|
private |
If not empty, the DICOM or XML file specified in this variable is used as a base for the DICOM image file to be created, ie.
all attributes are taken over from this template file