Skip to content

Commit d6590fd

Browse files
authored
Merge pull request #404 from ImagingDataCommons/hotfix-gw-sprint68
avoid unnecessary instance size calculations
2 parents 6765774 + 73e9055 commit d6590fd

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

idc_collections/collex_metadata_utils.py

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ 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, disk_size=True):
239239
attr_by_source = {}
240240
attr_sets = {}
241241
context = {}
@@ -300,18 +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 and filters and len(filters.keys()) > 0:
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-
}
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)'}}
309+
310+
if disk_size:
311+
custom_facets['instance_size'] ='sum(instance_size)'
312+
313+
if (len(custom_facets.keys())==0):
314+
custom_facets=None
315315

316316
start = time.time()
317317
source_metadata = get_collex_metadata(
@@ -337,7 +337,7 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
337337
for dataset in data_sets:
338338
if dataset.data_type in source_data_types[int(source.split(":")[-1])]:
339339
set_name = dataset.get_set_name()
340-
if (set_name=='origin_set') and disk_size:
340+
if (set_name=='origin_set') and with_stats:
341341
context['stats']={}
342342

343343
if 'patient_per_collec' in facet_set:
@@ -348,15 +348,10 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
348348
context['stats']['study_per_collec']=facet_set['study_per_collec']
349349
else:
350350
context['stats']['study_per_collec'] = 0
351-
if 'series_per_collec2' in facet_set:
352-
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']
353353
else:
354354
context['stats']['series_per_collec'] = 0
355-
if 'size_per_collec2' in facet_set:
356-
context['stats']['size_per_collec'] = facet_set['size_per_collec2']
357-
else:
358-
context['stats']['size_per_collec'] = 0
359-
360355

361356

362357
if dataset.data_type in data_types and set_name in attr_sets:

0 commit comments

Comments
 (0)