Beispiel #1
0
 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()
Beispiel #3
0
 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()
Beispiel #4
0
 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.")
Beispiel #5
0
    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()
Beispiel #6
0
    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.")
Beispiel #7
0
 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
Beispiel #13
0
 def __init__(self):
     self.dataclass = jsondata()
     self.path = self.dataclass.getdatapath()
Beispiel #14
0
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')
Beispiel #16
0
    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