Skip to content

Commit 25a5ef7

Browse files
authored
Merge pull request #294 from hubmapconsortium/Derek-Furst/prov-info-fix
Derek furst/prov info fix
2 parents 70b4951 + add5789 commit 25a5ef7

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/app_neo4j_queries.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -940,18 +940,24 @@ def get_prov_info(neo4j_driver, param_dict):
940940
rui_info_query_string = 'OPTIONAL MATCH (ds)<-[*]-(ruiSample:Sample)'
941941
rui_info_where_clause = "WHERE NOT ruiSample.rui_location IS NULL AND NOT trim(ruiSample.rui_location) = '' "
942942
dataset_status_query_string = ''
943+
first_param = True
943944
if 'group_uuid' in param_dict:
944-
group_uuid_query_string = f" WHERE ds.group_uuid = '{param_dict['group_uuid']}'"
945+
first_param = False
946+
group_uuid_query_string = f" WHERE toUpper(ds.group_uuid) = '{param_dict['group_uuid'].upper()}'"
945947
if 'organ' in param_dict:
946948
organ_query_string = 'MATCH'
947-
organ_where_clause = f", organ: '{param_dict['organ'].upper()}'"
949+
# organ_where_clause = f", organ: '{param_dict['organ'].upper()}'"
950+
organ_where_clause = f" WHERE toUPPER(organ.organ) = '{param_dict['organ'].upper()}'"
948951
if 'has_rui_info' in param_dict:
949952
rui_info_query_string = 'MATCH (ds)<-[*]-(ruiSample:Sample)'
950953
if param_dict['has_rui_info'].lower() == 'false':
951954
rui_info_query_string = 'MATCH (ds:Dataset)'
952955
rui_info_where_clause = "WHERE NOT EXISTS {MATCH (ds)<-[*]-(ruiSample:Sample) WHERE NOT ruiSample.rui_location IS NULL AND NOT TRIM(ruiSample.rui_location) = ''} MATCH (ds)<-[*]-(ruiSample:Sample)"
953956
if 'dataset_status' in param_dict:
954-
dataset_status_query_string = f" WHERE ds.status = '{param_dict['dataset_status'].lower().capitalize()}'"
957+
if first_param:
958+
dataset_status_query_string = f" WHERE toUpper(ds.status) = '{param_dict['dataset_status'].upper()}'"
959+
else:
960+
dataset_status_query_string = f" AND toUpper(ds.status) = '{param_dict['dataset_status'].upper()}'"
955961
query = (f"MATCH (ds:Dataset)<-[:ACTIVITY_OUTPUT]-(a)<-[:ACTIVITY_INPUT]-(firstSample:Sample)<-[*]-(donor:Donor)"
956962
f"{group_uuid_query_string}"
957963
f"{dataset_status_query_string}"
@@ -962,7 +968,8 @@ def get_prov_info(neo4j_driver, param_dict):
962968
f" {rui_info_query_string}"
963969
f" {rui_info_where_clause}"
964970
f" WITH ds, FIRSTSAMPLE, DONOR, METASAMPLE, collect(distinct ruiSample) as RUISAMPLE"
965-
f" {organ_query_string} (donor)-[:ACTIVITY_INPUT]->(oa)-[:ACTIVITY_OUTPUT]->(organ:Sample {{specimen_type:'organ'{organ_where_clause}}})-[*]->(ds)"
971+
f" {organ_query_string} (donor)-[:ACTIVITY_INPUT]->(oa)-[:ACTIVITY_OUTPUT]->(organ:Sample {{specimen_type:'organ'}})-[*]->(ds)"
972+
f" {organ_where_clause}"
966973
f" WITH ds, FIRSTSAMPLE, DONOR, METASAMPLE, RUISAMPLE, COLLECT(DISTINCT organ) AS ORGAN "
967974
f" OPTIONAL MATCH (ds)-[:ACTIVITY_INPUT]->(a3)-[:ACTIVITY_OUTPUT]->(processed_dataset:Dataset)"
968975
f" WITH ds, FIRSTSAMPLE, DONOR, METASAMPLE, RUISAMPLE, ORGAN, COLLECT(distinct processed_dataset) AS PROCESSED_DATASET"
@@ -971,7 +978,6 @@ def get_prov_info(neo4j_driver, param_dict):
971978
f" ds.last_modified_user_email, ds.lab_dataset_id, ds.data_types, METASAMPLE, PROCESSED_DATASET")
972979
logger.debug("======get_prov_info() query======")
973980
logger.debug(query)
974-
975981
with neo4j_driver.session() as session:
976982
# Because we're returning multiple things, we use session.run rather than session.read_transaction
977983
result = session.run(query)

0 commit comments

Comments
 (0)