Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import sqlite3
- import tkinter.messagebox
- sql=sqlite3.connect('hospital.db')
- c=sql.cursor()
- c.execute("PRAGMA foreign_keys=on")
- root = Tk()
- root.title("HMS 1.0")
- root.geometry("1280x720+0+0")
- #root.geometry('800x600+0+0')
- root.configure(background='sky blue')
- heading=Label(root,text="Hospital Management System",font=('comic sans ms',32),bg='sky blue')
- heading.place(x=640,y=30,anchor=CENTER)
- footer=Label(root,text="©Yogesh Gopi\n Prateek Jain",font=('comic sans ms',12),bg='sky blue')
- footer.place(x=1200,y=610,anchor=CENTER)
- def insert_window():
- insert_window=Toplevel(root)
- insert_window.geometry("1280x720+0+0")
- insert_window.configure(background='SeaGreen1')
- heading=Label(insert_window,text="Insert Details",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- def patientinsertion():
- patientinsertion=Toplevel(root)
- patientinsertion.geometry("1280x720+0+0")
- patientinsertion.configure(background='SeaGreen1')
- heading=Label(patientinsertion,text="Patient Details",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- pnamelabel=Label(patientinsertion,text="Name",font=('arial',18),bg='SeaGreen1')
- pnamelabel.place(x=0,y=0)
- pidlabel=Label(patientinsertion,text="Patient ID",font=('arial',18),bg='SeaGreen1')
- pidlabel.place(x=0,y=50)
- pgenderlabel=Label(patientinsertion,text="Gender",font=('arial',18),bg='SeaGreen1')
- pgenderlabel.place(x=0,y=100)
- pagelabel=Label(patientinsertion,text="Age",font=('arial',18),bg='SeaGreen1')
- pagelabel.place(x=0,y=150)
- pdoblabel=Label(patientinsertion,text="DoB",font=('arial',18),bg='SeaGreen1')
- pdoblabel.place(x=0,y=200)
- pphonelabel=Label(patientinsertion,text="Phone Number",font=('arial',18),bg='SeaGreen1')
- pphonelabel.place(x=0,y=250)
- paddresslabel=Label(patientinsertion,text="Address",font=('arial',18),bg='SeaGreen1')
- paddresslabel.place(x=0,y=300)
- pdidlabel=Label(patientinsertion,text="Doctor ID",font=('arial',18),bg='SeaGreen1')
- pdidlabel.place(x=0,y=350)
- prnolabel=Label(patientinsertion,text="Room no",font=('arial',18),bg='SeaGreen1')
- prnolabel.place(x=0,y=400)
- pnameentry=Entry(patientinsertion,bd=5)
- pnameentry.place(x=200,y=0)
- pidentry=Entry(patientinsertion,bd=5)
- pidentry.place(x=200,y=50)
- pgenderentry=Entry(patientinsertion,bd=5)
- pgenderentry.place(x=200,y=100)
- pageentry=Entry(patientinsertion,bd=5)
- pageentry.place(x=200,y=150)
- pdobentry=Entry(patientinsertion,bd=5)
- pdobentry.place(x=200,y=200)
- pphoneentry=Entry(patientinsertion,bd=5)
- pphoneentry.place(x=200,y=250)
- paddressentry=Entry(patientinsertion,bd=5)
- paddressentry.place(x=200,y=300)
- pdidentry=Entry(patientinsertion,bd=5)
- pdidentry.place(x=200,y=350)
- prnoentry=Entry(patientinsertion,bd=5)
- prnoentry.place(x=200,y=400)
- def addpatient():
- name=pnameentry.get()
- pid=pidentry.get()
- gender=pgenderentry.get()
- age=pageentry.get()
- dob=pdobentry.get()
- phone=pphoneentry.get()
- address=paddressentry.get()
- did=pdidentry.get()
- rno=prnoentry.get()
- if pid=='' or name=='' or gender=='' or age=='' or dob=='' or phone=='' or address=='' or did=='' or rno=='':
- inputtest=0
- else:
- inputtest=1
- if inputtest==1:
- try:
- c.execute("INSERT INTO patients VALUES(?,?,?,?,?,?,?,?,?)",(pid,name,gender,age,dob,phone,address,did,rno))
- sql.commit()
- tkinter.messagebox.showinfo("Success!","New patient added!")
- except Exception:
- tkinter.messagebox.showinfo("Error!","Please check all the values before entering!")
- elif inputtest==0:
- tkinter.messagebox.showinfo("Warning","Please enter all details!")
- sql.commit()
- pdetailsubmit=Button(patientinsertion,text='Submit',command=addpatient).place(x=400,y=500)
- def doctorinsertion():
- doctorinsertion=Toplevel(root)
- doctorinsertion.geometry("1280x720+0+0")
- doctorinsertion.configure(background='SeaGreen1')
- heading=Label(doctorinsertion,text="Doctor Details",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- #LABELS FOR DOCTOR DETAILS
- dnamelabel=Label(doctorinsertion,text="Name",font=('arial',18),bg='SeaGreen1')
- dnamelabel.place(x=0,y=0)
- didlabel=Label(doctorinsertion,text="Doctor ID",font=('arial',18),bg='SeaGreen1')
- didlabel.place(x=0,y=50)
- dgenderlabel=Label(doctorinsertion,text="Gender",font=('arial',18),bg='SeaGreen1')
- dgenderlabel.place(x=0,y=100)
- ddeptlabel=Label(doctorinsertion,text="Department",font=('arial',18),bg='SeaGreen1')
- ddeptlabel.place(x=0,y=150)
- dphonelabel=Label(doctorinsertion,text="Phone Number",font=('arial',18),bg='SeaGreen1')
- dphonelabel.place(x=0,y=200)
- #ENTRIES FOR DOCTOR DETAILS
- dnameentry=Entry(doctorinsertion,bd=5)
- dnameentry.place(x=200,y=0)
- didentry=Entry(doctorinsertion,bd=5)
- didentry.place(x=200,y=50)
- dgenderentry=Entry(doctorinsertion,bd=5)
- dgenderentry.place(x=200,y=100)
- ddeptentry=Entry(doctorinsertion,bd=5)
- ddeptentry.place(x=200,y=150)
- dphoneentry=Entry(doctorinsertion,bd=5)
- dphoneentry.place(x=200,y=200)
- #NOW ADDING THE DETAILS TO DATABASE
- def adddoctor():
- name=dnameentry.get()
- did=didentry.get()
- gender=dgenderentry.get()
- dept=ddeptentry.get()
- phone=dphoneentry.get()
- if name=='' or did=='' or gender=='' or dept=='' or phone=='':
- inputtest=0
- else:
- inputtest=1
- if inputtest==1:
- try:
- c.execute("INSERT INTO doctors VALUES(?,?,?,?,?)",(did,name,gender,dept,phone))
- sql.commit()
- tkinter.messagebox.showinfo("Sucess!","New doctor added!")
- except Exception:
- tkinter.messagebox.showinfo("Error!","Please check all the values before entering!")
- elif inputtest==0:
- tkinter.messagebox.showinfo("Warning!","Please enter all details!")
- sql.commit()
- ddetailsubmit = Button(doctorinsertion,text="Submit",command=adddoctor).place(x=400,y=300)
- def insertwindowbutton():
- patientinsertbutton = Button(insert_window,text="Insert patient details",command=patientinsertion).place(x=400,y=300)
- doctorinsertbutton = Button(insert_window,text="Insert doctor details",command=doctorinsertion).place(x=800,y=300)
- insertwindowbutton()
- #******************************INSERT WINDOW END*****************************************
- #******************************VIEW WINDOW**************************************
- def view_window():
- view_window=Toplevel(root)
- view_window.geometry("1280x720+0+0")
- view_window.configure(background='SeaGreen1')
- heading=Label(view_window,text="View Details",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- #************Viewing patients***********
- def patientview():
- patientview=Toplevel(root)
- patientview.geometry("1280x720+0+0")
- patientview.configure(background='SeaGreen1')
- pidviewlabel=Label(patientview,text="Patient ID",font=('arial',18),bg='SeaGreen1')
- pidviewlabel.place(x=400,y=300)
- pidviewentry=Entry(patientview,bd=5)
- pidviewentry.place(x=520,y=300)
- pallviewlabel=Label(patientview,text="List of all patients",font=('arial',18),bg='SeaGreen1')
- pallviewlabel.place(x=400,y=400)
- def viewpatient():
- viewpatient=Toplevel(root)
- viewpatient.geometry("1280x720+0+0")
- viewpatient.configure(background='SeaGreen1')
- heading=Label(viewpatient,text="ID Name Sex Age DoB Ph Add Did RNo.")
- heading.place(x=0,y=0)
- pid=pidviewentry.get()
- c.execute("SELECT *FROM patients WHERE pid=?",(pid,))
- pview=c.fetchall()
- z=20
- if len(pview)==0:
- tkinter.messagebox.showinfo("No match!","No matching entries found!")
- else:
- for detail in pview:
- show=Label(viewpatient,text=detail)
- show.place(x=0,y=z)
- z=z+40
- def viewallpatients():
- viewallpatients=Toplevel(root)
- viewallpatients.geometry("1280x720+0+0")
- viewallpatients.configure(background='SeaGreen1')
- heading=Label(viewallpatients,text="ID Name Sex Age DoB Ph Add Did RNo.")
- heading.place(x=0,y=0)
- c.execute("SELECT *FROM patients")
- pview=c.fetchall()
- z=20
- if len(pview)==0:
- tkinter.messagebox.showinfo("No entries!","The schema has no records!")
- else:
- for detail in pview:
- show=Label(viewallpatients,text=detail)
- show.place(x=0,y=z)
- z=z+40
- enterpid = Button(patientview,text="Submit",command=viewpatient).place(x=690,y=300)
- pall = Button(patientview,text=" Click ",command=viewallpatients).place(x=690,y=400)
- #***************************Viewing doctors*************
- def doctorview():
- doctorview=Toplevel(root)
- doctorview.geometry("1280x720+0+0")
- doctorview.configure(background='SeaGreen1')
- didviewlabel=Label(doctorview,text="Doctor ID",font=('arial',18),bg='SeaGreen1')
- didviewlabel.place(x=400,y=300)
- didviewentry=Entry(doctorview,bd=5)
- didviewentry.place(x=630,y=300)
- ddeptviewlabel=Label(doctorview,text="Doctor Department",font=('arial',18),bg='SeaGreen1')
- ddeptviewlabel.place(x=400,y=200)
- ddeptviewentry=Entry(doctorview,bd=5)
- ddeptviewentry.place(x=630,y=200)
- dallviewlabel=Label(doctorview,text="List of all doctors",font=('arial',18),bg='SeaGreen1')
- dallviewlabel.place(x=400,y=400)
- def viewdoctorbyid():
- viewdoctorbyid=Toplevel(root)
- viewdoctorbyid.geometry("1280x720+0+0")
- viewdoctorbyid.configure(background='SeaGreen1')
- heading=Label(viewdoctorbyid,text="ID Name Sex Department Phone")
- heading.place(x=0,y=0)
- did=didviewentry.get()
- c.execute("SELECT *FROM doctors WHERE did=?",(did,))
- dview=c.fetchall()
- z=20
- if len(dview)==0:
- tkinter.messagebox.showinfo("No match!","No matching entries found!")
- else:
- for detail in dview:
- show=Label(viewdoctorbyid,text=detail)
- show.place(x=0,y=z)
- z=z+40
- def viewdoctorbydept():
- viewdoctorbydept=Toplevel(root)
- viewdoctorbydept.geometry("1280x720+0+0")
- viewdoctorbydept.configure(background='SeaGreen1')
- heading=Label(viewdoctorbydept,text="ID Name Sex Department Phone")
- heading.place(x=0,y=0)
- ddept=ddeptviewentry.get()
- c.execute("SELECT *FROM doctors WHERE dept=?",(ddept,))
- dview=c.fetchall()
- z=20
- if len(dview)==0:
- tkinter.messagebox.showinfo("No match!","No matching entries found!")
- else:
- for detail in dview:
- show=Label(viewdoctorbydept,text=detail)
- show.place(x=0,y=z)
- z=z+40
- def viewalldoctors():
- viewalldoctors=Toplevel(root)
- viewalldoctors.geometry("1280x720+0+0")
- viewalldoctors.configure(background='SeaGreen1')
- heading=Label(viewalldoctors,text="ID Name Sex Department Phone")
- heading.place(x=0,y=0)
- c.execute("SELECT *FROM doctors")
- dview=c.fetchall()
- z=20
- if len(dview)==0:
- tkinter.messagebox.showinfo("No entries!","The schema has no records!")
- else:
- for detail in dview:
- show=Label(viewalldoctors,text=detail)
- show.place(x=0,y=z)
- z=z+40
- enterdid = Button(doctorview,text="Submit",command=viewdoctorbyid).place(x=790,y=300)
- enterddept = Button(doctorview,text="Submit",command=viewdoctorbydept).place(x=790,y=200)
- dall = Button(doctorview,text=" Click ",command=viewalldoctors).place(x=790,y=400)
- def viewwindowbutton():
- patientviewbutton = Button(view_window,text="View patient details",command=patientview).place(x=400,y=300)
- doctorviewbutton = Button(view_window,text="View doctor details",command=doctorview).place(x=800,y=300)
- viewwindowbutton()
- #*********************************VIEW WINDOW END***********************
- #************************************DELETE WINDOW********************************
- def delete_window():
- delete_window=Toplevel(root)
- delete_window.geometry("1280x720+0+0")
- delete_window.configure(background='SeaGreen1')
- heading=Label(delete_window,text="Delete Details",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- def patientdelete():
- patientdelete=Toplevel(root)
- patientdelete.geometry("1280x720+0+0")
- patientdelete.configure(background='SeaGreen1')
- heading=Label(patientdelete,text="Patient Delete",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- pdeleteidlabel=Label(patientdelete,text="Patient ID",font=('arial',18),bg='SeaGreen1')
- pdeleteidlabel.place(x=400,y=300)
- pdeleteidentry=Entry(patientdelete,bd=5)
- pdeleteidentry.place(x=550,y=300)
- def deletepatient():
- pid=pdeleteidentry.get()
- c.execute("SELECT *FROM patients WHERE pid=?",(pid,))
- coll=c.fetchall()
- if len(coll)==0:
- tkinter.messagebox.showinfo("No match!","No matchies entries!")
- else:
- c.execute("DELETE FROM patients WHERE pid=?",(pid,))
- sql.commit()
- tkinter.messagebox.showinfo("Success!","Deleted successfully!")
- deletepatientbutton=Button(patientdelete,text="Submit",command=deletepatient).place(x=700,y=300)
- def doctordelete():
- doctordelete=Toplevel(root)
- doctordelete.geometry("1280x720+0+0")
- doctordelete.configure(background='SeaGreen1')
- heading=Label(doctordelete,text="Doctor Delete",font=('arial',32),bg='SeaGreen1')
- heading.place(x=640,y=30,anchor=CENTER)
- ddeleteidlabel=Label(doctordelete,text='Doctor ID',font=('arial',18),bg='SeaGreen1')
- ddeleteidlabel.place(x=400,y=300)
- ddeleteidentry=Entry(doctordelete,bd=5)
- ddeleteidentry.place(x=550,y=300)
- def deletedoctor():
- did=ddeleteidentry.get()
- c.execute("SELECT *FROM doctors WHERE did=?",(did,))
- coll=c.fetchall()
- if len(coll)==0:
- tkinter.messagebox.showinfo("No match!","No matchies entries!")
- else:
- c.execute("DELETE FROM doctors WHERE did=?",(did,))
- sql.commit()
- tkinter.messagebox.showinfo("Success!","Deleted successfully!")
- deletedoctorbutton=Button(doctordelete,text="Submit",command=deletedoctor).place(x=700,y=300)
- def deletewindowbutton():
- pdelete=Button(delete_window,text="Delete Patient",command=patientdelete).place(x=400,y=300)
- ddelete=Button(delete_window,text="Delete Doctor",command=doctordelete).place(x=800,y=300)
- deletewindowbutton()
- #***********************************DELETE WINDOW END*************************
- ############################## ##############################
- ############################## ##############################
- ##############################***************************MAIN***************************##############################
- ############################## ##############################
- ############################## ##############################
- insertbutton = Button(root,text="Insert details", command=insert_window).place(x=400,y=300)
- viewbutton = Button(root,text="View details", command=view_window).place(x=800,y=300)
- deletebutton = Button(root,text="Delete details", command=delete_window).place(x=600,y=300)
- root.mainloop()
Add Comment
Please, Sign In to add comment