Files
stage-and-suitcase-mih/backend/routers/medicine.py
2024-07-04 16:55:32 +02:00

59 lines
1.8 KiB
Python

from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
import os
import xlrd
router = APIRouter()
class medicine(BaseModel):
name: str
unit: str
#get user by email & doc Office ID
@router.get("/users/medicine/all", tags="medicine")
async def read_all_medicine():
return getMedicineData()
def getMedicineData():
# location = Path(__file__).parent()
# medFile = (location / 'medicines/Database-Of-Medicine-Prices-31-May-2024.xls').resolve()
path = os.getcwd()
parentDir = os.path.abspath(os.path.join(path, os.pardir))
filePath = os.path.join(path, "backend/medicines", "Database-Of-Medicine-Prices-31-May-2024.xls")
# print(f"C Path : %s", path)
# print(f"P Path : %s", parentDir)
# print(f"F Path : %s", filePath)
book = xlrd.open_workbook_xls(filePath)
sh = book.sheet_by_index(0)
#print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))
medlist = []
for rx in range(1,sh.nrows):
if(str(sh.cell_value(rx, 6)).strip() != ""):
medlist.append({
"name": str(sh.cell_value(rx, 6)).strip(),
"unit": str(sh.cell_value(rx, 9)).strip(),
"dosage form": str(sh.cell_value(rx, 10)).strip(),
})
seen = set()
medlist_noDuplicates = []
for d in medlist:
t = tuple(d.items())
#print(t[0][1])
if t not in seen:
seen.add(t)
medlist_noDuplicates.append(d)
return sorted(medlist_noDuplicates, key=lambda d: d['name']) #qsort(medlist)
def qsort(inlist):
if inlist == []:
return []
else:
pivot = inlist[0]
lesser = qsort([x for x in inlist[1:] if x < pivot])
greater = qsort([x for x in inlist[1:] if x >= pivot])
return lesser + [pivot] + greater