DYT/Tool/3rdParty_x64/include/dcmtk/dcmsr/dsrtpltn.h

249 lines
9.6 KiB
C
Raw Normal View History

2024-11-22 15:19:31 +00:00
/*
*
* Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation are maintained by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmsr
*
* Author: Joerg Riesmeier
*
* Purpose:
* classes: DSRIncludedTemplateTreeNode
*
*/
#ifndef DSRTPLTN_H
#define DSRTPLTN_H
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#include "dcmtk/dcmsr/dsrdoctn.h"
#include "dcmtk/dcmsr/dsrstpl.h"
/*---------------------*
* class declaration *
*---------------------*/
/** Class for managing included templates (internal)
*/
class DCMTK_DCMSR_EXPORT DSRIncludedTemplateTreeNode
: public DSRDocumentTreeNode
{
public:
/** constructor.
* Also sets the template identification if available from 'referencedTemplate'.
** @param referencedTemplate shared pointer to template that should be managed
* @param defaultRelType default relationship type of the included template
*/
DSRIncludedTemplateTreeNode(const DSRSharedSubTemplate &referencedTemplate,
const E_RelationshipType defaultRelType);
/** copy constructor.
* Please note that the comments on the copy constructor of the base class
* DSRDocumentTreeNode apply.
** @param node tree node to be copied
*/
DSRIncludedTemplateTreeNode(const DSRIncludedTemplateTreeNode &node);
/** destructor
*/
virtual ~DSRIncludedTemplateTreeNode();
/** clone this tree node.
* Internally, the copy constructor is used, so the corresponding comments apply.
** @return copy of this tree node
*/
virtual DSRIncludedTemplateTreeNode *clone() const;
/** clear all member variables.
* Please note that the content item becomes invalid afterwards.
*/
virtual void clear();
/** check whether the content item is valid.
* The content item is valid if the base class is valid and the reference to the
* included template is valid.
** @return OFTrue if tree node is valid, OFFalse otherwise
*/
virtual OFBool isValid() const;
/** check whether the value of the content item, i.e.\ the reference to the included
* template is valid. See getValue().
** @return OFTrue if the value is valid, OFFalse otherwise
*/
virtual OFBool hasValidValue() const;
/** 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()).
** @param flags flag used to customize the output (see DSRTypes::HF_xxx)
** @return OFTrue if the content is short, OFFalse otherwise
*/
virtual OFBool isShort(const size_t flags) const;
/** print content item.
* A typical output looks like this: # INCLUDE TID 1600 (DCMR)
** @param stream output stream to which the content item should be printed
* @param flags flag used to customize the output (see DSRTypes::PF_xxx)
** @return status, EC_Normal if successful, an error code otherwise
*/
virtual OFCondition print(STD_NAMESPACE ostream &stream,
const size_t flags) const;
/** write content of included template in XML format
** @param stream output stream to which the XML document is written
* @param flags flag used to customize the output (see DSRTypes::XF_xxx)
** @return status, EC_Normal if successful (or included template is empty, so there
* is nothing to do), an error code otherwise
*/
virtual OFCondition writeXML(STD_NAMESPACE ostream &stream,
const size_t flags) const;
/** get reference to included template, i.e.\ the value of this content item
** @return reference to included template. The managed pointer might be NULL.
*/
inline const DSRSharedSubTemplate &getValue() const
{
return ReferencedTemplate;
}
/** set reference to included template, i.e.\ the value of this content item.
* Currently, no checks are performed on the passed 'referencedTemplate' parameter.
** @param referencedTemplate shared pointer to template that should be managed
** @return status, EC_Normal if successful, an error code otherwise
*/
virtual OFCondition setValue(const DSRSharedSubTemplate &referencedTemplate);
protected:
/** read content item from dataset
** @param dataset dummy parameter
* @param constraintChecker dummy parameter
* @param flags dummy parameter
** @return always returns SR_EC_CannotProcessIncludedTemplates
*/
virtual OFCondition read(DcmItem &dataset,
const DSRIODConstraintChecker *constraintChecker,
const size_t flags);
/** write content item to dataset
** @param dataset dummy parameter
* @param markedItems dummy parameter
** @return always returns SR_EC_CannotProcessIncludedTemplates
*/
virtual OFCondition write(DcmItem &dataset,
DcmStack *markedItems = NULL);
/** read general XML document tree node data
** @param doc dummy parameter
* @param cursor dummy parameter
* @param documentType dummy parameter
* @param flags dummy parameter
** @return always returns SR_EC_CannotProcessIncludedTemplates
*/
virtual OFCondition readXML(const DSRXMLDocument &doc,
DSRXMLCursor cursor,
const E_DocumentType documentType,
const size_t flags);
/** render content item in HTML/XHTML format
** @param docStream dummy parameter
* @param annexStream dummy parameter
* @param nestingLevel dummy parameter
* @param annexNumber dummy parameter
* @param flags dummy parameter
** @return always returns SR_EC_CannotProcessIncludedTemplates
*/
virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream,
STD_NAMESPACE ostream &annexStream,
const size_t nestingLevel,
size_t &annexNumber,
const size_t flags) const;
/** set the concept name
** @param conceptName dummy parameter
* @param check dummy parameter
** @return always returns EC_IllegalCall, since this method should not be called
*/
virtual OFCondition setConceptName(const DSRCodedEntryValue &conceptName,
const OFBool check = OFTrue);
/** set observation date/time
** @param observationDateTime dummy parameter
* @param check dummy parameter
** @return always returns EC_IllegalCall, since this method should not be called
*/
virtual OFCondition setObservationDateTime(const OFString &observationDateTime,
const OFBool check = OFTrue);
/** set observation date/time from element
** @param delem dummy parameter
* @param pos dummy parameter
* @param check dummy parameter
** @return always returns EC_IllegalCall, since this method should not be called
*/
virtual OFCondition setObservationDateTime(const DcmElement &delem,
const unsigned long pos = 0,
const OFBool check = OFTrue);
/** set observation date/time from dataset
** @param dataset dummy parameter
* @param tagKey dummy parameter
* @param pos dummy parameter
* @param check dummy parameter
** @return always returns EC_IllegalCall, since this method should not be called
*/
virtual OFCondition setObservationDateTime(DcmItem &dataset,
const DcmTagKey &tagKey,
const unsigned long pos = 0,
const OFBool check = OFTrue);
/** set observation unique identifier
** @param observationUID dummy parameter
* @param check dummy parameter
** @return always returns EC_IllegalCall, since this method should not be called
*/
virtual OFCondition setObservationUID(const OFString &observationUID,
const OFBool check = OFTrue);
/** set template identifier and mapping resource
** @param templateIdentifier dummy parameter
* @param mappingResource dummy parameter
* @param mappingResourceUID dummy parameter
* @param check dummy parameter
** @return always returns EC_IllegalCall, since this method should not be called
*/
virtual OFCondition setTemplateIdentification(const OFString &templateIdentifier,
const OFString &mappingResource,
const OFString &mappingResourceUID = "",
const OFBool check = OFTrue);
private:
/// shared pointer to included template that is managed by this class
DSRSharedSubTemplate ReferencedTemplate;
// --- declaration of default constructor and assignment operator
DSRIncludedTemplateTreeNode();
DSRIncludedTemplateTreeNode &operator=(const DSRIncludedTemplateTreeNode &);
};
#endif