from fastapi.security import OAuth2PasswordBearer from passlib.context import CryptContext import json import datetime from json import JSONEncoder import os import motor.motor_asyncio # ================= Creating necessary variables ======================== # ------------------ Token, authentication variables --------------------- SECRET_KEY = "4ab5be85c8c56eecdd547f7831979be83de58a6768d10a314f54cda4e4d67ffe" ALGORITHM = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES = 30 pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") class DateTimeEncoder(JSONEncoder): # Override the default method def default(self, obj): if isinstance(obj, (datetime.date, datetime.datetime)): return obj.isoformat() oauth2_scheme = OAuth2PasswordBearer( tokenUrl="https://sandboxapi.ebacsi.com.vn/auth/oauth/token") ROLE_PUBLIC = "PUBLIC" ROLE_ORG = [ { "name": "ORG_USER", "comment": "Bệnh nhân", }, { "name": "ORG_OPERATOR", "comment": "CSKH hệ thống", }, { "name": "DOCTOR", "comment": "Bác sĩ", }, { "name": "ORG_EXTERNAL", "comment": "Tích hợp", }, { "name": "SITE_CASHIER", "comment": "Thu ngân, thẩm định", }, { "name": "SITE_RECEIPTION", "comment": "Lễ tân", }, { "name": "ORG_UTILS", "comment": "SYSTEM", }, { "name": "SITE_ADMIN", "comment": "Quản trị viên tại CSYT", }, { "name": "SITE_OPERATOR", "comment": "CSKH tại CSYT", }, { "name": "SITE_INTEGRATION", "comment": "Tài khoản tích hợp", }, { "name": "ORG_ADMIN", "comment": "Quản trị hệ thống", }, { "name": "ORG_DICTIONARY", "comment": "For Medihome Dictionary", } ] KHOA = [{ "name": "KHOA_NOI", "comment": "Khoa Nội", }, { "name": "KHOA_NGOAI", "comment": "Khoa Ngoại", }, { "name": "KHOA_PHU_SAN", "comment": "Khoa Phụ sản", }, { "name": "KHOA_NHI", "comment": "Khoa Nhi", }, { "name": "KHOA_TRUYEN_NHIEM", "comment": "Khoa Truyền nhiễm", }, { "name": "KHOA_CAP_CUU", "comment": "Khoa Cấp cứu", }, { "name": "KHOA_HOI_SUC", "comment": "Khoa Hồi sức tích cực và chống độc", }, { "name": "KHOA_Y_HOC_CO_TRUYEN", "comment": "Khoa Y học cổ truyền", }, { "name": "KHOA_U_BUOU", "comment": "Khoa Ung bướu", }, { "name": "KHOA_Y_HOC_HAT_NHAN", "comment": "Khoa Y học Hạt nhân", }, { "name": "KHOA_PHAU_THUA", "comment": "Khoa Phẫu thuật - gây mê hồi sức", }, { "name": "KHOA_CHAN_DOAN_HINH_ANH", "comment": "Khoa Chẩn đoán hình ảnh", }] # ----------------- Database variables (MongoDB) -------------------------- client = motor.motor_asyncio.AsyncIOMotorClient(os.environ["DB_URL"]) db = client.myTestDB