# HG changeset patch # User Sebastien Jodogne # Date 1699435936 -3600 # Node ID b7d4d288459a4f0fbbaa3000822eda939f812931 # Parent 35de56fb6f89f67345b12734f852be64468e0da4 refactoring diff -r 35de56fb6f89 -r b7d4d288459a Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp --- a/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp Wed Nov 08 10:11:21 2023 +0100 +++ b/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp Wed Nov 08 10:32:16 2023 +0100 @@ -212,12 +212,6 @@ { } - // TODO - MUST BE REMOVED - virtual std::string GetStudyInstanceUid() const = 0; - - // TODO - MUST BE REMOVED - virtual std::string GetSeriesInstanceUid() const = 0; - virtual size_t GetFramesCount() const = 0; virtual const OrthancStone::DicomInstanceParameters& GetInstanceOfFrame(size_t frameIndex) const = 0; @@ -255,16 +249,6 @@ } } - virtual std::string GetStudyInstanceUid() const ORTHANC_OVERRIDE - { - return frames_->GetStudyInstanceUid(); - } - - virtual std::string GetSeriesInstanceUid() const ORTHANC_OVERRIDE - { - return frames_->GetSeriesInstanceUid(); - } - virtual size_t GetFramesCount() const ORTHANC_OVERRIDE { return frames_->GetFramesCount(); @@ -307,12 +291,12 @@ class Frame : public boost::noncopyable { private: - OrthancStone::DicomStructuredReport::Frame info_; + OrthancStone::DicomStructuredReport::ReferencedFrame info_; Orthanc::DicomMap tags_; std::unique_ptr parameters_; public: - Frame(const OrthancStone::DicomStructuredReport::Frame& info, + Frame(const OrthancStone::DicomStructuredReport::ReferencedFrame& info, const OrthancStone::LoadedDicomResources& instances) : info_(info) { @@ -324,7 +308,7 @@ parameters_.reset(new OrthancStone::DicomInstanceParameters(tags_)); } - const OrthancStone::DicomStructuredReport::Frame& GetInformation() const + const OrthancStone::DicomStructuredReport::ReferencedFrame& GetInformation() const { return info_; } @@ -376,11 +360,11 @@ studyInstanceUid_(sr.GetStudyInstanceUid()), seriesInstanceUid_(sr.GetSeriesInstanceUid()) { - std::list tmp; - sr.ExportOrderedFrames(tmp); + std::list tmp; + sr.ExportReferencedFrames(tmp); frames_.reserve(tmp.size()); - for (std::list::const_iterator + for (std::list::const_iterator it = tmp.begin(); it != tmp.end(); ++it) { try @@ -400,16 +384,6 @@ { Finalize(); } - - virtual std::string GetStudyInstanceUid() const ORTHANC_OVERRIDE - { - return studyInstanceUid_; - } - - virtual std::string GetSeriesInstanceUid() const ORTHANC_OVERRIDE - { - return seriesInstanceUid_; - } virtual size_t GetFramesCount() const ORTHANC_OVERRIDE { diff -r 35de56fb6f89 -r b7d4d288459a OrthancStone/Sources/Toolbox/DicomStructuredReport.cpp --- a/OrthancStone/Sources/Toolbox/DicomStructuredReport.cpp Wed Nov 08 10:11:21 2023 +0100 +++ b/OrthancStone/Sources/Toolbox/DicomStructuredReport.cpp Wed Nov 08 10:32:16 2023 +0100 @@ -341,6 +341,7 @@ studyInstanceUid_ = GetStringValue(dataset, DCM_StudyInstanceUID); seriesInstanceUid_ = GetStringValue(dataset, DCM_SeriesInstanceUID); + sopInstanceUid_ = GetStringValue(dataset, DCM_SOPInstanceUID); CheckStringValue(dataset, DCM_Modality, "SR"); CheckStringValue(dataset, DCM_SOPClassUID, "1.2.840.10008.5.1.4.1.1.88.33"); // Comprehensive SR IOD @@ -573,7 +574,7 @@ } - void DicomStructuredReport::ExportOrderedFrames(std::list& frames) const + void DicomStructuredReport::ExportReferencedFrames(std::list& frames) const { frames.clear(); @@ -590,10 +591,10 @@ for (std::set::const_iterator frame = found->second->GetFrames().begin(); frame != found->second->GetFrames().end(); ++frame) { - frames.push_back(Frame(found->second->GetStudyInstanceUid(), - found->second->GetSeriesInstanceUid(), - orderedInstances_[i], - found->second->GetSopClassUid(), *frame)); + frames.push_back(ReferencedFrame(found->second->GetStudyInstanceUid(), + found->second->GetSeriesInstanceUid(), + orderedInstances_[i], + found->second->GetSopClassUid(), *frame)); } } } diff -r 35de56fb6f89 -r b7d4d288459a OrthancStone/Sources/Toolbox/DicomStructuredReport.h --- a/OrthancStone/Sources/Toolbox/DicomStructuredReport.h Wed Nov 08 10:11:21 2023 +0100 +++ b/OrthancStone/Sources/Toolbox/DicomStructuredReport.h Wed Nov 08 10:32:16 2023 +0100 @@ -97,12 +97,13 @@ std::string studyInstanceUid_; std::string seriesInstanceUid_; + std::string sopInstanceUid_; std::map instancesInformation_; std::vector orderedInstances_; std::list structures_; public: - class Frame + class ReferencedFrame { private: std::string studyInstanceUid_; @@ -112,11 +113,11 @@ unsigned int frameNumber_; public: - Frame(const std::string& studyInstanceUid, - const std::string& seriesInstanceUid, - const std::string& sopInstanceUid, - const std::string& sopClassUid, - unsigned int frameNumber) : + ReferencedFrame(const std::string& studyInstanceUid, + const std::string& seriesInstanceUid, + const std::string& sopInstanceUid, + const std::string& sopClassUid, + unsigned int frameNumber) : studyInstanceUid_(studyInstanceUid), seriesInstanceUid_(seriesInstanceUid), sopInstanceUid_(sopInstanceUid), @@ -165,6 +166,11 @@ return seriesInstanceUid_; } + const std::string& GetSopInstanceUid() const + { + return sopInstanceUid_; + } + size_t GetReferencedInstancesCount() const { return orderedInstances_.size(); @@ -176,6 +182,6 @@ std::string& sopClassUid, size_t i) const; - void ExportOrderedFrames(std::list& frames) const; + void ExportReferencedFrames(std::list& frames) const; }; }