-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroom_form.py
192 lines (157 loc) · 9 KB
/
room_form.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
from tkinter import *
import tkinter.messagebox
import sqlite3
conn = sqlite3.connect("HospitalDB.db")
# Class for ROOM ALLOCATION
class Room:
def __init__(self, master):
self.master = master
self.master.title("HOSPITAL MANAGEMENT SYSTEM")
self.master.geometry("1600x800+0+0")
self.master.config(bg="light green")
self.frame = Frame(self.master, bg="light green")
self.frame.pack()
# =============ATTRIBUTES===========
self.P_id = IntVar()
self.room_t = StringVar()
self.room_no = StringVar()
self.rate = IntVar()
self.da = StringVar()
self.dd = StringVar()
# ===============TITLE==========
self.lblTitle = Label(self.frame, text="ROOM ALLOCATION FORM", font="Helvetica 20 bold", bg="light green")
self.lblTitle.grid(row=0, column=0, columnspan=2, pady=50)
# ==============FRAME==========
self.LoginFrame = Frame(self.frame, width=400, height=80, relief="ridge", bg="light green", bd=20)
self.LoginFrame.grid(row=1, column=0)
self.LoginFrame2 = Frame(self.frame, width=400, height=80, relief="ridge", bg="light green", bd=20)
self.LoginFrame2.grid(row=2, column=0)
# ===========LABELS=============
self.lblpatid = Label(self.LoginFrame, text="PATIENT ID", font="Helvetica 14 bold", bg="light green", bd=22)
self.lblpatid.grid(row=0, column=0)
self.lblpatid_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.P_id)
self.lblpatid_entry.grid(row=0, column=1)
self.room_t1 = Label(self.LoginFrame, text="ROOM TYPE\nSINGLE ROOM: Rs 4500\nTWIN SHARING : Rs2500\nTRIPLE SHARING: Rs2000\n", font="Helvetica 14 bold", bg="light green", bd=22)
self.room_t1.grid(row=1, column=0)
self.room_t1_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.room_t)
self.room_t1_entry.grid(row=1, column=1)
self.room_no1 = Label(self.LoginFrame, text="ROOM NUMBER ", font="Helvetica 14 bold", bg="light green", bd=22)
self.room_no1.grid(row=2, column=0)
self.room_no1_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.room_no)
self.room_no1_entry.grid(row=2, column=1)
self.lblrate = Label(self.LoginFrame, text="ROOM CHARGES", font="Helvetica 14 bold", bg="light green", bd=22)
self.lblrate.grid(row=0, column=2)
self.lblrate_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.rate)
self.lblrate_entry.grid(row=0, column=3)
self.lblda = Label(self.LoginFrame, text="DATE ADMITTED", font="Helvetica 14 bold", bg="light green", bd=22)
self.lblda.grid(row=1, column=2)
self.lblda_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.da)
self.lblda_entry.grid(row=1, column=3)
self.lbldd = Label(self.LoginFrame, text="DATE DISCHARGED", font="Helvetica 14 bold", bg="light green", bd=22)
self.lbldd.grid(row=2, column=2)
self.lbldd_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.dd)
self.lbldd_entry.grid(row=2, column=3)
# ===========BUTTONS=============
self.button2 = Button(self.LoginFrame2, text="SUBMIT", width=10, font="Helvetica 14 bold", bg="green", command=self.INSERT_ROOM)
self.button2.grid(row=3, column=1)
self.button3 = Button(self.LoginFrame2, text="UPDATE", width=10, font="Helvetica 14 bold", bg="yellow", command=self.UPDATE_ROOM)
self.button3.grid(row=3, column=2)
self.button5 = Button(self.LoginFrame2, text="ROOM DETAILS", width=15, font="Helvetica 14 bold", bg="orange", command=self.SEARCH_ROOM)
self.button5.grid(row=3, column=4)
self.button6 = Button(self.LoginFrame2, text="EXIT", width=10, font="Helvetica 14 bold", bg="red", command=self.Exit)
self.button6.grid(row=3, column=5)
# FUNCTION TO INSERT DATA IN ROOM ALLOCATION FORM
def INSERT_ROOM(self):
r1 = self.P_id.get()
r2 = self.room_t.get()
r3 = self.room_no.get()
r4 = self.rate.get()
r5 = self.da.get()
r6 = self.dd.get()
p = list(conn.execute("SELECT * FROM ROOM WHERE ROOM_NO=?", (r3,)))
x = len(p)
if x != 0:
tkinter.messagebox.showerror("HOSPITAL DATABASE SYSTEM", "ROOM_NO IS CURRENTLY OCCUPIED")
else:
conn.execute('INSERT INTO ROOM VALUES(?,?,?,?,?,?)', (r1, r3, r2, r4, r5, r6,))
tkinter.messagebox.showinfo("HOSPITAL DATABASE SYSTEM", "ROOM ALLOCATED")
conn.commit()
# FUNCTION TO OPEN SEARCH MENU IN ROOM ALLOCATION FORM
def SEARCH_ROOM(self):
self.newWindow = Toplevel(self.master)
self.app = S_Room(self.newWindow)
# FUNCTION TO EXIT ROOM ALLOCATION FORM
def Exit(self):
self.master.destroy()
# FUNCTION TO UPDATE DATA IN ROOM ALLOCATION FORM
def UPDATE_ROOM(self):
r1 = self.P_id.get()
r2 = self.room_t.get()
r3 = self.room_no.get()
r4 = self.rate.get()
r5 = self.da.get()
r6 = self.dd.get()
p = list(conn.execute("SELECT * FROM ROOM WHERE PATIENT_ID=? AND ROOM_NO=?", (r1, r3)))
if len(p) == 0:
tkinter.messagebox.showerror("HOSPITAL DATABASE SYSTEM", "PATIENT IS NOT ALLOCATED A ROOM")
else:
conn.execute('UPDATE ROOM SET ROOM_NO=?,ROOM_TYPE=?,RATE=?,DATE_ADMITTED=?,DATE_DISCHARGED=? WHERE PATIENT_ID=?', (r3, r2, r4, r5, r6, r1,))
tkinter.messagebox.showinfo("HOSPITAL DATABASE SYSTEM", "ROOM DETAILS UPDATED")
conn.commit()
# CLASS FOR DISPLAY MENU FOR SEARCH ROOM
class S_Room:
def __init__(self, master):
self.master = master
self.master.title("HOSPITAL MANAGEMENT SYSTEM")
self.master.geometry("1600x800+0+0")
self.master.config(bg="light green")
self.frame = Frame(self.master, bg="light green")
self.frame.pack()
self.Pr_id = IntVar()
self.lblTitle = Label(self.frame, text="SEARCH PATIENT DETAILS", font="Helvetica 20 bold", bg="light green")
self.lblTitle.grid(row=0, column=0, columnspan=2, pady=25)
# ==============FRAME==========
self.LoginFrame = Frame(self.frame, width=400, height=80, relief="ridge", bg="light green", bd=20)
self.LoginFrame.grid(row=1, column=0)
self.LoginFrame2 = Frame(self.frame, width=400, height=80, relief="ridge", bg="light green", bd=20)
self.LoginFrame2.grid(row=2, column=0)
# ===========LABELS=============
self.lblpatid = Label(self.LoginFrame, text="ENTER PATIENT ID TO SEARCH", font="Helvetica 14 bold", bg="light green", bd=22)
self.lblpatid.grid(row=0, column=0)
self.lblpatid_entry = Entry(self.LoginFrame, font="Helvetica 14 bold", bd=2, textvariable=self.Pr_id)
self.lblpatid_entry.grid(row=0, column=1)
self.SearchB = Button(self.LoginFrame2, text="SEARCH", width=10, font="Helvetica 14 bold", bg="light green", command=self.ROOM_DISPLAY)
self.SearchB.grid(row=0, column=1)
# FUNCTION TO SEARCH DATA IN ROOM ALLOCATION FORM
def ROOM_DISPLAY(self):
pat_rm = self.Pr_id.get()
c1 = conn.cursor()
p = list(c1.execute('SELECT * FROM ROOM WHERE PATIENT_ID=?', (pat_rm,)))
if len(p) == 0:
tkinter.messagebox.showerror("HOSPITAL DATABASE SYSTEM", "PATIENT NOT ALLOCATED ROOM")
else:
t = c1.execute('SELECT PATIENT_ID,NAME,ROOM_NO,ROOM_TYPE FROM ROOM NATURAL JOIN PATIENT WHERE PATIENT_ID=?', (pat_rm,))
for i in t:
self.l1 = Label(self.LoginFrame, text="PATIENT ID", font="Helvetica 14 bold", bg="light green", bd=22)
self.l1.grid(row=1, column=0)
self.dis1 = Label(self.LoginFrame, font="Helvetica 14 bold", bd=2, bg="light green", text=i[0])
self.dis1.grid(row=1, column=1)
self.l2 = Label(self.LoginFrame, text="PATIENT NAME", font="Helvetica 14 bold", bg="light green", bd=22)
self.l2.grid(row=2, column=0)
self.dis2 = Label(self.LoginFrame, font="Helvetica 14 bold", bd=2, bg="light green", text=i[1])
self.dis2.grid(row=2, column=1)
self.l3 = Label(self.LoginFrame, text="ROOM NO", font="Helvetica 14 bold", bg="light green", bd=22)
self.l3.grid(row=1, column=2)
self.dis3 = Label(self.LoginFrame, font="Helvetica 14 bold", bg="light green", bd=2, text=i[2])
self.dis3.grid(row=1, column=3)
self.l4 = Label(self.LoginFrame, text="ROOM TYPE", font="Helvetica 14 bold", bg="light green", bd=22)
self.l4.grid(row=2, column=2)
self.dis4 = Label(self.LoginFrame, font="Helvetica 14 bold", bg="light green", bd=2, text=i[3])
self.dis4.grid(row=2, column=3)
# Main function to run the application
def main():
root = Tk()
application = Room(root)
root.mainloop()
if __name__ == "__main__":
main()