def __init__(self, uid): self.doc = DoctorDAO.get(uid) self.tk = Tk() self.tk.title("医院挂号就诊系统-医生界面") self.userNameText = Label(self.tk, text=f"欢迎你, {self.doc.name}") self.userNameText.grid(row=0, column=0, columnspan=2, padx=5) self.actionsFrame = LabelFrame(self.tk, text="操作") self.refresButton = Button(self.actionsFrame, text=" 刷新 ", padx=20, command=self.refresHandler) self.refresButton.grid(row=0, column=0, padx=5) self.historyButton = Button(self.actionsFrame, text="查看历史", padx=20, command=self.historyHandler) self.historyButton.grid(row=0, column=1, padx=5) self.actionsFrame.grid(row=1, column=0) self.createPendingFrame() self.createDetailedFrame() self.tk.mainloop()
def __init__(self, uid): self.doc = DoctorDAO.get(uid) self.tk = Tk() self.tk.title("医院挂号就诊系统-历史查询") self.createPendingFrame() self.tk.mainloop()
def patientResultToString(result): doctor = DoctorDAO.get(result.did) dept = DepartmentDAO.get(doctor.deptID) if result.rtype == "pro": printType = "专家" else: printType = "普通" time = result.rtime.strftime("%Y/%m/%d %H:%M:%S") return f"{result.rid:8} | {time:19} | {printType:2} | {dept.deptName:<10}"
def updateMenus(self, *args): self.doctors = DoctorDAO.listByDepartment(self.getDepartment()) self.doctors.sort(key=Doctor.getPrimaryKey) self.doctorsList = [] for doctor in self.doctors: self.doctorsList.append(f"{doctor.uid}|{doctor.name}") out(f"{doctor.uid}|{doctor.name}") self.doctorOption.destroy() if(len(self.doctorsList) == 0): self.doctorsList.append("None") self.doctor.set(self.doctorsList[0]) self.doctorOption = OptionMenu(self.tk, self.doctor, *self.doctorsList) self.doctorOption.config(width=20) self.doctorOption.grid(row=1, column=1, padx=5)
def createInfoFrame(self): self.infoFrame = Frame(self.detailedFrame) reg = RegistrationtDAO.get(self.selectedRID()) doc = DoctorDAO.get(reg.did) dept = DepartmentDAO.get(doc.deptID) Label(self.infoFrame, text="挂号编号", width=13, anchor="e").grid(row=0, column=0) Label(self.infoFrame, text=reg.rid, width=30, anchor="w").grid(row=0, column=1) Label(self.infoFrame, text="挂号时间", width=13, anchor="e").grid(row=1, column=0) Label(self.infoFrame, text=reg.rtime.strftime("%Y/%m/%d %H:%M:%S"), width=30, anchor="w").grid(row=1, column=1) Label(self.infoFrame, text="挂号类型", width=13, anchor="e").grid(row=2, column=0) Label(self.infoFrame, text=rtypePrint(reg.rtype), width=30, anchor="w").grid(row=2, column=1) Label(self.infoFrame, text="科室名称", width=13, anchor="e").grid(row=3, column=0) Label(self.infoFrame, text=dept.deptName, width=30, anchor="w").grid(row=3, column=1) Label(self.infoFrame, text="科室地点", width=13, anchor="e").grid(row=4, column=0) Label(self.infoFrame, text=dept.location, width=30, anchor="w").grid(row=4, column=1) Label(self.infoFrame, text="科室电话", width=13, anchor="e").grid(row=5, column=0) Label(self.infoFrame, text=dept.phone, width=30, anchor="w").grid(row=5, column=1) Label(self.infoFrame, text="医生名称", width=13, anchor="e").grid(row=6, column=0) Label(self.infoFrame, text=doc.name, width=30, anchor="w").grid(row=6, column=1) self.infoFrame.grid(row=1, columnspan=2)
def refresHandler(self): self.doc = DoctorDAO.get(self.doc.uid) self.updatePendingFrame() self.updateDetailedFrame()
import random from faker import Faker from doctor import Doctor, DoctorDAO from user import User, UserDAO from department import Department, DepartmentDAO fake = Faker("zh_CN") departments = DepartmentDAO.listAll() dusers = UserDAO.listDoctors() for user in dusers: print(user) uid = user.uid name = fake.name() deptID = random.choice(departments).deptID doc = Doctor(uid, name, deptID) print(doc) DoctorDAO.add(doc) print("------") docs = DoctorDAO.listAll() for doc in docs: print(doc)
import random from faker import Faker from patient import Patient, PatientDAO from doctor import Doctor, DoctorDAO from registration import Registration, RegistrationtDAO fake = Faker("zh_CN") patients = PatientDAO.listAll() doctors = DoctorDAO.listAll() for i in range(6000): rtypes = ["normal", "pro"] done = random.choice([True] * 9 + [False] * 1) rid = RegistrationtDAO.newID() did = random.choice(doctors).uid pid = random.choice(patients).uid rtime = fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None) rtype = random.choice(rtypes) reg = Registration(rid, did, pid, rtype, rtime, done) print(reg) RegistrationtDAO.add(reg) for doc in doctors: print(f"-----------Doctor {doc.name} --------------") for reg in RegistrationtDAO.listByDoctor(doc.uid, True): print(reg) for reg in RegistrationtDAO.listByDoctor(doc.uid, False): print(reg)