Mercurial > hg > orthanc
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 |