Skip to content

Commit 2045f5e

Browse files
authored
Merge pull request #828 from Project-MONAI/AC-2259
fix to return multiple vaules in metadata
2 parents d819b68 + 1477e4e commit 2045f5e

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

src/TaskManager/Plug-ins/Email/EmailPlugin.cs

+17-5
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
123123

124124
try
125125
{
126-
var metadata = new Dictionary<string, string>();
126+
var metadata = new Dictionary<string, List<string>>();
127127
if (Event.Inputs.Any())
128128
{
129129
foreach (var input in Event.Inputs)
@@ -132,7 +132,7 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
132132
}
133133
}
134134

135-
var emailRequest = GenerateEmailRequestEventMessage(metadata);
135+
var emailRequest = GenerateEmailRequestEventMessage(FlattenMeta(metadata));
136136
await SendEmailRequestEvent(emailRequest).ConfigureAwait(false);
137137

138138
return new ExecutionStatus { Status = TaskExecutionStatus.Accepted, FailureReason = FailureReason.None, Stats = new Dictionary<string, string> { { "IdentityKey", emailRequest.Body.Id.ToString() } } };
@@ -145,7 +145,17 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
145145
}
146146
}
147147

148-
private async Task<Dictionary<string, string>> AddRawMetaFromFile(Dictionary<string, string> metadata, string path, string bucketName)
148+
private static Dictionary<string, string> FlattenMeta(Dictionary<string, List<string>> input)
149+
{
150+
var values = new Dictionary<string, string>();
151+
foreach (var key in input.Keys)
152+
{
153+
values.Add(key, string.Join(",", input[key].Distinct()));
154+
}
155+
return values;
156+
}
157+
158+
private async Task<Dictionary<string, List<string>>> AddRawMetaFromFile(Dictionary<string, List<string>> metadata, string path, string bucketName)
149159
{
150160
if (_includeMetadata is null || _includeMetadata.Count() == 0)
151161
{
@@ -168,7 +178,8 @@ private async Task<Dictionary<string, string>> AddRawMetaFromFile(Dictionary<str
168178

169179
foreach (var item in _includeMetadata)
170180
{
171-
if (metadata.ContainsKey(item)) continue;
181+
var values = new List<string>();
182+
if (metadata.ContainsKey(item)) values = metadata[item];
172183

173184
DicomTag tag;
174185
try
@@ -181,7 +192,8 @@ private async Task<Dictionary<string, string>> AddRawMetaFromFile(Dictionary<str
181192
}
182193
if (tag is not null)
183194
{
184-
metadata.Add(item, dcmFile.Dataset.GetString(tag));
195+
values.Add(dcmFile.Dataset.GetString(tag).Trim());
196+
metadata.Add(item, values);
185197
}
186198
}
187199
}

0 commit comments

Comments
 (0)