-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
72a546f
commit c1aab1f
Showing
18 changed files
with
253 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
from sqlalchemy.orm import Mapped, mapped_column | ||
from lib.db.base import Base | ||
|
||
|
||
class DbProjectCohort(Base): | ||
__tablename__ = 'project_cohort_rel' | ||
|
||
id : Mapped[int] = mapped_column('ProjectCohortRelID', primary_key=True) | ||
project_id : Mapped[int] = mapped_column('ProjectID') | ||
cohort_id : Mapped[int] = mapped_column('CohortID') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
from typing import Optional | ||
from sqlalchemy.orm import Mapped, mapped_column | ||
from lib.db.base import Base | ||
|
||
|
||
class DbSite(Base): | ||
__tablename__ = 'psc' | ||
|
||
id : Mapped[int] = mapped_column('CenterID', primary_key=True) | ||
name : Mapped[str] = mapped_column('Name') | ||
area : Mapped[Optional[str]] = mapped_column('PSCArea') | ||
address : Mapped[Optional[str]] = mapped_column('Address') | ||
city : Mapped[Optional[str]] = mapped_column('City') | ||
state_id : Mapped[Optional[int]] = mapped_column('StateID') | ||
zip : Mapped[Optional[str]] = mapped_column('ZIP') | ||
phone_1 : Mapped[Optional[str]] = mapped_column('Phone1') | ||
phone_2 : Mapped[Optional[str]] = mapped_column('Phone2') | ||
contact_1 : Mapped[Optional[str]] = mapped_column('Contact1') | ||
contact_2 : Mapped[Optional[str]] = mapped_column('Contact2') | ||
alias : Mapped[str] = mapped_column('Alias') | ||
mri_alias : Mapped[str] = mapped_column('MRI_alias') | ||
account : Mapped[Optional[str]] = mapped_column('Account') | ||
study_site : Mapped[Optional[str]] = mapped_column('Study_site') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
|
||
from sqlalchemy import select | ||
from sqlalchemy.orm import Session as Database | ||
|
||
from lib.db.model.project_cohort import DbProjectCohort | ||
|
||
|
||
def try_get_project_cohort_with_project_id_cohort_id(db: Database, project_id: int, cohort_id: int): | ||
""" | ||
Get a project cohort relation from the database using its project ID and candidate ID, or | ||
return `None` if no relation is found. | ||
""" | ||
|
||
return db.execute(select(DbProjectCohort) | ||
.where(DbProjectCohort.project_id == project_id) | ||
.where(DbProjectCohort.cohort_id == cohort_id) | ||
).scalar_one_or_none() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
|
||
from sqlalchemy import select | ||
from sqlalchemy.orm import Session as Database | ||
|
||
from lib.db.model.session import DbSession | ||
|
||
|
||
def try_get_session_with_cand_id_visit_label(db: Database, cand_id: int, visit_label: str): | ||
""" | ||
Get a session from the database using its candidate CandID and visit label, or return `None` | ||
if no session is found. | ||
""" | ||
|
||
return db.execute(select(DbSession) | ||
.where(DbSession.cand_id == cand_id) | ||
.where(DbSession.visit_label == visit_label) | ||
).scalar_one_or_none() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
from sqlalchemy import select | ||
from sqlalchemy.orm import Session as Database | ||
|
||
from lib.db.model.candidate import DbCandidate | ||
from lib.db.model.session import DbSession | ||
from lib.db.model.site import DbSite | ||
|
||
|
||
def try_get_site_with_psc_id_visit_label(db: Database, psc_id: str, visit_label: str): | ||
""" | ||
Get a session from the database using its candidate CandID and visit label, or return `None` | ||
if no session is found. | ||
""" | ||
|
||
return db.execute(select(DbSite) | ||
.join(DbSession.site) | ||
.join(DbSession.candidate) | ||
.where(DbCandidate.psc_id == psc_id) | ||
.where(DbSession.visit_label == visit_label) | ||
).scalar_one_or_none() |
Oops, something went wrong.