2021-07-19 23:02:31 +03:00
|
|
|
from fastapi.security import OAuth2PasswordBearer
|
|
|
|
|
from passlib.context import CryptContext
|
2022-08-08 10:18:10 +07:00
|
|
|
import json
|
|
|
|
|
import datetime
|
|
|
|
|
from json import JSONEncoder
|
2021-07-21 08:05:29 +03:00
|
|
|
import os
|
2021-07-19 23:02:31 +03:00
|
|
|
import motor.motor_asyncio
|
|
|
|
|
|
|
|
|
|
# ================= Creating necessary variables ========================
|
2022-08-02 14:25:51 +07:00
|
|
|
# ------------------ Token, authentication variables ---------------------
|
2021-07-19 23:02:31 +03:00
|
|
|
SECRET_KEY = "4ab5be85c8c56eecdd547f7831979be83de58a6768d10a314f54cda4e4d67ffe"
|
|
|
|
|
ALGORITHM = "HS256"
|
|
|
|
|
ACCESS_TOKEN_EXPIRE_MINUTES = 30
|
|
|
|
|
|
|
|
|
|
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
|
|
|
|
|
2022-08-08 10:18:10 +07:00
|
|
|
|
|
|
|
|
class DateTimeEncoder(JSONEncoder):
|
|
|
|
|
# Override the default method
|
|
|
|
|
def default(self, obj):
|
|
|
|
|
if isinstance(obj, (datetime.date, datetime.datetime)):
|
|
|
|
|
return obj.isoformat()
|
|
|
|
|
|
|
|
|
|
|
2022-08-02 14:25:51 +07:00
|
|
|
oauth2_scheme = OAuth2PasswordBearer(
|
|
|
|
|
tokenUrl="https://sandboxapi.ebacsi.com.vn/auth/oauth/token")
|
2022-08-04 14:48:50 +07:00
|
|
|
ROLE_PUBLIC = "PUBLIC"
|
2022-08-02 14:25:51 +07:00
|
|
|
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",
|
|
|
|
|
}
|
|
|
|
|
]
|
2021-07-19 23:02:31 +03:00
|
|
|
|
2022-08-02 14:25:51 +07:00
|
|
|
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) --------------------------
|
2021-07-21 08:05:29 +03:00
|
|
|
client = motor.motor_asyncio.AsyncIOMotorClient(os.environ["DB_URL"])
|
2022-08-02 14:25:51 +07:00
|
|
|
db = client.myTestDB
|