MeVisLab Toolbox Reference
mlDcmtkMLConverters.h
Go to the documentation of this file.
1 // Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2 // **InsertLicense** code
3 //----------------------------------------------------------------------------------
5 
11 //----------------------------------------------------------------------------------
12 #ifndef __mlDcmtkMLConverters_H
13 #define __mlDcmtkMLConverters_H
14 
16 
17 #include <CSOBase/CSOList.h>
19 #include <DCMTree_Tree.h>
20 #include <DCMTree_StructuredMF.h>
25 #include <mlDicomTree.h>
26 #include <string>
27 
28 ML_START_NAMESPACE
29 
30 #define SEQUENCES_ITEM_INTERFACES_IMPLEMENTED
31 
34 typedef void (*progress_callback_t)(MLdouble progress, void* userData);
35 
36 class MultiFileVolume;
37 class RTBase;
42 
43 //----------------------------------------------------------------------------------
45 //----------------------------------------------------------------------------------
47 
48 public:
49 
50 #ifdef SEQUENCES_ITEM_INTERFACES_IMPLEMENTED
54  DRTStructureSetIODBase& rtStruct,
55  std::string* errVal=NULL,
56  progress_callback_t progressCB = NULL,
57  void* userData = NULL);
58 
63  DcmDRTStructureSetROISequenceInterface* structureSetROISequence,
64  DcmDRTROIContourSequenceInterface* roiContourSequence,
65  DcmDRTRTROIObservationsSequenceInterface* rtRoiObservationSeq,
66  DcmDRTRTDoseROISequenceInterface* rtDoseROISequencePtr=NULL,
67  std::string* errVal=NULL,
68  progress_callback_t progressCB = NULL,
69  void* userData = NULL);
70 
71 
75  DRTStructureSetIODBase& rtStruct,
76  std::string* errVal=NULL,
77  progress_callback_t progressCB = NULL,
78  void* userData = NULL);
79 
82  /*
83  static bool convertImageToDRTDoseIODBase(ml::PagedImage* image,
84  DRTDoseIODBase& rtStruct,
85  std::string* errVal=NULL,
86  progress_callback_t progressCB = NULL,
87  void* userData = NULL);
88  */
89 #endif
90 
91 
95  std::string* errVal);
96 
97  static void constructNewSMFTreeFor(MultiFileVolume &newVolume,
98  std::string filename,
99  std::string* errVal,
100  DCMTree::StructuredMFPtr altSmfPtr);
101 
102  static void fillImageWithPixelData(MultiFileVolume &newVolume,
103  DCMTree::TreePtr treePtr,
104  std::string*errVal);
105 
115  bool cloneNonConstTree=true,
116  bool alsoUseConstClones=false);
117 
121  template <typename RT_OBJ_TYPE>
122  static inline RT_OBJ_TYPE *createTypedRTObjectFromBase(Base *basePtrVal,
123  bool cloneNonConstTree=true,
124  bool alsoUseConstClones=false)
125  {
126  DicomTree *refCountedInTree = mlbase_cast<DicomTree*>(basePtrVal);
127  RTBase* inputRTBase = createRTBaseFromDCMTreeRefCounted(refCountedInTree, cloneNonConstTree, alsoUseConstClones);
128  return mlbase_cast<RT_OBJ_TYPE*>(inputRTBase);
129  }
130 
131 };
132 
133 ML_END_NAMESPACE
134 
135 #endif // __mlDcmtkMLConverters_H
136 
Project global and OS specific declarations.
#define MLDCMTKMLCONVERTERS_EXPORT
Class representing general ML objects that support import/export via strings (setPersistentState() an...
Definition: mlBase.h:62
A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation...
Definition: CSOList.h:61
Base object class for passing DRTStructureSetIOD objects between MeVisLab modules.
Class to provide access to DRTROIContourSequence.
Class to provide access to DRTRTDoseROISequence.
Class to provide access to DRTRTROIObservationsSequence.
Class to provide access to DRTStructureSetROISequence.
The tool function class DcmtkMLConverters.
static bool convertDRTStructureSetIODBaseToCSOList(CSOList &csoList, DRTStructureSetIODBase &rtStruct, std::string *errVal=NULL, progress_callback_t progressCB=NULL, void *userData=NULL)
Converts an RTStruct object to a CSOList object and returns true on success, false otherwise.
static bool convertDRTStructureSetROISequenceToCSOList(CSOList &csoList, DcmDRTStructureSetROISequenceInterface *structureSetROISequence, DcmDRTROIContourSequenceInterface *roiContourSequence, DcmDRTRTROIObservationsSequenceInterface *rtRoiObservationSeq, DcmDRTRTDoseROISequenceInterface *rtDoseROISequencePtr=NULL, std::string *errVal=NULL, progress_callback_t progressCB=NULL, void *userData=NULL)
Converts an RTStruct object to a CSOList object and returns true on success, false otherwise.
static MultiFileVolume * createVolumeReferenceFromFile(DICOMCachedIOFileHandle filename, std::string *errVal)
Converts an image object to RTDose object and returns true on success, false otherwise.
static bool convertCSOListToDRTStructureSetIODBase(CSOList &csoList, DRTStructureSetIODBase &rtStruct, std::string *errVal=NULL, progress_callback_t progressCB=NULL, void *userData=NULL)
Converts a CSOList object to RTStruct object and returns true on success, false otherwise.
static void fillImageWithPixelData(MultiFileVolume &newVolume, DCMTree::TreePtr treePtr, std::string *errVal)
static RT_OBJ_TYPE * createTypedRTObjectFromBase(Base *basePtrVal, bool cloneNonConstTree=true, bool alsoUseConstClones=false)
Tries to get a DicomTree from basePtrVal and to convert it to an RT object of type RT_OBJ_TYPE.
static RTBase * createRTBaseFromDCMTreeRefCounted(DicomTree *refCountedDCMTree, bool cloneNonConstTree=true, bool alsoUseConstClones=false)
Checks the reference counted input tree for a valid RT SOP class UID and creates and returns a corres...
static void constructNewSMFTreeFor(MultiFileVolume &newVolume, std::string filename, std::string *errVal, DCMTree::StructuredMFPtr altSmfPtr)
The DicomTree class can be used to transport a DCMTree::Const_TreePtr as a ml::RefCountedBase object.
Definition: mlDicomTree.h:30
Management class used by DirectDicomImport to create, represent and describe volumes composed of mult...
DcmtkBase derived base object class for base objects that wrap RT related objects.
Definition: mlRTBase.h:34
Base object class for passing DRTStructureSetIOD objects between MeVisLab modules.
Class to provide access to DRTROIContourSequence.
Class to provide access to DRTRTDoseROISequence.
Class to provide access to DRTRTROIObservationsSequence.
Class to provide access to DRTStructureSetROISequence.
double MLdouble
Definition: mlTypeDefs.h:223
boost::shared_ptr< StructuredMF > StructuredMFPtr
Definition: DCMTree_Lib.h:168
boost::shared_ptr< Tree > TreePtr
shared pointer to a DCMTree::Tree
Definition: DCMTree_Lib.h:70
void(* progress_callback_t)(MLdouble progress, void *userData)
Callback typedef that can be given to certain function that provide progress information.