diff --git a/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs b/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs index 2d1c489ad..820e2c166 100644 --- a/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs +++ b/src/TaskManager/Plug-ins/AideClinicalReview/AideClinicalReviewPlugin.cs @@ -14,7 +14,6 @@ * limitations under the License. */ -using Ardalis.GuardClauses; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -321,6 +320,26 @@ public async ValueTask DisposeAsync() GC.SuppressFinalize(this); } - public override Task HandleTimeout(string identity) => Task.CompletedTask; // not implemented + public override Task HandleTimeout(string identity) + { + var message = GenerateCancelationMessage(identity); + + var queue = _queueName ?? _options.Value.Messaging.Topics.AideClinicalReviewCancelation; + _logger.SendClinicalReviewRequestMessage(queue, _workflowName ?? string.Empty); + return _messageBrokerPublisherService.Publish(queue, message.ToMessage()); + } + + private JsonMessage GenerateCancelationMessage(string identity) + { + return new JsonMessage(new TaskCancellationEvent + { + ExecutionId = identity, + WorkflowInstanceId = Event.WorkflowInstanceId, + TaskId = Event.TaskId, + Reason = FailureReason.TimedOut, + Identity = identity, + Message = $"{FailureReason.TimedOut} {DateTime.UtcNow}" + }, TaskManagerApplicationId, Event.CorrelationId); + } } }