DCMTK
Version 3.6.5
OFFIS DICOM Toolkit
|
Class managing the SR document tree. More...
Public Member Functions | |
DSRDocumentTree (const E_DocumentType documentType) | |
constructor More... | |
DSRDocumentTree (const DSRDocumentTree &tree) | |
copy constructor. More... | |
virtual | ~DSRDocumentTree () |
destructor | |
DSRDocumentTree & | operator= (DSRDocumentTree tree) |
assignment operator. More... | |
virtual DSRDocumentTree * | clone () const |
clone this tree. More... | |
virtual void | clear () |
clear internal member variables. More... | |
virtual OFBool | isValid () const |
check whether the current internal state is valid. More... | |
virtual OFCondition | print (STD_NAMESPACE ostream &stream, const size_t flags=0) |
print current SR document tree to specified output stream More... | |
virtual OFCondition | read (DcmItem &dataset, const E_DocumentType documentType, const size_t flags=0) |
read SR document tree from DICOM dataset. More... | |
virtual OFCondition | write (DcmItem &dataset, DcmStack *markedItems=NULL) |
write current SR document tree to DICOM dataset. More... | |
virtual OFCondition | readXML (const DSRXMLDocument &doc, DSRXMLCursor cursor, const size_t flags) |
read XML document tree More... | |
virtual OFCondition | renderHTML (STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, const size_t flags=0) |
render current SR document tree in HTML/XHTML format. More... | |
E_DocumentType | getDocumentType () const |
get document type More... | |
virtual OFCondition | changeDocumentType (const E_DocumentType documentType, const OFBool deleteTree) |
change document type. More... | |
virtual OFBool | canAddContentItem (const E_RelationshipType relationshipType, const E_ValueType valueType, const E_AddMode addMode=AM_afterCurrent) const |
check whether specified content item can be added to the current one. More... | |
virtual OFBool | canInsertSubTree (const DSRDocumentSubTree *tree, const E_AddMode addMode=AM_belowCurrent, const E_RelationshipType defaultRelType=RT_unknown) const |
check whether specified subtree can be inserted at the current position, i.e. added to the current content item. More... | |
virtual OFCondition | checkDocumentTreeConstraints (DSRIODConstraintChecker *checker) |
check whether the document tree complies with the constraints of the given checker. More... | |
void | unmarkAllContentItems () |
unmark all content items in the document tree. More... | |
void | removeSignatures () |
remove digital signatures from the document tree. More... | |
![]() | |
DSRDocumentSubTree () | |
default constructor | |
DSRDocumentSubTree (const DSRDocumentSubTree &tree) | |
copy constructor. More... | |
virtual | ~DSRDocumentSubTree () |
destructor | |
DSRDocumentSubTree & | operator= (DSRDocumentSubTree tree) |
assignment operator. More... | |
virtual OFBool | isCursorValid () const |
check whether the internal cursor, which points to the current content item, is valid More... | |
virtual OFBool | isValidDocumentTree (const E_RelationshipType defaultRelType=RT_unknown) const |
check whether this subtree is a valid document tree. More... | |
virtual OFBool | isExpandedDocumentTree () const |
check whether this subtree is an expanded document tree. More... | |
virtual OFBool | hasTemplateIdentification () const |
check whether template identification is set More... | |
virtual OFBool | canUseTemplateIdentification () const |
check whether template identification is possible at all. More... | |
virtual OFCondition | writeXML (STD_NAMESPACE ostream &stream, const size_t flags=0) |
write current SR document tree in XML format More... | |
virtual DSRContentItem & | getCurrentContentItem () |
get reference to current content item. More... | |
virtual const DSRDocumentTreeNode * | getCurrentNode () const |
get read-only access to current node (content item) More... | |
virtual OFBool | getCursorToRootNode (DSRDocumentTreeNodeCursor &cursor) const |
get a cursor to the root node of this document tree. More... | |
virtual OFBool | getCursorToRootNode (DSRIncludedTemplateNodeCursor &cursor) const |
get a cursor to the root node of this document tree. More... | |
virtual OFBool | getCursorToCurrentNode (DSRDocumentTreeNodeCursor &cursor) const |
get a cursor to the current node of this document tree. More... | |
virtual OFBool | getCursorToSubTree (DSRDocumentTreeNodeCursor &cursor) const |
get a cursor to the subtree below the current node. More... | |
size_t | countNodes (const OFBool searchIntoSubTemplates=OFFalse, const OFBool countIncludedTemplateNodes=OFTrue) const |
count number of content items (nodes) in the document tree. More... | |
virtual size_t | gotoMatchingNode (const DSRDocumentTreeNodeFilter &filter, const OFBool startFromRoot=OFTrue, const OFBool searchIntoSub=OFTrue) |
set internal cursor to a matching node. More... | |
virtual size_t | gotoNextMatchingNode (const DSRDocumentTreeNodeFilter &filter, const OFBool searchIntoSub=OFTrue) |
set internal cursor to the next matching node. More... | |
virtual size_t | gotoNamedNode (const DSRCodedEntryValue &conceptName, const OFBool startFromRoot=OFTrue, const OFBool searchIntoSub=OFTrue) |
set internal cursor to a named node. More... | |
virtual size_t | gotoNamedChildNode (const DSRCodedEntryValue &conceptName) |
set internal cursor to a named node (starting from the first child of the current node and searching on this level only). More... | |
virtual size_t | gotoNamedNodeInSubTree (const DSRCodedEntryValue &conceptName, const OFBool searchIntoSub=OFTrue) |
set internal cursor to a named node in the subtree below the current node. More... | |
virtual size_t | gotoNextNamedNode (const DSRCodedEntryValue &conceptName, const OFBool searchIntoSub=OFTrue) |
set internal cursor to the next named node. More... | |
virtual size_t | gotoAnnotatedNode (const OFString &annotationText, const OFBool startFromRoot=OFTrue) |
set internal cursor to an annotated node. More... | |
virtual size_t | gotoNextAnnotatedNode (const OFString &annotationText) |
set internal cursor to the next annotated node. More... | |
virtual OFBool | canAddByReferenceRelationship (const E_RelationshipType relationshipType, const E_ValueType targetValueType) const |
check whether specified by-reference relationship can be added to the current content item. More... | |
virtual size_t | addContentItem (const E_RelationshipType relationshipType, const E_ValueType valueType, const E_AddMode addMode=AM_afterCurrent) |
add specified content item to the current one. More... | |
virtual OFCondition | addContentItem (DSRDocumentTreeNode *node, const E_AddMode addMode=AM_afterCurrent, const OFBool deleteIfFail=OFFalse) |
add specified content item to the current one. More... | |
virtual OFCondition | addContentItem (const E_RelationshipType relationshipType, const E_ValueType valueType, const DSRCodedEntryValue &conceptName, const OFBool check=OFTrue) |
add specified content item after the current one. More... | |
virtual OFCondition | addChildContentItem (const E_RelationshipType relationshipType, const E_ValueType valueType, const DSRCodedEntryValue &conceptName, const OFBool check=OFTrue) |
add specified content item below the current one. More... | |
virtual size_t | addByReferenceRelationship (const E_RelationshipType relationshipType, const size_t referencedNodeID) |
add specified by-reference relationship to the current content item. More... | |
virtual OFCondition | updateByReferenceRelationships (const OFBool updateIncludedTemplates=OFFalse) |
update the position strings used to encode by-reference relationships (if any). More... | |
virtual OFCondition | insertSubTree (DSRDocumentSubTree *tree, const E_AddMode addMode=AM_belowCurrent, const E_RelationshipType defaultRelType=RT_unknown, const OFBool deleteIfFail=OFFalse) |
insert specified subtree to this tree, i.e. add it to the current content item. More... | |
virtual DSRDocumentSubTree * | extractSubTree () |
extract a subtree, i.e. a fragment from this tree. More... | |
virtual size_t | removeCurrentContentItem () |
remove current content item from tree. More... | |
virtual OFCondition | removeSubTree (const size_t searchID=0) |
remove a subtree from this tree. More... | |
virtual DSRDocumentTreeNode * | cloneCurrentTreeNode () const |
clone the current tree node. More... | |
virtual DSRDocumentSubTree * | cloneSubTree (const size_t stopAfterNodeID=0) const |
clone a subtree, i.e. a fragment of this tree. More... | |
virtual OFCondition | createExpandedSubTree (DSRDocumentSubTree *&tree) const |
created an expanded version of this (sub)tree. More... | |
virtual OFCondition | setObservationDateTime (const OFString &observationDateTime, const OFBool check=OFTrue) |
set observation date/time for all content items in the document tree. More... | |
virtual OFBool | compareTemplateIdentification (const OFString &templateIdentifier, const OFString &mappingResource, const OFString &mappingResourceUID="") const |
compare template identification of the root node with given values. More... | |
virtual OFCondition | getTemplateIdentification (OFString &templateIdentifier, OFString &mappingResource) const |
get template identifier and mapping resource from the root node of this tree. More... | |
virtual OFCondition | getTemplateIdentification (OFString &templateIdentifier, OFString &mappingResource, OFString &mappingResourceUID) const |
get template identifier, mapping resource and optional mapping resource UID from the root node of this tree. More... | |
virtual OFCondition | setTemplateIdentification (const OFString &templateIdentifier, const OFString &mappingResource, const OFString &mappingResourceUID="", const OFBool check=OFTrue) |
set template identifier and mapping resource to the root node of this tree. More... | |
![]() | |
DSRTree () | |
default constructor | |
DSRTree (const DSRTree< DSRDocumentTreeNode > &tree) | |
copy constructor. More... | |
virtual | ~DSRTree () |
destructor | |
DSRTree & | operator= (DSRTree< DSRDocumentTreeNode > tree) |
assignment operator. More... | |
void | clearAnnotations () |
clear annotations of all tree nodes | |
OFBool | isEmpty () const |
check whether tree has any nodes More... | |
size_t | countNodes () const |
count number of nodes in the tree. More... | |
size_t | getNextNodeID () const |
get ID of the next node to be created. More... | |
size_t | gotoRoot () |
set internal cursor to root node More... | |
size_t | gotoNode (const size_t searchID, const OFBool startFromRoot=OFTrue) |
set internal cursor to specified node More... | |
size_t | gotoNode (const OFString &reference, const OFBool startFromRoot=OFTrue) |
set internal cursor to specified node More... | |
size_t | gotoNode (const DSRTreeNodeAnnotation &annotation, const OFBool startFromRoot=OFTrue) |
set internal cursor to specified node More... | |
size_t | gotoNode (const DSRDocumentTreeNode &nodeValue, const OFBool startFromRoot=OFTrue) |
set internal cursor to specified node (given by its value). More... | |
![]() | |
DSRTreeNodeCursor () | |
default constructor | |
DSRTreeNodeCursor (const DSRTreeNodeCursor< DSRDocumentTreeNode > &cursor) | |
copy constructor More... | |
DSRTreeNodeCursor (DSRDocumentTreeNode *node, const DSRPositionCounter *position=NULL) | |
constructor. More... | |
virtual | ~DSRTreeNodeCursor () |
destructor | |
DSRTreeNodeCursor< DSRDocumentTreeNode > & | operator= (const DSRTreeNodeCursor< DSRDocumentTreeNode > &cursor) |
assignment operator More... | |
DSRTreeNodeCursor< DSRDocumentTreeNode > & | operator= (DSRDocumentTreeNode *node) |
assignment operator. More... | |
virtual size_t | countChildNodes (const OFBool searchIntoSub=OFTrue) const |
count number of children of the current node. More... | |
OFBool | hasParentNode () const |
check whether the current node has a parent More... | |
OFBool | hasChildNodes () const |
check whether the current node has any children More... | |
OFBool | hasPreviousNode () const |
check whether the current node has a preceding sibling More... | |
OFBool | hasNextNode () const |
check whether the current node has a following sibling More... | |
OFBool | hasSiblingNodes () const |
check whether the current node has any siblings More... | |
virtual const DSRDocumentTreeNode * | getParentNode () const |
get pointer to parent node. More... | |
virtual const DSRDocumentTreeNode * | getChildNode () const |
get pointer to first child node. More... | |
virtual const DSRDocumentTreeNode * | getPreviousNode () const |
get pointer to previous node. More... | |
virtual const DSRDocumentTreeNode * | getNextNode () const |
get pointer to next node. More... | |
virtual size_t | gotoFirst () |
goto first node on the same level (first sibling). More... | |
virtual size_t | gotoLast () |
goto last node on the same level (last sibling). More... | |
virtual size_t | gotoPrevious () |
goto previous node on the same level (preceding sibling) More... | |
virtual size_t | gotoNext () |
goto next node on the same level (following sibling) More... | |
virtual size_t | goUp () |
goto parent node (one level up) More... | |
virtual size_t | goDown () |
goto first child node (one level down) More... | |
virtual size_t | gotoParent () |
goto parent node (one level up) More... | |
virtual size_t | gotoChild () |
goto first child node (one level down) More... | |
virtual size_t | iterate (const OFBool searchIntoSub=OFTrue) |
iterate over all nodes (starting from current position!) More... | |
size_t | gotoNode (const size_t searchID) |
set cursor to specified node. More... | |
size_t | gotoNode (const OFString &position, const char separator='.') |
set cursor to specified node. More... | |
size_t | gotoNode (const DSRTreeNodeAnnotation &annotation) |
set cursor to specified node. More... | |
size_t | gotoNode (const DSRDocumentTreeNode &nodeValue) |
set cursor to specified node. More... | |
size_t | getNodeID () const |
get current node ID. More... | |
size_t | getLevel () const |
get current level. More... | |
DSRPositionCounter & | getPositionCounter () |
get reference to internal position counter. More... | |
const OFString & | getPosition (OFString &position, const char separator='.') const |
get position string of the current node. More... | |
Protected Member Functions | |
void | swap (DSRDocumentTree &tree) |
fast, non-throwing swap function. More... | |
virtual OFCondition | print (STD_NAMESPACE ostream &stream, const size_t flags, const DSRPositionCounter *posCounter) |
print current SR document tree to specified output stream. More... | |
![]() | |
DSRDocumentSubTree (DSRDocumentTreeNode *rootNode) | |
special constructor that receives a pointer to the root node. More... | |
DSRDocumentSubTree (const DSRDocumentTreeNodeCursor &startCursor, size_t stopAfterNodeID) | |
special copy constructor that clones a particular subtree only More... | |
void | swap (DSRDocumentSubTree &tree) |
fast, non-throwing swap function. More... | |
virtual DSRDocumentTreeNode * | getNode () const |
get pointer to current node. More... | |
virtual size_t | addNode (DSRDocumentTreeNode *node, const E_AddMode addMode=AM_afterCurrent) |
add new node to the current one. More... | |
virtual size_t | replaceNode (DSRDocumentTreeNode *node) |
replace current node by the given one. More... | |
virtual DSRDocumentTreeNode * | extractNode () |
extract current node from tree. More... | |
virtual DSRDocumentTreeNode * | getAndRemoveRootNode () |
get pointer to root node and "forget" the internal reference to this node. More... | |
virtual size_t | removeNode () |
remove current node from tree. More... | |
virtual OFCondition | includeTemplate (const DSRSharedSubTemplate &subTemplate, const E_AddMode addMode=AM_belowCurrent, const E_RelationshipType defaultRelType=RT_unknown) |
include specified sub-template, i.e. add a new DSRIncludedTemplateTreeNode, which references this template, to the current content item. More... | |
virtual OFCondition | expandIncludedTemplates (DSRDocumentSubTree *tree) const |
expand all "included template" content items in a given (sub)tree. More... | |
template<typename T_Cursor > | |
OFCondition | checkByReferenceRelationships (const size_t mode=0, const size_t flags=0) |
check the by-reference relationships (if any) for validity. More... | |
virtual void | resetReferenceTargetFlag () |
reset flag for all content items whether they are target of a by-reference relationship. More... | |
virtual void | updateTreeForOutput () |
update the tree for subsequent output, e.g. for being printed or added to an SR document. More... | |
virtual OFCondition | checkSubTreeConstraints (const DSRDocumentSubTree *tree, const DSRIODConstraintChecker *checker) const |
check whether the given subtree complies with the constraints of the given checker More... | |
virtual OFBool | validByReferenceRelationship (const OFString &sourcePosition, const OFString &targetPosition) |
check whether a by-reference relationship from a given source to a target node (specified by the position strings) is valid, i.e. is allowed according to the DICOM standard. More... | |
![]() | |
DSRTree (DSRDocumentTreeNode *rootNode) | |
special constructor that receives a pointer to the root node. More... | |
DSRTree (const DSRTreeNodeCursor< DSRDocumentTreeNode > &startCursor, size_t stopAfterNodeID) | |
special copy constructor that clones a particular subtree only More... | |
void | swap (DSRTree< DSRDocumentTreeNode > &tree) |
fast, non-throwing swap function. More... | |
virtual DSRDocumentTreeNode * | getRoot () const |
get pointer to root node More... | |
virtual void | deleteTreeFromRootNode (DSRDocumentTreeNode *rootNode) |
delete a tree given by its root node. More... | |
![]() | |
void | swap (DSRTreeNodeCursor< DSRDocumentTreeNode > &cursor) |
fast, non-throwing swap function. More... | |
void | clearNodeCursorStack () |
clear the internal node cursor stack | |
const DSRTreeNodeCursor< DSRDocumentTreeNode > & | getCursor () const |
get cursor More... | |
void | setCursor (const DSRTreeNodeCursor< DSRDocumentTreeNode > &cursor) |
set cursor to specified object More... | |
size_t | setCursor (DSRDocumentTreeNode *node) |
set cursor to specified node. More... | |
DSRDocumentTreeNode * | getChild () const |
get pointer to first child node More... | |
![]() | |
virtual | ~DSRTypes () |
destructor. More... | |
Private Attributes | |
E_DocumentType | DocumentType |
document type of the associated SR document | |
Additional Inherited Members | |
![]() | |
enum | E_DocumentType { DT_invalid, DT_unknown = DT_invalid, DT_BasicTextSR, DT_EnhancedSR, DT_ComprehensiveSR, DT_KeyObjectSelectionDocument, DT_MammographyCadSR, DT_ChestCadSR, DT_ColonCadSR, DT_ProcedureLog, DT_XRayRadiationDoseSR, DT_SpectaclePrescriptionReport, DT_MacularGridThicknessAndVolumeReport, DT_ImplantationPlanSRDocument, DT_Comprehensive3DSR, DT_RadiopharmaceuticalRadiationDoseSR, DT_ExtensibleSR, DT_AcquisitionContextSR, DT_SimplifiedAdultEchoSR, DT_PatientRadiationDoseSR, DT_PerformedImagingAgentAdministrationSR, DT_PlannedImagingAgentAdministrationSR, DT_last = DT_PlannedImagingAgentAdministrationSR } |
SR document types. More... | |
enum | E_RelationshipType { RT_invalid, RT_unknown, RT_isRoot, RT_contains, RT_hasObsContext, RT_hasAcqContext, RT_hasConceptMod, RT_hasProperties, RT_inferredFrom, RT_selectedFrom, RT_last = RT_selectedFrom } |
SR relationship types. More... | |
enum | E_ValueType { VT_invalid, VT_Text, VT_Code, VT_Num, VT_DateTime, VT_Date, VT_Time, VT_UIDRef, VT_PName, VT_SCoord, VT_SCoord3D, VT_TCoord, VT_Composite, VT_Image, VT_Waveform, VT_Container, VT_byReference, VT_includedTemplate, VT_last = VT_includedTemplate } |
SR value types. More... | |
enum | E_PresentationStateType { PT_invalid, PT_unknown = PT_invalid, PT_Grayscale, PT_Color, PT_PseudoColor, PT_Blending, PT_XAXRFGrayscale, PT_GrayscalePlanarMPR, PT_CompositingPlanarMPR, PT_AdvancedBlending, PT_VolumeRendering, PT_SegmentedVolumeRendering, PT_MultipleVolumeRendering, PT_last = PT_MultipleVolumeRendering } |
Softcopy presentation state types. More... | |
enum | E_GraphicType { GT_invalid, GT_unknown = GT_invalid, GT_Point, GT_Multipoint, GT_Polyline, GT_Circle, GT_Ellipse, GT_last = GT_Ellipse } |
SR graphic types. More... | |
enum | E_GraphicType3D { GT3_invalid, GT3_unknown = GT3_invalid, GT3_Point, GT3_Multipoint, GT3_Polyline, GT3_Polygon, GT3_Ellipse, GT3_Ellipsoid, GT3_last = GT3_Ellipsoid } |
SR graphic types (3D). More... | |
enum | E_TemporalRangeType { TRT_invalid, TRT_unknown = TRT_invalid, TRT_Point, TRT_Multipoint, TRT_Segment, TRT_Multisegment, TRT_Begin, TRT_End, TRT_last = TRT_End } |
SR temporal range types. More... | |
enum | E_ContinuityOfContent { COC_invalid, COC_Separate, COC_Continuous, COC_last = COC_Continuous } |
SR continuity of content flag. More... | |
enum | E_PreliminaryFlag { PF_invalid, PF_Preliminary, PF_Final, PF_last = PF_Final } |
SR document preliminary flag. More... | |
enum | E_CompletionFlag { CF_invalid, CF_Partial, CF_Complete, CF_last = CF_Complete } |
SR document completion flag. More... | |
enum | E_VerificationFlag { VF_invalid, VF_Unverified, VF_Verified, VF_last = VF_Verified } |
SR document verification flag. More... | |
enum | E_CharacterSet { CS_invalid, CS_unknown = CS_invalid, CS_ASCII, CS_default = CS_ASCII, CS_Latin1, CS_Latin2, CS_Latin3, CS_Latin4, CS_Cyrillic, CS_Arabic, CS_Greek, CS_Hebrew, CS_Latin5, CS_Thai, CS_Japanese, CS_Korean, CS_ChineseISO, CS_ChineseGB18030, CS_ChineseGBK, CS_UTF8, CS_last = CS_UTF8 } |
Specific character set. More... | |
enum | E_CodeValueType { CVT_auto, CVT_Short, CVT_Long, CVT_URN } |
Code value type. More... | |
enum | E_AddMode { AM_afterCurrent, AM_beforeCurrent, AM_belowCurrent, AM_belowCurrentBeforeFirstChild } |
Add node mode. More... | |
![]() | |
static DSRDocumentSubTree * | cloneSubTree (const DSRDocumentTreeNodeCursor &startCursor, const size_t stopAfterNodeID=0) |
clone a particular subtree, i.e. a fragment of a tree More... | |
![]() | |
static const char * | documentTypeToSOPClassUID (const E_DocumentType documentType) |
convert SR document type to SOP class UID More... | |
static const char * | documentTypeToModality (const E_DocumentType documentType) |
convert SR document type to modality More... | |
static const char * | documentTypeToReadableName (const E_DocumentType documentType) |
convert SR document type to readable name. More... | |
static const char * | documentTypeToDocumentTitle (const E_DocumentType documentType, OFString &documentTitle) |
convert SR document type to document title. More... | |
static OFBool | requiresEnhancedEquipmentModule (const E_DocumentType documentType) |
check whether SR document type requires Enhanced General Equipment Module More... | |
static OFBool | requiresTimezoneModule (const E_DocumentType documentType) |
check whether SR document type requires Timezone Module More... | |
static OFBool | requiresSynchronizationModule (const E_DocumentType documentType) |
check whether SR document type requires Synchronization Module More... | |
static const char * | relationshipTypeToDefinedTerm (const E_RelationshipType relationshipType) |
convert relationship type to DICOM defined term More... | |
static const char * | relationshipTypeToReadableName (const E_RelationshipType relationshipType) |
convert relationship type to readable name. More... | |
static const char * | valueTypeToDefinedTerm (const E_ValueType valueType) |
convert value type to DICOM defined term More... | |
static const char * | valueTypeToXMLTagName (const E_ValueType valueType) |
convert value type to XML tag name More... | |
static const char * | valueTypeToReadableName (const E_ValueType valueType) |
convert value type to readable name. More... | |
static const char * | presentationStateTypeToShortName (const E_PresentationStateType pstateType) |
convert presentation state type to short name. More... | |
static const char * | graphicTypeToEnumeratedValue (const E_GraphicType graphicType) |
convert graphic type to DICOM enumerated value More... | |
static const char * | graphicTypeToReadableName (const E_GraphicType graphicType) |
convert graphic type to readable name. More... | |
static const char * | graphicType3DToEnumeratedValue (const E_GraphicType3D graphicType) |
convert graphic type (3D) to DICOM enumerated value More... | |
static const char * | graphicType3DToReadableName (const E_GraphicType3D graphicType) |
convert graphic type (3D) to readable name. More... | |
static const char * | temporalRangeTypeToEnumeratedValue (const E_TemporalRangeType temporalRangeType) |
convert temporal range type to DICOM enumerated value More... | |
static const char * | temporalRangeTypeToReadableName (const E_TemporalRangeType temporalRangeType) |
convert temporal range type to readable name. More... | |
static const char * | continuityOfContentToEnumeratedValue (const E_ContinuityOfContent continuityOfContent) |
convert continuity of content flag to DICOM enumerated value More... | |
static const char * | preliminaryFlagToEnumeratedValue (const E_PreliminaryFlag preliminaryFlag) |
convert preliminary flag to DICOM enumerated value More... | |
static const char * | completionFlagToEnumeratedValue (const E_CompletionFlag completionFlag) |
convert completion flag to DICOM enumerated value More... | |
static const char * | verificationFlagToEnumeratedValue (const E_VerificationFlag verificationFlag) |
convert verification flag to DICOM enumerated value More... | |
static const char * | characterSetToDefinedTerm (const E_CharacterSet characterSet) |
convert character set to DICOM defined term More... | |
static const char * | characterSetToHTMLName (const E_CharacterSet characterSet) |
convert character set to HTML name. More... | |
static const char * | characterSetToXMLName (const E_CharacterSet characterSet) |
convert character set to XML name. More... | |
static E_DocumentType | sopClassUIDToDocumentType (const OFString &sopClassUID) |
convert SOP class UID to SR document type More... | |
static E_RelationshipType | definedTermToRelationshipType (const OFString &definedTerm) |
convert DICOM defined term to relationship type More... | |
static E_ValueType | definedTermToValueType (const OFString &definedTerm) |
convert DICOM defined term to value type More... | |
static E_PresentationStateType | sopClassUIDToPresentationStateType (const OFString &sopClassUID) |
convert SOP class UID to presentation state type More... | |
static E_ValueType | xmlTagNameToValueType (const OFString &xmlTagName) |
convert XML tag name to value type More... | |
static E_GraphicType | enumeratedValueToGraphicType (const OFString &enumeratedValue) |
convert DICOM enumerated value to graphic type More... | |
static E_GraphicType3D | enumeratedValueToGraphicType3D (const OFString &enumeratedValue) |
convert DICOM enumerated value to graphic type (3D) More... | |
static E_TemporalRangeType | enumeratedValueToTemporalRangeType (const OFString &enumeratedValue) |
convert DICOM enumerated value to temporal range type More... | |
static E_ContinuityOfContent | enumeratedValueToContinuityOfContent (const OFString &enumeratedValue) |
convert DICOM enumerated value to continuity of content flag More... | |
static E_PreliminaryFlag | enumeratedValueToPreliminaryFlag (const OFString &enumeratedValue) |
convert DICOM enumerated value to preliminary flag More... | |
static E_CompletionFlag | enumeratedValueToCompletionFlag (const OFString &enumeratedValue) |
convert DICOM enumerated value to completion flag More... | |
static E_VerificationFlag | enumeratedValueToVerificationFlag (const OFString &enumeratedValue) |
convert DICOM enumerated value to verification flag More... | |
static E_CharacterSet | definedTermToCharacterSet (const OFString &definedTerm) |
convert DICOM defined term to character set. More... | |
static OFBool | isDocumentTypeSupported (const E_DocumentType documentType) |
check whether specified SR document type is supported by this library More... | |
static const OFString & | currentDate (OFString &dateString) |
get current date in DICOM 'DA' format. More... | |
static const OFString & | currentTime (OFString &timeString) |
get current time in DICOM 'TM' format. More... | |
static const OFString & | currentDateTime (OFString &dateTimeString) |
get current date and time in DICOM 'DT' format. More... | |
static const OFString & | localTimezone (OFString &timezoneString) |
get local timezone in DICOM format. More... | |
static const OFString & | dicomToReadableDate (const OFString &dicomDate, OFString &readableDate) |
convert DICOM date string to readable format. More... | |
static const OFString & | dicomToReadableTime (const OFString &dicomTime, OFString &readableTime) |
convert DICOM time string to readable format. More... | |
static const OFString & | dicomToReadableDateTime (const OFString &dicomDateTime, OFString &readableDateTime) |
convert DICOM date time string to readable format. More... | |
static const OFString & | dicomToReadablePersonName (const OFString &dicomPersonName, OFString &readablePersonName) |
convert DICOM person name to readable format. More... | |
static const OFString & | dicomToXMLPersonName (const OFString &dicomPersonName, OFString &xmlPersonName, const OFBool writeEmptyValue=OFFalse) |
convert DICOM person name to XML format. More... | |
static const char * | numberToString (const size_t number, char *stringValue) |
convert unsigned integer number to character string More... | |
static size_t | stringToNumber (const char *stringValue) |
convert string to unsigned integer number More... | |
static const OFString & | convertToPrintString (const OFString &sourceString, OFString &printString) |
convert character string to print string. More... | |
static const OFString & | convertToHTMLString (const OFString &sourceString, OFString &markupString, const size_t flags=0, const OFBool newlineAllowed=OFFalse) |
convert character string to HTML mnenonic string. More... | |
static const OFString & | convertToXMLString (const OFString &sourceString, OFString &markupString) |
convert character string to XML mnenonic string. More... | |
static OFBool | checkForValidReference (const OFString &stringValue) |
check string for valid reference (as used for by-reference relationships). More... | |
static DSRIODConstraintChecker * | createIODConstraintChecker (const E_DocumentType documentType) |
create specified SR IOD content relationship constraint checker object. More... | |
static DSRDocumentTreeNode * | createDocumentTreeNode (const E_RelationshipType relationshipType, const E_ValueType valueType) |
create specified document tree node. More... | |
static OFCondition | addElementToDataset (OFCondition &result, DcmItem &dataset, DcmElement *delem, const OFString &vm, const OFString &type, const char *moduleName=NULL) |
add given element to the dataset. More... | |
static void | removeAttributeFromSequence (DcmSequenceOfItems &sequence, const DcmTagKey &tagKey) |
remove given attribute from the sequence. More... | |
static OFCondition | getElementFromDataset (DcmItem &dataset, DcmElement &delem) |
get element from dataset More... | |
static const char * | getStringValueFromElement (const DcmElement &delem) |
get string value from element More... | |
static const OFString & | getStringValueFromElement (const DcmElement &delem, OFString &stringValue) |
get string value from element. More... | |
static OFCondition | getStringValueFromElement (const DcmElement &delem, OFString &stringValue, const signed long pos) |
get string value from element More... | |
static const OFString & | getPrintStringFromElement (const DcmElement &delem, OFString &stringValue) |
get string value from element and convert to "print" format. More... | |
static const OFString & | getMarkupStringFromElement (const DcmElement &delem, OFString &stringValue, const OFBool convertNonASCII=OFFalse) |
get string value from element and convert to HTML/XML. More... | |
static OFCondition | getStringValueFromDataset (DcmItem &dataset, const DcmTagKey &tagKey, OFString &stringValue, const signed long pos=0) |
get string value from dataset More... | |
static OFCondition | putStringValueToDataset (DcmItem &dataset, const DcmTag &tag, const OFString &stringValue, const OFBool allowEmpty=OFTrue) |
put string value to dataset More... | |
static OFBool | checkElementValue (DcmElement *delem, const DcmTagKey &tagKey, const OFString &vm, const OFString &type, const OFCondition &searchCond=EC_Normal, const char *moduleName=NULL, const OFBool acceptViolation=OFFalse) |
check element value for correct value multiplicity and type. More... | |
static OFBool | checkElementValue (DcmElement &delem, const OFString &vm, const OFString &type, const OFCondition &searchCond=EC_Normal, const char *moduleName=NULL, const OFBool acceptViolation=OFFalse) |
check element value for correct value multiplicity and type. More... | |
static OFCondition | getAndCheckElementFromDataset (DcmItem &dataset, DcmElement &delem, const OFString &vm, const OFString &type, const char *moduleName=NULL, const OFBool acceptViolation=OFFalse) |
get element from dataset and check it for correct value multiplicity and type. More... | |
static OFCondition | getAndCheckStringValueFromDataset (DcmItem &dataset, const DcmTagKey &tagKey, OFString &stringValue, const OFString &vm, const OFString &type, const char *moduleName=NULL, const OFBool acceptViolation=OFFalse) |
get string value from dataset and check it for correct value multiplicity and type. More... | |
static void | printInvalidContentItemMessage (const char *action, const DSRDocumentTreeNode *node, const char *location=NULL) |
print the warning message that the current content item is invalid/incomplete. More... | |
static void | printContentItemErrorMessage (const char *action, const OFCondition &result, const DSRDocumentTreeNode *node, const char *location=NULL) |
print an error message for the current content item. More... | |
static void | printUnknownValueWarningMessage (const char *valueName, const char *readValue=NULL, const char *action="Reading") |
print a warning message that an unknown/unsupported value has been determined More... | |
static OFBool | writeStringValueToXML (STD_NAMESPACE ostream &stream, const OFString &stringValue, const OFString &tagName, const OFBool writeEmptyValue=OFFalse) |
write string value to XML output stream. More... | |
static OFBool | writeStringFromElementToXML (STD_NAMESPACE ostream &stream, DcmElement &delem, const OFString &tagName, const OFBool writeEmptyValue=OFFalse) |
write string value from DICOM element to XML output stream. More... | |
static size_t | createHTMLAnnexEntry (STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, const OFString &referenceText, size_t &annexNumber, const size_t flags=0) |
create an HTML annex entry with hyperlinks. More... | |
static size_t | createHTMLFootnote (STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &footnoteStream, size_t &footnoteNumber, const size_t nodeID, const size_t flags=0) |
create an HTML footnote with hyperlinks More... | |
static OFCondition | appendStream (STD_NAMESPACE ostream &mainStream, OFOStringStream &tempStream, const char *heading=NULL) |
append one output stream to another. More... | |
![]() | |
DSRIODConstraintChecker * | ConstraintChecker |
check relationship content constraints of the associated IOD | |
![]() | |
DSRDocumentTreeNode * | NodeCursor |
pointer to current node | |
OFStack< DSRDocumentTreeNode *> | NodeCursorStack |
stack of node pointers. Used to store the cursor position of upper levels. | |
DSRPositionCounter | Position |
counter for the current position within the current level and on upper levels | |
![]() | |
static const size_t | RF_readDigitalSignatures |
read digital signatures from dataset | |
static const size_t | RF_acceptUnknownRelationshipType |
accept unknown/missing relationship type | |
static const size_t | RF_acceptInvalidContentItemValue |
accept invalid content item value (e.g. violation of VR or VM definition) | |
static const size_t | RF_ignoreRelationshipConstraints |
ignore relationship constraints for this document class | |
static const size_t | RF_ignoreContentItemErrors |
do not abort on content item errors (e.g. missing value type specific attributes) | |
static const size_t | RF_skipInvalidContentItems |
do not abort when detecting an invalid content item, skip invalid sub-tree instead | |
static const size_t | RF_showCurrentlyProcessedItem |
show the currently processed content item (e.g. "1.2.3") | |
static const size_t | HF_neverExpandChildrenInline |
external: never expand child nodes inline | |
static const size_t | HF_alwaysExpandChildrenInline |
external: always expand child nodes inline | |
static const size_t | HF_renderInlineCodes |
external: render codes even if they appear inline | |
static const size_t | HF_useCodeDetailsTooltip |
external: render code details as a tooltip (not with HTML 3.2) | |
static const size_t | HF_renderConceptNameCodes |
external: render concept name codes (default: code meaning only) | |
static const size_t | HF_renderNumericUnitCodes |
external: render the code of the numeric measurement unit | |
static const size_t | HF_useCodeMeaningAsUnit |
external: use code meaning for the numeric measurement unit (default: code value) | |
static const size_t | HF_renderPatientTitle |
external: use patient information as document title (default: document type) | |
static const size_t | HF_renderNoDocumentHeader |
external: render no general document information (header) | |
static const size_t | HF_renderDcmtkFootnote |
external: render dcmtk/dcmsr comment at the end of the document | |
static const size_t | HF_renderFullData |
external: render the full data of all content items | |
static const size_t | HF_renderSectionTitlesInline |
external: render section titles inline (default: separate paragraph) | |
static const size_t | HF_copyStyleSheetContent |
external: copy Cascading Style Sheet (CSS) content to HTML file | |
static const size_t | HF_HTML32Compatibility |
external: output compatible to HTML version 3.2 (default: 4.01) | |
static const size_t | HF_XHTML11Compatibility |
external: output compatible to XHTML version 1.1 (default: HTML 4.01) | |
static const size_t | HF_addDocumentTypeReference |
external: add explicit reference to HTML document type (DTD) | |
static const size_t | HF_omitGeneratorMetaElement |
external: omit generator meta element referring to the DCMTK | |
static const size_t | HF_renderItemsSeparately |
internal: render items separately (for container with SEPARATE flag) | |
static const size_t | HF_renderItemInline |
internal: expand items inline when they are short and have no child nodes | |
static const size_t | HF_currentlyInsideAnnex |
internal: content item is rendered fully inside the annex | |
static const size_t | HF_createFootnoteReferences |
internal: create footnote references | |
static const size_t | HF_convertNonASCIICharacters |
internal: convert non-ASCII characters (> #127) to &#nnn; | |
static const size_t | HF_renderAllCodes |
shortcut: render all codes | |
static const size_t | HF_internalUseOnly |
shortcut: filter all flags that are only used internally | |
static const size_t | XF_writeEmptyTags |
write: write all tags even if their value is empty | |
static const size_t | XF_writeTemplateIdentification |
write: write template identification information (TID and mapping resource) | |
static const size_t | XF_alwaysWriteItemIdentifier |
write: always write item identifier "id", not only when item is referenced | |
static const size_t | XF_codeComponentsAsAttribute |
write: encode code value, coding scheme designator and coding scheme version as attribute instead of element text | |
static const size_t | XF_relationshipTypeAsAttribute |
write: encode relationship type as attribute instead of element text | |
static const size_t | XF_valueTypeAsAttribute |
write: encode value type as attribute instead of element text | |
static const size_t | XF_templateIdentifierAsAttribute |
write: encode template identifier as attribute instead of element text | |
static const size_t | XF_useDcmsrNamespace |
write: add DCMSR namespace declaration to the XML output | |
static const size_t | XF_addSchemaReference |
write: add Schema reference to XML document | |
static const size_t | XF_validateSchema |
read: validate content of XML document against Schema | |
static const size_t | XF_templateElementEnclosesItems |
read/write: template identification element encloses content items | |
static const size_t | XF_addCommentsForIncludedTemplate |
write: add comments with details at beginning/end of included template (might be useful for debugging purposes) | |
static const size_t | XF_acceptEmptyStudySeriesInstanceUID |
read: accept empty Study/Series/SOP Instance UID attribute values (must be filled later) | |
static const size_t | XF_encodeEverythingAsAttribute |
shortcut: combines all XF_xxxAsAttribute write flags (see above) | |
static const size_t | PF_printItemPosition |
print item position ("1.2.3") instead of line indentation | |
static const size_t | PF_shortenLongItemValues |
shorten long item value (e.g. long texts) | |
static const size_t | PF_printSOPInstanceUID |
print SOP instance UID of referenced objects | |
static const size_t | PF_printConceptNameCodes |
print coding scheme designator/version and code value of concept names | |
static const size_t | PF_printNoDocumentHeader |
print no general document information (header) | |
static const size_t | PF_printTemplateIdentification |
print template identification (TID and mapping resource) | |
static const size_t | PF_useANSIEscapeCodes |
use ANSI escape codes for output | |
static const size_t | PF_printLongSOPClassName |
print long SOP class name of referenced objects (default: short name for images) | |
static const size_t | PF_printSOPClassUID |
print SOP class UID of referenced objects (instead of the name) | |
static const size_t | PF_printInvalidCodes |
print code triple for invalid codes (instead of the text "invalid code") | |
static const size_t | PF_printNodeID |
print node ID at the beginning of each line (might be useful for debugging purposes) | |
static const size_t | PF_indicateEnhancedEncodingMode |
indicate with a "*" that the "enhanced encoding mode" is used for codes | |
static const size_t | PF_printAnnotation |
print annotation of a content item (optional, e.g. user-defined information) | |
static const size_t | PF_hideIncludedTemplateNodes |
do not print internal "included template" nodes (position counter is still increased) | |
static const size_t | PF_dontCountIncludedTemplateNodes |
do not count internal "included template" nodes (only with PF_hideIncludedTemplateNodes) | |
static const size_t | PF_printEmptyCodes |
print text "empty code" for empty codes (instead of "invalid code") | |
static const size_t | PF_printAllCodes |
shortcut: print all codes (combines all PF_printXxxCodes flags, see above) | |
static const size_t | CM_updatePositionString |
update the position string using the node ID | |
static const size_t | CM_updateNodeID |
update the node ID using the position string | |
static const size_t | CM_resetReferenceTargetFlag |
reset the reference target flag for all nodes | |
static const size_t | CB_maskPrintFlags |
bit mask (filter) for valid print flags (see PF_xxx) | |
static const size_t | CB_maskReadFlags |
bit mask (filter) for valid read flags (see RF_xxx) | |
Class managing the SR document tree.
This tree structure consists of content items (nodes) that are related to each other. It is called "SR Document Content Tree" in the DICOM standard. There is always a single node at the root, which has the value type CONTAINER. Depending on the document type, certain restrictions apply on which value and relationship types are allowed. The rules are specified and checked by a so-called IOD constraint checker.
DSRDocumentTree::DSRDocumentTree | ( | const E_DocumentType | documentType | ) |
constructor
documentType | document type of the associated document |
DSRDocumentTree::DSRDocumentTree | ( | const DSRDocumentTree & | tree | ) |
copy constructor.
Please note that the internal cursor is not copied but reset, i.e. set to the root node.
tree | tree to be copied |
|
virtual |
check whether specified content item can be added to the current one.
This method can be used to decide which type of content items can be added prior to really doing so. If the tree is currently empty, only a CONTAINER with the internal relationship type DSRTypes::RT_isRoot is allowed (as the new root node). Always returns true if no constraint checker is available but 'relationshipType' and 'valueType' have valid values.
relationshipType | relationship type of node to be checked with regard to the current one |
valueType | value type of node to be checked |
addMode | flag specifying at which position the new node would be added (e.g. after or below the current node) |
Reimplemented from DSRDocumentSubTree.
|
virtual |
check whether specified subtree can be inserted at the current position, i.e. added to the current content item.
If this tree is currently empty, only a CONTAINER with the internal relationship type DSRTypes::RT_isRoot is allowed as the new root node (of the given subtree). In all other cases, the method DSRDocumentSubTree::canInsertSubTree() is called.
tree | pointer to new subtree to be inserted (should not be empty) |
addMode | flag specifying at which position the new subtree would be added (e.g. after or below the current node) |
defaultRelType | default relationship type between the top-level nodes of the given subtree and the current node. This relationship type is used if the one of a top-level node is "unknown". |
Reimplemented from DSRDocumentSubTree.
|
virtual |
change document type.
First, it is checked whether the specified 'documentType' is supported at all. If so, the currently stored document tree is either deleted (see 'deleteTree' parameter) or it is checked whether the tree also complies with the relationship content constraints of the new SR IOD. Otherwise the current document remains in force. Please note that the 'documentType' is not compared with the type of the currently stored document tree, i.e. the above described process is always performed, even if the document type does not change.
documentType | new document type to be set (should not be DSRTypes::DT_invalid) |
deleteTree | delete the currently stored document tree if OFTrue. Otherwise, it is checked whether the tree can be preserved. |
|
virtual |
check whether the document tree complies with the constraints of the given checker.
This method also checks whether the currently stored document tree is either empty or valid, and whether the template identification of the root node (if any) is as expected. However, the latter only results in a warning message to the logger.
checker | pointer to relationship content constraints checker to be used |
|
virtual |
clear internal member variables.
The document type is not changed (e.g. set to DSRTypes::DT_invalid).
Reimplemented from DSRDocumentSubTree.
Reimplemented in TID1500_MeasurementReport, and DSRRootTemplate.
|
virtual |
clone this tree.
Internally, the copy constructor is used, so the corresponding comments apply.
Reimplemented from DSRDocumentSubTree.
Reimplemented in DSRRootTemplate.
|
inline |
get document type
|
virtual |
check whether the current internal state is valid.
The SR document tree is valid if the document type is supported, the tree is not empty, the root item is a container and has the internal relationship type DSRTypes::RT_isRoot. Also see DSRDocumentSubTree::isValidDocumentTree().
Reimplemented from DSRDocumentSubTree.
Reimplemented in TID1500_MeasurementReport, and DSRRootTemplate.
DSRDocumentTree& DSRDocumentTree::operator= | ( | DSRDocumentTree | tree | ) |
assignment operator.
Please note that internally the copy constructor is used, so the same comments apply.
tree | tree to be copied |
|
virtual |
print current SR document tree to specified output stream
stream | output stream |
flags | optional flag used to customize the output (see DSRTypes::PF_xxx) |
|
protectedvirtual |
print current SR document tree to specified output stream.
This method is only needed to avoid compiler warnings regarding an "overloaded virtual function" hiding DSRDocumentSubTree::print() from the base class, which has different parameters than the public print() method of this class.
stream | output stream |
flags | flag used to customize the output (see DSRTypes::PF_xxx) |
posCounter | pointer to position counter that should be used to initialize the counter for line indentation or numbering of nested content items |
Reimplemented from DSRDocumentSubTree.
|
virtual |
read SR document tree from DICOM dataset.
Please note that the current document tree is also deleted if the reading fails. If logging is enabled, the reason for any error might be obtained from the error/warning output.
dataset | reference to DICOM dataset where the tree should be read from |
documentType | document type of the SR document from which the tree is read |
flags | flag used to customize the reading process (see DSRTypes::RF_xxx) |
Reimplemented in DSRRootTemplate.
|
virtual |
read XML document tree
doc | document containing the XML file content |
cursor | cursor pointing to the starting node |
flags | flag used to customize the reading process (see DSRTypes::XF_xxx) |
Reimplemented in DSRRootTemplate.
void DSRDocumentTree::removeSignatures | ( | ) |
remove digital signatures from the document tree.
This method clears the MACParametersSequence and the DigitalSignaturesSequence for all content items which have been filled during reading.
|
virtual |
render current SR document tree in HTML/XHTML format.
Please note that included (non-expanded) sub-templates are not supported.
docStream | output stream to which the main HTML/XHTML document is written |
annexStream | output stream to which the HTML/XHTML document annex is written |
flags | optional flag used to customize the output (see DSRTypes::HF_xxx) |
|
protected |
fast, non-throwing swap function.
The time complexity of this function is constant.
tree | tree to swap with |
void DSRDocumentTree::unmarkAllContentItems | ( | ) |
unmark all content items in the document tree.
Use method DSRDocumentTreeNode::setMark() to mark and unmark a single content item. Pointers to the DICOM dataset/item of marked content items are added to the optional stack when calling the DSRDocument::write() method. This mechanism can e.g. be used to digitally sign particular content items.
|
virtual |
write current SR document tree to DICOM dataset.
Please note that included (non-expanded) sub-templates are not supported.
dataset | reference to DICOM dataset where the current tree should be written to. The 'dataset' is not cleared before writing to it! |
markedItems | optional stack where pointers to all 'marked' content items (DICOM datasets/items) are added to during the write process. Can be used to digitally sign parts of the document tree. |