diff --git a/backend/routers/claim_statement_files.py b/backend/routers/claim_statement_files.py new file mode 100644 index 00000000..87104724 --- /dev/null +++ b/backend/routers/claim_statement_files.py @@ -0,0 +1,112 @@ +import mysql.connector +from fastapi import APIRouter, HTTPException +from pydantic import BaseModel +#from ..database import dbConnection +import database +from datetime import date +#SuperToken Auth from front end +from supertokens_python.recipe.session.framework.fastapi import verify_session +from supertokens_python.recipe.session import SessionContainer +from fastapi import Depends + +router = APIRouter() + +class claimStatementDeleteRequest(BaseModel): + idclaim_statement_file: int + +class claimStatementInsertRequest(BaseModel): + app_id: str + business_id: str + file_path: str + file_name: str + + +# Get List of all files by patient +@router.get("/files/claim-statement/patient/{app_id}", tags=["Claim Statement Files"]) +async def read_all_claim_statement_files_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): + db = database.dbConnection.dbPatientManagerConnect() + cursor = db.cursor() + query = "SELECT * FROM claim_statement_file where app_id = %s ORDER BY insert_date DESC" + cursor.execute(query, (app_id,)) + items = [ + { + "idclaim_statement_file": item[0], + "app_id": item[1], + "business_id": item[2], + "insert_date": item[3], + "file_path": item[4], + "file_name": item[5], + } + for item in cursor.fetchall() + ] + cursor.close() + db.close() + return items + +# Get List of all files by patient +@router.get("/files/claim-statement/business/{business_id}", tags=["Claim Statement Files"]) +async def read_all_claim_statement_files_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): + db = database.dbConnection.dbPatientManagerConnect() + cursor = db.cursor() + query = "SELECT * FROM claim_statement_file where business_id = %s ORDER BY insert_date DESC" + cursor.execute(query, (business_id,)) + items = [ + { + "idclaim_statement_file": item[0], + "app_id": item[1], + "business_id": item[2], + "insert_date": item[3], + "file_path": item[4], + "file_name": item[5], + } + for item in cursor.fetchall() + ] + cursor.close() + db.close() + return items + +# Delete Patient note on table +@router.delete("/files/claim-statement/delete/", tags=["Claim Statement Files"]) +async def Delete_Patient_File(itemRequest : claimStatementDeleteRequest, session: SessionContainer = Depends(verify_session())): #session: SessionContainer = Depends(verify_session()) + # today = date.today() + db = database.dbConnection.dbPatientManagerConnect() + cursor = db.cursor() + query = "delete from claim_statement_file " + query += "where idclaim_statement_file=%s" + # notetData = (itemRequest.idpatient_notes) + try: + cursor.execute(query, (str(itemRequest.idclaim_statement_file),)) + except Exception as error: + raise HTTPException(status_code=404, detail="Failed to Delete Record") + #return {"query": query, "message": error} + db.commit() + cursor.close() + db.close() + return {"message": "Successfully deleted Record"} + +# Insert Patient note into table +@router.post("/files/claim-statement/insert/", tags=["Claim Statement Files"], status_code=201) +async def insert_Patient_Files(itemRequest : claimStatementInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session()) + today = date.today() + db = database.dbConnection.dbPatientManagerConnect() + cursor = db.cursor() + query = "insert into claim_statement_file " + query += "(app_id, business_id, file_path, file_name, insert_date) " + query += "values (%s, %s, %s, %s, %s)" + notetData = ( + itemRequest.app_id, + itemRequest.business_id, + itemRequest.file_path, + itemRequest.file_name, + today, + ) + try: + cursor.execute(query, notetData) + except Exception as error: + print(error) + raise HTTPException(status_code=404, detail="Failed to Create Record") + # return {"message": error} + db.commit() + cursor.close() + db.close() + return {"message": "Successfully Created file Record"}