DCMTK  Version 3.6.6
OFFIS DICOM Toolkit
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Private Attributes | Friends | List of all members
DSRDocumentTreeNode Class Referenceabstract

Base class for content items. More...

+ Inheritance diagram for DSRDocumentTreeNode:

Public Member Functions

 DSRDocumentTreeNode (const E_RelationshipType relationshipType, const E_ValueType valueType)
 constructor. More...
 
 DSRDocumentTreeNode (const DSRDocumentTreeNode &node)
 copy constructor. More...
 
virtual ~DSRDocumentTreeNode ()
 destructor
 
virtual OFBool operator== (const DSRDocumentTreeNode &node) const
 comparison operator "equal". More...
 
virtual OFBool operator!= (const DSRDocumentTreeNode &node) const
 comparison operator "not equal". More...
 
virtual DSRDocumentTreeNodeclone () const =0
 clone this tree node (abstract). More...
 
virtual void clear ()
 clear all member variables. More...
 
virtual OFBool isValid () const
 check whether the content item is valid. More...
 
virtual OFBool hasValidValue () const
 check whether the value of the content item is valid. More...
 
virtual OFBool isShort (const size_t flags) const
 check whether the content is short. More...
 
virtual OFBool hasTemplateIdentification () const
 check whether template identification is set More...
 
virtual OFCondition print (STD_NAMESPACE ostream &stream, const size_t flags) const
 print content item. More...
 
virtual OFCondition printExtended (STD_NAMESPACE ostream &stream, const size_t flags) const
 print extended information on the content item. More...
 
virtual OFCondition read (DcmItem &dataset, const DSRIODConstraintChecker *constraintChecker, const size_t flags)
 read content item from dataset. More...
 
virtual OFCondition write (DcmItem &dataset, DcmStack *markedItems=NULL)
 write content item to dataset. More...
 
virtual OFCondition readXML (const DSRXMLDocument &doc, DSRXMLCursor cursor, const E_DocumentType documentType, const size_t flags)
 read general XML document tree node data More...
 
virtual OFCondition writeXML (STD_NAMESPACE ostream &stream, const size_t flags) const
 write content item in XML format More...
 
virtual OFCondition renderHTML (STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, const size_t flags) const
 render content item in HTML/XHTML format. More...
 
OFBool isSigned ()
 check whether content item is digitally signed. More...
 
OFBool isMarked () const
 check whether content item is marked. More...
 
void setMark (const OFBool flag)
 mark/unmark the current content item. More...
 
OFBool isReferenceTarget () const
 check whether the current content item is target of a by-reference relationship More...
 
void setReferenceTarget (const OFBool isTarget=OFTrue)
 specify whether the current content item is target of a by-reference relationship More...
 
OFBool hasChildNodes () const
 check whether the current content item has any children More...
 
OFBool hasSiblingNodes () const
 check whether the current content item has any siblings More...
 
size_t getNodeID () const
 get ID of the current tree node More...
 
E_RelationshipType getRelationshipType () const
 get relationship type of the current content item More...
 
virtual OFCondition setRelationshipType (const E_RelationshipType relationshipType)
 set relationship type of the current content item (if previously unknown). More...
 
E_ValueType getValueType () const
 get value type of the current content item More...
 
const DSRCodedEntryValuegetConceptName () const
 get reference to the concept name More...
 
virtual OFCondition getConceptName (DSRCodedEntryValue &conceptName) const
 get copy of the concept name. More...
 
virtual OFCondition setConceptName (const DSRCodedEntryValue &conceptName, const OFBool check=OFTrue)
 set the concept name. More...
 
const OFStringgetObservationDateTime () const
 get observation date/time. More...
 
virtual OFCondition setObservationDateTime (const OFString &observationDateTime, const OFBool check=OFTrue)
 set observation date/time. More...
 
virtual OFCondition setObservationDateTime (const DcmElement &delem, const unsigned long pos=0, const OFBool check=OFTrue)
 set observation date/time from element. More...
 
virtual OFCondition setObservationDateTime (DcmItem &dataset, const DcmTagKey &tagKey, const unsigned long pos=0, const OFBool check=OFTrue)
 set observation date/time from dataset. More...
 
const OFStringgetObservationUID () const
 get observation unique identifier. More...
 
virtual OFCondition setObservationUID (const OFString &observationUID, const OFBool check=OFTrue)
 set observation unique identifier. More...
 
virtual OFBool compareTemplateIdentification (const OFString &templateIdentifier, const OFString &mappingResource, const OFString &mappingResourceUID="") const
 compare template identification with given values More...
 
virtual OFCondition getTemplateIdentification (OFString &templateIdentifier, OFString &mappingResource) const
 get template identifier and mapping resource. More...
 
virtual OFCondition getTemplateIdentification (OFString &templateIdentifier, OFString &mappingResource, OFString &mappingResourceUID) const
 get template identifier, mapping resource and optional mapping resource UID. More...
 
virtual OFCondition setTemplateIdentification (const OFString &templateIdentifier, const OFString &mappingResource, const OFString &mappingResourceUID="", const OFBool check=OFTrue)
 set template identifier and mapping resource. More...
 
void removeSignatures ()
 remove digital signatures from content item. More...
 
- Public Member Functions inherited from DSRTreeNode
 DSRTreeNode (const DSRTreeNodeAnnotation &annotation=DSRTreeNodeAnnotation())
 (default) constructor More...
 
virtual ~DSRTreeNode ()
 destructor
 
DSRTreeNodegetPrev () const
 get pointer to previous tree node More...
 
DSRTreeNodegetNext () const
 get pointer to next tree node More...
 
DSRTreeNodegetDown () const
 get pointer to first child node More...
 
size_t getIdent () const
 get unique identifier of this node More...
 
OFBool hasAnnotation () const
 check whether this node has a (non-empty) annotation More...
 
void clearAnnotation ()
 clear annotation of this node
 
const DSRTreeNodeAnnotationgetAnnotation () const
 get annotation of this node (optional) More...
 
void setAnnotation (const DSRTreeNodeAnnotation &annotation)
 set annotation of this node (optional) More...
 

Protected Member Functions

DSRCodedEntryValuegetConceptNamePtr ()
 get pointer to the concept name More...
 
DSRDocumentTreeNodegetPrev () const
 get pointer to previous tree node More...
 
DSRDocumentTreeNodegetNext () const
 get pointer to next tree node More...
 
DSRDocumentTreeNodegetDown () const
 get pointer to first child node More...
 
size_t getIdent () const
 get unique identifier of this node More...
 
OFCondition createAndAppendNewNode (DSRDocumentTreeNode *&previousNode, const E_RelationshipType relationshipType, const E_ValueType valueType, const DSRIODConstraintChecker *constraintChecker=NULL)
 create a new node and append it to the current one More...
 
virtual OFCondition readContentItem (DcmItem &dataset, const size_t flags)
 read content item (value) from dataset. More...
 
virtual OFCondition writeContentItem (DcmItem &dataset) const
 write content item (value) to dataset. More...
 
virtual OFCondition readXMLContentItem (const DSRXMLDocument &doc, DSRXMLCursor cursor, const size_t flags)
 read content item specific XML data. More...
 
virtual OFCondition renderHTMLContentItem (STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, const size_t flags) const
 render content item (value) in HTML/XHTML format. More...
 
void writeXMLItemStart (STD_NAMESPACE ostream &stream, const size_t flags, const OFBool closingBracket=OFTrue) const
 write common item start (XML tag) More...
 
void writeXMLItemEnd (STD_NAMESPACE ostream &stream, const size_t flags) const
 write common item start (XML tag) More...
 
OFCondition readSRDocumentContentModule (DcmItem &dataset, const DSRIODConstraintChecker *constraintChecker, const size_t flags)
 read SR document content module More...
 
OFCondition writeSRDocumentContentModule (DcmItem &dataset, DcmStack *markedItems)
 write SR document content module More...
 
OFCondition readDocumentRelationshipMacro (DcmItem &dataset, const DSRIODConstraintChecker *constraintChecker, const OFString &posString, const size_t flags)
 read document relationship macro More...
 
OFCondition writeDocumentRelationshipMacro (DcmItem &dataset, DcmStack *markedItems)
 write document relationship macro More...
 
OFCondition readDocumentContentMacro (DcmItem &dataset, const OFString &posString, const size_t flags)
 read document content macro More...
 
OFCondition writeDocumentContentMacro (DcmItem &dataset) const
 write document content macro More...
 
OFCondition readContentSequence (DcmItem &dataset, const DSRIODConstraintChecker *constraintChecker, const OFString &posString, const size_t flags)
 read content sequence More...
 
OFCondition writeContentSequence (DcmItem &dataset, DcmStack *markedItems) const
 write content sequence More...
 
OFCondition renderHTMLConceptName (STD_NAMESPACE ostream &docStream, const size_t flags) const
 render concept name in HTML/XHTML format. More...
 
OFCondition renderHTMLChildNodes (STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, const size_t flags) const
 render child nodes in HTML/XHTML format More...
 
- Protected Member Functions inherited from DSRTypes
virtual ~DSRTypes ()
 destructor. More...
 

Static Protected Member Functions

static const OFStringgetRelationshipText (const E_RelationshipType relationshipType, OFString &relationshipText, const size_t flags)
 convert relationship type into a text used for HTML rendering More...
 
static OFBool checkTemplateIdentification (const OFString &templateIdentifier, const OFString &mappingResource, const OFString &mappingResourceUID)
 check the specified template identification values for validity. More...
 
- Static Protected Member Functions inherited from DSRTreeNode
static size_t getIdentCounter ()
 get current value of global node counter More...
 
- Static Protected Member Functions inherited from DSRTypes
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 a given SR document type requires the Enhanced General Equipment Module More...
 
static OFBool requiresTimezoneModule (const E_DocumentType documentType)
 check whether a given SR document type requires the Timezone Module More...
 
static OFBool requiresSynchronizationModule (const E_DocumentType documentType)
 check whether a given SR document type requires the Synchronization Module More...
 
static OFBool usesSRDocumentSeriesModule (const E_DocumentType documentType)
 check whether a given SR document type uses the SR Document Series Module (instead of the Key Object Document Series Module) More...
 
static OFBool usesKeyObjectDocumentSeriesModule (const E_DocumentType documentType)
 check whether a given SR document type uses the Key Object Document Series Module (instead of the SR Document Series Module) More...
 
static OFBool usesSRDocumentGeneralModule (const E_DocumentType documentType)
 check whether a given SR document type uses the SR Document General Module (instead of the Key Object Document Module) More...
 
static OFBool usesKeyObjectDocumentModule (const E_DocumentType documentType)
 check whether a given SR document type uses the Key Object Document Module (instead of the SR Document General 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 OFStringcurrentDate (OFString &dateString)
 get current date in DICOM 'DA' format. More...
 
static const OFStringcurrentTime (OFString &timeString)
 get current time in DICOM 'TM' format. More...
 
static const OFStringcurrentDateTime (OFString &dateTimeString)
 get current date and time in DICOM 'DT' format. More...
 
static const OFStringlocalTimezone (OFString &timezoneString)
 get local timezone in DICOM format. More...
 
static const OFStringdicomToReadableDate (const OFString &dicomDate, OFString &readableDate)
 convert DICOM date string to readable format. More...
 
static const OFStringdicomToReadableTime (const OFString &dicomTime, OFString &readableTime)
 convert DICOM time string to readable format. More...
 
static const OFStringdicomToReadableDateTime (const OFString &dicomDateTime, OFString &readableDateTime)
 convert DICOM date time string to readable format. More...
 
static const OFStringdicomToReadablePersonName (const OFString &dicomPersonName, OFString &readablePersonName)
 convert DICOM person name to readable format. More...
 
static const OFStringdicomToXMLPersonName (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 OFStringconvertToPrintString (const OFString &sourceString, OFString &printString)
 convert character string to print string. More...
 
static const OFStringconvertToHTMLString (const OFString &sourceString, OFString &markupString, const size_t flags=0, const OFBool newlineAllowed=OFFalse)
 convert character string to HTML mnenonic string. More...
 
static const OFStringconvertToXMLString (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 DSRIODConstraintCheckercreateIODConstraintChecker (const E_DocumentType documentType)
 create specified SR IOD content relationship constraint checker object. More...
 
static DSRDocumentTreeNodecreateDocumentTreeNode (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 OFStringgetStringValueFromElement (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 OFStringgetPrintStringFromElement (const DcmElement &delem, OFString &stringValue)
 get string value from element and convert to "print" format. More...
 
static const OFStringgetMarkupStringFromElement (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...
 

Private Attributes

OFBool MarkFlag
 flag indicating whether the content item is marked (e.g. used for digital signatures). More...
 
OFBool ReferenceTarget
 flag indicating whether the content item is referenced (by-reference relationship). More...
 
E_RelationshipType RelationshipType
 relationship type to the parent node (associated DICOM VR=CS, mandatory)
 
const E_ValueType ValueType
 value type (associated DICOM VR=CS, mandatory)
 
DSRCodedEntryValue ConceptName
 concept name (VR=SQ, conditional)
 
OFString ObservationDateTime
 observation date/time (VR=DT, conditional)
 
OFString ObservationUID
 observation unique identifier (VR=UI, optional)
 
OFString TemplateIdentifier
 template identifier (VR=CS, mandatory in ContentTemplateSequence)
 
OFString MappingResource
 mapping resource (VR=CS, mandatory in ContentTemplateSequence)
 
OFString MappingResourceUID
 mapping resource UID (VR=UI, optional in ContentTemplateSequence)
 
DcmSequenceOfItems MACParameters
 MAC parameters sequence (VR=SQ, optional)
 
DcmSequenceOfItems DigitalSignatures
 digital signatures sequence (VR=SQ, optional)
 

Friends

class DSRTree< DSRDocumentTreeNode >
 
class DSRTreeNodeCursor< DSRDocumentTreeNode >
 
class DSRDocumentTreeNodeCursor
 
class DSRIncludedTemplateNodeCursor
 
class DSRContentItem
 

Additional Inherited Members

- Protected Types inherited from DSRTypes
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_RenditionSelectionDocument, DT_last = DT_RenditionSelectionDocument
}
 SR document types (DICOM IOD) 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...
 
- Protected Attributes inherited from DSRTreeNode
DSRTreeNodePrev
 pointer to previous tree node (if any)
 
DSRTreeNodeNext
 pointer to next tree node (if any)
 
DSRTreeNodeDown
 pointer to first child node (if any)
 
DSRTreeNodeAnnotation Annotation
 annotation of the tree node (optional)
 
- Static Protected Attributes inherited from DSRTypes
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)
 

Detailed Description

Base class for content items.

Constructor & Destructor Documentation

◆ DSRDocumentTreeNode() [1/2]

DSRDocumentTreeNode::DSRDocumentTreeNode ( const E_RelationshipType  relationshipType,
const E_ValueType  valueType 
)

constructor.

The 'valueType' can never be changed after the tree node has been created (therefore, the corresponding member variable is declared "const").

Parameters
relationshipTypetype of relationship to the parent tree node. Should not be DSRTypes::RT_invalid, and DSRTypes::RT_isRoot only for the root node.
valueTypevalue type of the associated content item. Should not be DSRTypes::VT_invalid.

◆ DSRDocumentTreeNode() [2/2]

DSRDocumentTreeNode::DSRDocumentTreeNode ( const DSRDocumentTreeNode node)

copy constructor.

Please note that the member variables of the base class DSRTreeNode are not copied because the new tree node is not (yet) part of a document tree. Furthermore, the following member variables of this class are also not copied but initialized with their respective default values:

  • ReferenceTarget
  • MACParameters
  • DigitalSignatures
Parameters
nodetree node to be copied

Member Function Documentation

◆ checkTemplateIdentification()

static OFBool DSRDocumentTreeNode::checkTemplateIdentification ( const OFString templateIdentifier,
const OFString mappingResource,
const OFString mappingResourceUID 
)
staticprotected

check the specified template identification values for validity.

The identification is valid if the first two values are either present (non-empty) or absent (empty). In the latter case, the third (optional) parameter also has to be empty.

Parameters
templateIdentifieridentifier of the template
mappingResourcemapping resource that defines the template
mappingResourceUIDuniquely identifies the mapping resource (optional)
Returns
OFTrue if template identification is valid, OFFalse otherwise

◆ clear()

virtual void DSRDocumentTreeNode::clear ( )
virtual

◆ clone()

virtual DSRDocumentTreeNode* DSRDocumentTreeNode::clone ( ) const
pure virtual

clone this tree node (abstract).

Internally, the copy constructor is used, so the corresponding comments apply.

Returns
copy of this tree node

Reimplemented from DSRTreeNode.

Implemented in DSRByReferenceTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTextTreeNode, DSRTimeTreeNode, DSRUIDRefTreeNode, DSRPNameTreeNode, DSRContainerTreeNode, DSRIncludedTemplateTreeNode, DSRCodeTreeNode, DSRCompositeTreeNode, DSRImageTreeNode, DSRNumTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, and DSRWaveformTreeNode.

◆ compareTemplateIdentification()

virtual OFBool DSRDocumentTreeNode::compareTemplateIdentification ( const OFString templateIdentifier,
const OFString mappingResource,
const OFString mappingResourceUID = "" 
) const
virtual

compare template identification with given values

Parameters
templateIdentifiertemplate identifier to compare with
mappingResourcemapping resource that defines the template
mappingResourceUIDuniquely identifies the mapping resource (optional). Not used for comparison if the value is empty.
Returns
OFTrue if template identification is identical, OFFalse otherwise

◆ createAndAppendNewNode()

OFCondition DSRDocumentTreeNode::createAndAppendNewNode ( DSRDocumentTreeNode *&  previousNode,
const E_RelationshipType  relationshipType,
const E_ValueType  valueType,
const DSRIODConstraintChecker constraintChecker = NULL 
)
protected

create a new node and append it to the current one

Parameters
previousNodereference to the pointer to the previous node (sibling). Used to decide whether the new node is a child (value=NULL) or a sibling (!=NULL). NB: The value might be modified inside this method (to store a reference to the previous node).
relationshipTyperelationship type of the new node with regard to the current one
valueTypevalue type of node to be added
constraintCheckerchecks relationship content constraints of the associated IOD
Returns
status, EC_Normal if successful, an error code otherwise

◆ getConceptName() [1/2]

const DSRCodedEntryValue& DSRDocumentTreeNode::getConceptName ( ) const
inline

get reference to the concept name

Returns
reference to the concept name (code, might be empty/invalid)

◆ getConceptName() [2/2]

virtual OFCondition DSRDocumentTreeNode::getConceptName ( DSRCodedEntryValue conceptName) const
virtual

get copy of the concept name.

Code describing the concept represented by this content item. Also conveys the value of document title and section headings in documents.

Parameters
conceptNamereference to a variable where the code should be stored
Returns
status, EC_Normal if successful, an error code otherwise

◆ getConceptNamePtr()

DSRCodedEntryValue* DSRDocumentTreeNode::getConceptNamePtr ( )
inlineprotected

get pointer to the concept name

Returns
pointer to the concept name (never NULL)

◆ getDown()

DSRDocumentTreeNode* DSRDocumentTreeNode::getDown ( ) const
inlineprotected

get pointer to first child node

Returns
pointer to first child node (might be NULL)

◆ getIdent()

size_t DSRDocumentTreeNode::getIdent ( ) const
inlineprotected

get unique identifier of this node

Returns
unique identifier of this node

References DSRTreeNode::getIdent().

◆ getNext()

DSRDocumentTreeNode* DSRDocumentTreeNode::getNext ( ) const
inlineprotected

get pointer to next tree node

Returns
pointer to next tree node (might be NULL)

◆ getNodeID()

size_t DSRDocumentTreeNode::getNodeID ( ) const
inline

get ID of the current tree node

Returns
ID of the current tree node (should never be 0)

References DSRTreeNode::getIdent().

◆ getObservationDateTime()

const OFString& DSRDocumentTreeNode::getObservationDateTime ( ) const
inline

get observation date/time.

This is the date and time on which this content item was completed. Might be empty if the date and time do not differ from the content date and time, see DSRDocument.

Returns
observation date/time of current content item (might be empty/invalid)

◆ getObservationUID()

const OFString& DSRDocumentTreeNode::getObservationUID ( ) const
inline

get observation unique identifier.

The UID represents the semantic content of the observation; an encoding of the same observation with the same context into another representation may use the same UID.

Returns
observation unique identifier of current content item (might be empty/invalid)

◆ getPrev()

DSRDocumentTreeNode* DSRDocumentTreeNode::getPrev ( ) const
inlineprotected

get pointer to previous tree node

Returns
pointer to previous tree node (might be NULL)

◆ getRelationshipText()

static const OFString& DSRDocumentTreeNode::getRelationshipText ( const E_RelationshipType  relationshipType,
OFString relationshipText,
const size_t  flags 
)
staticprotected

convert relationship type into a text used for HTML rendering

Parameters
relationshipTypetype of relationship to be converted
relationshipTextreference to string variable where the resulting text should be stored. Value is cleared if 'relationshipType' is invalid or not supported.
flagsflag used to customize the output (see DSRTypes::HF_xxx)
Returns
reference to the 'relationshipText' string (might be empty)

◆ getRelationshipType()

E_RelationshipType DSRDocumentTreeNode::getRelationshipType ( ) const
inline

get relationship type of the current content item

Returns
relationship type of the current content item (might be DSRTypes::RT_invalid)

◆ getTemplateIdentification() [1/2]

virtual OFCondition DSRDocumentTreeNode::getTemplateIdentification ( OFString templateIdentifier,
OFString mappingResource 
) const
virtual

get template identifier and mapping resource.

This value pair identifies the template that was used to create this content item (and its children). According to the DICOM standard, it is "required if a template was used to define the content of this Item, and the template consists of a single CONTAINER with nested content, and it is the outermost invocation of a set of nested templates that start with the same CONTAINER." The identification is valid if both values are either present (non-empty) or absent (empty).

Parameters
templateIdentifieridentifier of the template (might be empty)
mappingResourcemapping resource that defines the template (might be empty)
Returns
status, EC_Normal if successful, an error code otherwise

◆ getTemplateIdentification() [2/2]

virtual OFCondition DSRDocumentTreeNode::getTemplateIdentification ( OFString templateIdentifier,
OFString mappingResource,
OFString mappingResourceUID 
) const
virtual

get template identifier, mapping resource and optional mapping resource UID.

This value triple identifies the template that was used to create this content item (and its children). According to the DICOM standard, it is "required if a template was used to define the content of this Item, and the template consists of a single CONTAINER with nested content, and it is the outermost invocation of a set of nested templates that start with the same CONTAINER." The identification is valid if the first two values are either present (non-empty) or all three are absent (empty).

Parameters
templateIdentifieridentifier of the template (might be empty)
mappingResourcemapping resource that defines the template (might be empty)
mappingResourceUIDuniquely identifies the mapping resource (might be empty)
Returns
status, EC_Normal if successful, an error code otherwise

◆ getValueType()

E_ValueType DSRDocumentTreeNode::getValueType ( ) const
inline

get value type of the current content item

Returns
value type of the current content item (might be DSRTypes::VT_invalid)

◆ hasChildNodes()

OFBool DSRDocumentTreeNode::hasChildNodes ( ) const
inline

check whether the current content item has any children

Returns
OFTrue if there are any child nodes, OFFalse otherwise

References DSRTreeNode::getDown().

◆ hasSiblingNodes()

OFBool DSRDocumentTreeNode::hasSiblingNodes ( ) const
inline

check whether the current content item has any siblings

Returns
OFTrue if there are any sibling nodes, OFFalse otherwise

References DSRTreeNode::getNext(), and DSRTreeNode::getPrev().

◆ hasTemplateIdentification()

virtual OFBool DSRDocumentTreeNode::hasTemplateIdentification ( ) const
virtual

check whether template identification is set

Returns
OFTrue if template identification is set, OFFalse otherwise

◆ hasValidValue()

virtual OFBool DSRDocumentTreeNode::hasValidValue ( ) const
virtual

◆ isMarked()

OFBool DSRDocumentTreeNode::isMarked ( ) const
inline

check whether content item is marked.

Use method setMark() to mark and unmark the current 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.

Returns
OFTrue if content item is marked, OFFalse otherwise

◆ isReferenceTarget()

OFBool DSRDocumentTreeNode::isReferenceTarget ( ) const
inline

check whether the current content item is target of a by-reference relationship

Returns
OFTrue if the content item is target, OFFalse otherwise

◆ isShort()

virtual OFBool DSRDocumentTreeNode::isShort ( const size_t  flags) const
virtual

check whether the content is short.

This method is used to check whether the rendered output of this content item can be expanded inline or not (used for renderHTML()). This base class always returns OFTrue.

Parameters
flagsflag used to customize the output (see DSRTypes::HF_xxx)
Returns
OFTrue if the content is short, OFFalse otherwise

Reimplemented in DSRTextTreeNode, DSRIncludedTemplateTreeNode, DSRContainerTreeNode, DSRImageTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, and DSRWaveformTreeNode.

◆ isSigned()

OFBool DSRDocumentTreeNode::isSigned ( )
inline

check whether content item is digitally signed.

A content item is signed if the DigitalSignaturesSequence exists. This sequence is read from the dataset if present and the 'signature' flag for the 'read' method is turned on.

Returns
OFTrue if content item is signed, OFFalse otherwise

◆ isValid()

virtual OFBool DSRDocumentTreeNode::isValid ( ) const
virtual

check whether the content item is valid.

The content item is valid if the relationship type and the value type are both not invalid.

Returns
OFTrue if tree node is valid, OFFalse otherwise

Reimplemented in DSRByReferenceTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRPNameTreeNode, DSRTextTreeNode, DSRTimeTreeNode, DSRUIDRefTreeNode, DSRCodeTreeNode, DSRContainerTreeNode, DSRNumTreeNode, DSRIncludedTemplateTreeNode, DSRCompositeTreeNode, DSRImageTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, and DSRWaveformTreeNode.

◆ operator!=()

virtual OFBool DSRDocumentTreeNode::operator!= ( const DSRDocumentTreeNode node) const
virtual

comparison operator "not equal".

Two tree nodes are regarded as not equal if either the relationship type or the value type or the concept name are not equal. Other information is not used unless implemented in a derived class.

Parameters
nodetree node that should be compared to the current one
Returns
OFTrue if both tree nodes are not equal, OFFalse otherwise

Reimplemented in DSRByReferenceTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTextTreeNode, DSRTimeTreeNode, DSRUIDRefTreeNode, DSRPNameTreeNode, DSRContainerTreeNode, DSRIncludedTemplateTreeNode, DSRCodeTreeNode, DSRCompositeTreeNode, DSRImageTreeNode, DSRNumTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, and DSRWaveformTreeNode.

◆ operator==()

virtual OFBool DSRDocumentTreeNode::operator== ( const DSRDocumentTreeNode node) const
virtual

comparison operator "equal".

Two tree nodes are regarded as equal if the relationship type, the value type and the concept name are equal. Other information is not used unless implemented in a derived class.

Parameters
nodetree node that should be compared to the current one
Returns
OFTrue if both tree nodes are equal, OFFalse otherwise

Reimplemented in DSRByReferenceTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTextTreeNode, DSRTimeTreeNode, DSRUIDRefTreeNode, DSRPNameTreeNode, DSRContainerTreeNode, DSRIncludedTemplateTreeNode, DSRCodeTreeNode, DSRCompositeTreeNode, DSRImageTreeNode, DSRNumTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, and DSRWaveformTreeNode.

◆ print()

virtual OFCondition DSRDocumentTreeNode::print ( STD_NAMESPACE ostream &  stream,
const size_t  flags 
) const
virtual

print content item.

The output of a content item depends on its value type. This general method prints only those parts which all derived classes (= value types) do have in common, i.e. the type of relationship, the value type and the (optional) concept name. A typical output looks like this: has concept mod CODE: (,,"Concept")

Parameters
streamoutput stream to which the content item should be printed
flagsflag used to customize the output (see DSRTypes::PF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, DSRTextTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRPNameTreeNode, DSRTimeTreeNode, DSRUIDRefTreeNode, DSRImageTreeNode, DSRIncludedTemplateTreeNode, DSRContainerTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, DSRWaveformTreeNode, DSRCodeTreeNode, DSRNumTreeNode, and DSRCompositeTreeNode.

◆ printExtended()

virtual OFCondition DSRDocumentTreeNode::printExtended ( STD_NAMESPACE ostream &  stream,
const size_t  flags 
) const
virtual

print extended information on the content item.

The following details are printed (if present and output is enabled): observation date/time (in curly brackets), annotation text (in quotation marks) and template identification (after a hash mark). This method is intended to be called after the general print() method, e.g. like it is done by DSRDocumentSubTree::print().

Parameters
streamoutput stream to which the extended information should be printed
flagsflag used to customize the output (see DSRTypes::PF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ read()

virtual OFCondition DSRDocumentTreeNode::read ( DcmItem dataset,
const DSRIODConstraintChecker constraintChecker,
const size_t  flags 
)
virtual

read content item from dataset.

A number of readXXX() methods are called (see "protected" part) in order to retrieve all possibly nested content items from the dataset.

Parameters
datasetDICOM dataset from which the content item should be read
constraintCheckerchecks relationship content constraints of the associated IOD
flagsflag used to customize the reading process (see DSRTypes::RF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRIncludedTemplateTreeNode.

◆ readContentItem()

virtual OFCondition DSRDocumentTreeNode::readContentItem ( DcmItem dataset,
const size_t  flags 
)
protectedvirtual

read content item (value) from dataset.

This method does nothing for this base class, but derived classes overwrite it to read the contents according to their value type.

Parameters
datasetDICOM dataset from which the content item should be read
flagsflag used to customize the reading process (see DSRTypes::RF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, DSRContainerTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTimeTreeNode, DSRPNameTreeNode, DSRTextTreeNode, DSRUIDRefTreeNode, DSRImageTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, DSRWaveformTreeNode, DSRCodeTreeNode, DSRNumTreeNode, and DSRCompositeTreeNode.

◆ readContentSequence()

OFCondition DSRDocumentTreeNode::readContentSequence ( DcmItem dataset,
const DSRIODConstraintChecker constraintChecker,
const OFString posString,
const size_t  flags 
)
protected

read content sequence

Parameters
datasetDICOM dataset from which the data should be read
constraintCheckerchecks relationship content constraints of the associated IOD
posStringlocation of the current content item (e.g. "1.2.3")
flagsflag used to customize the reading process (see DSRTypes::RF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ readDocumentContentMacro()

OFCondition DSRDocumentTreeNode::readDocumentContentMacro ( DcmItem dataset,
const OFString posString,
const size_t  flags 
)
protected

read document content macro

Parameters
datasetDICOM dataset from which the data should be read
posStringlocation of the current content item (e.g. "1.2.3")
flagsflag used to customize the reading process (see DSRTypes::RF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ readDocumentRelationshipMacro()

OFCondition DSRDocumentTreeNode::readDocumentRelationshipMacro ( DcmItem dataset,
const DSRIODConstraintChecker constraintChecker,
const OFString posString,
const size_t  flags 
)
protected

read document relationship macro

Parameters
datasetDICOM dataset from which the data should be read
constraintCheckerchecks relationship content constraints of the associated IOD
posStringlocation of the current content item (e.g. "1.2.3")
flagsflag used to customize the reading process (see DSRTypes::RF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ readSRDocumentContentModule()

OFCondition DSRDocumentTreeNode::readSRDocumentContentModule ( DcmItem dataset,
const DSRIODConstraintChecker constraintChecker,
const size_t  flags 
)
protected

read SR document content module

Parameters
datasetDICOM dataset from which the data should be read
constraintCheckerchecks relationship content constraints of the associated IOD
flagsflag used to customize the reading process (see DSRTypes::RF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ readXML()

virtual OFCondition DSRDocumentTreeNode::readXML ( const DSRXMLDocument doc,
DSRXMLCursor  cursor,
const E_DocumentType  documentType,
const size_t  flags 
)
virtual

read general XML document tree node data

Parameters
docdocument containing the XML file content
cursorcursor pointing to the starting node
documentTypetype of the document to be read (used for debug output only)
flagsflag used to customize the reading process (see DSRTypes::XF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRIncludedTemplateTreeNode.

◆ readXMLContentItem()

virtual OFCondition DSRDocumentTreeNode::readXMLContentItem ( const DSRXMLDocument doc,
DSRXMLCursor  cursor,
const size_t  flags 
)
protectedvirtual

read content item specific XML data.

This method does nothing for this base class, but derived classes overwrite it to read the contents according to their value type.

Parameters
docdocument containing the XML file content
cursorcursor pointing to the starting node
flagsflag used to customize the output (see DSRTypes::XF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, DSRContainerTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTimeTreeNode, DSRPNameTreeNode, DSRTextTreeNode, DSRUIDRefTreeNode, DSRImageTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, DSRWaveformTreeNode, DSRCodeTreeNode, DSRNumTreeNode, and DSRCompositeTreeNode.

◆ removeSignatures()

void DSRDocumentTreeNode::removeSignatures ( )

remove digital signatures from content item.

This method clears the MACParametersSequence and the DigitalSignaturesSequence for the current content item which have been filled during reading.

◆ renderHTML()

virtual OFCondition DSRDocumentTreeNode::renderHTML ( STD_NAMESPACE ostream &  docStream,
STD_NAMESPACE ostream &  annexStream,
const size_t  nestingLevel,
size_t &  annexNumber,
const size_t  flags 
) const
virtual

render content item in HTML/XHTML format.

After rendering the current content item all child nodes (if any) are also rendered (see renderHTMLChildNodes() for details).

Parameters
docStreamoutput stream to which the main HTML/XHTML document is written
annexStreamoutput stream to which the HTML/XHTML document annex is written
nestingLevelcurrent nesting level. Used to render section headings.
annexNumberreference to the variable where the current annex number is stored. Value is increased automatically by 1 after a new entry has been added.
flagsflag used to customize the output (see DSRTypes::HF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRIncludedTemplateTreeNode, and DSRContainerTreeNode.

◆ renderHTMLChildNodes()

OFCondition DSRDocumentTreeNode::renderHTMLChildNodes ( STD_NAMESPACE ostream &  docStream,
STD_NAMESPACE ostream &  annexStream,
const size_t  nestingLevel,
size_t &  annexNumber,
const size_t  flags 
) const
protected

render child nodes in HTML/XHTML format

Parameters
docStreamoutput stream to which the main HTML/XHTML document is written
annexStreamoutput stream to which the HTML/XHTML document annex is written
nestingLevelcurrent nesting level. Used to render section headings.
annexNumberreference to the variable where the current annex number is stored. Value is increased automatically by 1 after a new entry has been added.
flagsflag used to customize the output (see DSRTypes::HF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ renderHTMLConceptName()

OFCondition DSRDocumentTreeNode::renderHTMLConceptName ( STD_NAMESPACE ostream &  docStream,
const size_t  flags 
) const
protected

render concept name in HTML/XHTML format.

If the optional observation date/time field is non-empty, it is also rendered.

Parameters
docStreamoutput stream to which the main HTML/XHTML document is written
flagsflag used to customize the output (see DSRTypes::HF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

◆ renderHTMLContentItem()

virtual OFCondition DSRDocumentTreeNode::renderHTMLContentItem ( STD_NAMESPACE ostream &  docStream,
STD_NAMESPACE ostream &  annexStream,
const size_t  nestingLevel,
size_t &  annexNumber,
const size_t  flags 
) const
protectedvirtual

render content item (value) in HTML/XHTML format.

This method does nothing for this base class, but derived classes overwrite it to render the contents according to their value type.

Parameters
docStreamoutput stream to which the main HTML/XHTML document is written
annexStreamoutput stream to which the HTML/XHTML document annex is written
nestingLevelcurrent nesting level. Used to render section headings.
annexNumberreference to the variable where the current annex number is stored. Value is increased automatically by 1 after a new entry has been added.
flagsflag used to customize the output (see DSRTypes::HF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, DSRContainerTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTimeTreeNode, DSRPNameTreeNode, DSRTextTreeNode, DSRUIDRefTreeNode, DSRImageTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, DSRWaveformTreeNode, DSRCodeTreeNode, DSRNumTreeNode, and DSRCompositeTreeNode.

◆ setConceptName()

virtual OFCondition DSRDocumentTreeNode::setConceptName ( const DSRCodedEntryValue conceptName,
const OFBool  check = OFTrue 
)
virtual

set the concept name.

Code describing the concept represented by this content item. Also conveys the value of document title and section headings in documents. If the new code is invalid the current one is not replaced. An empty code can be used to clear the current concept name.

Parameters
conceptNamecode to be set as the new concept name (checked before set)
checkcheck 'conceptName' for validity if enabled. See DSRCodedEntryValue::checkCode() for details.
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, and DSRIncludedTemplateTreeNode.

◆ setMark()

void DSRDocumentTreeNode::setMark ( const OFBool  flag)
inline

mark/unmark the current content item.

See explanation for method isMarked() for details.

Parameters
flagmark item if OFTrue, unmark otherwise

◆ setObservationDateTime() [1/3]

virtual OFCondition DSRDocumentTreeNode::setObservationDateTime ( const DcmElement delem,
const unsigned long  pos = 0,
const OFBool  check = OFTrue 
)
virtual

set observation date/time from element.

This is the date and time on which this content item was completed. Might be empty if the date and time do not differ from the content date and time, see DSRDocument.

Parameters
delemDICOM element from which the date/time value should be retrieved
posindex of the value in case of multi-valued elements (0..vm-1)
checkcheck date/time value for conformance with VR (DT) and VM (1) if enabled
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, and DSRIncludedTemplateTreeNode.

◆ setObservationDateTime() [2/3]

virtual OFCondition DSRDocumentTreeNode::setObservationDateTime ( const OFString observationDateTime,
const OFBool  check = OFTrue 
)
virtual

set observation date/time.

This is the date and time on which this content item was completed. Might be empty if the date and time do not differ from the content date and time, see DSRDocument.

Parameters
observationDateTimevalue to be set (might be an empty string)
checkcheck 'observationDateTime' for conformance with VR (DT) and VM (1) if enabled
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, and DSRIncludedTemplateTreeNode.

◆ setObservationDateTime() [3/3]

virtual OFCondition DSRDocumentTreeNode::setObservationDateTime ( DcmItem dataset,
const DcmTagKey tagKey,
const unsigned long  pos = 0,
const OFBool  check = OFTrue 
)
virtual

set observation date/time from dataset.

This is the date and time on which this content item was completed. Might be empty if the date and time do not differ from the content date and time, see DSRDocument.

Parameters
datasetDICOM dataset from which the date/time value should be retrieved
tagKeyDICOM tag specifying the attribute from which the value should be retrieved. The search is limited to the top-level of the dataset.
posindex of the value in case of multi-valued elements (0..vm-1)
checkcheck date/time value for conformance with VR (DT) and VM (1) if enabled
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, and DSRIncludedTemplateTreeNode.

◆ setObservationUID()

virtual OFCondition DSRDocumentTreeNode::setObservationUID ( const OFString observationUID,
const OFBool  check = OFTrue 
)
virtual

set observation unique identifier.

The UID represents the semantic content of the observation; an encoding of the same observation with the same context into another representation may use the same UID.

Parameters
observationUIDvalue to be set (might be an empty string)
checkcheck 'observationUID' for conformance with VR (UI) and VM (1) if enabled
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, and DSRIncludedTemplateTreeNode.

◆ setReferenceTarget()

void DSRDocumentTreeNode::setReferenceTarget ( const OFBool  isTarget = OFTrue)
inline

specify whether the current content item is target of a by-reference relationship

Parameters
isTargetOFTrue if the content item is target (default), OFFalse otherwise

◆ setRelationshipType()

virtual OFCondition DSRDocumentTreeNode::setRelationshipType ( const E_RelationshipType  relationshipType)
virtual

set relationship type of the current content item (if previously unknown).

Please note that changing the relationship type (which was originally passed to the constructor of this class) only works if the current value is DSRTypes::RT_unknown. This is needed for inserting document subtrees where the top-level nodes might have an "unknown" relationship to the parent node (see DSRDocumentSubTree::insertSubTree()).

Parameters
relationshipTypetype of relationship to the parent tree node. Should not be DSRTypes::RT_invalid or DSRTypes::RT_unknown. Be careful with DSRTypes::RT_isRoot, use it for root nodes only.
Returns
status, EC_Normal if successful, an error code otherwise

◆ setTemplateIdentification()

virtual OFCondition DSRDocumentTreeNode::setTemplateIdentification ( const OFString templateIdentifier,
const OFString mappingResource,
const OFString mappingResourceUID = "",
const OFBool  check = OFTrue 
)
virtual

set template identifier and mapping resource.

The identification is valid if the first two values are either present (non-empty) or all three values are absent (empty). See getTemplateIdentification() for details. A warning message is reported to the logger if a template identification is specified for a content item that is not a CONTAINER.

Parameters
templateIdentifieridentifier of the template to be set
mappingResourcemapping resource that defines the template
mappingResourceUIDuniquely identifies the mapping resource (optional)
checkcheck 'templateIdentifier', 'mappingResource' and 'mappingResourceUID' for conformance with VR (CS,UI) and VM (1) if enabled
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, and DSRIncludedTemplateTreeNode.

◆ write()

virtual OFCondition DSRDocumentTreeNode::write ( DcmItem dataset,
DcmStack markedItems = NULL 
)
virtual

write content item to dataset.

A number of writeXXX() methods are called (see "protected" part) in order to write all possibly nested content items to the dataset.

Parameters
datasetDICOM dataset to which the content item should be written
markedItemsoptional 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.
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRIncludedTemplateTreeNode.

◆ writeContentItem()

virtual OFCondition DSRDocumentTreeNode::writeContentItem ( DcmItem dataset) const
protectedvirtual

write content item (value) to dataset.

This method does nothing for this base class, but derived classes overwrite it to write the contents according to their value type.

Parameters
datasetDICOM dataset to which the content item should be written
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, DSRContainerTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRTimeTreeNode, DSRPNameTreeNode, DSRTextTreeNode, DSRUIDRefTreeNode, DSRImageTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, DSRWaveformTreeNode, DSRCodeTreeNode, DSRNumTreeNode, and DSRCompositeTreeNode.

◆ writeContentSequence()

OFCondition DSRDocumentTreeNode::writeContentSequence ( DcmItem dataset,
DcmStack markedItems 
) const
protected

write content sequence

Parameters
datasetDICOM dataset to which the data should be written
markedItemsoptional stack where pointers to all 'marked' content items (DICOM datasets/items) are added to during the write process.
Returns
status, EC_Normal if successful, an error code otherwise

◆ writeDocumentContentMacro()

OFCondition DSRDocumentTreeNode::writeDocumentContentMacro ( DcmItem dataset) const
protected

write document content macro

Parameters
datasetDICOM dataset to which the data should be written
Returns
status, EC_Normal if successful, an error code otherwise

◆ writeDocumentRelationshipMacro()

OFCondition DSRDocumentTreeNode::writeDocumentRelationshipMacro ( DcmItem dataset,
DcmStack markedItems 
)
protected

write document relationship macro

Parameters
datasetDICOM dataset to which the data should be written
markedItemsoptional stack where pointers to all 'marked' content items (DICOM datasets/items) are added to during the write process.
Returns
status, EC_Normal if successful, an error code otherwise

◆ writeSRDocumentContentModule()

OFCondition DSRDocumentTreeNode::writeSRDocumentContentModule ( DcmItem dataset,
DcmStack markedItems 
)
protected

write SR document content module

Parameters
datasetDICOM dataset to which the data should be written
markedItemsoptional stack where pointers to all 'marked' content items (DICOM datasets/items) are added to during the write process.
Returns
status, EC_Normal if successful, an error code otherwise

◆ writeXML()

virtual OFCondition DSRDocumentTreeNode::writeXML ( STD_NAMESPACE ostream &  stream,
const size_t  flags 
) const
virtual

write content item in XML format

Parameters
streamoutput stream to which the XML document is written
flagsflag used to customize the output (see DSRTypes::XF_xxx)
Returns
status, EC_Normal if successful, an error code otherwise

Reimplemented in DSRByReferenceTreeNode, DSRTextTreeNode, DSRDateTreeNode, DSRDateTimeTreeNode, DSRPNameTreeNode, DSRTimeTreeNode, DSRUIDRefTreeNode, DSRImageTreeNode, DSRIncludedTemplateTreeNode, DSRContainerTreeNode, DSRSCoord3DTreeNode, DSRSCoordTreeNode, DSRTCoordTreeNode, DSRWaveformTreeNode, DSRCodeTreeNode, DSRNumTreeNode, and DSRCompositeTreeNode.

◆ writeXMLItemEnd()

void DSRDocumentTreeNode::writeXMLItemEnd ( STD_NAMESPACE ostream &  stream,
const size_t  flags 
) const
protected

write common item start (XML tag)

Parameters
streamoutput stream to which the XML document is written
flagsflag used to customize the output (see DSRTypes::XF_xxx)

◆ writeXMLItemStart()

void DSRDocumentTreeNode::writeXMLItemStart ( STD_NAMESPACE ostream &  stream,
const size_t  flags,
const OFBool  closingBracket = OFTrue 
) const
protected

write common item start (XML tag)

Parameters
streamoutput stream to which the XML document is written
flagsflag used to customize the output (see DSRTypes::XF_xxx)
closingBracketwrite closing bracket of XML start tag if OFTrue, otherwise the bracket has to be closed in the calling method

Member Data Documentation

◆ MarkFlag

OFBool DSRDocumentTreeNode::MarkFlag
private

flag indicating whether the content item is marked (e.g. used for digital signatures).

The default value is OFFalse.

◆ ReferenceTarget

OFBool DSRDocumentTreeNode::ReferenceTarget
private

flag indicating whether the content item is referenced (by-reference relationship).

The default value is OFFalse.


The documentation for this class was generated from the following file:


Generated on Thu Jan 14 2021 for DCMTK Version 3.6.6 by Doxygen 1.8.18