Mercurial > hg > orthanc
diff 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 |
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerJobs/ResourceModificationJob.h Fri Jun 11 10:48:28 2021 +0200 +++ b/OrthancServer/Sources/ServerJobs/ResourceModificationJob.h Wed Jun 16 16:44:04 2021 +0200 @@ -44,10 +44,25 @@ class ResourceModificationJob : public CleaningInstancesJob { private: - class Output; + class IOutput : public boost::noncopyable + { + public: + virtual ~IOutput() + { + } + + virtual void Update(DicomInstanceHasher& hasher) = 0; + + virtual void Format(Json::Value& target) const = 0; + + virtual bool IsSingleResource() const = 0; + }; + + class SingleOutput; + class MultipleOutputs; std::unique_ptr<DicomModification> modification_; - boost::shared_ptr<Output> output_; + boost::shared_ptr<IOutput> output_; bool isAnonymization_; DicomInstanceOrigin origin_; bool transcode_; @@ -62,9 +77,14 @@ ResourceModificationJob(ServerContext& context, const Json::Value& serialized); - void SetModification(DicomModification* modification, // Takes ownership - ResourceType level, - bool isAnonymization); + // NB: The "outputLevel" only controls the output format, and + // might *not* be the same as "modification->GetLevel()" + void SetSingleResourceModification(DicomModification* modification, // Takes ownership + ResourceType outputLevel, + bool isAnonymization); + + void SetMultipleResourcesModification(DicomModification* modification, // Takes ownership + bool isAnonymization); void SetOrigin(const DicomInstanceOrigin& origin); @@ -95,6 +115,11 @@ void ClearTranscode(); + bool IsSingleResourceModification() const; + + // Only possible if "IsSingleResourceModification()" + ResourceType GetOutputLevel() const; + virtual void Stop(JobStopReason reason) ORTHANC_OVERRIDE { }