diff --git a/src/TaskManager/Plug-ins/Email/EmailPlugin.cs b/src/TaskManager/Plug-ins/Email/EmailPlugin.cs index 5396609c4..beb3172d5 100644 --- a/src/TaskManager/Plug-ins/Email/EmailPlugin.cs +++ b/src/TaskManager/Plug-ins/Email/EmailPlugin.cs @@ -123,7 +123,7 @@ public override async Task ExecuteTask(CancellationToken cancel try { - var metadata = new Dictionary(); + var metadata = new Dictionary>(); if (Event.Inputs.Any()) { foreach (var input in Event.Inputs) @@ -132,7 +132,7 @@ public override async Task ExecuteTask(CancellationToken cancel } } - var emailRequest = GenerateEmailRequestEventMessage(metadata); + var emailRequest = GenerateEmailRequestEventMessage(FlattenMeta(metadata)); await SendEmailRequestEvent(emailRequest).ConfigureAwait(false); return new ExecutionStatus { Status = TaskExecutionStatus.Accepted, FailureReason = FailureReason.None, Stats = new Dictionary { { "IdentityKey", emailRequest.Body.Id.ToString() } } }; @@ -145,7 +145,17 @@ public override async Task ExecuteTask(CancellationToken cancel } } - private async Task> AddRawMetaFromFile(Dictionary metadata, string path, string bucketName) + private static Dictionary FlattenMeta(Dictionary> input) + { + var values = new Dictionary(); + foreach (var key in input.Keys) + { + values.Add(key, string.Join(",", input[key].Distinct())); + } + return values; + } + + private async Task>> AddRawMetaFromFile(Dictionary> metadata, string path, string bucketName) { if (_includeMetadata is null || _includeMetadata.Count() == 0) { @@ -168,7 +178,8 @@ private async Task> AddRawMetaFromFile(Dictionary(); + if (metadata.ContainsKey(item)) values = metadata[item]; DicomTag tag; try @@ -181,7 +192,8 @@ private async Task> AddRawMetaFromFile(Dictionary