diff options
author | Frederick Muriuki Muriithi | 2024-03-29 13:14:14 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-03-29 13:14:14 +0300 |
commit | 6326357250711650bc8b4c0b90f8c0b94d72c39e (patch) | |
tree | 26bfb9f169f45176dbc439839b7d96d07de52627 /qc_app/db/tissues.py | |
parent | 62e54fd5b457d67f3f01a35e28eae94d653d9908 (diff) | |
download | gn-uploader-6326357250711650bc8b4c0b90f8c0b94d72c39e.tar.gz |
Add UI to select/create tissue.
Diffstat (limited to 'qc_app/db/tissues.py')
-rw-r--r-- | qc_app/db/tissues.py | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/qc_app/db/tissues.py b/qc_app/db/tissues.py index ebf24fd..062e824 100644 --- a/qc_app/db/tissues.py +++ b/qc_app/db/tissues.py @@ -1,5 +1,5 @@ """Handle db interactions for tissue.""" -from typing import Optional +from typing import Union, Optional import MySQLdb as mdb from MySQLdb.cursors import DictCursor @@ -10,6 +10,7 @@ def all_tissues(conn: mdb.Connection) -> tuple[dict, ...]: cursor.execute("SELECT * FROM Tissue ORDER BY TissueName") return tuple(dict(row) for row in cursor.fetchall()) + def tissue_by_id(conn: mdb.Connection, tissueid: int) -> Optional[dict]: """Retrieve a tissue by its ID""" with conn.cursor(cursorclass=DictCursor) as cursor: @@ -20,3 +21,31 @@ def tissue_by_id(conn: mdb.Connection, tissueid: int) -> Optional[dict]: return dict(result) return None + + +def create_new_tissue( + conn: mdb.Connection, + name: str, + shortname: str, + birnlexid: Optional[str] = None, + birnlexname: Optional[str] = None +) -> dict[str, Union[int, str, None]]: + """Add a new tissue, organ or biological material to the database.""" + with conn.cursor() as cursor: + cursor.execute( + "INSERT INTO " + "Tissue(TissueName, Name, Short_Name, BIRN_lex_ID, BIRN_lex_Name) " + "VALUES (%s, %s, %s, %s, %s)", + (name, name, shortname, birnlexid, birnlexname)) + tissueid = cursor.lastrowid + cursor.execute("UPDATE Tissue SET TissueId=%s WHERE Id=%s", + (tissueid, tissueid)) + return { + "Id": tissueid, + "TissueId": tissueid, + "TissueName": name, + "Name": name, + "Short_Name": shortname, + "BIRN_lex_ID": birnlexid, + "BIRN_lex_Name": birnlexname + } |