dsrtypes.h

00001 /*
00002  *
00003  *  Copyright (C) 2000-2005, OFFIS
00004  *
00005  *  This software and supporting documentation were developed by
00006  *
00007  *    Kuratorium OFFIS e.V.
00008  *    Healthcare Information and Communication Systems
00009  *    Escherweg 2
00010  *    D-26121 Oldenburg, Germany
00011  *
00012  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
00013  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
00014  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
00015  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
00016  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
00017  *
00018  *  Module: dcmsr
00019  *
00020  *  Author: Joerg Riesmeier
00021  *
00022  *  Purpose:
00023  *    classes: DSRTypes
00024  *
00025  *  Last Update:      $Author: meichel $
00026  *  Update Date:      $Date: 2005/12/08 16:05:30 $
00027  *  CVS/RCS Revision: $Revision: 1.46 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 
00035 #ifndef DSRTYPES_H
00036 #define DSRTYPES_H
00037 
00038 #include "dcmtk/config/osconfig.h"   /* make sure OS specific configuration is included first */
00039 
00040 #include "dcmtk/dcmdata/dctk.h"
00041 
00042 #include "dcmtk/ofstd/ofstream.h"
00043 #include "dcmtk/ofstd/oftypes.h"
00044 #include "dcmtk/ofstd/ofcond.h"
00045 
00046 
00047 /*---------------------*
00048  *  macro definitions  *
00049  *---------------------*/
00050 
00051 // private coding scheme designator used for internal codes
00052 #define OFFIS_CODING_SCHEME_DESIGNATOR "99_OFFIS_DCMTK"
00053 // name of the private coding scheme
00054 #define OFFIS_CODING_SCHEME_NAME "OFFIS DCMTK Coding Scheme"
00055 // organization responsible for the private coding scheme
00056 #define OFFIS_RESPONSIBLE_ORGANIZATION "Kuratorium OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany"
00057 
00058 // protocol, hostname and CGI script name used for HTML hyperlinks to composite objects
00059 #define HTML_HYPERLINK_PREFIX_FOR_CGI "http://localhost/dicom.cgi"
00060 // URL of the DICOM toolkit DCMTK
00061 #define DCMTK_INTERNET_URL "http://dicom.offis.de/dcmtk"
00062 
00063 // XML namespace URI for dcmsr module
00064 #define DCMSR_XML_NAMESPACE_URI "http://dicom.offis.de/dcmsr"
00065 // XML Schema file for dcmsr module
00066 #define DCMSR_XML_XSD_FILE "dsr2xml.xsd"
00067 // XML Schema Instance URI
00068 #define XML_SCHEMA_INSTANCE_URI "http://www.w3.org/2001/XMLSchema-instance"
00069 
00070 
00071 /*------------------------*
00072  *  forward declarations  *
00073  *------------------------*/
00074 
00075 class DSRXMLCursor;
00076 class DSRXMLDocument;
00077 class DSRDocumentTreeNode;
00078 class DSRIODConstraintChecker;
00079 
00080 
00081 /*-----------------------*
00082  *  contant definitions  *
00083  *-----------------------*/
00084 
00090 
00092 extern const OFCondition SR_EC_UnknownDocumentType;
00093 
00095 extern const OFCondition SR_EC_InvalidDocument;
00096 
00098 extern const OFCondition SR_EC_InvalidDocumentTree;
00099 
00101 extern const OFCondition SR_EC_MandatoryAttributeMissing;
00102 
00104 extern const OFCondition SR_EC_InvalidValue;
00105 
00107 extern const OFCondition SR_EC_UnsupportedValue;
00108 
00110 extern const OFCondition SR_EC_UnknownValueType;
00111 
00113 extern const OFCondition SR_EC_UnknownRelationshipType;
00114 
00116 extern const OFCondition SR_EC_InvalidByValueRelationship;
00117 
00119 extern const OFCondition SR_EC_InvalidByReferenceRelationship;
00120 
00122 extern const OFCondition SR_EC_SOPInstanceNotFound;
00123 
00125 extern const OFCondition SR_EC_DifferentSOPClassesForAnInstance;
00126 
00128 extern const OFCondition SR_EC_CodingSchemeNotFound;
00129 
00131 extern const OFCondition SR_EC_CorruptedXMLStructure;
00133 
00134 
00135 /*---------------------*
00136  *  class declaration  *
00137  *---------------------*/
00138 
00144 class DSRTypes
00145 {
00146 
00147   public:
00148 
00149   // --- constant declarations ---
00150 
00156 
00158     static const size_t RF_readDigitalSignatures;
00159 
00161     static const size_t RF_ignoreRelationshipConstraints;
00162 
00164     static const size_t RF_ignoreContentItemErrors;
00165 
00167     static const size_t RF_skipInvalidContentItems;
00168 
00170     static const size_t RF_verboseDebugMode;
00171 
00173     static const size_t RF_showCurrentlyProcessedItem;
00175 
00176 
00183 
00185     static const size_t HF_neverExpandChildrenInline;
00186 
00188     static const size_t HF_renderInlineCodes;
00189 
00191     static const size_t HF_renderConceptNameCodes;
00192 
00194     static const size_t HF_renderNumericUnitCodes;
00195 
00197     static const size_t HF_useCodeMeaningAsUnit;
00198 
00200     static const size_t HF_renderPatientTitle;
00201 
00203     static const size_t HF_renderNoDocumentHeader;
00204 
00206     static const size_t HF_renderDcmtkFootnote;
00207 
00209     static const size_t HF_renderFullData;
00210 
00212     static const size_t HF_copyStyleSheetContent;
00213 
00215     static const size_t HF_version32Compatibility;
00216 
00218     static const size_t HF_addDocumentTypeReference;
00219 
00221     static const size_t HF_renderItemsSeparately;
00222 
00224     static const size_t HF_renderItemInline;
00225 
00227     static const size_t HF_currentlyInsideAnnex;
00228 
00230     static const size_t HF_createFootnoteReferences;
00231 
00233     static const size_t HF_convertNonASCIICharacters;
00234 
00236     static const size_t HF_renderAllCodes;
00237 
00239     static const size_t HF_internalUseOnly;
00241 
00242 
00248 
00250     static const size_t XF_writeEmptyTags;
00251 
00253     static const size_t XF_writeTemplateIdentification;
00254 
00256     static const size_t XF_alwaysWriteItemIdentifier;
00257 
00259     static const size_t XF_codeComponentsAsAttribute;
00260 
00262     static const size_t XF_relationshipTypeAsAttribute;
00263 
00265     static const size_t XF_valueTypeAsAttribute;
00266 
00268     static const size_t XF_templateIdentifierAsAttribute;
00269 
00271     static const size_t XF_useDcmsrNamespace;
00272 
00274     static const size_t XF_addSchemaReference;
00275 
00277     static const size_t XF_validateSchema;
00278 
00280     static const size_t XF_enableLibxmlErrorOutput;
00281 
00283     static const size_t XF_templateElementEnclosesItems;
00284 
00286     static const size_t XF_encodeEverythingAsAttribute;
00288 
00289 
00295 
00297     static const size_t PF_printItemPosition;
00298 
00300     static const size_t PF_shortenLongItemValues;
00301 
00303     static const size_t PF_printSOPInstanceUID;
00304 
00306     static const size_t PF_printConceptNameCodes;
00307 
00309     static const size_t PF_printNoDocumentHeader;
00310 
00312     static const size_t PF_printTemplateIdentification;
00313 
00315     static const size_t PF_printAllCodes;
00317 
00318 
00319   // --- type definitions ---
00320 
00323     enum E_DocumentType
00324     {
00326         DT_invalid,
00328         DT_unknown = DT_invalid,
00330         DT_BasicTextSR,
00332         DT_EnhancedSR,
00334         DT_ComprehensiveSR,
00336         DT_KeyObjectDoc,
00338         DT_MammographyCadSR,
00340         DT_ChestCadSR,
00342         DT_ProcedureLog,
00344         DT_XRayRadiationDoseSR,
00346         DT_last = DT_XRayRadiationDoseSR
00347     };
00348 
00351     enum E_RelationshipType
00352     {
00354         RT_invalid,
00356         RT_unknown = RT_invalid,
00358         RT_isRoot,
00360         RT_contains,
00362         RT_hasObsContext,
00364         RT_hasAcqContext,
00366         RT_hasConceptMod,
00368         RT_hasProperties,
00370         RT_inferredFrom,
00372         RT_selectedFrom,
00374         RT_last = RT_selectedFrom
00375     };
00376 
00379     enum E_ValueType
00380     {
00382         VT_invalid,
00384         VT_unknown = VT_invalid,
00386         VT_Text,
00388         VT_Code,
00390         VT_Num,
00392         VT_DateTime,
00394         VT_Date,
00396         VT_Time,
00398         VT_UIDRef,
00400         VT_PName,
00402         VT_SCoord,
00404         VT_TCoord,
00406         VT_Composite,
00408         VT_Image,
00410         VT_Waveform,
00412         VT_Container,
00414         VT_byReference,
00416         VT_last = VT_byReference
00417     };
00418 
00421     enum E_GraphicType
00422     {
00424         GT_invalid,
00426         GT_unknown = GT_invalid,
00428         GT_Point,
00430         GT_Multipoint,
00432         GT_Polyline,
00434         GT_Circle,
00436         GT_Ellipse,
00438         GT_last = GT_Ellipse
00439     };
00440 
00443     enum E_TemporalRangeType
00444     {
00446         TRT_invalid,
00448         TRT_unknown = TRT_invalid,
00450         TRT_Point,
00452         TRT_Multipoint,
00454         TRT_Segment,
00456         TRT_Multisegment,
00458         TRT_Begin,
00460         TRT_End,
00462         TRT_last = TRT_End
00463     };
00464 
00467     enum E_ContinuityOfContent
00468     {
00470         COC_invalid,
00472         COC_Separate,
00474         COC_Continuous,
00476         COC_last = COC_Continuous
00477     };
00478 
00481     enum E_CompletionFlag
00482     {
00484         CF_invalid,
00486         CF_Partial,
00488         CF_Complete,
00490         CF_last = CF_Complete
00491     };
00492 
00495     enum E_VerificationFlag
00496     {
00498         VF_invalid,
00500         VF_Unverified,
00502         VF_Verified,
00504         VF_last = VF_Verified
00505     };
00506 
00509     enum E_CharacterSet
00510     {
00512         CS_invalid,
00514         CS_unknown = CS_invalid,
00516         CS_ASCII,
00518         CS_Latin1,
00520         CS_Latin2,
00522         CS_Latin3,
00524         CS_Latin4,
00526         CS_Cyrillic,
00528         CS_Arabic,
00530         CS_Greek,
00532         CS_Hebrew,
00534         CS_Latin5,
00536         CS_Japanese,
00538         CS_Thai,
00539         // UTF-8: Unicode in UTF-8
00540         CS_UTF8,
00542         CS_last = CS_UTF8
00543     };
00544 
00547     enum E_AddMode
00548     {
00550         AM_afterCurrent,
00552         AM_beforeCurrent,
00554         AM_belowCurrent
00555     };
00556 
00557 
00558   // --- conversion functions ---
00559 
00564     static const char *documentTypeToSOPClassUID(const E_DocumentType documentType);
00565 
00570     static const char *documentTypeToModality(const E_DocumentType documentType);
00571 
00577     static const char *documentTypeToReadableName(const E_DocumentType documentType);
00578 
00585     static const char *documentTypeToDocumentTitle(const E_DocumentType documentType,
00586                                                    OFString &documentTitle);
00587 
00592     static const char *relationshipTypeToDefinedTerm(const E_RelationshipType relationshipType);
00593 
00599     static const char *relationshipTypeToReadableName(const E_RelationshipType relationshipType);
00600 
00605     static const char *valueTypeToDefinedTerm(const E_ValueType valueType);
00606 
00611     static const char *valueTypeToXMLTagName(const E_ValueType valueType);
00612 
00618     static const char *valueTypeToReadableName(const E_ValueType valueType);
00619 
00624     static const char *graphicTypeToEnumeratedValue(const E_GraphicType graphicType);
00625 
00631     static const char *graphicTypeToReadableName(const E_GraphicType graphicType);
00632 
00637     static const char *temporalRangeTypeToEnumeratedValue(const E_TemporalRangeType temporalRangeType);
00638 
00644     static const char *temporalRangeTypeToReadableName(const E_TemporalRangeType temporalRangeType);
00645 
00650     static const char *continuityOfContentToEnumeratedValue(const E_ContinuityOfContent continuityOfContent);
00651 
00656     static const char *completionFlagToEnumeratedValue(const E_CompletionFlag completionFlag);
00657 
00662     static const char *verificationFlagToEnumeratedValue(const E_VerificationFlag verificationFlag);
00663 
00668     static const char *characterSetToDefinedTerm(const E_CharacterSet characterSet);
00669 
00675     static const char *characterSetToHTMLName(const E_CharacterSet characterSet);
00676 
00682     static const char *characterSetToXMLName(const E_CharacterSet characterSet);
00683 
00688     static E_DocumentType sopClassUIDToDocumentType(const OFString &sopClassUID);
00689 
00694     static E_RelationshipType definedTermToRelationshipType(const OFString &definedTerm);
00695 
00700     static E_ValueType definedTermToValueType(const OFString &definedTerm);
00701 
00706     static E_ValueType xmlTagNameToValueType(const OFString &xmlTagName);
00707 
00712     static E_GraphicType enumeratedValueToGraphicType(const OFString &enumeratedValue);
00713 
00718     static E_TemporalRangeType enumeratedValueToTemporalRangeType(const OFString &enumeratedValue);
00719 
00724     static E_ContinuityOfContent enumeratedValueToContinuityOfContent(const OFString &enumeratedValue);
00725 
00730     static E_CompletionFlag enumeratedValueToCompletionFlag(const OFString &enumeratedValue);
00731 
00736     static E_VerificationFlag enumeratedValueToVerificationFlag(const OFString &enumeratedValue);
00737 
00742     static E_CharacterSet definedTermToCharacterSet(const OFString &definedTerm);
00743 
00744 
00745   // --- misc helper functions ---
00746 
00753     static OFBool isDocumentTypeSupported(const E_DocumentType documentType);
00754 
00760     static const OFString &currentDate(OFString &dateString);
00761 
00768     static const OFString &currentTime(OFString &timeString);
00769 
00778     static const OFString &currentDateTime(OFString &dateTimeString);
00779 
00786     static const OFString &dicomToReadableDate(const OFString &dicomDate,
00787                                                OFString &readableDate);
00788 
00796     static const OFString &dicomToReadableTime(const OFString &dicomTime,
00797                                                OFString &readableTime);
00798 
00806     static const OFString &dicomToReadableDateTime(const OFString &dicomDateTime,
00807                                                    OFString &readableDateTime);
00808 
00818     static const OFString &dicomToReadablePersonName(const OFString &dicomPersonName,
00819                                                      OFString &readablePersonName);
00820 
00832     static const OFString &dicomToXMLPersonName(const OFString &dicomPersonName,
00833                                                 OFString &xmlPersonName,
00834                                                 const OFBool writeEmptyValue = OFFalse);
00835 
00841     static const char *numberToString(const size_t number,
00842                                       char *stringValue);
00843 
00848     static size_t stringToNumber(const char *stringValue);
00849 
00857     static const OFString &convertToPrintString(const OFString &sourceString,
00858                                                 OFString &printString);
00859 
00877     static const OFString &convertToMarkupString(const OFString &sourceString,
00878                                                  OFString &markupString,
00879                                                  const OFBool convertNonASCII = OFFalse,
00880                                                  const OFBool newlineAllowed = OFFalse,
00881                                                  const OFBool xmlMode = OFFalse);
00882 
00891     static OFBool checkForValidUIDFormat(const OFString &stringValue);
00892 
00898     static DSRIODConstraintChecker *createIODConstraintChecker(const E_DocumentType documentType);
00899 
00907     static DSRDocumentTreeNode *createDocumentTreeNode(const E_RelationshipType relationshipType,
00908                                                        const E_ValueType valueType);
00909 
00910 
00914     static OFBool elementContainsExtendedCharacters(DcmElement &elem);
00915 
00919     static OFBool stringContainsExtendedCharacters(const OFString &s);
00920 
00921   // --- DICOM data structure access functions ---
00922 
00930     static OFCondition addElementToDataset(OFCondition &result,
00931                                            DcmItem &dataset,
00932                                            DcmElement *delem);
00933 
00939     static void removeAttributeFromSequence(DcmSequenceOfItems &sequence,
00940                                             const DcmTagKey &tagKey);
00941 
00949     static OFCondition getElementFromDataset(DcmItem &dataset,
00950                                              DcmElement &delem);
00951 
00961     static OFCondition getSequenceFromDataset(DcmItem &dataset,
00962                                               DcmSequenceOfItems &dseq);
00963 
00968     static const char *getStringValueFromElement(const DcmElement &delem);
00969 
00975     static const OFString &getStringValueFromElement(const DcmElement &delem,
00976                                                      OFString &stringValue);
00977 
00983     static const OFString &getPrintStringFromElement(const DcmElement &delem,
00984                                                      OFString &stringValue);
00985 
00992     static const OFString &getMarkupStringFromElement(const DcmElement &delem,
00993                                                       OFString &stringValue,
00994                                                       const OFBool convertNonASCII = OFFalse);
00995 
01004     static OFCondition getStringValueFromDataset(DcmItem &dataset,
01005                                                  const DcmTagKey &tagKey,
01006                                                  OFString &stringValue);
01007 
01016     static OFCondition putStringValueToDataset(DcmItem &dataset,
01017                                                const DcmTag &tag,
01018                                                const OFString &stringValue,
01019                                                const OFBool allowEmpty = OFTrue);
01020 
01033     static OFBool checkElementValue(DcmElement &delem,
01034                                     const OFString &vm,
01035                                     const OFString &type,
01036                                     OFConsole *stream = NULL,
01037                                     const OFCondition &searchCond = EC_Normal,
01038                                     const char *moduleName = NULL);
01039 
01053     static OFCondition getAndCheckElementFromDataset(DcmItem &dataset,
01054                                                      DcmElement &delem,
01055                                                      const OFString &vm,
01056                                                      const OFString &type,
01057                                                      OFConsole *stream = NULL,
01058                                                      const char *moduleName = NULL);
01059 
01075     static OFCondition getAndCheckStringValueFromDataset(DcmItem &dataset,
01076                                                          const DcmTagKey &tagKey,
01077                                                          OFString &stringValue,
01078                                                          const OFString &vm,
01079                                                          const OFString &type,
01080                                                          OFConsole *stream = NULL,
01081                                                          const char *moduleName = NULL);
01082 
01083   // --- output functions ---
01084 
01089     static void printMessage(OFConsole *stream,
01090                              const char *message);
01091 
01097     static void printWarningMessage(OFConsole *stream,
01098                                     const char *message);
01099 
01105     static void printErrorMessage(OFConsole *stream,
01106                                   const char *message);
01107 
01115     static void printInvalidContentItemMessage(OFConsole *stream,
01116                                                const char *action,
01117                                                const DSRDocumentTreeNode *node,
01118                                                const char *location = NULL);
01119 
01128     static void printContentItemErrorMessage(OFConsole *stream,
01129                                              const char *action,
01130                                              const OFCondition &result,
01131                                              const DSRDocumentTreeNode *node,
01132                                              const char *location = NULL);
01133 
01140     static void printUnknownValueWarningMessage(OFConsole *stream,
01141                                                 const char *valueName,
01142                                                 const char *readValue = NULL,
01143                                                 const char *action = "Reading");
01144 
01153     static OFBool writeStringValueToXML(ostream &stream,
01154                                         const OFString &stringValue,
01155                                         const OFString &tagName,
01156                                         const OFBool writeEmptyValue = OFFalse);
01157 
01167     static OFBool writeStringFromElementToXML(ostream &stream,
01168                                               DcmElement &delem,
01169                                               const OFString &tagName,
01170                                               const OFBool writeEmptyValue = OFFalse);
01171 
01182     static size_t createHTMLAnnexEntry(ostream &docStream,
01183                                        ostream &annexStream,
01184                                        const OFString &referenceText,
01185                                        size_t &annexNumber);
01186 
01196     static size_t createHTMLFootnote(ostream &docStream,
01197                                      ostream &footnoteStream,
01198                                      size_t &footnoteNumber,
01199                                      const size_t nodeID);
01200 
01208     static OFCondition appendStream(ostream &mainStream,
01209                                     OFOStringStream &tempStream,
01210                                     const char *heading = NULL);
01211 };
01212 
01213 
01214 #endif
01215 
01216 
01217 /*
01218  *  CVS/RCS Log:
01219  *  $Log: dsrtypes.h,v $
01220  *  Revision 1.46  2005/12/08 16:05:30  meichel
01221  *  Changed include path schema for all DCMTK header files
01222  *
01223  *  Revision 1.45  2005/11/30 12:00:24  joergr
01224  *  Added support for X-Ray Radiation Dose SR documents.
01225  *
01226  *  Revision 1.44  2004/11/29 17:11:01  joergr
01227  *  Added warning message when character set is unknown, unsupported  or cannot
01228  *  be mapped to the output format. Fixed minor formatting issues.
01229  *
01230  *  Revision 1.43  2004/11/22 16:35:38  meichel
01231  *  Added helper methods to check strings and DICOM elements for presence of
01232  *    extended (non-ASCII) characters
01233  *
01234  *  Revision 1.42  2004/09/09 14:01:30  joergr
01235  *  Added flags to control the way the template identification is encoded in
01236  *  writeXML() and expected in readXML().
01237  *
01238  *  Revision 1.41  2004/01/20 15:35:54  joergr
01239  *  Added new command line option which allows to write the item identifier "id"
01240  *  (XML attribute) even if it is not required (because the item is not referenced
01241  *  by any other item). Useful for debugging purposes.
01242  *
01243  *  Revision 1.40  2004/01/05 14:36:02  joergr
01244  *  Removed acknowledgements with e-mail addresses from CVS log.
01245  *
01246  *  Revision 1.39  2003/12/01 15:46:18  joergr
01247  *  Changed XML encoding of by-reference relationships if flag
01248  *  XF_valueTypeAsAttribute is set.
01249  *
01250  *  Revision 1.38  2003/10/30 17:51:00  joergr
01251  *  Added new command line options which allow to print/write the template
01252  *  identification of a content item.
01253  *
01254  *  Revision 1.37  2003/10/09 12:53:12  joergr
01255  *  Added support for Procedure Log.
01256  *
01257  *  Revision 1.36  2003/10/06 09:52:58  joergr
01258  *  Added new flag which allows to ignore content item errors when reading an SR
01259  *  document (e.g. missing value type specific attributes).
01260  *
01261  *  Revision 1.35  2003/09/15 14:18:54  joergr
01262  *  Introduced new class to facilitate checking of SR IOD relationship content
01263  *  constraints. Replaced old implementation distributed over numerous classes.
01264  *
01265  *  Revision 1.34  2003/09/10 13:16:13  joergr
01266  *  Replaced PrivateCodingSchemeUID by new CodingSchemeIdenticationSequence as
01267  *  required by CP 324.
01268  *
01269  *  Revision 1.33  2003/08/07 17:31:00  joergr
01270  *  Removed libxml dependency from header files. Simplifies linking (MSVC).
01271  *
01272  *  Revision 1.32  2003/08/07 13:05:26  joergr
01273  *  Added readXML functionality. Added support for Chest CAD SR.
01274  *  Added new option --add-schema-reference to command line tool dsr2xml.
01275  *  Renamed parameters/variables "string" to avoid name clash with STL class.
01276  *
01277  *  Revision 1.31  2003/04/17 18:57:38  joergr
01278  *  Replace LF and CR by 
 and 
 in XML mode instead of ¶ (para).
01279  *
01280  *  Revision 1.30  2003/04/01 14:59:13  joergr
01281  *  Added support for XML namespaces.
01282  *
01283  *  Revision 1.29  2002/08/02 12:38:32  joergr
01284  *  Enhanced debug output of dcmsr::read() routines (e.g. add position string
01285  *  of invalid content items to error messages).
01286  *
01287  *  Revision 1.28  2002/07/22 14:21:20  joergr
01288  *  Added new print flag to suppress the output of general document information.
01289  *
01290  *  Revision 1.27  2002/05/14 08:14:51  joergr
01291  *  Updated comments.
01292  *
01293  *  Revision 1.26  2002/05/07 12:49:32  joergr
01294  *  Added support for the Current Requested Procedure Evidence Sequence and the
01295  *  Pertinent Other Evidence Sequence to the dcmsr module.
01296  *
01297  *  Revision 1.25  2002/05/02 14:08:23  joergr
01298  *  Added support for standard and non-standard string streams (which one is
01299  *  supported is detected automatically via the configure mechanism).
01300  *
01301  *  Revision 1.24  2002/04/16 13:50:52  joergr
01302  *  Added configurable support for C++ ANSI standard includes (e.g. streams).
01303  *
01304  *  Revision 1.23  2002/04/11 13:02:35  joergr
01305  *  Corrected typo and/or enhanced documentation.
01306  *
01307  *  Revision 1.22  2001/11/09 16:10:54  joergr
01308  *  Added preliminary support for Mammography CAD SR.
01309  *
01310  *  Revision 1.21  2001/10/10 15:28:04  joergr
01311  *  Changed parameter DcmTagKey to DcmTag in DcmItem::putAndInsert... methods
01312  *  to support elements which are not in the data dictionary (e.g. private
01313  *  extensions).
01314  *
01315  *  Revision 1.20  2001/10/02 12:05:46  joergr
01316  *  Adapted module "dcmsr" to the new class OFCondition. Introduced module
01317  *  specific error codes.
01318  *
01319  *  Revision 1.19  2001/10/01 15:06:54  joergr
01320  *  Introduced new general purpose functions to get/set person names, date, time
01321  *  and date/time.
01322  *
01323  *  Revision 1.18  2001/09/26 13:04:14  meichel
01324  *  Adapted dcmsr to class OFCondition
01325  *
01326  *  Revision 1.17  2001/06/20 15:03:00  joergr
01327  *  Added minimal support for new SOP class Key Object Selection Document
01328  *  (suppl. 59).
01329  *  Added new debugging features (additional flags) to examine "corrupted" SR
01330  *  documents.
01331  *
01332  *  Revision 1.16  2001/04/03 08:24:00  joergr
01333  *  Added new command line option: ignore relationship content constraints
01334  *  specified for each SR document class.
01335  *
01336  *  Revision 1.15  2001/02/13 16:36:05  joergr
01337  *  Allow newline characters (encoded as ¶) in XML documents.
01338  *
01339  *  Revision 1.14  2001/02/02 14:37:33  joergr
01340  *  Added new option to dsr2xml allowing to specify whether value and/or
01341  *  relationship type are to be encoded as XML attributes or elements.
01342  *
01343  *  Revision 1.13  2001/01/25 11:47:43  joergr
01344  *  Always remove signature sequences from certain dataset sequences (e.g.
01345  *  VerifyingObserver or PredecessorDocuments).
01346  *
01347  *  Revision 1.12  2001/01/18 15:52:11  joergr
01348  *  Encode PN components in separate XML tags.
01349  *
01350  *  Revision 1.11  2000/12/08 13:45:17  joergr
01351  *  Removed optional fractional second part from time value.
01352  *
01353  *  Revision 1.10  2000/11/09 20:32:08  joergr
01354  *  Added support for non-ASCII characters in HTML 3.2 (use numeric value).
01355  *
01356  *  Revision 1.9  2000/11/09 11:31:46  joergr
01357  *  Reordered renderHTML flags (internal flags to the end).
01358  *
01359  *  Revision 1.8  2000/11/07 18:14:05  joergr
01360  *  Added new command line option allowing to choose code value or meaning to be
01361  *  rendered as the numeric measurement unit.
01362  *  Enhanced rendered HTML output of date, time, datetime and pname.
01363  *
01364  *  Revision 1.7  2000/11/06 11:21:04  joergr
01365  *  Changes structure of HTML hyperlinks to composite objects (now using pseudo
01366  *  CGI script).
01367  *
01368  *  Revision 1.6  2000/11/01 16:18:34  joergr
01369  *  Added support for conversion to XML.
01370  *  Added support for Cascading Style Sheet (CSS) used optionally for HTML
01371  *  rendering.
01372  *  Enhanced support for specific character sets.
01373  *
01374  *  Revision 1.5  2000/10/26 14:22:09  joergr
01375  *  Added support for "Comprehensive SR".
01376  *  Added support for TCOORD content item.
01377  *  Added new flag specifying whether to add a "dcmtk" footnote to the rendered
01378  *  HTML document or not.
01379  *  Added check routine for valid UID strings.
01380  *
01381  *  Revision 1.4  2000/10/18 17:10:25  joergr
01382  *  Added new method allowing to get and check string values from dataset.
01383  *
01384  *  Revision 1.3  2000/10/16 16:31:09  joergr
01385  *  Updated comments.
01386  *
01387  *  Revision 1.2  2000/10/16 11:52:58  joergr
01388  *  Added new options: number nested items instead of indenting them, print SOP
01389  *  instance UID of referenced composite objects.
01390  *
01391  *  Revision 1.1  2000/10/13 07:49:35  joergr
01392  *  Added new module 'dcmsr' providing access to DICOM structured reporting
01393  *  documents (supplement 23).  Doc++ documentation not yet completed.
01394  *
01395  *
01396  */


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5