Mercurial > hg > orthanc
diff OrthancServer/main.cpp @ 3736:0540b54324f1 storage-commitment
StorageCommitmentReports
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 10 Mar 2020 17:43:49 +0100 |
parents | 4fc24b69446a |
children | c6658187e4b1 |
line wrap: on
line diff
--- a/OrthancServer/main.cpp Tue Mar 10 13:59:14 2020 +0100 +++ b/OrthancServer/main.cpp Tue Mar 10 17:43:49 2020 +0100 @@ -52,6 +52,7 @@ #include "ServerContext.h" #include "ServerJobs/StorageCommitmentScpJob.h" #include "ServerToolbox.h" +#include "StorageCommitmentReports.h" using namespace Orthanc; @@ -133,12 +134,34 @@ const std::vector<std::string>& successSopInstanceUids, const std::vector<std::string>& failedSopClassUids, const std::vector<std::string>& failedSopInstanceUids, + const std::vector<StorageCommitmentFailureReason>& failureReasons, const std::string& remoteIp, const std::string& remoteAet, const std::string& calledAet) { - // TODO - printf("HANDLE REPORT\n"); + if (successSopClassUids.size() != successSopInstanceUids.size() || + failedSopClassUids.size() != failedSopInstanceUids.size() || + failedSopClassUids.size() != failureReasons.size()) + { + throw OrthancException(ErrorCode_InternalError); + } + + std::unique_ptr<StorageCommitmentReports::Report> report( + new StorageCommitmentReports::Report(remoteAet)); + + for (size_t i = 0; i < successSopClassUids.size(); i++) + { + report->AddSuccess(successSopClassUids[i], successSopInstanceUids[i]); + } + + for (size_t i = 0; i < failedSopClassUids.size(); i++) + { + report->AddFailure(failedSopClassUids[i], failedSopInstanceUids[i], failureReasons[i]); + } + + report->MarkAsComplete(); + + context_.GetStorageCommitmentReports().Store(transactionUid, report.release()); } };