@@ -1110,7 +1110,7 @@ def parse_partition_string(partition):
11101110 return part_str
11111111
11121112
1113- def parse_partition_att_strings (query_sets , partition , join ):
1113+ def parse_partition_att_strings (query_sets , partition , join_with_child ):
11141114 attStrA = []
11151115 filt2D = partition ['filt' ]
11161116 for i in range (0 , len (filt2D )):
@@ -1133,19 +1133,19 @@ def parse_partition_att_strings(query_sets, partition, join):
11331133 else :
11341134 tmpA .append ('NOT (' + filtStr + ')' )
11351135 attStr = ' AND ' .join (tmpA )
1136- if join :
1136+ if join_with_child :
11371137 attStr = attStr .replace ('"' ,'\\ "' )
11381138 attStr = '_query_:"{!join to=StudyInstanceUID from=StudyInstanceUID}' + attStr + '"'
11391139
11401140 attStrA .append (attStr )
11411141 return attStrA
11421142
11431143
1144- def create_cart_query_string (query_list , partitions , join ):
1144+ def create_cart_query_string (query_list , partitions , join_with_child ):
11451145 solrA = []
11461146 for i in range (len (partitions )):
11471147 cur_part = partitions [i ]
1148- cur_part_attr_strA = parse_partition_att_strings (query_list , cur_part , join )
1148+ cur_part_attr_strA = parse_partition_att_strings (query_list , cur_part , join_with_child )
11491149 cur_part_str = parse_partition_string (cur_part )
11501150 for j in range (len (cur_part_attr_strA )):
11511151 if (len (cur_part_attr_strA [j ])> 0 ):
@@ -1244,7 +1244,13 @@ def create_cart_query_string(query_list, partitions, join):
12441244 }
12451245cart_facets_serieslvl = {"series_in_cart" : {"type" : "terms" , "field" : "collection_d" , "limit" :500 ,
12461246 "facet" : { "unique_series_cart" : "unique(SeriesInstanceUID)" },
1247- }}
1247+
1248+ },
1249+ "series_in_filter_and_cart" : {"type" : "terms" , "field" : "collection_id" , "limit" : 500 ,
1250+ "facet" : {
1251+ "unique_series_filter_and_cart" : "unique(SeriesInstanceUID)" },
1252+ "domain" : {"filter" : "" }}
1253+ }
12481254
12491255
12501256upstream_cart_facets = {
@@ -1391,7 +1397,7 @@ def generate_solr_cart_and_filter_strings(current_filters,filtergrp_list, partit
13911397 cart_query_str_studylvl = None
13921398
13931399 if (len (partitions_series_lvl ) > 0 ):
1394- cart_query_str_serieslvl = create_cart_query_string (query_list , partitions_series_lvl , False )
1400+ cart_query_str_serieslvl = create_cart_query_string (query_list , partitions_series_lvl , True )
13951401 else :
13961402 cart_query_str_serieslvl = None
13971403
@@ -1667,7 +1673,7 @@ def get_table_data_with_cart_data(tabletype, sortarg, sortdir, current_filters,f
16671673 if tabletype in ["cases" ,"series" ,"studies" ]:
16681674 collstr = list (attrRowNumMp ["collections" ].keys ())
16691675 colrngfilt = '(+collection_id:(' + ' OR ' .join (['"' + x + '"' for x in collstr ]) + '))'
1670- colrngQ = '(' + colrngfilt + ')(' + cart_query_str_studylvl + ')'
1676+ colrngQ = '(' + colrngfilt + ')(' + cart_query_str_all + ')'
16711677 custom_facets ["upstream_collection_cart" ]= copy .deepcopy (upstream_cart_facets ["upstream_collection_cart" ])
16721678 custom_facets ["upstream_collection_cart" ]["domain" ]["filter" ]= colrngQ
16731679
@@ -1677,7 +1683,7 @@ def get_table_data_with_cart_data(tabletype, sortarg, sortdir, current_filters,f
16771683 if tabletype in ["series" ,"studies" ]:
16781684 casestr = list (attrRowNumMp ["cases" ].keys ())
16791685 caserngfilt = '(+PatientID:(' + ' OR ' .join (['"' + x + '"' for x in casestr ]) + '))'
1680- caserngQ = '(' + caserngfilt + ')(' + cart_query_str_studylvl + ')'
1686+ caserngQ = '(' + caserngfilt + ')(' + cart_query_str_all + ')'
16811687 custom_facets ["upstream_case_cart" ] = copy .deepcopy (upstream_cart_facets ["upstream_case_cart" ])
16821688 custom_facets ["upstream_case_cart" ]["domain" ]["filter" ] = caserngQ
16831689 custom_facets ["upstream_case_filter_cart" ] = copy .deepcopy (upstream_cart_facets ["upstream_case_filter_cart" ])
@@ -1687,7 +1693,7 @@ def get_table_data_with_cart_data(tabletype, sortarg, sortdir, current_filters,f
16871693 if tabletype in ["series" ]:
16881694 studystr = list (attrRowNumMp ["studies" ].keys ())
16891695 studyrngfilt = '(+StudyInstanceUID:(' + ' OR ' .join (['"' + x + '"' for x in studystr ]) + '))'
1690- studyrngQ = '(' + studyrngfilt + ')(' + cart_query_str_studylvl + ')'
1696+ studyrngQ = '(' + studyrngfilt + ')(' + cart_query_str_all + ')'
16911697 custom_facets ["upstream_study_cart" ] = copy .deepcopy (upstream_cart_facets ["upstream_study_cart" ])
16921698 custom_facets ["upstream_study_cart" ]["domain" ]["filter" ] = studyrngQ
16931699 custom_facets ["upstream_study_filter_cart" ] = copy .deepcopy (upstream_cart_facets ["upstream_study_filter_cart" ])
@@ -1736,8 +1742,13 @@ def get_table_data_with_cart_data(tabletype, sortarg, sortdir, current_filters,f
17361742 if not (cart_query_str_serieslvl == None ) and (len (cart_query_str_serieslvl )> 0 ):
17371743
17381744 custom_facets = cart_facets_serieslvl
1739- custom_facets ["series_in_cart" ]["domain" ]= {"filter" : cart_query_str_serieslvl }
1740- custom_facets ["series_in_cart" ]["field" ]= id
1745+ custom_facets ["series_in_filter_and_cart" ]["domain" ]= {"filter" : cart_query_str_serieslvl }
1746+ custom_facets ["series_in_filter_and_cart" ]["field" ]= id
1747+
1748+ in_cart_domain_serieslvl = {"filter" : '(+' + cart_query_str_serieslvl + ')' ,"excludeTags" : "f1" } if with_filter else {"filter" : cart_query_str_serieslvl }
1749+ custom_facets ["series_in_cart" ]["field" ] = id
1750+ custom_facets ["series_in_cart" ]["domain" ] = in_cart_domain_serieslvl
1751+
17411752
17421753 if tabletype in ["cases" ,"studies" ,"series" ]:
17431754 colrngQ = '(' + colrngfilt + ')(' + cart_query_str_serieslvl + ')'
@@ -1767,6 +1778,8 @@ def get_table_data_with_cart_data(tabletype, sortarg, sortdir, current_filters,f
17671778 custom_facets ["upstream_study_filter_cart" ] = copy .deepcopy (upstream_cart_facets ["upstream_study_filter_cart" ])
17681779 custom_facets ["upstream_study_filter_cart" ]["domain" ]["filter" ] = studyrngQ + no_tble_item_filt_str
17691780
1781+
1782+
17701783 solr_facet_result_serieslvl = query_solr (
17711784 collection = image_source_series .name , fields = field_list , query_string = None , fqs = fqset [:],
17721785 facets = custom_facets , sort = sortStr , counts_only = True , collapse_on = None , offset = 0 , limit = limit ,
@@ -2024,6 +2037,7 @@ def get_cart_data_serieslvl(filtergrp_list, partitions, field_list, limit, offse
20242037 }
20252038
20262039 query_list = []
2040+
20272041 for filtergrp in filtergrp_list :
20282042 query_set_for_filt = []
20292043 if (len (filtergrp )> 0 ):
@@ -2037,7 +2051,7 @@ def get_cart_data_serieslvl(filtergrp_list, partitions, field_list, limit, offse
20372051
20382052 query_list .append (query_string_for_filt )
20392053
2040- query_str = create_cart_query_string (query_list , partitions , False )
2054+ query_str = create_cart_query_string (query_list , partitions , True )
20412055
20422056 solr_result = query_solr (collection = image_source .name , fields = field_list , query_string = None , fqs = [query_str ],
20432057 facets = custom_facets ,sort = None , counts_only = False ,collapse_on = 'SeriesInstanceUID' , offset = offset , limit = limit , uniques = None ,
0 commit comments