Guest User

Untitled

a guest
Oct 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.49 KB | None | 0 0
  1. from tkinter import *
  2. import sqlite3
  3. import tkinter.messagebox
  4. sql=sqlite3.connect('hospital.db')
  5. c=sql.cursor()
  6. c.execute("PRAGMA foreign_keys=on")
  7.  
  8.  
  9. root = Tk()
  10. root.title("HMS 1.0")
  11. root.geometry("1280x720+0+0")
  12. #root.geometry('800x600+0+0')
  13. root.configure(background='sky blue')
  14. heading=Label(root,text="Hospital Management System",font=('comic sans ms',32),bg='sky blue')
  15. heading.place(x=640,y=30,anchor=CENTER)
  16. footer=Label(root,text="©Yogesh Gopi\n Prateek Jain",font=('comic sans ms',12),bg='sky blue')
  17. footer.place(x=1200,y=610,anchor=CENTER)
  18.  
  19. def insert_window():
  20. insert_window=Toplevel(root)
  21. insert_window.geometry("1280x720+0+0")
  22. insert_window.configure(background='SeaGreen1')
  23. heading=Label(insert_window,text="Insert Details",font=('arial',32),bg='SeaGreen1')
  24. heading.place(x=640,y=30,anchor=CENTER)
  25. def patientinsertion():
  26. patientinsertion=Toplevel(root)
  27. patientinsertion.geometry("1280x720+0+0")
  28. patientinsertion.configure(background='SeaGreen1')
  29. heading=Label(patientinsertion,text="Patient Details",font=('arial',32),bg='SeaGreen1')
  30. heading.place(x=640,y=30,anchor=CENTER)
  31.  
  32. pnamelabel=Label(patientinsertion,text="Name",font=('arial',18),bg='SeaGreen1')
  33. pnamelabel.place(x=0,y=0)
  34. pidlabel=Label(patientinsertion,text="Patient ID",font=('arial',18),bg='SeaGreen1')
  35. pidlabel.place(x=0,y=50)
  36. pgenderlabel=Label(patientinsertion,text="Gender",font=('arial',18),bg='SeaGreen1')
  37. pgenderlabel.place(x=0,y=100)
  38. pagelabel=Label(patientinsertion,text="Age",font=('arial',18),bg='SeaGreen1')
  39. pagelabel.place(x=0,y=150)
  40. pdoblabel=Label(patientinsertion,text="DoB",font=('arial',18),bg='SeaGreen1')
  41. pdoblabel.place(x=0,y=200)
  42. pphonelabel=Label(patientinsertion,text="Phone Number",font=('arial',18),bg='SeaGreen1')
  43. pphonelabel.place(x=0,y=250)
  44. paddresslabel=Label(patientinsertion,text="Address",font=('arial',18),bg='SeaGreen1')
  45. paddresslabel.place(x=0,y=300)
  46. pdidlabel=Label(patientinsertion,text="Doctor ID",font=('arial',18),bg='SeaGreen1')
  47. pdidlabel.place(x=0,y=350)
  48. prnolabel=Label(patientinsertion,text="Room no",font=('arial',18),bg='SeaGreen1')
  49. prnolabel.place(x=0,y=400)
  50.  
  51. pnameentry=Entry(patientinsertion,bd=5)
  52. pnameentry.place(x=200,y=0)
  53.  
  54. pidentry=Entry(patientinsertion,bd=5)
  55. pidentry.place(x=200,y=50)
  56.  
  57. pgenderentry=Entry(patientinsertion,bd=5)
  58. pgenderentry.place(x=200,y=100)
  59.  
  60. pageentry=Entry(patientinsertion,bd=5)
  61. pageentry.place(x=200,y=150)
  62.  
  63. pdobentry=Entry(patientinsertion,bd=5)
  64. pdobentry.place(x=200,y=200)
  65.  
  66. pphoneentry=Entry(patientinsertion,bd=5)
  67. pphoneentry.place(x=200,y=250)
  68.  
  69. paddressentry=Entry(patientinsertion,bd=5)
  70. paddressentry.place(x=200,y=300)
  71.  
  72. pdidentry=Entry(patientinsertion,bd=5)
  73. pdidentry.place(x=200,y=350)
  74.  
  75. prnoentry=Entry(patientinsertion,bd=5)
  76. prnoentry.place(x=200,y=400)
  77.  
  78. def addpatient():
  79. name=pnameentry.get()
  80. pid=pidentry.get()
  81. gender=pgenderentry.get()
  82. age=pageentry.get()
  83. dob=pdobentry.get()
  84. phone=pphoneentry.get()
  85. address=paddressentry.get()
  86. did=pdidentry.get()
  87. rno=prnoentry.get()
  88.  
  89. if pid=='' or name=='' or gender=='' or age=='' or dob=='' or phone=='' or address=='' or did=='' or rno=='':
  90. inputtest=0
  91. else:
  92. inputtest=1
  93.  
  94.  
  95. if inputtest==1:
  96. try:
  97. c.execute("INSERT INTO patients VALUES(?,?,?,?,?,?,?,?,?)",(pid,name,gender,age,dob,phone,address,did,rno))
  98. sql.commit()
  99. tkinter.messagebox.showinfo("Success!","New patient added!")
  100. except Exception:
  101. tkinter.messagebox.showinfo("Error!","Please check all the values before entering!")
  102. elif inputtest==0:
  103. tkinter.messagebox.showinfo("Warning","Please enter all details!")
  104.  
  105. sql.commit()
  106. pdetailsubmit=Button(patientinsertion,text='Submit',command=addpatient).place(x=400,y=500)
  107.  
  108.  
  109. def doctorinsertion():
  110. doctorinsertion=Toplevel(root)
  111. doctorinsertion.geometry("1280x720+0+0")
  112. doctorinsertion.configure(background='SeaGreen1')
  113. heading=Label(doctorinsertion,text="Doctor Details",font=('arial',32),bg='SeaGreen1')
  114. heading.place(x=640,y=30,anchor=CENTER)
  115.  
  116. #LABELS FOR DOCTOR DETAILS
  117. dnamelabel=Label(doctorinsertion,text="Name",font=('arial',18),bg='SeaGreen1')
  118. dnamelabel.place(x=0,y=0)
  119.  
  120. didlabel=Label(doctorinsertion,text="Doctor ID",font=('arial',18),bg='SeaGreen1')
  121. didlabel.place(x=0,y=50)
  122.  
  123. dgenderlabel=Label(doctorinsertion,text="Gender",font=('arial',18),bg='SeaGreen1')
  124. dgenderlabel.place(x=0,y=100)
  125.  
  126. ddeptlabel=Label(doctorinsertion,text="Department",font=('arial',18),bg='SeaGreen1')
  127. ddeptlabel.place(x=0,y=150)
  128.  
  129. dphonelabel=Label(doctorinsertion,text="Phone Number",font=('arial',18),bg='SeaGreen1')
  130. dphonelabel.place(x=0,y=200)
  131.  
  132. #ENTRIES FOR DOCTOR DETAILS
  133. dnameentry=Entry(doctorinsertion,bd=5)
  134. dnameentry.place(x=200,y=0)
  135.  
  136. didentry=Entry(doctorinsertion,bd=5)
  137. didentry.place(x=200,y=50)
  138.  
  139. dgenderentry=Entry(doctorinsertion,bd=5)
  140. dgenderentry.place(x=200,y=100)
  141.  
  142. ddeptentry=Entry(doctorinsertion,bd=5)
  143. ddeptentry.place(x=200,y=150)
  144.  
  145. dphoneentry=Entry(doctorinsertion,bd=5)
  146. dphoneentry.place(x=200,y=200)
  147.  
  148. #NOW ADDING THE DETAILS TO DATABASE
  149. def adddoctor():
  150. name=dnameentry.get()
  151. did=didentry.get()
  152. gender=dgenderentry.get()
  153. dept=ddeptentry.get()
  154. phone=dphoneentry.get()
  155.  
  156. if name=='' or did=='' or gender=='' or dept=='' or phone=='':
  157. inputtest=0
  158. else:
  159. inputtest=1
  160.  
  161. if inputtest==1:
  162. try:
  163. c.execute("INSERT INTO doctors VALUES(?,?,?,?,?)",(did,name,gender,dept,phone))
  164. sql.commit()
  165. tkinter.messagebox.showinfo("Sucess!","New doctor added!")
  166. except Exception:
  167. tkinter.messagebox.showinfo("Error!","Please check all the values before entering!")
  168. elif inputtest==0:
  169. tkinter.messagebox.showinfo("Warning!","Please enter all details!")
  170.  
  171. sql.commit()
  172. ddetailsubmit = Button(doctorinsertion,text="Submit",command=adddoctor).place(x=400,y=300)
  173.  
  174. def insertwindowbutton():
  175. patientinsertbutton = Button(insert_window,text="Insert patient details",command=patientinsertion).place(x=400,y=300)
  176. doctorinsertbutton = Button(insert_window,text="Insert doctor details",command=doctorinsertion).place(x=800,y=300)
  177. insertwindowbutton()
  178.  
  179.  
  180. #******************************INSERT WINDOW END*****************************************
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. #******************************VIEW WINDOW**************************************
  188.  
  189. def view_window():
  190. view_window=Toplevel(root)
  191. view_window.geometry("1280x720+0+0")
  192. view_window.configure(background='SeaGreen1')
  193. heading=Label(view_window,text="View Details",font=('arial',32),bg='SeaGreen1')
  194. heading.place(x=640,y=30,anchor=CENTER)
  195. #************Viewing patients***********
  196. def patientview():
  197. patientview=Toplevel(root)
  198. patientview.geometry("1280x720+0+0")
  199. patientview.configure(background='SeaGreen1')
  200.  
  201. pidviewlabel=Label(patientview,text="Patient ID",font=('arial',18),bg='SeaGreen1')
  202. pidviewlabel.place(x=400,y=300)
  203.  
  204. pidviewentry=Entry(patientview,bd=5)
  205. pidviewentry.place(x=520,y=300)
  206.  
  207. pallviewlabel=Label(patientview,text="List of all patients",font=('arial',18),bg='SeaGreen1')
  208. pallviewlabel.place(x=400,y=400)
  209.  
  210. def viewpatient():
  211. viewpatient=Toplevel(root)
  212. viewpatient.geometry("1280x720+0+0")
  213. viewpatient.configure(background='SeaGreen1')
  214.  
  215. heading=Label(viewpatient,text="ID Name Sex Age DoB Ph Add Did RNo.")
  216. heading.place(x=0,y=0)
  217.  
  218. pid=pidviewentry.get()
  219. c.execute("SELECT *FROM patients WHERE pid=?",(pid,))
  220. pview=c.fetchall()
  221. z=20
  222. if len(pview)==0:
  223. tkinter.messagebox.showinfo("No match!","No matching entries found!")
  224. else:
  225. for detail in pview:
  226. show=Label(viewpatient,text=detail)
  227. show.place(x=0,y=z)
  228. z=z+40
  229. def viewallpatients():
  230. viewallpatients=Toplevel(root)
  231. viewallpatients.geometry("1280x720+0+0")
  232. viewallpatients.configure(background='SeaGreen1')
  233.  
  234. heading=Label(viewallpatients,text="ID Name Sex Age DoB Ph Add Did RNo.")
  235. heading.place(x=0,y=0)
  236. c.execute("SELECT *FROM patients")
  237. pview=c.fetchall()
  238. z=20
  239. if len(pview)==0:
  240. tkinter.messagebox.showinfo("No entries!","The schema has no records!")
  241. else:
  242. for detail in pview:
  243. show=Label(viewallpatients,text=detail)
  244. show.place(x=0,y=z)
  245. z=z+40
  246. enterpid = Button(patientview,text="Submit",command=viewpatient).place(x=690,y=300)
  247. pall = Button(patientview,text=" Click ",command=viewallpatients).place(x=690,y=400)
  248.  
  249. #***************************Viewing doctors*************
  250. def doctorview():
  251. doctorview=Toplevel(root)
  252. doctorview.geometry("1280x720+0+0")
  253. doctorview.configure(background='SeaGreen1')
  254.  
  255. didviewlabel=Label(doctorview,text="Doctor ID",font=('arial',18),bg='SeaGreen1')
  256. didviewlabel.place(x=400,y=300)
  257.  
  258. didviewentry=Entry(doctorview,bd=5)
  259. didviewentry.place(x=630,y=300)
  260.  
  261. ddeptviewlabel=Label(doctorview,text="Doctor Department",font=('arial',18),bg='SeaGreen1')
  262. ddeptviewlabel.place(x=400,y=200)
  263.  
  264. ddeptviewentry=Entry(doctorview,bd=5)
  265. ddeptviewentry.place(x=630,y=200)
  266.  
  267. dallviewlabel=Label(doctorview,text="List of all doctors",font=('arial',18),bg='SeaGreen1')
  268. dallviewlabel.place(x=400,y=400)
  269.  
  270. def viewdoctorbyid():
  271. viewdoctorbyid=Toplevel(root)
  272. viewdoctorbyid.geometry("1280x720+0+0")
  273. viewdoctorbyid.configure(background='SeaGreen1')
  274.  
  275. heading=Label(viewdoctorbyid,text="ID Name Sex Department Phone")
  276. heading.place(x=0,y=0)
  277. did=didviewentry.get()
  278. c.execute("SELECT *FROM doctors WHERE did=?",(did,))
  279. dview=c.fetchall()
  280. z=20
  281. if len(dview)==0:
  282. tkinter.messagebox.showinfo("No match!","No matching entries found!")
  283. else:
  284. for detail in dview:
  285. show=Label(viewdoctorbyid,text=detail)
  286. show.place(x=0,y=z)
  287. z=z+40
  288. def viewdoctorbydept():
  289. viewdoctorbydept=Toplevel(root)
  290. viewdoctorbydept.geometry("1280x720+0+0")
  291. viewdoctorbydept.configure(background='SeaGreen1')
  292.  
  293. heading=Label(viewdoctorbydept,text="ID Name Sex Department Phone")
  294. heading.place(x=0,y=0)
  295. ddept=ddeptviewentry.get()
  296. c.execute("SELECT *FROM doctors WHERE dept=?",(ddept,))
  297. dview=c.fetchall()
  298. z=20
  299. if len(dview)==0:
  300. tkinter.messagebox.showinfo("No match!","No matching entries found!")
  301. else:
  302. for detail in dview:
  303. show=Label(viewdoctorbydept,text=detail)
  304. show.place(x=0,y=z)
  305. z=z+40
  306.  
  307. def viewalldoctors():
  308. viewalldoctors=Toplevel(root)
  309. viewalldoctors.geometry("1280x720+0+0")
  310. viewalldoctors.configure(background='SeaGreen1')
  311.  
  312. heading=Label(viewalldoctors,text="ID Name Sex Department Phone")
  313. heading.place(x=0,y=0)
  314. c.execute("SELECT *FROM doctors")
  315. dview=c.fetchall()
  316. z=20
  317. if len(dview)==0:
  318. tkinter.messagebox.showinfo("No entries!","The schema has no records!")
  319. else:
  320. for detail in dview:
  321. show=Label(viewalldoctors,text=detail)
  322. show.place(x=0,y=z)
  323. z=z+40
  324.  
  325. enterdid = Button(doctorview,text="Submit",command=viewdoctorbyid).place(x=790,y=300)
  326. enterddept = Button(doctorview,text="Submit",command=viewdoctorbydept).place(x=790,y=200)
  327. dall = Button(doctorview,text=" Click ",command=viewalldoctors).place(x=790,y=400)
  328.  
  329. def viewwindowbutton():
  330. patientviewbutton = Button(view_window,text="View patient details",command=patientview).place(x=400,y=300)
  331. doctorviewbutton = Button(view_window,text="View doctor details",command=doctorview).place(x=800,y=300)
  332. viewwindowbutton()
  333.  
  334. #*********************************VIEW WINDOW END***********************
  335.  
  336.  
  337.  
  338.  
  339. #************************************DELETE WINDOW********************************
  340. def delete_window():
  341. delete_window=Toplevel(root)
  342. delete_window.geometry("1280x720+0+0")
  343. delete_window.configure(background='SeaGreen1')
  344. heading=Label(delete_window,text="Delete Details",font=('arial',32),bg='SeaGreen1')
  345. heading.place(x=640,y=30,anchor=CENTER)
  346.  
  347.  
  348.  
  349. def patientdelete():
  350. patientdelete=Toplevel(root)
  351. patientdelete.geometry("1280x720+0+0")
  352. patientdelete.configure(background='SeaGreen1')
  353. heading=Label(patientdelete,text="Patient Delete",font=('arial',32),bg='SeaGreen1')
  354. heading.place(x=640,y=30,anchor=CENTER)
  355.  
  356. pdeleteidlabel=Label(patientdelete,text="Patient ID",font=('arial',18),bg='SeaGreen1')
  357. pdeleteidlabel.place(x=400,y=300)
  358.  
  359. pdeleteidentry=Entry(patientdelete,bd=5)
  360. pdeleteidentry.place(x=550,y=300)
  361.  
  362. def deletepatient():
  363. pid=pdeleteidentry.get()
  364. c.execute("SELECT *FROM patients WHERE pid=?",(pid,))
  365. coll=c.fetchall()
  366. if len(coll)==0:
  367. tkinter.messagebox.showinfo("No match!","No matchies entries!")
  368. else:
  369. c.execute("DELETE FROM patients WHERE pid=?",(pid,))
  370. sql.commit()
  371. tkinter.messagebox.showinfo("Success!","Deleted successfully!")
  372.  
  373. deletepatientbutton=Button(patientdelete,text="Submit",command=deletepatient).place(x=700,y=300)
  374.  
  375. def doctordelete():
  376. doctordelete=Toplevel(root)
  377. doctordelete.geometry("1280x720+0+0")
  378. doctordelete.configure(background='SeaGreen1')
  379. heading=Label(doctordelete,text="Doctor Delete",font=('arial',32),bg='SeaGreen1')
  380. heading.place(x=640,y=30,anchor=CENTER)
  381.  
  382. ddeleteidlabel=Label(doctordelete,text='Doctor ID',font=('arial',18),bg='SeaGreen1')
  383. ddeleteidlabel.place(x=400,y=300)
  384.  
  385. ddeleteidentry=Entry(doctordelete,bd=5)
  386. ddeleteidentry.place(x=550,y=300)
  387.  
  388. def deletedoctor():
  389. did=ddeleteidentry.get()
  390. c.execute("SELECT *FROM doctors WHERE did=?",(did,))
  391. coll=c.fetchall()
  392. if len(coll)==0:
  393. tkinter.messagebox.showinfo("No match!","No matchies entries!")
  394. else:
  395. c.execute("DELETE FROM doctors WHERE did=?",(did,))
  396. sql.commit()
  397. tkinter.messagebox.showinfo("Success!","Deleted successfully!")
  398.  
  399. deletedoctorbutton=Button(doctordelete,text="Submit",command=deletedoctor).place(x=700,y=300)
  400.  
  401. def deletewindowbutton():
  402. pdelete=Button(delete_window,text="Delete Patient",command=patientdelete).place(x=400,y=300)
  403. ddelete=Button(delete_window,text="Delete Doctor",command=doctordelete).place(x=800,y=300)
  404. deletewindowbutton()
  405.  
  406. #***********************************DELETE WINDOW END*************************
  407.  
  408.  
  409. ############################## ##############################
  410. ############################## ##############################
  411. ##############################***************************MAIN***************************##############################
  412. ############################## ##############################
  413. ############################## ##############################
  414. insertbutton = Button(root,text="Insert details", command=insert_window).place(x=400,y=300)
  415. viewbutton = Button(root,text="View details", command=view_window).place(x=800,y=300)
  416. deletebutton = Button(root,text="Delete details", command=delete_window).place(x=600,y=300)
  417. root.mainloop()
Add Comment
Please, Sign In to add comment