@@ -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