@@ -123,7 +123,7 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
123
123
124
124
try
125
125
{
126
- var metadata = new Dictionary < string , string > ( ) ;
126
+ var metadata = new Dictionary < string , List < string > > ( ) ;
127
127
if ( Event . Inputs . Any ( ) )
128
128
{
129
129
foreach ( var input in Event . Inputs )
@@ -132,7 +132,7 @@ public override async Task<ExecutionStatus> ExecuteTask(CancellationToken cancel
132
132
}
133
133
}
134
134
135
- var emailRequest = GenerateEmailRequestEventMessage ( metadata ) ;
135
+ var emailRequest = GenerateEmailRequestEventMessage ( FlattenMeta ( metadata ) ) ;
136
136
await SendEmailRequestEvent ( emailRequest ) . ConfigureAwait ( false ) ;
137
137
138
138
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
145
145
}
146
146
}
147
147
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 )
149
159
{
150
160
if ( _includeMetadata is null || _includeMetadata . Count ( ) == 0 )
151
161
{
@@ -168,7 +178,8 @@ private async Task<Dictionary<string, string>> AddRawMetaFromFile(Dictionary<str
168
178
169
179
foreach ( var item in _includeMetadata )
170
180
{
171
- if ( metadata . ContainsKey ( item ) ) continue ;
181
+ var values = new List < string > ( ) ;
182
+ if ( metadata . ContainsKey ( item ) ) values = metadata [ item ] ;
172
183
173
184
DicomTag tag ;
174
185
try
@@ -181,7 +192,8 @@ private async Task<Dictionary<string, string>> AddRawMetaFromFile(Dictionary<str
181
192
}
182
193
if ( tag is not null )
183
194
{
184
- metadata . Add ( item , dcmFile . Dataset . GetString ( tag ) ) ;
195
+ values . Add ( dcmFile . Dataset . GetString ( tag ) . Trim ( ) ) ;
196
+ metadata . Add ( item , values ) ;
185
197
}
186
198
}
187
199
}
0 commit comments