Skip to content

Commit

Permalink
[ENH] split session query parameter into phenotypic + imaging (#64)
Browse files Browse the repository at this point in the history
* split session query parameter into phenotypic + imaging

* fix formatting error in ratio of successfully queried nodes
  • Loading branch information
alyssadai authored Jan 29, 2024
1 parent 350469a commit 6f73b55
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 8 deletions.
15 changes: 10 additions & 5 deletions app/api/crud.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ async def get(
sex: str,
diagnosis: str,
is_control: bool,
min_num_sessions: int,
min_num_imaging_sessions: int,
min_num_phenotypic_sessions: int,
assessment: str,
image_modal: str,
node_urls: list[str],
Expand All @@ -35,8 +36,10 @@ async def get(
Subject diagnosis.
is_control : bool
Whether or not subject is a control.
min_num_sessions : int
min_num_imaging_sessions : int
Subject minimum number of imaging sessions.
min_num_phenotypic_sessions : int
Subject minimum number of phenotypic sessions.
assessment : str
Non-imaging assessment completed by subjects.
image_modal : str
Expand Down Expand Up @@ -68,8 +71,10 @@ async def get(
params["diagnosis"] = diagnosis
if is_control:
params["is_control"] = is_control
if min_num_sessions:
params["min_num_sessions"] = min_num_sessions
if min_num_imaging_sessions:
params["min_num_imaging_sessions"] = min_num_imaging_sessions
if min_num_phenotypic_sessions:
params["min_num_phenotypic_sessions"] = min_num_phenotypic_sessions
if assessment:
params["assessment"] = assessment
if image_modal:
Expand Down Expand Up @@ -120,7 +125,7 @@ async def get(
},
)

print(f"All nodes queried successfully ({total_nodes/total_nodes}).")
print(f"All nodes queried successfully ({total_nodes}/{total_nodes}).")
return {
"errors": node_errors,
"responses": cross_node_results,
Expand Down
3 changes: 2 additions & 1 deletion app/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ class QueryModel(BaseModel):
sex: str = None
diagnosis: str = None
is_control: bool = None
min_num_sessions: int = None
min_num_imaging_sessions: int = None
min_num_phenotypic_sessions: int = None
assessment: str = None
image_modal: str = None
# TODO: Replace default value with union of local and public nodes once https://github.com/neurobagel/federation-api/issues/28 is merged
Expand Down
3 changes: 2 additions & 1 deletion app/api/routers/query.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ async def get_query(query: QueryModel = Depends(QueryModel)):
query.sex,
query.diagnosis,
query.is_control,
query.min_num_sessions,
query.min_num_imaging_sessions,
query.min_num_phenotypic_sessions,
query.assessment,
query.image_modal,
query.node_url,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,4 +202,4 @@ async def mock_httpx_get(self, **kwargs):
assert response["nodes_response_status"] == "success"
assert response["errors"] == []
assert len(response["responses"]) == 2
assert "All nodes queried successfully" in captured.out
assert "All nodes queried successfully (2/2)" in captured.out

0 comments on commit 6f73b55

Please sign in to comment.