comparison OrthancServer/ServerJobs/MergeStudyJob.h @ 3941:771dbd9eb3bd transcoding

class CleaningInstancesJob to share cleaning code by merge/split jobs
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 18 May 2020 18:20:19 +0200
parents 94f4a18a79cc
children
comparison
equal deleted inserted replaced
3940:3661e2a72482 3941:771dbd9eb3bd
32 32
33 33
34 #pragma once 34 #pragma once
35 35
36 #include "../../Core/DicomFormat/DicomMap.h" 36 #include "../../Core/DicomFormat/DicomMap.h"
37 #include "../../Core/JobsEngine/SetOfInstancesJob.h"
38 #include "../DicomInstanceOrigin.h" 37 #include "../DicomInstanceOrigin.h"
38 #include "CleaningInstancesJob.h"
39 39
40 namespace Orthanc 40 namespace Orthanc
41 { 41 {
42 class ServerContext; 42 class ServerContext;
43 43
44 class MergeStudyJob : public SetOfInstancesJob 44 class MergeStudyJob : public CleaningInstancesJob
45 { 45 {
46 private: 46 private:
47 typedef std::map<std::string, std::string> SeriesUidMap; 47 typedef std::map<std::string, std::string> SeriesUidMap;
48 typedef std::map<DicomTag, std::string> Replacements; 48 typedef std::map<DicomTag, std::string> Replacements;
49 49
50 50
51 ServerContext& context_;
52 bool keepSource_;
53 std::string targetStudy_; 51 std::string targetStudy_;
54 Replacements replacements_; 52 Replacements replacements_;
55 std::set<DicomTag> removals_; 53 std::set<DicomTag> removals_;
56 SeriesUidMap seriesUidMap_; 54 SeriesUidMap seriesUidMap_;
57 DicomInstanceOrigin origin_; 55 DicomInstanceOrigin origin_;
59 57
60 void AddSourceSeriesInternal(const std::string& series); 58 void AddSourceSeriesInternal(const std::string& series);
61 59
62 void AddSourceStudyInternal(const std::string& study); 60 void AddSourceStudyInternal(const std::string& study);
63 61
64
65 protected: 62 protected:
66 virtual bool HandleInstance(const std::string& instance); 63 virtual bool HandleInstance(const std::string& instance);
67 64
68 virtual bool HandleTrailingStep();
69
70 public: 65 public:
71 MergeStudyJob(ServerContext& context, 66 MergeStudyJob(ServerContext& context,
72 const std::string& targetStudy); 67 const std::string& targetStudy);
73 68
74 MergeStudyJob(ServerContext& context, 69 MergeStudyJob(ServerContext& context,
82 void AddSource(const std::string& studyOrSeries); 77 void AddSource(const std::string& studyOrSeries);
83 78
84 void AddSourceStudy(const std::string& study); 79 void AddSourceStudy(const std::string& study);
85 80
86 void AddSourceSeries(const std::string& series); 81 void AddSourceSeries(const std::string& series);
87
88 bool IsKeepSource() const
89 {
90 return keepSource_;
91 }
92
93 void SetKeepSource(bool keep);
94 82
95 void SetOrigin(const DicomInstanceOrigin& origin); 83 void SetOrigin(const DicomInstanceOrigin& origin);
96 84
97 void SetOrigin(const RestApiCall& call); 85 void SetOrigin(const RestApiCall& call);
98 86