@@ -566,10 +566,10 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
566566 return None
567567
568568
569- def filter_manifest (filters , sources , versions , fields , limit , offset = 0 , level = "SeriesInstanceUID" , with_size = False ):
569+ def filter_manifest (filters , sources , versions , fields , limit , offset = 0 , level = "SeriesInstanceUID" , with_size = False , series_only = False ):
570570 try :
571571 custom_facets = None
572- search_by = {x : "StudyInstanceUID" for x in filters } if level == "SeriesInstanceUID" else None
572+ search_by = {x : "StudyInstanceUID" for x in filters } if ( level == "SeriesInstanceUID" and not series_only ) else None
573573
574574 if with_size :
575575 # build facet for instance_size aggregation
@@ -716,7 +716,8 @@ def create_file_manifest(request, cohort=None):
716716 loc = req .get ('loc_type_{}' .format (file_type ), 'aws' )
717717 storage_bucket = '%s_bucket' % loc
718718 instructions = ""
719- from_cart = (req .get ('from_cart' , "False" ).lower () == "true" )
719+ from_cart = bool (req .get ('from_cart' , "False" ).lower () == "true" )
720+ single_series = bool (req .get ("single_series" , "False" ).lower () == "true" )
720721
721722 # Fields we need to fetch
722723 field_list = ["PatientID" , "collection_id" , "source_DOI" , "StudyInstanceUID" , "SeriesInstanceUID" , "crdc_instance_uuid" ,
@@ -803,7 +804,7 @@ def create_file_manifest(request, cohort=None):
803804 if from_cart :
804805 items = get_cart_manifest (filtergrp_list , partitions , mxstudies , mxseries , field_list , MAX_FILE_LIST_ENTRIES )
805806 else :
806- items = filter_manifest (filters , sources , versions , field_list , MAX_FILE_LIST_ENTRIES , with_size = True )
807+ items = filter_manifest (filters , sources , versions , field_list , MAX_FILE_LIST_ENTRIES , with_size = True , series_only = single_series )
807808 if 'docs' in items :
808809 manifest = items ['docs' ]
809810 if not manifest or len (manifest ) <= 0 :
@@ -1901,6 +1902,8 @@ def get_cart_data_studylvl(filtergrp_list, partitions, limit, offset, length, mx
19011902 limit = int (mxseries ), facets = custom_facets , sort = sortStr , counts_only = False , collapse_on = None ,
19021903 uniques = None , with_cursor = None , stats = None , totals = totals , op = 'AND'
19031904 )
1905+ print ("series result:" )
1906+ print (solr_result_series_lvl )
19041907 if with_records and ('response' in solr_result_series_lvl ) and ('docs' in solr_result_series_lvl ['response' ]):
19051908 serieslvl_found = True
19061909 for row in solr_result_series_lvl ['response' ]['docs' ]:
@@ -1926,6 +1929,8 @@ def get_cart_data_studylvl(filtergrp_list, partitions, limit, offset, length, mx
19261929 sort = sortStr , counts_only = False , collapse_on = None , uniques = None , with_cursor = None , stats = None ,
19271930 totals = ['SeriesInstanceUID' ], op = 'AND' , limit = int (limit ), offset = int (offset )
19281931 )
1932+ print ("study result:" )
1933+ print (solr_result )
19291934 solr_result ['response' ]['total' ] = solr_result ['facets' ]['total_SeriesInstanceUID' ]
19301935 solr_result ['response' ]['total_instance_size' ] = solr_result ['facets' ]['instance_size' ]
19311936 else :
@@ -2057,7 +2062,7 @@ def filtergrp_to_sql(filtergrp_lst):
20572062 filtersql = get_bq_metadata (
20582063 filters , ["crdc_series_uuid" , storage_loc ], data_version , None , ["crdc_series_uuid" , storage_loc ],
20592064 no_submit = True , search_child_records_by = "StudyInstanceUID" ,
2060- reformatted_fields = reformatted_fields
2065+ reformatted_fields = reformatted_fields
20612066 )
20622067 # final cart sql may involve several filters. Need to avoid collisions in parameter sets
20632068 for param in filtersql ['params' ]:
0 commit comments