File tree Expand file tree Collapse file tree 1 file changed +27
-4
lines changed Expand file tree Collapse file tree 1 file changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -180,10 +180,15 @@ impl<'a> Visitor<'a> for IncludeFieldVisitor {
180
180
if v. to_lowercase ( ) == "all" {
181
181
Ok ( IncludeField :: All )
182
182
} else {
183
- let entry = StandardDataDictionary
184
- . by_expr ( v)
185
- . ok_or_else ( || E :: custom ( format ! ( "unknown tag {v}" ) ) ) ?;
186
- Ok ( IncludeField :: List ( vec ! [ entry. tag( ) ] ) )
183
+ v. split ( ',' )
184
+ . map ( |v| {
185
+ let entry = StandardDataDictionary
186
+ . by_expr ( v)
187
+ . ok_or_else ( || E :: custom ( format ! ( "unknown tag {v}" ) ) ) ?;
188
+ Ok ( entry. tag ( ) )
189
+ } )
190
+ . collect :: < Result < Vec < _ > , _ > > ( )
191
+ . map ( IncludeField :: List )
187
192
}
188
193
}
189
194
@@ -298,6 +303,24 @@ mod tests {
298
303
) ;
299
304
}
300
305
306
+ #[ test]
307
+ fn parse_query_params_multiple_includefield ( ) {
308
+ let uri =
309
+ Uri :: from_static ( "http://test?offset=1&limit=42&includefield=PatientWeight,00100010" ) ;
310
+ let Query ( params) = Query :: < QueryParameters > :: try_from_uri ( & uri) . unwrap ( ) ;
311
+
312
+ assert_eq ! (
313
+ params,
314
+ QueryParameters {
315
+ offset: 1 ,
316
+ limit: 42 ,
317
+ include_field: IncludeField :: List ( vec![ tags:: PATIENT_WEIGHT , tags:: PATIENT_NAME ] ) ,
318
+ match_criteria: MatchCriteria ( vec![ ] ) ,
319
+ fuzzy_matching: false ,
320
+ }
321
+ ) ;
322
+ }
323
+
301
324
#[ test]
302
325
fn parse_query_params_default ( ) {
303
326
let uri = Uri :: from_static ( "http://test" ) ;
You can’t perform that action at this time.
0 commit comments