@@ -235,7 +235,8 @@ def sortNum(x):
235235
236236# Build data exploration context/response
237237def build_explorer_context (is_dicofdic , source , versions , filters , fields , order_docs , counts_only , with_related ,
238- with_derived , collapse_on , is_json , uniques = None , totals = None , disk_size = False ):
238+ with_derived , collapse_on , is_json , uniques = None , totals = None , with_stats = True ,
239+ disk_size = False ):
239240 attr_by_source = {}
240241 attr_sets = {}
241242 context = {}
@@ -284,7 +285,6 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
284285 if is_origin and not len (fields ):
285286 fields = source .get_attr (for_faceting = False ).filter (default_ui_display = True ).values_list ('name' ,
286287 flat = True )
287-
288288 for dataset in data_sets :
289289 if dataset .data_type in source_data_types [source .id ]:
290290 set_type = dataset .get_set_name ()
@@ -300,22 +300,18 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
300300 attr_by_source [set_type ]['attributes' ].update (
301301 {attr .name : {'source' : source .id , 'obj' : attr , 'vals' : None , 'id' : attr .id } for attr in attrs }
302302 )
303- custom_facets = None
303+ custom_facets = {}
304304
305- disk_size = True
306- if disk_size :
307- custom_facets = {
308- 'instance_size' : 'sum(instance_size)' ,
309- 'patient_per_collec' :{'type' : 'terms' , 'field' : 'collection_id' , 'limit' : - 1 , 'missing' : True ,'facet' : {'unique_count' : 'unique(PatientID)' }},
310- 'study_per_collec' : {'type' : 'terms' , 'field' : 'collection_id' , 'limit' : - 1 , 'missing' : True ,
311- 'facet' : {'unique_count' : 'unique(StudyInstanceUID)' }},
312- 'series_per_collec2' : {'type' : 'terms' , 'field' : 'collection_id' , 'limit' : - 1 , 'missing' : True ,
313- 'facet' : {'unique_count' : 'unique(SeriesInstanceUID)' }},
314- 'size_per_collec2' : {'type' : 'terms' , 'field' : 'collection_id' , 'limit' : 3000 , 'facet' : {'instance_size' : 'sum(instance_size)' }},
315- 'size_per_pat' : {'type' : 'terms' , 'field' : 'PatientID' , 'limit' : 3000 , 'facet' : {'instance_size' : 'sum(instance_size)' }}
305+ if with_stats :
306+ custom_facets ['patient_per_collec' ] = {'type' : 'terms' , 'field' : 'collection_id' , 'limit' : - 1 , 'missing' : True ,'facet' : {'unique_count' : 'unique(PatientID)' }}
307+ custom_facets ['study_per_collec' ] = {'type' : 'terms' , 'field' : 'collection_id' , 'limit' : - 1 , 'missing' : True ,'facet' : {'unique_count' : 'unique(StudyInstanceUID)' }}
308+ custom_facets ['series_per_collec' ]= {'type' : 'terms' , 'field' : 'collection_id' , 'limit' : - 1 , 'missing' : True ,'facet' : {'unique_count' : 'unique(SeriesInstanceUID)' }}
316309
310+ if disk_size and len (filters .keys ()) > 0 :
311+ custom_facets ['instance_size' ] = 'sum(instance_size)'
317312
318- }
313+ if len (custom_facets .keys ()) <= 0 :
314+ custom_facets = None
319315
320316 start = time .time ()
321317 source_metadata = get_collex_metadata (
@@ -341,7 +337,7 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
341337 for dataset in data_sets :
342338 if dataset .data_type in source_data_types [int (source .split (":" )[- 1 ])]:
343339 set_name = dataset .get_set_name ()
344- if (set_name == 'origin_set' ) and disk_size :
340+ if (set_name == 'origin_set' ) and with_stats :
345341 context ['stats' ]= {}
346342
347343 if 'patient_per_collec' in facet_set :
@@ -352,15 +348,10 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
352348 context ['stats' ]['study_per_collec' ]= facet_set ['study_per_collec' ]
353349 else :
354350 context ['stats' ]['study_per_collec' ] = 0
355- if 'series_per_collec2 ' in facet_set :
356- context ['stats' ]['series_per_collec' ] = facet_set ['series_per_collec2 ' ]
351+ if 'series_per_collec ' in facet_set :
352+ context ['stats' ]['series_per_collec' ] = facet_set ['series_per_collec ' ]
357353 else :
358354 context ['stats' ]['series_per_collec' ] = 0
359- if 'size_per_collec2' in facet_set :
360- context ['stats' ]['size_per_collec' ] = facet_set ['size_per_collec2' ]
361- else :
362- context ['stats' ]['size_per_collec' ] = 0
363-
364355
365356
366357 if dataset .data_type in data_types and set_name in attr_sets :
0 commit comments