Skip to content

Commit c909593

Browse files
authored
Merge pull request #388 from ImagingDataCommons/idc-prod-sp
v18
2 parents dfa7365 + 9211276 commit c909593

File tree

5 files changed

+68
-14
lines changed

5 files changed

+68
-14
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 3.2.20 on 2023-11-17 00:18
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('cohorts', '0008_auto_20230531_1711'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='filter',
15+
name='operator',
16+
field=models.CharField(choices=[('B', '_btw'), ('EB', '_btwe'), ('BE', '_ebtw'), ('EBE', '_ebtwe'), ('GE', '_gte'), ('LE', '_lte'), ('G', '_gt'), ('L', '_lt'), ('A', '_and'), ('O', '_or'), ('E', '_eq')], default='O', max_length=4),
17+
),
18+
]

idc_collections/admin.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121

2222
class Program_Admin(admin.ModelAdmin):
2323
list_display = (
24-
'name',
24+
'full_name',
2525
'short_name',
26+
'display_name',
2627
'description',
2728
'active',
2829
'owner',

idc_collections/collex_metadata_utils.py

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,8 @@ def build_explorer_context(is_dicofdic, source, versions, filters, fields, order
468468
'projects': {},
469469
'val': 0,
470470
'prog_attr_id': prog_attr_id,
471-
'collex_attr_id': collex_attr_id
471+
'collex_attr_id': collex_attr_id,
472+
'display_name': collection.program.display_name if collection.program else collection.name.upper()
472473
}
473474
if collection.collection_id in context['collections']:
474475
name = collection.program.short_name if collection.program else collection.name
@@ -778,7 +779,7 @@ def get_collex_metadata(filters, fields, record_limit=3000, offset=0, counts_onl
778779
collapse_on='PatientID', order_docs=None, sources=None, versions=None, with_derived=True,
779780
facets=None, records_only=False, sort=None, uniques=None, record_source=None, totals=None,
780781
search_child_records_by=None, filtered_needed=True, custom_facets=None, raw_format=False,
781-
default_facets=True):
782+
default_facets=True, aux_sources=None):
782783

783784
try:
784785
source_type = sources.first().source_type if sources else DataSource.SOLR
@@ -816,7 +817,7 @@ def get_collex_metadata(filters, fields, record_limit=3000, offset=0, counts_onl
816817
filters, fields, sources, counts_only, collapse_on, record_limit, offset, facets, records_only, sort,
817818
uniques, record_source, totals, search_child_records_by=search_child_records_by,
818819
filtered_needed=filtered_needed, custom_facets=custom_facets, raw_format=raw_format,
819-
default_facets=default_facets
820+
default_facets=default_facets,aux_sources=aux_sources
820821
)
821822
stop = time.time()
822823
logger.debug("Metadata received: {}".format(stop-start))
@@ -933,7 +934,7 @@ def create_query_set(solr_query, sources, source, all_ui_attrs, image_source, Da
933934
def get_metadata_solr(filters, fields, sources, counts_only, collapse_on, record_limit, offset=0, attr_facets=None,
934935
records_only=False, sort=None, uniques=None, record_source=None, totals=None, cursor=None,
935936
search_child_records_by=None, filtered_needed=True, custom_facets=None, sort_field=None,
936-
raw_format=False, default_facets=True):
937+
raw_format=False, default_facets=True, aux_sources=None):
937938

938939
filters = filters or {}
939940
results = {'docs': None, 'facets': {}}
@@ -950,9 +951,15 @@ def get_metadata_solr(filters, fields, sources, counts_only, collapse_on, record
950951
cache_as="ui_facet_set" if not sources.contains_inactive_versions() and not attr_facets else None
951952
)
952953

953-
all_ui_attrs = fetch_data_source_attr(
954-
sources, {'for_ui': True, 'for_faceting': False, 'active_only': True},
955-
cache_as="all_ui_attr" if not sources.contains_inactive_versions() else None)
954+
all_ui_attrs =[]
955+
if aux_sources is None:
956+
all_ui_attrs = fetch_data_source_attr(
957+
sources, {'for_ui': True, 'for_faceting': False, 'active_only': True},
958+
cache_as="all_ui_attr" if not sources.contains_inactive_versions() else None)
959+
else:
960+
all_ui_attrs = fetch_data_source_attr(
961+
aux_sources, {'for_ui': True, 'for_faceting': False, 'active_only': True},
962+
cache_as="all_ui_attr" if not sources.contains_inactive_versions() else None)
956963

957964
source_data_types = fetch_data_source_types(sources)
958965

@@ -1010,7 +1017,10 @@ def get_metadata_solr(filters, fields, sources, counts_only, collapse_on, record
10101017
solr_facets_filtered = {}
10111018
solr_facets_filtered.update(custom_facets)
10121019

1013-
query_set = create_query_set(solr_query, sources, source, all_ui_attrs, image_source, DataSetType)
1020+
if aux_sources is None:
1021+
query_set = create_query_set(solr_query, sources, source, all_ui_attrs, image_source, DataSetType)
1022+
else:
1023+
query_set = create_query_set(solr_query, aux_sources, source, all_ui_attrs, image_source, DataSetType)
10141024

10151025
stop = time.time()
10161026
logger.debug("[STATUS] Time to build Solr submission: {}s".format(str(stop-start)))
@@ -1477,10 +1487,10 @@ def get_bq_metadata(filters, fields, data_version, sources_and_attrs=None, group
14771487
break
14781488
order_by = new_order
14791489

1480-
# Failures to find grouping tables typically mean:
1481-
# * the wrong version is being polled for the data sources
1482-
# * the attribute isn't found in any of these tables
1483-
# Make sure the right version is being used!
1490+
# Two main reasons you'll get an exception here:
1491+
# the wrong version is being used
1492+
# there are no attributes in the data source
1493+
# Check those before wasting ANY time debugging
14841494
if group_by:
14851495
new_groups = []
14861496
for grouping in group_by:
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 3.2.20 on 2023-11-17 00:27
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('idc_collections', '0010_alter_collection_cancer_type'),
10+
]
11+
12+
operations = [
13+
migrations.RenameField(
14+
model_name='program',
15+
old_name='name',
16+
new_name='full_name',
17+
),
18+
migrations.AddField(
19+
model_name='program',
20+
name='display_name',
21+
field=models.CharField(max_length=255, null=True),
22+
),
23+
]

idc_collections/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ class Program(models.Model):
4949
id = models.AutoField(primary_key=True)
5050
# Eg. TCGA
5151
short_name = models.CharField(max_length=15, null=False, blank=False)
52+
# Preferred name to display in the UI if not the short name
53+
display_name = models.CharField(max_length=255, null=True)
5254
# Eg. The Cancer Genome Atlas
53-
name = models.CharField(max_length=255, null=True)
55+
full_name = models.CharField(max_length=255, null=True)
5456
description = models.TextField(null=True, blank=True)
5557
active = models.BooleanField(default=True)
5658
objects = ProgramManager()

0 commit comments

Comments
 (0)