Skip to content

Commit 048d45f

Browse files
committed
Merge branch 'idc-test' of https://github.com/ImagingDataCommons/IDC-Common into idc-prod
2 parents 8232f95 + 72553a4 commit 048d45f

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed

idc_collections/collex_metadata_utils.py

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,8 @@ def sortNum(x):
235235

236236
# Build data exploration context/response
237237
def 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

Comments
 (0)