0% found this document useful (0 votes)
21 views22 pages

Hospital Management System Using MySQL Connectivity

The Hospital Management System is a Python-based GUI application using Tkinter and MySQL for managing hospital appointments and patient registrations. It allows users to register their details, book appointments with doctors, and view available services and doctors. The system includes functionalities for data entry, appointment scheduling, and modification of patient information.

Uploaded by

Arpit Nayak
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views22 pages

Hospital Management System Using MySQL Connectivity

The Hospital Management System is a Python-based GUI application using Tkinter and MySQL for managing hospital appointments and patient registrations. It allows users to register their details, book appointments with doctors, and view available services and doctors. The system includes functionalities for data entry, appointment scheduling, and modification of patient information.

Uploaded by

Arpit Nayak
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Hospital Management System Using

MySQL Connectivity
The Hospital Management System is a
simple project
developed in Python.
Hospital Management
System is a simple
GUI based Desktop
Application in Tkinter
which is user Friendly
and very easy to
understand. This
Project Contains
Database.
import tkinter.messagebox
from tkinter import *
import mysql.connector as sqlcon
import random as rd

con=sqlcon.connect(host="localhost",user="root",password="ad
min")#connection to mysql
cur=con.cursor()
cur = con.cursor(buffered=True)
if (con):
# Carry out normal procedure
print ("Connection successful")
else:
print ("Connection unsuccessful")
cur.execute("create database if not exists Hospital")
cur.execute("use Hospital")
cur.execute("create table if not exists appointment"
"("
"idno varchar(12) primary key,"
"name char(50),"
"age char(3),"
"gender char(1),"
"phone varchar(10),"
"bg varchar(3))")
cur.execute("create table if not exists appointment_details"
"("
"idno varchar(12) primary key,"
"doctor varchar(50),"
"date varchar(20),"
"time varchar(20),"
"appointment_no varchar(10))")

# Message for registration


def entry():
global e1,e2,e3,e4,e5,e6
p1=e1.get()
p2=e2.get()
p3=e3.get()
p4=e4.get()
p5=e5.get()
p6=e6.get()

query='insert into appointment values("{}", "{}", "{}",


"{}", "{}", "{}")'.format(p1,p2,p3,p4,p5,p6)
con.commit()
cur.execute(query)

tkinter.messagebox.showinfo("DONE", "YOU HAVE BEEN


REGISTERED")

# For registration
def register():
global e1,e2,e3,e4,e5,e6
root1=Tk()
label=Label(root1,text="REGISTER YOURSELF",font='arial
25 bold')
label.pack()
frame=Frame(root1,height=500,width=200)
frame.pack()
l1=Label(root1,text="AADHAR CARD NO.")
l1.place(x=10,y=130)
e1=tkinter.Entry(root1)
e1.place(x=100,y=130)
l2=Label(root1,text="NAME")
l2.place(x=10,y=170)
e2=tkinter.Entry(root1)
e2.place(x=100,y=170)
l3=Label(root1,text="AGE")
l3.place(x=10,y=210)
e3=tkinter.Entry(root1)
e3.place(x=100,y=210)
l4=Label(root1,text="GENDER M\F")
l4.place(x=10,y=250)
e4=tkinter.Entry(root1)
e4.place(x=100,y=250)
l5=Label(root1,text="PHONE")
l5.place(x=10,y=290)
e5=tkinter.Entry(root1)
e5.place(x=100,y=290)
l6=Label(root1,text="BLOOD GROUP")
l6.place(x=10,y=330)
e6=tkinter.Entry(root1)
e6.place(x=100,y=330)
b1=Button(root1,text="SUBMIT",command=entry)
b1.place(x=150,y=370)

root.resizable(False,False)
root1.mainloop()

# Message for appointment


def apo_details():
global x1,x2,h,p1,p2,p3,o,x4,x3
p1=x2.get()
p2=x3.get()
p3=x4.get()
if int(p1)==1:
i=("Dr. sharma \nRoom no:- 10")
j=("Dr. Verma \nRoom no:- 11")
q=(i,j)
h=rd.choice(q)
u=(23,34,12,67,53,72)
o=rd.choice(u)
det=("Your appointment is fixed with",h,
"\nDate:-",p2,
"\nTime:-",p3,
'\nappointment no:-',o)

query='insert into appointment_details values("{}",


"{}", "{}", "{}", "{}")'.format(p1,h,p2,p3,o)
cur.execute(query)
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)

elif int(p1)==2:
i=("Dr. Sidharth \nRoom no. 16")
j=("Dr. Tendulkar \nRoom no. 17")
q=(i,j)
h=rd.choice(q)
u=(23,34,12,67,53,72)
o=rd.choice(u)
det=("Your appointment is fixed with",h,
"\nDate:-",p2,
"\nTime:-",p3,
'\nappointment no:-',o)
query='insert into appointment_details values("{}",
"{}", "{}", "{}", "{}")'.format(p1,h,p2,p3,o)
cur.execute(query)
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)

elif int(p1)==3:
i=("Dr. Kumar \nRoom no. 12")
j=("Dr. Khan \nRoom no. 13")
q=(i,j)
h=rd.choice(q)
u=(23,34,12,67,53,72)
o=rd.choice(u)
det=("Your appointment is fixed with",h,
"\nDate:-",p2,
"\nTime:-",p3,
'\nappointment no:-',o)
query='insert into appointment_details values("{}",
"{}", "{}", "{}", "{}")'.format(p1,h,p2,p3,o)
cur.execute(query)
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)

elif int(p1)==4:
i=("Dr. Virat, \nRoom no. 18")
j=("Dr. Leo \nRoom no. 19")
q=(i,j)
h=rd.choice(q)
u=(23,34,12,67,53,72)
o=rd.choice(u)
det=("Your appointment is fixed with",h,
"\nDate:-",p2,
"\nTime:-",p3,
'\nappointment no:-',o)
query='insert into appointment_details values("{}",
"{}", "{}", "{}", "{}")'.format(p1,h,p2,p3,o)
cur.execute(query)
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)
elif int(p1)==5:
i=("Dr. Kohli \nRoom no. 14")
j=("Dr. singh \nRoom no. 15")
q=(i,j)
h=rd.choice(q)
u=(23,34,12,67,53,72)
o=rd.choice(u)
det=("Your appointment is fixed with",h,
"\nDate:-",p2,
"\nTime:-",p3,
'\nappointment no:-',o)
query='insert into appointment_details values("{}",
"{}", "{}", "{}", "{}")'.format(p1,h,p2,p3,o)
cur.execute(query)
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)
elif int(p1)==6:
i=("Dr. Irfan \nRoom no. 001")
j=("Dr. John \nRoom no. 002")
k=("Dr. Sanjay \nRoom no. 003")
l=("Dr. Shahid \nRoom no. 004")
q=(i,j,k,l)
h=rd.choice(q)
u=(23,34,12,67,53,72)
o=rd.choice(u)
det=("Your appointment is fixed with",h,
"\nDate:-",p2,
"\nTime:-",p3,
'\nappointment no:-',o)
query='insert into appointment_details values("{}",
"{}", "{}", "{}", "{}")'.format(p1,h,p2,p3,o)
cur.execute(query)
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)
else:
tkinter.messagebox.showwarning('WRONG INPUT','PLEASE
ENTER VALID VALUE')

# For appointment
def get_apoint():
global x1,x2,x3,x4
p1=x1.get()
cur.execute('select * from appointment where
idno=(%s)',(p1,))
dat=cur.fetchall()
a=[]
for i in dat:
a.append(i)
if len(a)==0:
tkinter.messagebox.showwarning("ERROR", "NO DATA
FOUND!!")
else:
root3=Tk()
label=Label(root3,text="APPOINTMENT",font='arial 25
bold')
label.pack()
frame=Frame(root3,height=500,width=300)
frame.pack()
if i[3]=='M' or i[3]=='m':
x="Mr."
name2=Label(root3,text=i[1])
name2.place(x=140,y=80)
else:
x="Mrs\Ms."
name2=Label(root3,text=i[1])
name2.place(x=170,y=80)
for i in dat:
name=Label(root3,text='WELCOME')
name.place(x=50,y=80)
name1=Label(root3,text=x)
name1.place(x=120,y=80)
age=Label(root3,text='AGE:-')
age.place(x=50,y=100)
age1=Label(root3,text=i[2])
age1.place(x=100,y=100)
phone=Label(root3,text='PHONE:-')
phone.place(x=50,y=120)
phone1=Label(root3,text=i[4])
phone1.place(x=100,y=120)
bg=Label(root3,text='BLOOD GROUP:-')
bg.place(x=50,y=140)
bg1=Label(root3,text=i[5])
bg1.place(x=150,y=140)

L=Label(root3,text='DEPARTMENTS')
L.place(x=50,y=220)
L1=Label(root3,text="1.Orthopaedic surgeon ")
L1.place(x=50,y=250)
L2=Label(root3,text='2.Physician')
L2.place(x=50,y=270)
L3=Label(root3,text='3.Nephrologist')
L3.place(x=50,y=290)
L4=Label(root3,text='4.Neurologist')
L4.place(x=50,y=310)
L5=Label(root3,text='5.Gynaecologist')
L5.place(x=50,y=330)
L6=Label(root3,text='6.X-ray')
L6.place(x=50,y=350)
L7=Label(root3,text='Enter your choice')
L7.place(x=100,y=370)
x2=tkinter.Entry(root3)
x2.place(x=200,y=370)

L7=Label(root3,text=('enter
date')).place(x=100,y=400)
x3=tkinter.Entry(root3)
x3.place(x=200,y=400)

L8=Label(root3,text=('enter time in 24 hour


format')).place(x=48,y=430)
x4=tkinter.Entry(root3)
x4.place(x=200,y=430)

B1=Button(root3,text='Submit',command=apo_details)
B1.place(x=120,y=480)
root3.resizable(False,False)
root3.mainloop()

# For AADHAAR no input


def apoint():
global x1
root2=Tk()
label=Label(root2,text="APPOINTMENT",font='arial 25
bold')
label.pack()
frame=Frame(root2,height=200,width=200)
frame.pack()
l1=Label(root2,text="AADHAAR NO.")
l1.place(x=10,y=130)
x1=tkinter.Entry(root2)
x1.place(x=100,y=130)
b1=Button(root2,text='Submit',command=get_apoint)
b1.place(x=100,y=160)
root2.resizable(False,False)
root2.mainloop()

# List of doctors
def lst_doc():
root4=Tk()

l=["Dr. sharma","Dr. Verma","Dr. Kumar","Dr. Khan","Dr.


Kohli","Dr. singh","Dr. Sidharth","Dr. tendulkar","Dr.
Virat","Dr. Leo",'Dr. Irfan','Dr. John',
'Dr. Sanjay','Dr. Shahid']
m=["Orthopaedic surgeon","Orthopaedic
surgeon","Nephrologist","Nephrologist","Gynaecologist","Gyna
ecologist","Physician","Physician","Neurologist",
"Neurologist",'X-ray','X-ray','X-ray','X-ray']
n=[10,11,12,13,14,15,16,17,18,19,20,21,22,23]

frame=Frame(root4,height=500,width=500)
frame.pack()

l1=Label(root4,text='NAME OF DOCTORS')
l1.place(x=20,y=10)
count=20
for i in l:
count=count+20
l=Label(root4,text=i)
l.place(x=20,y=count)

l2=Label(root4,text='DEPARTMENT')
l2.place(x=140,y=10)
count1=20
for i in m:
count1=count1+20
l3=Label(root4,text=i)
l3.place(x=140,y=count1)

l4=Label(root4,text='ROOM NO')
l4.place(x=260,y=10)
count2=20
for i in n:
count2=count2+20
l5=Label(root4,text=i)
l5.place(x=260,y=count2)
root.resizable(False,False)
root4.mainloop()

def ser_avail():

root5=Tk()
frame=Frame(root5,height=500,width=500)
frame.pack()
l1=Label(root5,text='SERVICES AVAILABLE')
l1.place(x=20,y=10)
f=["ULTRASOUND","X-RAY","CT Scan","MRI","BLOOD
COLLECTION","DIALYSIS","ECG","CHEMIST","LAB"]
count1=20
for i in f:
count1=count1+20
l3=Label(root5,text=i)
l3.place(x=20,y=count1)
l2=Label(root5,text='ROOM NO.')
l2.place(x=140,y=10)
g=[1,2,3,4,5,6,7,8,9]
count2=20
for i in g:
count2=count2+20
l4=Label(root5,text=i)
l4.place(x=140,y=count2)
l5=Label(root5,text='To avail any of these please
contact on our no.:- 7042****55')
l5.place(x=20,y=240)
root5.resizable(False,False)
root5.mainloop()

def modify():
global x3,x4,choice,new,x5,root6
p1=x3.get()
cur.execute('select * from appointment where
idno=(%s)',(p1,))

dat=cur.fetchall()
a=[]
for i in dat:
a.append(i)
if len(a)==0:
tkinter.messagebox.showwarning("ERROR", "NO DATA
FOUND!!")
else:
root6=Tk()
frame=Frame(root6,height=500,width=500)
frame.pack()
l1=Label(root6,text='DATA MODIFICATION',font="arial 15
bold")
l1.place(x=75,y=10)
l2=Label(root6,text='WHAT YOU WANT TO CHANGE')
l2.place(x=50,y=200)
l3=Label(root6,text='1.NAME')
l3.place(x=50,y=220)
l4=Label(root6,text='2.AGE')
l4.place(x=50,y=240)
l5=Label(root6,text='3.GENDER')
l5.place(x=50,y=260)
l6=Label(root6,text='4.PHONE')
l6.place(x=50,y=280)
l7=Label(root6,text='5.BLOOD GROUP')
l7.place(x=50,y=300)
x2=Label(root6,text='Enter')
x2.place(x=50,y=330)
x4=tkinter.Entry(root6)
choice=x4.get()
x4.place(x=100,y=330)
for i in dat:
name=Label(root6,text='NAME:-')
name.place(x=50,y=80)
name1=Label(root6,text=i[1])
name1.place(x=150,y=80)
age=Label(root6,text='AGE:-')
age.place(x=50,y=100)
age1=Label(root6,text=i[2])
age1.place(x=150,y=100)
gen=Label(root6,text='GENDER:-')
gen.place(x=50,y=120)
gen1=Label(root6,text=i[3])
gen1.place(x=150,y=120)
pho=Label(root6,text='PHONE:-')
pho.place(x=50,y=140)
pho1=Label(root6,text=i[4])
pho1.place(x=150,y=140)
bg=Label(root6,text='BLOOD GROUP:-')
bg.place(x=50,y=160)
bg1=Label(root6,text=i[5])
bg1.place(x=150,y=160)
b=Button(root6,text='Submit',command=do_modify)
b.place(x=50,y=400)
L1=Label(root6,text='OLD DETAILS')
L1.place(x=50,y=50)
L2=Label(root6,text='ENTER NEW DETAIL')
L2.place(x=50,y=360)
x5=tkinter.Entry(root6)
new=x5.get()
x5.place(x=160,y=360)

root6.resizable(False,False)
root6.mainloop()

def do_modify():
global ad,x3,x4,x5
ad=x3.get()
choice=x4.get()
new=x5.get()
if choice=='1':
cur.execute('update appointment set name={} where
idno={}'.format(new,ad))
elif choice=='2':
cur.execute('update appointment set age={} where
idno={}'.format(new,ad))
elif choice=='3':
cur.execute('update appointment set gender={} where
idno={}'.format(new,ad))
elif choice=='4':
cur.execute('update appointment set phone={} where
idno={}'.format(new,ad))
elif choice=='5':
cur.execute('update appointment set bg={} where
idno={}'.format(new,ad))
else:
pass
root6.destroy()
tkinter.messagebox.showinfo("DONE", "YOUR DATA HAS BEEN
MODIFIED")

choice=None
new=None
ad=None
def mod_sub():
global x3,ad
root7=Tk()
label=Label(root7,text="MODIFICATION",font='arial 25
bold')
label.pack()
frame=Frame(root7,height=200,width=200)
frame.pack()
l1=Label(root7,text="AADHAAR NO.")
l1.place(x=10,y=130)
x3=tkinter.Entry(root7)
x3.place(x=100,y=130)
ad=x3.get()
b1=Button(root7,text='Submit',command=modify)
b1.place(x=100,y=160)
root7.resizable(False,False)
root7.mainloop()

def search_data():
global x3,ad
root7=Tk()
label=Label(root7,text="SEARCH DATA",font='arial 25
bold')
label.pack()
frame=Frame(root7,height=200,width=200)
frame.pack()
l1=Label(root7,text="AADHAAR NO.")
l1.place(x=10,y=130)
x3=tkinter.Entry(root7)
x3.place(x=100,y=130)
ad=x3.get()
b1=Button(root7,text='Submit',command=view_data)
b1.place(x=100,y=160)
root7.resizable(False,False)
root7.mainloop()

def view_data():
global p1
p1=x3.get()
cur.execute('select * from appointment where
idno=(%s)',(p1,))

dat=cur.fetchall()
print(dat)
a=[]
for i in dat:
a.append(i)
if len(a)==0:
tkinter.messagebox.showwarning("ERROR", "NO DATA
FOUND!!")
else:
det=a
tkinter.messagebox.showinfo("APPOINTMENT
DETAILS",det)

root=Tk()
label=Label(root,text="INDIAN HOSPITAL",font="arial 40
bold",bg='light blue')
b1=Button(text="Registration",font="arial 20
bold",bg='yellow',command=register)
b2=Button(text="Appointment",font="arial 20
bold",bg='yellow',command=apoint)
b3=Button(text="List of Doctors",font="arial 20
bold",bg='yellow',command=lst_doc)
b4=Button(text="Services available",font='arial 20
bold',bg='yellow',command=ser_avail)
b7=Button(text="View data",font='arial 20
bold',bg='yellow',command=search_data)
b5=Button(text="Modify existing data",font='arial 20
bold',bg='yellow',command=mod_sub)
b6=Button(text="Exit",font='arial 20
bold',command=root.destroy,bg='violet')
label.pack()
b1.pack(side=LEFT,padx=10)
b3.pack(side=LEFT,padx=10)
b4.pack(side=LEFT,padx=10)
b2.place(x=25,y=500)
b7.pack(side=LEFT,padx=10)
b5.place(x=350,y=500)
b6.place(x=800,y=500)
frame=Frame(root,height=600,width=50)
frame.pack()
root.resizable(False,False)
root.mainloop()
OUTPUT

You might also like