Exemple #1
0
        public async Task <InferenceStatusResponse> GetStatus(string id)
        {
            Guard.Against.NullOrWhiteSpace(id, nameof(id));

            var response = new InferenceStatusResponse();
            var item     = GetByTransactionId(id);

            if (item is null)
            {
                item = GetByJobId(id);
            }

            if (item is null)
            {
                return(null);
            }

            response.TransactionId      = item.TransactionId;
            response.Platform.JobId     = item.JobId;
            response.Platform.PayloadId = item.PayloadId;
            response.Dicom.State        = item.State;
            response.Dicom.Status       = item.Status;

            try
            {
                var jobDetails = await _jobsApi.Status(item.JobId);

                response.Platform.Priority = jobDetails.JobPriority;
                response.Platform.State    = jobDetails.JobState;
                response.Platform.Status   = jobDetails.JobStatus;
                response.Platform.Started  = jobDetails.DateStarted;
                response.Platform.Stopped  = jobDetails.DateStopped;
                response.Platform.Created  = jobDetails.DateCreated;
                response.Message           = string.Join(Environment.NewLine, jobDetails.Messages);
            }
            catch (Exception ex)
            {
                _logger.Log(LogLevel.Error, ex, "Error retrieving job status.");
                response.Message = $"Error retrieving job from Clara Platform: {ex.Message}";
            }

            return(response);
        }