Skip to content

Commit 2674f64

Browse files
authored
Merge branch 'develop' into AC-2253
2 parents d9870d8 + 9439e8c commit 2674f64

File tree

4 files changed

+41
-34
lines changed

4 files changed

+41
-34
lines changed

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

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,10 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
126126
var metadata = new Dictionary<string, string>();
127127
if (Event.Inputs.Any())
128128
{
129-
// only process the first input for now
130-
metadata = await GetRawMetaFromFile($"{Event.Inputs.First().RelativeRootPath}/{Event.Inputs.First().Name}", Event.Inputs.First().Bucket);
129+
foreach (var input in Event.Inputs)
130+
{
131+
metadata = await AddRawMetaFromFile(metadata, $"{input.RelativeRootPath}", input.Bucket);
132+
}
131133
}
132134

133135
var emailRequest = GenerateEmailRequestEventMessage(metadata);
@@ -143,39 +145,53 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
143145
}
144146
}
145147

146-
private async Task<Dictionary<string, string>?> GetRawMetaFromFile(string path, string bucketName)
148+
private async Task<Dictionary<string, string>> AddRawMetaFromFile(Dictionary<string, string> metadata, string path, string bucketName)
147149
{
148150
if (_includeMetadata is null || _includeMetadata.Count() == 0)
149151
{
150152
_logger.NoMetaDataRequested();
151-
return null;
153+
return metadata;
152154
}
153-
// load file from Minio !
154-
Guard.Against.NullOrWhiteSpace(bucketName);
155-
Guard.Against.NullOrWhiteSpace(path);
156155

157-
var fileStream = await _storageService.GetObjectAsync(bucketName, path);
158-
var dcmFile = DicomFile.Open(fileStream);
159-
160-
var output = new Dictionary<string, string>();
161-
foreach (var item in _includeMetadata)
156+
var allFiles = await _storageService.ListObjectsAsync(bucketName, path, true);
157+
foreach (var file in allFiles)
162158
{
163-
DicomTag tag;
159+
if (file.FilePath.EndsWith(".json", StringComparison.InvariantCultureIgnoreCase)) continue;
160+
Guard.Against.NullOrWhiteSpace(bucketName);
161+
Guard.Against.NullOrWhiteSpace(path);
162+
163+
// load file from Minio !
164+
var fileStream = await _storageService.GetObjectAsync(bucketName, $"{file.FilePath}");
164165
try
165166
{
166-
tag = DicomDictionary.Default[item];
167-
}
168-
catch (Exception)
169-
{
170-
tag = DicomTag.Parse(item);
167+
var dcmFile = DicomFile.Open(fileStream);
168+
169+
foreach (var item in _includeMetadata)
170+
{
171+
if (metadata.ContainsKey(item)) continue;
172+
173+
DicomTag tag;
174+
try
175+
{
176+
tag = DicomDictionary.Default[item];
177+
}
178+
catch (Exception)
179+
{
180+
tag = DicomTag.Parse(item);
181+
}
182+
if (tag is not null)
183+
{
184+
metadata.Add(item, dcmFile.Dataset.GetString(tag));
185+
}
186+
}
171187
}
172-
if (tag is not null)
188+
catch (Exception ex)
173189
{
174-
output.Add(item, dcmFile.Dataset.GetString(tag));
190+
_logger?.ErrorGettingMetaData($"{file.FilePath}/{file.Filename}", ex.Message);
175191
}
176192
}
177193

178-
return output;
194+
return metadata;
179195
}
180196

181197
private JsonMessage<EmailRequestEvent> GenerateEmailRequestEventMessage(Dictionary<string, string>? metadata)

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,8 @@ public static partial class Log
3939

4040
[LoggerMessage(EventId = 6, Level = LogLevel.Debug, Message = "No Metadata requested in event")]
4141
public static partial void NoMetaDataRequested(this ILogger logger);
42+
43+
[LoggerMessage(EventId = 7, Level = LogLevel.Debug, Message = "Error Getting Metadata requested for file: {fileName} message:{message} ")]
44+
public static partial void ErrorGettingMetaData(this ILogger logger, string fileName, string message);
4245
}
4346
}

src/WorkflowManager/Common/Services/WorkflowService.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,6 @@ public async Task<string> CreateAsync(Workflow workflow)
5454
{
5555
Guard.Against.Null(workflow);
5656

57-
foreach (var task in workflow.Tasks)
58-
{
59-
task.Args["workflow_name"] = workflow.Name;
60-
}
61-
6257
var id = await _workflowRepository.CreateAsync(workflow);
6358
_logger.WorkflowCreated(id, workflow.Name);
6459
return id;
@@ -76,14 +71,6 @@ public async Task<string> CreateAsync(Workflow workflow)
7671
return null;
7772
}
7873

79-
if (isUpdateToWorkflowName)
80-
{
81-
foreach (var task in workflow.Tasks)
82-
{
83-
task.Args["workflow_name"] = workflow.Name;
84-
}
85-
}
86-
8774
var result = await _workflowRepository.UpdateAsync(workflow, existingWorkflow);
8875
_logger.WorkflowUpdated(id, workflow.Name);
8976
return result;

src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,7 @@ private async Task<bool> DispatchTask(WorkflowInstance workflowInstance, Workflo
743743
AttachPatientMetaData(taskExec, payload.PatientDetails);
744744
}
745745

746+
taskExec.TaskPluginArguments["workflow_name"] = workflow!.Workflow!.Name;
746747
_logger.LogGeneralTaskDispatchInformation(workflowInstance.PayloadId, taskExec.TaskId, workflowInstance.Id, workflow?.Id, JsonConvert.SerializeObject(pathOutputArtifacts));
747748
var taskDispatchEvent = EventMapper.ToTaskDispatchEvent(taskExec, workflowInstance, pathOutputArtifacts, correlationId, _storageConfiguration);
748749
var jsonMesssage = new JsonMessage<TaskDispatchEvent>(taskDispatchEvent, MessageBrokerConfiguration.WorkflowManagerApplicationId, taskDispatchEvent.CorrelationId, Guid.NewGuid().ToString());

0 commit comments

Comments
 (0)