def __init__(self, id): self.datapath = jsondata() self.database = self.datapath.getdatapath() + "/database.db" self.path = self.datapath.getdatapath() + "/images/" conn = sqlite3.connect(self.database) sql = "SELECT * FROM entry WHERE id=" + str(id) cur = conn.cursor() self.id = id self.name = '' for row in cur.execute(sql): self.name = row[2] if row[3] == "male" or row[3] == "Male": self.sex = "Male" elif row[3] == "female" or row[3] == "Female": self.sex = "Female" else: self.sex = "Others" self.age = row[4] self.address = row[5] self.cc = row[6] self.oe = row[7] self.rf = row[8] self.pathreport = row[9] self.rediology = row[10].split(',') self.mri = row[11].split(',') self.xray = row[12].split(',') self.ctscan = row[13].split(',') self.pics = row[14].split(',') self.dxs = row[15] self.comments = row[16] conn.commit() conn.close()
def loadData(self, id): datapath = jsondata() database = datapath.getdatapath() + "/database.db" conn = sqlite3.connect(database) sql = "SELECT * FROM entry WHERE id=" + str(id) cur = conn.cursor() for row in cur.execute(sql): self.name.setText(row[2]) if row[3] == "male" or row[3] == "Male": self.sex.setCurrentText("Male") elif row[3] == "female" or row[3] == "Female": self.sex.setCurrentText("Female") else: self.sex.setCurrentText("Others") self.age.setText(row[4]) self.address.setText(row[5]) self.cc.insertPlainText(row[6]) self.oe.insertPlainText(row[7]) self.rf.insertPlainText(row[8]) self.pathreport.insertPlainText(row[9]) self.loadPics(row[10], "radiology") self.loadPics(row[11], "mri") self.loadPics(row[12], "xray") self.loadPics(row[13], "ctscan") self.loadPics(row[14], "pics") self.dxs.insertPlainText(row[15]) self.comments.insertPlainText(row[16]) conn.commit() conn.close()
def viewPics_clicked(self): datapath = jsondata() path = datapath.getdatapath() + "/images/" images = [] for x in range(self.listPics.count()): images.append(path + self.listPics.item(x).text()) self.imageviewer = ImageViewer(images) self.imageviewer.show()
def savesettings_func(self): if self.existingpath.text() == '': path = self.setpath.text() userdata = jsondata() userdata.setdatapath(path + '/pdm_database') # creating pdm_database folder according to given path dirpath = os.path.join(path, 'pdm_database') os.mkdir(dirpath) dirpath = os.path.join(dirpath, 'images') os.mkdir(dirpath) # open dashboard self.dashboard = Dashboard() self.dashboard.location_on_the_screen() self.dashboard.show() self.close() elif self.setpath.text() == '': path = self.existingpath.text() userdata = jsondata() userdata.setdatapath(path) self.close() elif self.existingpath.text() != '' and self.setpath.text() != '': QMessageBox.about(self, "Error", "You must provide only one of them.")
def refresh_table(self): datapath = jsondata() database = datapath.getdatapath() + "/database.db" conn = sqlite3.connect(database) sql = "SELECT * FROM entry" cur = conn.cursor() result = cur.execute(sql) no_row = len(result.fetchall()) self.tableWidget.setRowCount(no_row) rowindex = 0 for row in cur.execute(sql): self.tableWidget.setItem(rowindex, 0, QtWidgets.QTableWidgetItem(row[1])) self.tableWidget.setItem(rowindex, 1, QtWidgets.QTableWidgetItem(row[2])) self.tableWidget.setItem(rowindex, 2, QtWidgets.QTableWidgetItem(row[3])) self.tableWidget.setItem(rowindex, 3, QtWidgets.QTableWidgetItem(row[4])) self.tableWidget.setItem(rowindex, 4, QtWidgets.QTableWidgetItem(row[5])) self.tableWidget.setItem(rowindex, 5, QtWidgets.QTableWidgetItem(row[6])) self.tableWidget.setItem(rowindex, 6, QtWidgets.QTableWidgetItem(row[7])) self.tableWidget.setItem(rowindex, 7, QtWidgets.QTableWidgetItem(row[8])) self.tableWidget.setItem(rowindex, 8, QtWidgets.QTableWidgetItem(row[9])) self.tableWidget.setItem(rowindex, 9, QtWidgets.QTableWidgetItem(row[10])) self.tableWidget.setItem(rowindex, 10, QtWidgets.QTableWidgetItem(row[13])) self.tableWidget.setItem(rowindex, 11, QtWidgets.QTableWidgetItem(row[11])) self.tableWidget.setItem(rowindex, 12, QtWidgets.QTableWidgetItem(row[12])) self.tableWidget.setItem(rowindex, 13, QtWidgets.QTableWidgetItem(row[14])) self.tableWidget.setItem(rowindex, 14, QtWidgets.QTableWidgetItem(row[15])) self.tableWidget.setItem(rowindex, 15, QtWidgets.QTableWidgetItem(row[16])) rowindex = rowindex + 1 conn.commit() conn.close()
def clicked_login(self): # get data from user txtusername = self.username.text() txtpass = self.password.text() # get data from userdata.json file userdata = jsondata() info = userdata.getdata() if txtusername == info['username'] and txtpass == info['pass']: self.dashboard = Dashboard() self.dashboard.location_on_the_screen() self.dashboard.show() self.close() else: QMessageBox.about(self, "Error", "Username or password is incorrect.")
def delete_clicked(self): selected_id = self.tableWidget.item(self.tableWidget.currentRow(), 0).text() datapath = jsondata() database = datapath.getdatapath() + "/database.db" conn = sqlite3.connect(database) sql = f"DELETE FROM entry WHERE ID={selected_id}" msgBox = QMessageBox() msgBox.setIcon(QMessageBox.Information) msgBox.setText("Want to delete all data of ID = " + str(selected_id)) msgBox.setWindowTitle("Confirmation") msgBox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) returnValue = msgBox.exec() if returnValue == QMessageBox.Ok: conn.execute(sql) conn.commit() conn.close() self.refresh_table()
def savePic(self, list, id, flag): items = [] for index in range(list.count()): items.append(list.item(index)) datapath = jsondata() filepath = datapath.getdatapath() files = [] for item in range(0, len(items)): split_tup = os.path.splitext(items[item].text()) file_name = str(id) + "_" + flag + "_" + str(item) + split_tup[1] shutil.copy(items[item].text(), filepath + "/images/" + file_name) files.append(file_name) if len(files) > 0: path = files[0] for i in range(1, len(files)): path = path + ',' + files[i] else: path = '' return path
def saveChanges_clicked(self): id = self.id.text() name = self.name.text() sex = self.sex.currentText() age = self.age.text() address = self.address.text() cc = self.cc.toPlainText() oe = self.oe.toPlainText() rf = self.rf.toPlainText() pathreport = self.pathreport.toPlainText() # radiology = self.printlist(self.listRediology) # mri = self.printlist(self.listMri) # ctscan = self.printlist(self.listCtscan) # xray = self.printlist(self.listXray) # pics = self.printlist(self.listPics) dxs = self.dxs.toPlainText() comments = self.comments.toPlainText() # saving pics radiology = self.savePic(self.listRediology, id, "Rediology") mri = self.savePic(self.listMri, id, "Mri") xray = self.savePic(self.listXray, id, "Xray") ctscan = self.savePic(self.listCtscan, id, "Ctscan") pics = self.savePic(self.listPics, id, "Pics") # insering data to database datapath = jsondata() database = datapath.getdatapath() + "/database.db" conn = sqlite3.connect(database) sql = f"UPDATE entry SET Name='{name}', Sex='{sex}', Age='{age}', Address='{address}', CC='{cc}', OE='{oe}', RF='{rf}', Path='{pathreport}', Rediology='{radiology}', Mri='{mri}', Xray='{xray}', Ctscan='{ctscan}', Pics='{pics}', Dxs='{dxs}', Comments='{comments}' WHERE ID='{str(id)}'" conn.execute(sql) conn.commit() conn.close() self.close() # app = QApplication([]) # window = EditWindow() # window.location_on_the_screen() # window.show() # app.exec_()
def addRecord_clicked(self): id = self.id.text() name = self.name.text() sex = self.sex.currentText() age = self.age.text() address = self.address.text() cc = self.cc.toPlainText() oe = self.oe.toPlainText() rf = self.rf.toPlainText() pathreport = self.pathreport.toPlainText() # radiology = self.printlist(self.listRediology) # mri = self.printlist(self.listMri) # ctscan = self.printlist(self.listCtscan) # xray = self.printlist(self.listXray) # pics = self.printlist(self.listPics) dxs = self.dxs.toPlainText() comments = self.comments.toPlainText() # saving pics radiology = self.savePic(self.listRediology, id, "Rediology") mri = self.savePic(self.listMri, id, "Mri") xray = self.savePic(self.listXray, id, "Xray") ctscan = self.savePic(self.listCtscan, id, "Ctscan") pics = self.savePic(self.listPics, id, "Pics") # insering data to database datapath = jsondata() database = datapath.getdatapath() + "/database.db" conn = sqlite3.connect(database) sql = f"INSERT INTO entry (ID, Name, Sex, Age, Address, CC, OE, RF, Path, Rediology, Mri, Xray, Ctscan, Pics, Dxs, Comments) Values ('{str(id)}', '{name}', '{sex}', '{age}', '{address}', '{cc}', '{oe}', '{rf}', '{pathreport}', '{radiology}', '{mri}','{xray}','{ctscan}','{pics}', '{dxs}', '{comments}')" conn.execute(sql) conn.commit() conn.close() # update last id updateid = GetID() updateid.setID(int(id) + 1) self.close()
def click_create(self): # creating dictionary info = { 'name': self.name.text(), 'email': self.email.text(), 'phone': self.phone.text(), 'username': self.username.text(), 'pass': self.password.text(), 'datapath': '' } if self.password.text() == '' or self.username.text() == '': QMessageBox.about(self, "Error", "You must provide username and password") else: # use jsondata class to store info data = jsondata() data.writedata(info) # show dashboard self.settings = Settings() self.settings.location_on_the_screen() self.settings.show() self.close()
def savePic(self, list, id, flag): items = [] for index in range(list.count()): if list.item(index).text() != '': items.append(list.item(index)) datapath = jsondata() filepath = datapath.getdatapath() files = [] for item in range(0, len(items)): split_tup = os.path.splitext(items[item].text()) file_name = str(id) + "_" + flag + "_" + str(item) + split_tup[1] if len( items[item].text().split("/") ) > 1: #just checking that if file already exitst in database or not shutil.copy(items[item].text(), filepath + "/images/" + file_name) files.append(file_name) if len(files) > 0: path = files[0] for i in range(1, len(files)): path = path + ',' + files[i] else: path = '' return path
def __init__(self): self.dataclass = jsondata() self.path = self.dataclass.getdatapath()
from PyQt5.QtWidgets import QApplication from createaccount import Createaccount import login import userdataclass userdata = userdataclass.jsondata() info = userdata.getdata() app = QApplication([]) if info['username'] == '' or info['pass']=='': window = Createaccount() window.location_on_the_screen() window.show() else: window = login.Login() window.location_on_the_screen() window.show() app.exec_()
def __init__(self): self.dataclass = jsondata() self.path = self.dataclass.getdatapath() self.conn = sqlite3.connect(self.path+'/database.db')
def filter(self): flag = self.filterFlag.currentText() text = self.filterField.text() if len(text) > 1: flagRow = 1 if flag == "ID": flagRow = 1 elif flag == "Name": flagRow = 2 elif flag == "Sex": flagRow = 3 elif flag == "Age": flagRow = 4 elif flag == "Address": flagRow = 5 elif flag == "CC": flagRow = 6 elif flag == "OE": flagRow = 7 elif flag == "RF": flagRow = 8 elif flag == "Path": flagRow = 9 elif flag == "Dxs": flagRow = 15 else: flagRow = 16 datapath = jsondata() database = datapath.getdatapath() + "/database.db" conn = sqlite3.connect(database) sql = "SELECT * FROM entry" cur = conn.cursor() filterResult = [] for row in cur.execute(sql): if (row[flagRow].lower().find(text.lower()) != -1): filterResult.append(row) self.tableWidget.setRowCount(len(filterResult)) rowindex = 0 for row in filterResult: self.tableWidget.setItem(rowindex, 0, QtWidgets.QTableWidgetItem(row[1])) self.tableWidget.setItem(rowindex, 1, QtWidgets.QTableWidgetItem(row[2])) self.tableWidget.setItem(rowindex, 2, QtWidgets.QTableWidgetItem(row[3])) self.tableWidget.setItem(rowindex, 3, QtWidgets.QTableWidgetItem(row[4])) self.tableWidget.setItem(rowindex, 4, QtWidgets.QTableWidgetItem(row[5])) self.tableWidget.setItem(rowindex, 5, QtWidgets.QTableWidgetItem(row[6])) self.tableWidget.setItem(rowindex, 6, QtWidgets.QTableWidgetItem(row[7])) self.tableWidget.setItem(rowindex, 7, QtWidgets.QTableWidgetItem(row[8])) self.tableWidget.setItem(rowindex, 8, QtWidgets.QTableWidgetItem(row[9])) self.tableWidget.setItem(rowindex, 9, QtWidgets.QTableWidgetItem(row[10])) self.tableWidget.setItem(rowindex, 10, QtWidgets.QTableWidgetItem(row[13])) self.tableWidget.setItem(rowindex, 11, QtWidgets.QTableWidgetItem(row[11])) self.tableWidget.setItem(rowindex, 12, QtWidgets.QTableWidgetItem(row[12])) self.tableWidget.setItem(rowindex, 13, QtWidgets.QTableWidgetItem(row[14])) self.tableWidget.setItem(rowindex, 14, QtWidgets.QTableWidgetItem(row[15])) self.tableWidget.setItem(rowindex, 15, QtWidgets.QTableWidgetItem(row[16])) rowindex = rowindex + 1