diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcomtn.h b/dcmsr/include/dcmtk/dcmsr/dsrcomtn.h index 8a354172c2..b53811838c 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrcomtn.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrcomtn.h @@ -157,6 +157,7 @@ class DCMTK_DCMSR_EXPORT DSRCompositeTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcomvl.h b/dcmsr/include/dcmtk/dcmsr/dsrcomvl.h index edce0d0c69..a4100c8c62 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrcomvl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrcomvl.h @@ -176,6 +176,7 @@ class DCMTK_DCMSR_EXPORT DSRCompositeReferenceValue virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; /** get SOP class UID diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcontn.h b/dcmsr/include/dcmtk/dcmsr/dsrcontn.h index 8314c37691..513533a645 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrcontn.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrcontn.h @@ -143,6 +143,7 @@ class DCMTK_DCMSR_EXPORT DSRContainerTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; /** get continuity of content flag. diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h index 8e64b2a056..2b3118b138 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h @@ -26,6 +26,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmsr/dsrtypes.h" #include "dcmtk/dcmsr/dsrdoctr.h" #include "dcmtk/dcmsr/dsrrtpl.h" #include "dcmtk/dcmsr/dsrsoprf.h" @@ -200,7 +201,9 @@ class DCMTK_DCMSR_EXPORT DSRDocument */ virtual OFCondition renderHTML(STD_NAMESPACE ostream &stream, const size_t flags = 0, - const char *styleSheet = NULL); + const char* styleSheet = NULL, + const std::string& urlPrefixToCompositeObjects = HTML_HYPERLINK_PREFIX_FOR_CGI + ); // --- get/set misc attributes --- @@ -1281,6 +1284,7 @@ class DCMTK_DCMSR_EXPORT DSRDocument */ void renderHTMLReferenceList(STD_NAMESPACE ostream &stream, DSRSOPInstanceReferenceList &refList, + const std::string& urlPrefixToCompositeObjects, const size_t flags); /** render list of referenced SOP instances in HTML/XHTML format @@ -1290,6 +1294,7 @@ class DCMTK_DCMSR_EXPORT DSRDocument */ void renderHTMLReferenceList(STD_NAMESPACE ostream &stream, DSRReferencedInstanceList &refList, + const std::string& urlPrefixToCompositeObjects, const size_t flags); /** check the given dataset before reading. diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoctn.h b/dcmsr/include/dcmtk/dcmsr/dsrdoctn.h index 14e95d4986..4c231db3a1 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrdoctn.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrdoctn.h @@ -223,6 +223,7 @@ class DCMTK_DCMSR_EXPORT DSRDocumentTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; /** check whether content item is digitally signed. @@ -593,6 +594,7 @@ class DCMTK_DCMSR_EXPORT DSRDocumentTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; /** write common item start (XML tag) @@ -711,6 +713,7 @@ class DCMTK_DCMSR_EXPORT DSRDocumentTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; // --- static function --- diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h b/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h index 8629002f74..f9f2617a12 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h @@ -141,6 +141,7 @@ class DCMTK_DCMSR_EXPORT DSRDocumentTree */ virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, + const std::string& urlPrefixToCompositeObjects, const size_t flags = 0); /** get document type diff --git a/dcmsr/include/dcmtk/dcmsr/dsrimgtn.h b/dcmsr/include/dcmtk/dcmsr/dsrimgtn.h index 98573b34c0..d18bac8b96 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrimgtn.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrimgtn.h @@ -168,6 +168,7 @@ class DCMTK_DCMSR_EXPORT DSRImageTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; diff --git a/dcmsr/include/dcmtk/dcmsr/dsrimgvl.h b/dcmsr/include/dcmtk/dcmsr/dsrimgvl.h index 1c86317d4c..2fc924e203 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrimgvl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrimgvl.h @@ -198,6 +198,7 @@ class DCMTK_DCMSR_EXPORT DSRImageReferenceValue virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; /** create an icon image from the given DICOM image and associate it with this image diff --git a/dcmsr/include/dcmtk/dcmsr/dsrwavtn.h b/dcmsr/include/dcmtk/dcmsr/dsrwavtn.h index 87be60aa75..697660b5b6 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrwavtn.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrwavtn.h @@ -165,6 +165,7 @@ class DCMTK_DCMSR_EXPORT DSRWaveformTreeNode STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; diff --git a/dcmsr/include/dcmtk/dcmsr/dsrwavvl.h b/dcmsr/include/dcmtk/dcmsr/dsrwavvl.h index f28cab591a..d4802f6247 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrwavvl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrwavvl.h @@ -142,6 +142,7 @@ class DCMTK_DCMSR_EXPORT DSRWaveformReferenceValue virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const; /** get reference to waveform reference value diff --git a/dcmsr/libsrc/dsrcomtn.cc b/dcmsr/libsrc/dsrcomtn.cc index 9d3c56452e..6b015d5329 100644 --- a/dcmsr/libsrc/dsrcomtn.cc +++ b/dcmsr/libsrc/dsrcomtn.cc @@ -158,6 +158,7 @@ OFCondition DSRCompositeTreeNode::renderHTMLContentItem(STD_NAMESPACE ostream &d STD_NAMESPACE ostream &annexStream, const size_t /* nestingLevel */, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const { /* render ConceptName */ @@ -165,7 +166,7 @@ OFCondition DSRCompositeTreeNode::renderHTMLContentItem(STD_NAMESPACE ostream &d /* render Reference */ if (result.good()) { - result = DSRCompositeReferenceValue::renderHTML(docStream, annexStream, annexNumber, flags); + result = DSRCompositeReferenceValue::renderHTML(docStream, annexStream, annexNumber, urlPrefixToCompositeObjects, flags); docStream << OFendl; } return result; diff --git a/dcmsr/libsrc/dsrcomvl.cc b/dcmsr/libsrc/dsrcomvl.cc index dde69f318f..a9d6b2bd12 100644 --- a/dcmsr/libsrc/dsrcomvl.cc +++ b/dcmsr/libsrc/dsrcomvl.cc @@ -244,10 +244,11 @@ OFCondition DSRCompositeReferenceValue::writeSequence(DcmItem &dataset, OFCondition DSRCompositeReferenceValue::renderHTML(STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream & /*annexStream*/, size_t & /*annexNumber*/, + const std::string& urlPrefixToCompositeObjects, const size_t /*flags*/) const { /* render reference */ - docStream << ""; /* retrieve name of SOP class (if known) */ docStream << dcmFindNameOfUID(SOPClassUID.c_str(), "unknown composite object"); diff --git a/dcmsr/libsrc/dsrcontn.cc b/dcmsr/libsrc/dsrcontn.cc index 5e343b3e0f..0e8e513ee2 100644 --- a/dcmsr/libsrc/dsrcontn.cc +++ b/dcmsr/libsrc/dsrcontn.cc @@ -226,6 +226,7 @@ OFCondition DSRContainerTreeNode::renderHTML(STD_NAMESPACE ostream &docStream, STD_NAMESPACE ostream &annexStream, const size_t nestingLevel, size_t &annexNumber, + const std::string& urlPrefixToCompositeObjects, const size_t flags) const { /* check for validity */ @@ -237,9 +238,9 @@ OFCondition DSRContainerTreeNode::renderHTML(STD_NAMESPACE ostream &docStream, { /* section body: render child nodes */ if (ContinuityOfContent == COC_Continuous) - result = renderHTMLChildNodes(docStream, annexStream, nestingLevel, annexNumber, flags & ~HF_renderItemsSeparately); + result = renderHTMLChildNodes(docStream, annexStream, nestingLevel, annexNumber, urlPrefixToCompositeObjects, flags & ~HF_renderItemsSeparately); else // might be invalid - result = renderHTMLChildNodes(docStream, annexStream, nestingLevel, annexNumber, flags | HF_renderItemsSeparately); + result = renderHTMLChildNodes(docStream, annexStream, nestingLevel, annexNumber, urlPrefixToCompositeObjects, flags | HF_renderItemsSeparately); } else printContentItemErrorMessage("Rendering", result, this); return result; diff --git a/dcmsr/libsrc/dsrdoc.cc b/dcmsr/libsrc/dsrdoc.cc index f6ce3376d5..bffdd3f10f 100644 --- a/dcmsr/libsrc/dsrdoc.cc +++ b/dcmsr/libsrc/dsrdoc.cc @@ -1569,6 +1569,7 @@ void DSRDocument::renderHTMLPatientData(STD_NAMESPACE ostream &stream, void DSRDocument::renderHTMLReferenceList(STD_NAMESPACE ostream &stream, DSRSOPInstanceReferenceList &refList, + const std::string& urlPrefixToCompositeObjects, const size_t flags) { /* goto first list item (if not empty) */ @@ -1589,7 +1590,7 @@ void DSRDocument::renderHTMLReferenceList(STD_NAMESPACE ostream &stream, OFString sopClass, sopInstance; if (!refList.getSOPClassUID(sopClass).empty() && !refList.getSOPInstanceUID(sopInstance).empty()) { - stream << "