comparison OrthancServer/Sources/ServerJobs/ResourceModificationJob.h @ 4693:45bce660ce3a

added routes for bulk anonymization/modification
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 16 Jun 2021 16:44:04 +0200
parents d9473bd5ed43
children f0038043fb97 7053502fbf97
comparison
equal deleted inserted replaced
4692:e68edf92e5cc 4693:45bce660ce3a
42 class ServerContext; 42 class ServerContext;
43 43
44 class ResourceModificationJob : public CleaningInstancesJob 44 class ResourceModificationJob : public CleaningInstancesJob
45 { 45 {
46 private: 46 private:
47 class Output; 47 class IOutput : public boost::noncopyable
48 {
49 public:
50 virtual ~IOutput()
51 {
52 }
53
54 virtual void Update(DicomInstanceHasher& hasher) = 0;
55
56 virtual void Format(Json::Value& target) const = 0;
57
58 virtual bool IsSingleResource() const = 0;
59 };
60
61 class SingleOutput;
62 class MultipleOutputs;
48 63
49 std::unique_ptr<DicomModification> modification_; 64 std::unique_ptr<DicomModification> modification_;
50 boost::shared_ptr<Output> output_; 65 boost::shared_ptr<IOutput> output_;
51 bool isAnonymization_; 66 bool isAnonymization_;
52 DicomInstanceOrigin origin_; 67 DicomInstanceOrigin origin_;
53 bool transcode_; 68 bool transcode_;
54 DicomTransferSyntax transferSyntax_; 69 DicomTransferSyntax transferSyntax_;
55 70
60 explicit ResourceModificationJob(ServerContext& context); 75 explicit ResourceModificationJob(ServerContext& context);
61 76
62 ResourceModificationJob(ServerContext& context, 77 ResourceModificationJob(ServerContext& context,
63 const Json::Value& serialized); 78 const Json::Value& serialized);
64 79
65 void SetModification(DicomModification* modification, // Takes ownership 80 // NB: The "outputLevel" only controls the output format, and
66 ResourceType level, 81 // might *not* be the same as "modification->GetLevel()"
67 bool isAnonymization); 82 void SetSingleResourceModification(DicomModification* modification, // Takes ownership
83 ResourceType outputLevel,
84 bool isAnonymization);
85
86 void SetMultipleResourcesModification(DicomModification* modification, // Takes ownership
87 bool isAnonymization);
68 88
69 void SetOrigin(const DicomInstanceOrigin& origin); 89 void SetOrigin(const DicomInstanceOrigin& origin);
70 90
71 void SetOrigin(const RestApiCall& call); 91 void SetOrigin(const RestApiCall& call);
72 92
93 113
94 void SetTranscode(const std::string& transferSyntaxUid); 114 void SetTranscode(const std::string& transferSyntaxUid);
95 115
96 void ClearTranscode(); 116 void ClearTranscode();
97 117
118 bool IsSingleResourceModification() const;
119
120 // Only possible if "IsSingleResourceModification()"
121 ResourceType GetOutputLevel() const;
122
98 virtual void Stop(JobStopReason reason) ORTHANC_OVERRIDE 123 virtual void Stop(JobStopReason reason) ORTHANC_OVERRIDE
99 { 124 {
100 } 125 }
101 126
102 virtual void GetJobType(std::string& target) ORTHANC_OVERRIDE 127 virtual void GetJobType(std::string& target) ORTHANC_OVERRIDE