@@ -286,7 +286,7 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
286286 is_origin = DataSetType .IMAGE_DATA in source_data_types [source .id ]
287287 # If a field list wasn't provided, work from a default set
288288 if is_origin and not counts_only and not len (fields ):
289- fields = ["SeriesInstanceUID" , "StudyInstanceUID" , "collection_id" , "PatientID" , "program_name" ]
289+ fields = ["SeriesInstanceUID" , "StudyInstanceUID" , "collection_id" , "PatientID" , "program_name" , "source_DOI" ]
290290 logger .info ("[STATUS] No field list provided, using default field list of: {}" .format (fields ))
291291 for dataset in data_sets :
292292 if dataset .data_type in source_data_types [source .id ]:
@@ -314,8 +314,12 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
314314 'missing' : True ,
315315 'facet' : {'unique_count' : 'unique(SeriesInstanceUID)' }}
316316
317- if disk_size and len (filters .keys ()) > 0 :
318- custom_facets ['instance_size' ] = 'sum(instance_size)'
317+ if len (filters .keys ()) > 0 :
318+ custom_facets ['dois' ] = {
319+ 'type' : "terms" , "field" : "source_DOI" , "limit" : - 1 , "missing" : False
320+ }
321+ if disk_size :
322+ custom_facets ['instance_size' ] = 'sum(instance_size)'
319323
320324 if len (custom_facets .keys ()) <= 0 :
321325 custom_facets = None
@@ -332,7 +336,6 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
332336 str ((stop - start ))
333337 ))
334338 filtered_attr_by_source = copy .deepcopy (attr_by_source )
335-
336339 for which , _attr_by_source in {'filtered_facets' : filtered_attr_by_source ,
337340 'facets' : attr_by_source }.items ():
338341 facet_counts = source_metadata .get (which , {})
@@ -344,21 +347,23 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
344347 for dataset in data_sets :
345348 if dataset .data_type in source_data_types [int (source .split (":" )[- 1 ])]:
346349 set_name = dataset .get_set_name ()
347- if (set_name == 'origin_set' ) and with_stats :
348- context ['stats' ] = {}
349-
350- if 'patient_per_collec' in facet_set :
351- context ['stats' ]['patient_per_collec' ] = facet_set ['patient_per_collec' ]
352- else :
353- context ['stats' ]['patient_per_collec' ] = 0
354- if 'study_per_collec' in facet_set :
355- context ['stats' ]['study_per_collec' ] = facet_set ['study_per_collec' ]
356- else :
357- context ['stats' ]['study_per_collec' ] = 0
358- if 'series_per_collec' in facet_set :
359- context ['stats' ]['series_per_collec' ] = facet_set ['series_per_collec' ]
360- else :
361- context ['stats' ]['series_per_collec' ] = 0
350+ if set_name == 'origin_set' :
351+ if 'dois' in facet_set :
352+ context ['dois' ] = facet_set ['dois' ]
353+ if with_stats :
354+ context ['stats' ] = {}
355+ if 'patient_per_collec' in facet_set :
356+ context ['stats' ]['patient_per_collec' ] = facet_set ['patient_per_collec' ]
357+ else :
358+ context ['stats' ]['patient_per_collec' ] = 0
359+ if 'study_per_collec' in facet_set :
360+ context ['stats' ]['study_per_collec' ] = facet_set ['study_per_collec' ]
361+ else :
362+ context ['stats' ]['study_per_collec' ] = 0
363+ if 'series_per_collec' in facet_set :
364+ context ['stats' ]['series_per_collec' ] = facet_set ['series_per_collec' ]
365+ else :
366+ context ['stats' ]['series_per_collec' ] = 0
362367
363368 if dataset .data_type in data_types and set_name in attr_sets :
364369 attr_display_vals = Attribute_Display_Values .objects .filter (
@@ -572,6 +577,8 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
572577 context ['display_file_parts_count' ] = attr_by_source ['totals' ]['display_file_parts_count' ]
573578 if 'stats' in context :
574579 attr_by_source ['stats' ] = context ['stats' ]
580+ if 'dois' in context :
581+ attr_by_source ['dois' ] = context ['dois' ]
575582 return attr_by_source
576583
577584 return context
0 commit comments