diff --git a/src/Api/Storage/Payload.cs b/src/Api/Storage/Payload.cs
old mode 100644
new mode 100755
index 800832aa2..97a976ac5
--- a/src/Api/Storage/Payload.cs
+++ b/src/Api/Storage/Payload.cs
@@ -40,7 +40,12 @@ public enum PayloadState
///
/// Payload is ready to be published to the message broker.
///
- Notify
+ Notify,
+
+ ///
+ /// Payload has finished uploading.
+ ///
+ UploadComplete
}
public const int MAX_RETRY = 3;
@@ -89,7 +94,7 @@ public TimeSpan Elapsed
public int FilesFailedToUpload { get => Files.Count(p => p.IsUploadFailed); }
public Payload(string key, string correlationId, string? workflowInstanceId, string? taskId,
- DataOrigin dataTrigger, uint timeout, PatientDetails? patientDetails) : this(key, correlationId, workflowInstanceId, taskId, dataTrigger, timeout)
+ DataOrigin dataTrigger, uint timeout, PatientDetails? patientDetails) : this(key, correlationId, workflowInstanceId, taskId, dataTrigger, timeout)
{
if (patientDetails is not null)
{
@@ -97,7 +102,6 @@ public Payload(string key, string correlationId, string? workflowInstanceId, str
}
}
-
public Payload(string key, string correlationId, string? workflowInstanceId, string? taskId, DataOrigin dataTrigger, uint timeout)
{
Guard.Against.NullOrWhiteSpace(key, nameof(key));
diff --git a/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs b/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs
index ef8f8960f..737a9cb6e 100755
--- a/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs
+++ b/src/InformaticsGateway/Services/Connectors/PayloadNotificationActionHandler.cs
@@ -93,9 +93,13 @@ private async Task DeletePayload(Payload payload, CancellationToken cancellation
{
Guard.Against.Null(payload, nameof(payload));
+ // NDS removed delete, replaced with new status of complete. so we can query the payload data from WFM
+ // TODO add config and cleanup methods that run on background thread/process
+
var scope = _serviceScopeFactory.CreateScope();
var repository = scope.ServiceProvider.GetService() ?? throw new ServiceNotFoundException(nameof(IPayloadRepository));
- await repository.RemoveAsync(payload, cancellationToken).ConfigureAwait(false);
+ payload.State = Payload.PayloadState.UploadComplete;
+ await repository.UpdateAsync(payload, cancellationToken).ConfigureAwait(false);
}
private async Task NotifyPayloadReady(Payload payload)