Skip to content

Commit 1e63c37

Browse files
committed
removed analysis aggregation on parent containers
1 parent 43ce64b commit 1e63c37

File tree

1 file changed

+5
-22
lines changed

1 file changed

+5
-22
lines changed

api/handlers/reporthandler.py

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -880,16 +880,17 @@ def _build_project_report(self, base_query):
880880
acquisition_ids = [a['_id'] for a in acquisitions]
881881

882882
# For the project and each session and acquisition, create a list of analysis ids
883-
ids = session_ids + acquisition_ids + [p['_id']]
884-
analysis_ids = [an['_id'] for an in config.db.analyses.find({'parent.id': {'$in': ids}})]
883+
parent_ids = session_ids + acquisition_ids + [p['_id']]
884+
analysis_ids = [an['_id'] for an in config.db.analyses.find({'parent.id': {'$in': parent_ids}})]
885885

886886
report_obj['session_count'] = len(session_ids)
887887

888888
# for each type of container below it will have a slightly modified match query
889889
cont_query = {
890890
'projects': {'_id': {'project': p['_id']}},
891891
'sessions': {'project': p['_id']},
892-
'acquisitions': {'session': {'$in': session_ids}}
892+
'acquisitions': {'session': {'$in': session_ids}},
893+
'analyses': {'parent.id' : {'$in':parent_ids}}
893894
}
894895

895896
# Create queries for files and analyses based on created date if a range was provided
@@ -900,7 +901,7 @@ def _build_project_report(self, base_query):
900901
file_q['files.created'] = base_query['created']
901902
analysis_q['analyses.created'] = base_query['created']
902903

903-
for cont_name in ['projects', 'sessions', 'acquisitions']:
904+
for cont_name in ['projects', 'sessions', 'acquisitions', 'analyses']:
904905

905906
# Aggregate file size in megabytes
906907
pipeline = [
@@ -919,24 +920,6 @@ def _build_project_report(self, base_query):
919920
if result:
920921
report_obj['file_mbs'] += result['mb_total']
921922

922-
# Aggregate analysis file size in megabytes
923-
pipeline = [
924-
{'$match': cont_query[cont_name]},
925-
{'$unwind': '$analyses'},
926-
{'$unwind': '$analyses.files'},
927-
{'$match': analysis_q},
928-
{'$project': {'mbs': {'$divide': ['$analyses.files.size', BYTES_IN_MEGABYTE]}}},
929-
{'$group': {'_id': 1, 'mb_total': {'$sum':'$mbs'}}}
930-
]
931-
932-
try:
933-
result = self._get_result(config.db.command('aggregate', cont_name, pipeline=pipeline))
934-
except APIReportException:
935-
result = None
936-
937-
if result:
938-
report_obj['file_mbs'] += result['mb_total']
939-
940923
# Create a list of all possible ids in this project hierarchy
941924
id_list = analysis_ids+acquisition_ids+session_ids
942925
id_list.append(p['_id'])

0 commit comments

Comments
 (0)