from fastapi.security import OAuth2PasswordBearer from passlib.context import CryptContext import json import datetime from json import JSONEncoder import os import motor.motor_asyncio from dotenv import load_dotenv from pathlib import Path dotenv_path = Path('../../.env') load_dotenv(dotenv_path=dotenv_path) # ================= Creating necessary variables ======================== # ------------------ Token, authentication variables --------------------- SECRET_KEY = "4ab5be85c8c56eecdd547f7831979be83de58a6768d10a314f54cda4e4d67ffe" ALGORITHM = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES = 30 pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") URL_SERVER = os.getenv('URL_SERVER') class DateTimeEncoder(JSONEncoder): # Override the default method def default(self, obj): if isinstance(obj, (datetime.date, datetime.datetime)): return obj.isofort() 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 Khám bệnh', "count": 0, "id": 'K01', }, { "name": 'Khoa Hồi sức cấp cứu', "count": 0, "id": 'K02', }, { "name": 'Khoa Nội tổng hợp', "count": 0, "id": 'K03', }, { "name": 'Khoa Nội tim mạch', "count": 0, "id": 'K04', }, { "name": 'Khoa Nội tiêu hoá', "count": 0, "id": 'K05', }, { "name": 'Khoa Nội cơ - xương - khớp', "count": 0, "id": 'K06', }, { "name": 'Khoa Nội thận - tiết niệu', "count": 0, "id": 'K07', }, { "name": 'Khoa Nội tiết', "count": 0, "id": 'K08', }, { "name": 'Khoa Dị ứng', "count": 0, "id": 'K09', }, { "name": 'Khoa Huyết học lâm sàng', "count": 0, "id": 'K10', }, { "name": 'Khoa Nội thận - tiết niệu', "count": 0, "id": 'K11', }, { "name": 'Khoa Truyền nhiễm', "count": 0, "id": 'K12', }, { "name": 'Khoa Lao', "count": 0, "id": 'K13', }, { "name": 'Khoa Da liễu', "count": 0, "id": 'K14', }, { "name": 'Khoa Thần kinh', "count": 0, "id": 'K15', }, { "name": 'Khoa Tâm thần', "count": 0, "id": 'K16', }, { "name": 'Khoa Y học cổ truyền', "count": 0, "id": 'K17', }, { "name": 'Khoa Lão học', "count": 0, "id": 'K18', }, { "name": 'Khoa Nhi', "count": 0, "id": 'K19', }, { "name": 'Khoa Ngoại tổng hợp', "count": 0, "id": 'K20', }, { "name": 'Khoa Ngoại thần kinh', "count": 0, "id": 'K21', }, { "name": 'Khoa Ngoại lồng ngực', "count": 0, "id": 'K22', }, { "name": 'Khoa Ngoại tiêu hoá', "count": 0, "id": 'K23', }, { "name": 'Khoa Ngoại thận - tiết niệu', "count": 0, "id": 'K24', }, { "name": 'Khoa Chấn thương chỉnh hình', "count": 0, "id": 'K25', }, { "name": 'Khoa Bỏng', "count": 0, "id": 'K26', }, { "name": 'Khoa Phụ sản', "count": 0, "id": 'K27', }, { "name": 'Khoa Tai - Mũi - Họng', "count": 0, "id": 'K28', }, { "name": 'Khoa Răng - Hàm - Mặt', "count": 0, "id": 'K29', }, { "name": 'Khoa Mắt', "count": 0, "id": 'K30', }, { "name": 'Khoa Vật lý trị liệu - Phục hồi chức năng', "count": 0, "id": 'K31', }, { "name": 'Khoa Y học hạt nhân', "count": 0, "id": 'K32', }, { "name": 'Khoa Ung bướu (điều trị tia xạ)', "count": 0, "id": 'K33', }, { "name": 'Khoa Truyền máu', "count": 0, "id": 'K34', }, { "name": 'Khoa Lọc máu nhân tạo', "count": 0, "id": 'K35', }, { "name": 'Khoa Huyết học', "count": 0, "id": 'K36', }, { "name": 'Khoa Sinh hoá', "count": 0, "id": 'K37', }, { "name": 'Khoa Vi sinh', "count": 0, "id": 'K38', }, { "name": 'Khoa Chẩn đoán hình ảnh', "count": 0, "id": 'K39', }, { "name": 'Khoa Thăm dò chức năng', "count": 0, "id": 'K40', }, { "name": 'Khoa Nội soi', "count": 0, "id": 'K41', }, { "name": 'Khoa Giải phẫu bệnh', "count": 0, "id": 'K42', }, { "name": 'Khoa Chống nhiễm khuẩn', "count": 0, "id": 'K43', }, { "name": 'Khoa Dược', "count": 0, "id": 'K44', }, { "name": 'Khoa Dinh dưỡng', "count": 0, "id": 'K45', }, { "name": 'Khoa Sinh học phân tử', "count": 0, "id": 'K46', }, { "name": 'Khoa Xét nghiệm', "count": 0, "id": 'K47', }, { "name": 'Khoa hồi sức tích cực', "count": 0, "id": 'K48', }, { "name": 'Khoa Chống độc', "count": 0, "id": 'K49', }, { "name": 'Khoa Nội hô hấp', "count": 0, "id": 'K50', }, ] # ----------------- Database variables (MongoDB) -------------------------- client = motor.motor_asyncio.AsyncIOMotorClient(os.environ["DB_URL"]) db = client.myTestDB