231 lines
8.7 KiB
C++
231 lines
8.7 KiB
C++
/*
|
|
*
|
|
* Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany
|
|
* All rights reserved. See COPYRIGHT file for details.
|
|
*
|
|
* Header file for class CID29_AcquisitionModality
|
|
*
|
|
* Generated automatically from DICOM PS 3.16-2016b
|
|
* File created on 2016-04-06 16:26:33 by J. Riesmeier
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef CMR_CID29_H
|
|
#define CMR_CID29_H
|
|
|
|
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
|
|
|
|
#include "dcmtk/dcmsr/dsrctxgr.h"
|
|
#include "dcmtk/dcmsr/cmr/define.h"
|
|
|
|
#include "dcmtk/ofstd/ofmap.h"
|
|
|
|
|
|
/*---------------------*
|
|
* class declaration *
|
|
*---------------------*/
|
|
|
|
/** Implementation of DCMR Context Group:
|
|
* CID 29 - Acquisition Modality.
|
|
* (type: extensible, version: 20121129)
|
|
*/
|
|
class DCMTK_CMR_EXPORT CID29_AcquisitionModality
|
|
: public DSRContextGroup
|
|
{
|
|
|
|
public:
|
|
|
|
/** types of acquisition modality
|
|
*/
|
|
enum EnumType
|
|
{
|
|
/// (AR,DCM,"Autorefraction")
|
|
Autorefraction,
|
|
/// (BMD,DCM,"Bone Mineral Densitometry")
|
|
BoneMineralDensitometry,
|
|
/// (BDUS,DCM,"Ultrasound Bone Densitometry")
|
|
UltrasoundBoneDensitometry,
|
|
/// (EPS,DCM,"Cardiac Electrophysiology")
|
|
CardiacElectrophysiology,
|
|
/// (CR,DCM,"Computed Radiography")
|
|
ComputedRadiography,
|
|
/// (CT,DCM,"Computed Tomography")
|
|
ComputedTomography,
|
|
/// (DX,DCM,"Digital Radiography")
|
|
DigitalRadiography,
|
|
/// (ECG,DCM,"Electrocardiography")
|
|
Electrocardiography,
|
|
/// (ES,DCM,"Endoscopy")
|
|
Endoscopy,
|
|
/// (XC,DCM,"External-camera Photography")
|
|
ExternalCameraPhotography,
|
|
/// (GM,DCM,"General Microscopy")
|
|
GeneralMicroscopy,
|
|
/// (HD,DCM,"Hemodynamic Waveform")
|
|
HemodynamicWaveform,
|
|
/// (IO,DCM,"Intra-oral Radiography")
|
|
IntraOralRadiography,
|
|
/// (IVOCT,DCM,"Intravascular Optical Coherence Tomography")
|
|
IntravascularOpticalCoherenceTomography,
|
|
/// (IVUS,DCM,"Intravascular Ultrasound")
|
|
IntravascularUltrasound,
|
|
/// (KER,DCM,"Keratometry")
|
|
Keratometry,
|
|
/// (LEN,DCM,"Lensometry")
|
|
Lensometry,
|
|
/// (MR,DCM,"Magnetic Resonance")
|
|
MagneticResonance,
|
|
/// (MG,DCM,"Mammography")
|
|
Mammography,
|
|
/// (NM,DCM,"Nuclear Medicine")
|
|
NuclearMedicine,
|
|
/// (OAM,DCM,"Ophthalmic Axial Measurements")
|
|
OphthalmicAxialMeasurements,
|
|
/// (OCT,DCM,"Optical Coherence Tomography")
|
|
OpticalCoherenceTomography,
|
|
/// (OPM,DCM,"Ophthalmic Mapping")
|
|
OphthalmicMapping,
|
|
/// (OP,DCM,"Ophthalmic Photography")
|
|
OphthalmicPhotography,
|
|
/// (OPR,DCM,"Ophthalmic Refraction")
|
|
OphthalmicRefraction,
|
|
/// (OPT,DCM,"Ophthalmic Tomography")
|
|
OphthalmicTomography,
|
|
/// (OPV,DCM,"Ophthalmic Visual Field")
|
|
OphthalmicVisualField,
|
|
/// (OSS,DCM,"Optical Surface Scanner")
|
|
OpticalSurfaceScanner,
|
|
/// (PX,DCM,"Panoramic X-Ray")
|
|
PanoramicXRay,
|
|
/// (PT,DCM,"Positron emission tomography")
|
|
PositronEmissionTomography,
|
|
/// (RF,DCM,"Radiofluoroscopy")
|
|
Radiofluoroscopy,
|
|
/// (RG,DCM,"Radiographic imaging")
|
|
RadiographicImaging,
|
|
/// (SM,DCM,"Slide Microscopy")
|
|
SlideMicroscopy,
|
|
/// (SRF,DCM,"Subjective Refraction")
|
|
SubjectiveRefraction,
|
|
/// (US,DCM,"Ultrasound")
|
|
Ultrasound,
|
|
/// (VA,DCM,"Visual Acuity")
|
|
VisualAcuity,
|
|
/// (XA,DCM,"X-Ray Angiography")
|
|
XRayAngiography
|
|
};
|
|
|
|
/** (default) constructor
|
|
** @param selectedValue coded entry to be selected as the current value (optional).
|
|
* Should be a valid code according to the DICOM definitions
|
|
* for this context group, i.e. no checks are performed.
|
|
* Call DSRContextGroup::checkSelectedValue() if needed.
|
|
*/
|
|
CID29_AcquisitionModality(const DSRCodedEntryValue &selectedValue = DSRCodedEntryValue());
|
|
|
|
/** constructor
|
|
** @param selectedValue type mapped to a coded entry that is selected as the
|
|
* current value
|
|
** @param enhancedEncodingMode set enhanced encoding mode for coded entry (if enabled)
|
|
*/
|
|
CID29_AcquisitionModality(const EnumType selectedValue,
|
|
const OFBool enhancedEncodingMode = OFFalse);
|
|
|
|
/** select a coded entry given by its type as the current value
|
|
** @param selectedValue type mapped to a coded entry that is selected as the
|
|
* current value
|
|
* @param enhancedEncodingMode set enhanced encoding mode for coded entry (if enabled)
|
|
** @return status, EC_Normal if successful, an error code otherwise
|
|
*/
|
|
virtual OFCondition selectValue(const EnumType selectedValue,
|
|
const OFBool enhancedEncodingMode = OFFalse);
|
|
|
|
// --- static helper functions ---
|
|
|
|
/** initialize this context group explicitly. Internally, the list of standard coded
|
|
* entries is created and initialized by calling getCodes().
|
|
** @note This function can be called multiple times but in case of multi-threaded
|
|
* applications should be called at least once before any instance of this class
|
|
* is actually used. For single-threaded applications, there is no need to call
|
|
* it since the initialization is done implicitly.
|
|
*/
|
|
static void initialize();
|
|
|
|
/** cleanup this context group, i.e.\ delete the internal list of standard coded entries.
|
|
* Usually, there is no need to call this method, but it might be useful in order to
|
|
* explicitly free the associated memory, e.g. when checking for memory leaks. The list
|
|
* will be recreated automatically when needed (or when initialize() is called).
|
|
*/
|
|
static void cleanup();
|
|
|
|
/** map a given type to the associated coded entry
|
|
** @param value type that should be mapped to a coded entry
|
|
* @param enhancedEncodingMode set enhanced encoding mode for coded entry (if enabled)
|
|
** @return coded entry that is associated with the given type
|
|
*/
|
|
static DSRCodedEntryValue getCodedEntry(const EnumType value,
|
|
const OFBool enhancedEncodingMode = OFFalse);
|
|
|
|
// --- reintroduce methods from base class
|
|
|
|
using DSRContextGroup::selectValue;
|
|
using DSRContextGroup::findCodedEntry;
|
|
|
|
|
|
protected:
|
|
|
|
/// type used for storing and managing the coded entries
|
|
typedef OFMap<EnumType, DSRBasicCodedEntry> CodeList;
|
|
|
|
/** print details on coded entries that are contained in this context group.
|
|
* See DSRCodedEntryValue::print() for details of the coded entry output.
|
|
** @param stream stream to which the output should be printed
|
|
*/
|
|
virtual void printCodes(STD_NAMESPACE ostream &stream) const;
|
|
|
|
/** search for a given coded entry in this context group
|
|
** @param searchForCodedEntry coded entry to be searched for
|
|
* @param foundCodedEntry pointer to variable that will store the coded entry
|
|
* (if found and pointer is not NULL)
|
|
* @param enhancedEncodingMode set enhanced encoding mode for coded entry (if enabled)
|
|
** @return result of the search process, also defines the type of the entry
|
|
*/
|
|
virtual OFCondition findCodedEntry(const DSRCodedEntryValue &searchForCodedEntry,
|
|
DSRCodedEntryValue *foundCodedEntry,
|
|
const OFBool enhancedEncodingMode = OFFalse) const;
|
|
|
|
// --- static helper function ---
|
|
|
|
/** get list of standard coded entries that are managed by this context group.
|
|
* Internally, the singleton pattern is used, so the list is initialized only once.
|
|
* Please note that this function is not thread-safe. Therefore, the initialize()
|
|
* function can be called before any instance of this class is actually used.
|
|
** @return reference to list of coded entries managed by this context group
|
|
*/
|
|
static CodeList &getCodes();
|
|
|
|
/** set the "Enhanced Encoding Mode" for a given coded entry
|
|
** @param codedEntryValue coded entry for which the enhanced encoding mode is set
|
|
** @return status, EC_Normal if successful, an error code otherwise
|
|
*/
|
|
static OFCondition setEnhancedEncodingMode(DSRCodedEntryValue &codedEntryValue);
|
|
|
|
|
|
private:
|
|
|
|
/// pointer to internal code list (use a static variable for singleton pattern)
|
|
static CodeList *Codes;
|
|
};
|
|
|
|
|
|
/*-------------------*
|
|
* type definition *
|
|
*-------------------*/
|
|
|
|
// define short name for the context group class
|
|
typedef CID29_AcquisitionModality CMR_CID29;
|
|
|
|
|
|
#endif
|