All pastes #1756574 Raw Edit

Mine

public python v1 · immutable
#1756574 ·published 2010-01-18 21:07 UTC
rendered paste body
#!/usr/bin/python# -*- coding: utf-8 -*-from PyQt4 import QtCorefrom ftplib import FTPfrom PyQt4 import QtGuifrom PyQt4 import QtSqlfrom PyQt4.QtNetwork import QFtp,QNetworkAccessManagerimport sys from math import powclass First(QtGui.QDialog):    def __init__(self,parent=None):        #tre sa fac o clasa care sa sa ocupe de tranzactiile sqlite: verificat daca exista entry        #sa faca prepare and stuff        self.pacientidb=QtSql.QSqlDatabase.addDatabase("QSQLITE") #TODO: overwrite closeEvent to close database connection        self.pacientidb.setDatabaseName('data.db') #TODO with pacientidb.close(self?)        if not self.pacientidb.open():#asta trebe aplicata la fiecare operatiune?            QtGui.QMessageBox.warning(None, "Eroare tati", \                        QString("Database Error: %1").arg(self.pacientidb.lastError().text()))            sys.exit(1)        self.query=QtSql.QSqlQuery()        QtGui.QDialog.__init__(self,parent)        self.setWindowTitle('principale')        pacient=QtGui.QPushButton('Adauga pacient')        evaluare=QtGui.QPushButton('Evaluare pacient')        salvare=QtGui.QPushButton('salveaza online baza de date')        layout=QtGui.QHBoxLayout()        layout.addWidget(pacient)        layout.addWidget(salvare)        layout.addWidget(evaluare)        self.setLayout(layout)        self.connect(pacient, QtCore.SIGNAL('clicked()'),self.pacient)        self.connect(salvare, QtCore.SIGNAL('clicked()'), self.salvare)        #self.ftp=QFtp(self)        #self.ftp.connectToHost(QtCore.QString('ftp.xtreemhost.com'),21)        self.connect(evaluare, QtCore.SIGNAL('clicked()'), self.evaluare)        #self.connect(self.ftp, QtCore.SIGNAL('stateChanged(int)'), self.ochiu)        #self.connect(self.ftp, QtCore.SIGNAL('done()'), self.mergi)        #self.connect(self.ftp, QtCore.SIGNAL('commandFinished(2)'),self.ceva)        #self.connect(self.ftp, QtCore.SIGNAL('commandFinished(3)'), self.pune)        #self.connect(self.ftp, QtCore.SIGNAL('commandFinished(4)'), self.ftp.close)        #self.connect(self, QtCore.SIGNAL('commandFinished(3)'), self.ftp.close)        self.inplace=0        self.show()    def salvare(self):        ftp=FTP('ftp.xtreemhost.com')        ftp.login('xth_4930086','parola')        ftp.cwd('studiu2')        nume='data%s.db'%(QtCore.QDate.currentDate())        ftp.storbinary('STOR %s'%nume,open('data.db'))        ftp.close()    def incearca(self):        if self.ftp.currentCommand()==QFtp.ConnectToHost:            print('incerc sa ma loghez')            self.ftp.login('xth_4930086','parola')        elif self.ftp.currentCommand()==QFtp.Login:            if self.ftp.state()==QFtp.LoggedIn:                print 'm-am logat'                print self.ftp.state()                print('erroarea e',self.ftp.errorString())                self.ftp.cd('studiu2/')        elif self.ftp.currentCommand()==QFtp.Cd:            print('am intrat in studiu')            print(self.ftp.errorString())            self.pune()        elif self.ftp.currentCommand()==QFtp.Put:            print('pun fisieru')            print(self.ftp.errorString())            self.ftp.close()        elif self.ftp.currentCommand()==QFtp.Close:            print('done')    def ochiu(self):        print('commanda',self.ftp.currentId())        print(self.ftp.hasPendingCommands())        self.incearca()       def pune(self):        file=QtCore.QFile('data.db')        if (file.open(QtCore.QIODevice.ReadOnly)):            self.ftp.put(file,'studiu2/data.db')        print('am pus fisieru')    def ceva(self):        self.ftp.cd('/public_ftp/cuci/studiu')        print('am ajuns la destinatie')    def evaluare(self):        self.evaluare_d=Evaluare(self.query,self)    def pacient(self):        self.pacient_d=Pacient(self.query,self)    def closeEvent(self,event):        try:            QtSql.QSqlDatabase.close(self.pacientidb)             QtSql.QSqlDatabase.removeDatabase('data.db')            event.accept()        except:            print 'nu am inchis baza de date'            print self.pacientidb.lastError().text()            event.ignore()    def salveaza(self):        self.ftp.currentCommand()==QFtp.ConnectToHost        print(self.ftp.state())        print self.ftp.current.Command()        print(self.ftp.errorString())        print(self.ftp.state())        print('logged in')        self.ftp.put('data.db','data.db') #s-o sterg p-aia dupa calculator?        print('copied file')        self.ftp.close()class Evaluare(QtGui.QDialog):    def __init__(self,query,parent=None):        #qcompleter, fuzzy search        #fuzzy://code.activestate.com/recipes/475148/        self.query=query        self.cnp=0        QtGui.QDialog.__init__(self,parent)        self.setWindowTitle('Evaluare')        cauta=QtGui.QLabel('Cauta pacient')        self.cautat=QtGui.QLineEdit()        self.cauta=QtGui.QPushButton('Cauta')        self.rezultat=QtGui.QListWidget()        self.adaugaEvaluare_pre=QtGui.QPushButton('Pacient Predializa')        self.adaugaEvaluare_sga=QtGui.QPushButton('Evaluare SGA')        self.adaugaEvaluare_adresa=QtGui.QPushButton('Completare adresa Pacient') #TODO later        layout=QtGui.QGridLayout()        layout.addWidget(cauta)        layout.addWidget(self.cautat)        layout.addWidget(self.cauta)        layout.addWidget(self.rezultat)        layout.addWidget(self.adaugaEvaluare_pre)        layout.addWidget(self.adaugaEvaluare_sga)        layout.addWidget(self.adaugaEvaluare_adresa)        self.setLayout(layout)        self.connect(self.cauta, QtCore.SIGNAL('clicked()'),self.cauta_f)        self.connect(self.cautat,QtCore.SIGNAL('returnPressed()'),self.cauta,QtCore.SLOT('click()'))        self.connect(self.adaugaEvaluare_pre, QtCore.SIGNAL('clicked()'),\        lambda:self.adaugaEvaluare_f(self.cnp,"pre"))        self.connect(self.adaugaEvaluare_adresa, QtCore.SIGNAL('clicked()'),\        lambda:self.adaugaEvaluare_f(self.cnp,"adresa"))        self.connect(self.adaugaEvaluare_sga, QtCore.SIGNAL('clicked()'),\        lambda:self.adaugaEvaluare_f(self.cnp,"sga"))        self.exec_()    def veziEval(self):        eval=Evaluari(self.query,self.cnp,self)    def cauta_f(self):        self.rezultat.clear()        try:            a=int(self.cautat.text())            self.query.prepare('select * from pacienti where cnp=?')            self.query.addBindValue(QtCore.QVariant(a))            self.query.exec_()        except ValueError:            self.query.prepare('select * from pacienti where lower(nume)=?')        for k in 'b':            self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.cautat.text().toLower())))            self.query.exec_()            nume,prenume, data_diabet,data_dializa,cnp =range(5)            while self.query.next():#a,b,c,d is qstring                a=self.query.value(nume).toString()                b=self.query.value(prenume).toString()                c=self.query.value(data_diabet).toDate()                d=self.query.value(data_dializa).toDate()                self.cnp=self.query.value(cnp).toString()#[0]                final=a+' '+b+'\t'+self.cnp #ma rog....                self.rezultat.addItem(final)    def adaugaEvaluare_f(self,cnp,tip):        #TODO sa adaug evaluarea cu alta data        if self.rezultat.selectedItems():            continut=self.rezultat.selectedItems()            nume=continut[0].text().split('\t')[0]            cnp=continut[0].text().split('\t')[1]        else:            a=QtGui.QErrorMessage(self)            a.showMessage(QtCore.QString('cauta si tu pa cineva'))            a.exec_()        if tip=="pre":            self.analize=Analize(self.query,nume,cnp,self)         if tip=="sga":            self.sga=SGA(self.query,nume,cnp,self)        if tip=="adresa":            self.adresa=Adresa(self.query,cnp,self.rezultat.selectedItems(),self)class Adresa(QtGui.QDialog):    def __init__(self,query,cnp,nume,parent=None):        self.query=query        self.cnp=cnp        self.nume,self.prenume=nume[0].text().split('\t')[0].split(' ')        QtGui.QDialog.__init__(self,parent)        self.setWindowTitle("Adresa lu"+self.nume+self.prenume)        self.layout=QtGui.QGridLayout()        judet=QtGui.QLabel('Judet')        self.judet=QtGui.QLineEdit()        adresa=QtGui.QLabel('Adresa: ')        self.adresa=QtGui.QLineEdit()        self.resize(300,130)        fo=QtGui.QLabel('FO: ')        self.fo=QtGui.QLineEdit()        self.baga=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel)        self.baga.setCenterButtons(True)        self.layout.addWidget(judet,0,0)        self.layout.addWidget(self.judet,0,1)        self.layout.addWidget(adresa,1,0)        self.layout.addWidget(self.adresa,1,1)        self.layout.addWidget(fo,2,0)        self.layout.addWidget(self.fo,2,1)        self.layout.addWidget(self.baga,3,1)        self.setLayout(self.layout)        self.connect(self.baga,QtCore.SIGNAL('accepted()'), QtCore.SLOT('accept()'))        self.connect(self.baga,QtCore.SIGNAL('accepted()'), self.baga_adresa)        self.connect(self.baga,QtCore.SIGNAL('rejected()'), QtCore.SLOT('reject()'))        self.exec_()    def baga_adresa(self):        self.query.exec_('create table if not exists adrese\        (adresa text,judet text, fo integer(7), cnp integer(13))')         self.verifica_adresa()        self.query.prepare('insert into adrese values(?,?,?,?) ')        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.adresa.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.judet.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.fo.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.cnp)))        self.query.exec_()    def verifica_adresa(self):        self.query.prepare('select * from adrese where cnp=?')        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.cnp)))        self.query.exec_()        a=[]        while self.query.next():            a+='23'        if a:            confirmare=QtGui.QMessageBox.question(self,"Adresa","Exista deja o adresa pentru \                                                 pacientu asta vrei sa o schimbam?"\                                                  ,QtGui.QMessageBox.No,QtGui.QMessageBox.Yes)            if confirmare==QtGui.QMessageBox.Yes:                self.query.prepare('update adrese set adresa=?, judet=?, fo=? where cnp=?')                self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.adresa.text())))                self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.judet.text())))                self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.fo.text())))                self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.cnp)))                self.query.exec_()            else:                self.done()        class SGA(QtGui.QDialog):#TODO:nu e facuta verificarea    def __init__(self,query,nume,cnp, parent=None):        self.alte={}        self.query=query        self.query.exec_("create table if not exists sga(modifG integer(1),\        modifApal integer(1), modifGI integer(1), capF integer(1), comorbid \        integer(1), grasime integer(1), muschi integer(1), inaltime integer(3) ,\        greutate integer(3), pcr integer(3), feritina integer(4), cnp integer(13)\        , data date)") #TODO: categorie separata pt keto?        self.nume=nume        QtGui.QDialog.__init__(self,parent)        self.setWindowTitle('Sga la '+self.nume)        self.cnp=cnp        self.layoutAnamneza=QtGui.QGridLayout()        self.layout=QtGui.QGridLayout()        self.vlayout0=QtGui.QVBoxLayout()        self.tabw=QtGui.QTabWidget()        self.anamneza=QtGui.QWidget()        self.tabw.addTab(self.anamneza,"anamneza")        self.greutate=QtGui.QGroupBox("1.Modificari in greutate",self.anamneza)        self.greutate.setFlat(True)        self.vlayout0=QtGui.QVBoxLayout()        self.greutateGroup=QtGui.QButtonGroup(self)        self.greutate.setLayout(self.vlayout0)        self.g0=QtGui.QRadioButton("Fara modificari sau crestere in \        greutate",self.greutate)        self.greutateGroup.addButton(self.g0,0)        self.g1=QtGui.QRadioButton("Scadere in greutate minora <5%")        self.greutateGroup.addButton(self.g1,1)        self.g2=QtGui.QRadioButton("Scadere in greutate 5-10%")        self.greutateGroup.addButton(self.g2,2)        self.g3=QtGui.QRadioButton("Scadere in greutate 10-15%")        self.greutateGroup.addButton(self.g3,3)        self.g4=QtGui.QRadioButton("Scadere in greutate >15%")        self.greutateGroup.addButton(self.g4,4)        self.vlayout0.addWidget(self.g0)        self.vlayout0.addWidget(self.g1)        self.vlayout0.addWidget(self.g2)        self.vlayout0.addWidget(self.g3)        self.vlayout0.addWidget(self.g4)        self.layoutAnamneza.addWidget(self.greutate)        self.aport=QtGui.QGroupBox("2.Modificari in aportul\        alimentar",self.anamneza)        self.vlayout1=QtGui.QVBoxLayout()        self.aport.setLayout(self.vlayout1)        self.aport.setFlat(True)        self.aportGroup=QtGui.QButtonGroup(self)        self.a0=QtGui.QRadioButton("Fara modificari")        self.aportGroup.addButton(self.a0,0)        self.a1=QtGui.QRadioButton("Aport suboptim de alimente solide")        self.aportGroup.addButton(self.a1,1)        self.a2=QtGui.QRadioButton("Scadere globala moderata a aportului")        self.aportGroup.addButton(self.a2,2)        self.a3=QtGui.QRadioButton("Dieta lichidiana hipocalorica")        self.aportGroup.addButton(self.a3,3)        self.a4=QtGui.QRadioButton("Infometare")        self.aportGroup.addButton(self.a4,4)        self.vlayout1.addWidget(self.a0)        self.vlayout1.addWidget(self.a1)        self.vlayout1.addWidget(self.a2)        self.vlayout1.addWidget(self.a3)        self.vlayout1.addWidget(self.a4)        self.layoutAnamneza.addWidget(self.aport)        self.gi=QtGui.QGroupBox("3.Modificar GI",self.anamneza)        self.valyout2=QtGui.QVBoxLayout()        self.giGroup=QtGui.QButtonGroup(self)        self.gi.setLayout(self.valyout2)        self.gi.setFlat(True)        self.gi0=QtGui.QRadioButton("Fara simptome")        self.giGroup.addButton(self.gi0,0)        self.gi1=QtGui.QRadioButton("Greturi")        self.giGroup.addButton(self.gi1,1)        self.gi2=QtGui.QRadioButton("Varsaturi sau simptome moderate")        self.giGroup.addButton(self.gi2,2)        self.gi3=QtGui.QRadioButton("Diaree sau varsaturi frecvente")        self.giGroup.addButton(self.gi3,3)        self.gi4=QtGui.QRadioButton("Anorexie")        self.giGroup.addButton(self.gi4,4)        self.valyout2.addWidget(self.gi0)        self.valyout2.addWidget(self.gi1)        self.valyout2.addWidget(self.gi2)        self.valyout2.addWidget(self.gi3)        self.valyout2.addWidget(self.gi4)        self.layoutAnamneza.addWidget(self.gi)        self.funct=QtGui.QGroupBox("4.Capacitate functionala(legata de statusul\        nutritional",self.anamneza)        self.vlayout3=QtGui.QVBoxLayout()        self.funct.setLayout(self.vlayout3)        self.funct.setFlat(True)        self.functGroup=QtGui.QButtonGroup(self)        self.f0=QtGui.QRadioButton("Buna")        self.functGroup.addButton(self.f0,0)        self.f1=QtGui.QRadioButton("Dificultate la mers")        self.functGroup.addButton(self.f1,1)        self.f2=QtGui.QRadioButton("Dificultate la activitati obisnuite(menaj)")        self.functGroup.addButton(self.f2,2)        self.f3=QtGui.QRadioButton("Dificultatie la eforturi minime(mers la\        buda)")        self.functGroup.addButton(self.f3,3)        self.f4=QtGui.QRadioButton("Imobilizare la pat/fotoliu")        self.functGroup.addButton(self.f4,4)        self.vlayout3.addWidget(self.f0)        self.vlayout3.addWidget(self.f1)        self.vlayout3.addWidget(self.f2)        self.vlayout3.addWidget(self.f3)        self.vlayout3.addWidget(self.f4)        self.layoutAnamneza.addWidget(self.funct)        self.fizic=QtGui.QWidget()        self.fizicLayout=QtGui.QGridLayout()        self.comorbid=QtGui.QGroupBox("5.Comorbiditati",self.fizic)        self.vlayout4=QtGui.QGridLayout()        self.comorbid.setLayout(self.vlayout4)        self.comorbid.setFlat(True)        self.comorbidGroup=QtGui.QButtonGroup(self)        self.co0=QtGui.QRadioButton("Fara")        self.comorbidGroup.addButton(self.co0,0)        self.co1=QtGui.QRadioButton("Usoare, neasociate BCR")        self.comorbidGroup.addButton(self.co1,1)        self.co2=QtGui.QRadioButton("Moderate")        self.comorbidGroup.addButton(self.co2,2)        self.help1=QtGui.QPushButton("detalii")        self.co3=QtGui.QRadioButton("Severe")        self.comorbidGroup.addButton(self.co3,3)        self.help2=QtGui.QPushButton("detalii")        self.co4=QtGui.QRadioButton("2 sau mai multe majore")        self.comorbidGroup.addButton(self.co4,4)        self.vlayout4.addWidget(self.co0)        self.vlayout4.addWidget(self.co1)        self.vlayout4.addWidget(self.co2)        self.vlayout4.addWidget(self.help1,2,1)        self.vlayout4.addWidget(self.co3)        self.vlayout4.addWidget(self.help2,3,1)        self.vlayout4.addWidget(self.co4)        self.fizicLayout.addWidget(self.comorbid)        self.connect(self.help1, QtCore.SIGNAL("clicked()"), self.moderate)        self.connect(self.help2, QtCore.SIGNAL("clicked()"), self.majore)        self.grasime=QtGui.QGroupBox("6.Scaderea depozitelor de grasime sau")        #pierderea grasimi subcutanate(ochi, triceps, biceps,piept",self.fizic)        self.glayout=QtGui.QVBoxLayout()        self.grasime0=QtGui.QRadioButton("Fara modificari")        self.grasimeGroup=QtGui.QButtonGroup(self)        self.grasimeGroup.addButton(self.grasime0,0)        self.grasime1=QtGui.QRadioButton("Minime")        self.grasimeGroup.addButton(self.grasime1,1)        self.grasime2=QtGui.QRadioButton("Moderata")        self.grasimeGroup.addButton(self.grasime2,2)        self.grasime3=QtGui.QRadioButton("Severa")        self.grasimeGroup.addButton(self.grasime3,3)        self.glayout.addWidget(self.grasime0)        self.glayout.addWidget(self.grasime1)        self.glayout.addWidget(self.grasime2)        self.glayout.addWidget(self.grasime3)        self.grasime.setLayout(self.glayout)        self.hipotrofie=QtGui.QGroupBox("7.Semne de hipotrofie musculara ")        #(tampla, clavicula, scapuls, coaste, genunchi, interososi)")        self.hlayout=QtGui.QVBoxLayout()        self.hipo0=QtGui.QRadioButton("Fara modificari")        self.hipotrofieGroup=QtGui.QButtonGroup(self)        self.hipotrofieGroup.addButton(self.hipo0,0)        self.hipo1=QtGui.QRadioButton("Minime")        self.hipotrofieGroup.addButton(self.hipo1,1)        self.hipo2=QtGui.QRadioButton("Moderate")        self.hipotrofieGroup.addButton(self.hipo2,2)        self.hipo3=QtGui.QRadioButton("Severe")        self.hipotrofieGroup.addButton(self.hipo3,3)        self.hlayout.addWidget(self.hipo0)        self.hlayout.addWidget(self.hipo1)        self.hlayout.addWidget(self.hipo2)        self.hlayout.addWidget(self.hipo3)        self.hipotrofie.setLayout(self.hlayout)        self.fizicLayout.addWidget(self.grasime)        self.fizicLayout.addWidget(self.hipotrofie)        inaltime=QtGui.QLabel("inaltime")        self.inaltime=QtGui.QLineEdit()        cm=QtGui.QLabel("cm")        self.fizic.setLayout(self.fizicLayout)        greutate=QtGui.QLabel("greutate")        self.greutate=QtGui.QLineEdit()        kg=QtGui.QLabel("kg")        self.containerInaltime=QtGui.QWidget()        self.containerGreutate=QtGui.QWidget()        self.containerLayout=QtGui.QHBoxLayout()        self.containerLayout1=QtGui.QHBoxLayout()        self.containerLayout.addWidget(inaltime)        self.containerLayout.addWidget(self.inaltime)        self.containerLayout.addWidget(cm)        self.containerLayout1.addWidget(greutate)        self.containerLayout1.addWidget(self.greutate)        self.containerLayout1.addWidget(kg)        self.containerInaltime.setLayout(self.containerLayout) #un containter pt toate ?        self.containerGreutate.setLayout(self.containerLayout1)        self.fizicLayout.addWidget(self.containerInaltime)        self.fizicLayout.addWidget(self.containerGreutate)        self.containerPCR=QtGui.QWidget()        self.containerPCRLayout=QtGui.QHBoxLayout()        pcr=QtGui.QLabel("PCR")        self.pcr=QtGui.QLineEdit()        mgdl=QtGui.QLabel("mg/dL")        self.containerPCRLayout.addWidget(pcr)        self.containerPCRLayout.addWidget(self.pcr)        self.containerPCRLayout.addWidget(mgdl)        self.containerPCR.setLayout(self.containerPCRLayout)        self.containerFeritina=QtGui.QWidget()        self.containerFeritinaLayout=QtGui.QHBoxLayout()        feritina=QtGui.QLabel("Feritina")        self.feritina=QtGui.QLineEdit()        ngml=QtGui.QLabel("ng/ml")        self.containerFeritinaLayout.addWidget(feritina)        self.containerFeritinaLayout.addWidget(self.feritina)        self.containerFeritinaLayout.addWidget(ngml)        self.containerFeritina.setLayout(self.containerFeritinaLayout)        self.fizicLayout.addWidget(self.containerPCR)        self.fizicLayout.addWidget(self.containerFeritina)        self.anamneza.setLayout(self.layoutAnamneza)        self.tabw.addTab(self.fizic, "examen fizic")        self.layout.addWidget(self.tabw)        self.baga=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel)        self.layout.addWidget(self.baga)        self.setLayout(self.layout)        #self.connect(self.baga,QtCore.SIGNAL('accepted()'), QtCore.SLOT('accept()'))        self.connect(self.baga,QtCore.SIGNAL('rejected()'), QtCore.SLOT('reject()'))        #if self.exec_()==QtGui.QDialog.Accepted:        self.connect(self.baga, QtCore.SIGNAL('accepted()'), self.ceva)        self.exec_()    def ceva(self):        print self.verifica(self.aportGroup.checkedId()) and \                self.verifica(self.greutateGroup.checkedId())        if not self.verifica(self.greutateGroup.checkedId()) and \        self.verifica(self.aportGroup.checkedId()): # or \            eroare=QtGui.QMessageBox.critical(self,"Ai uitat ceva","ai uitat sa \            bifezi o categorie",QtGui.QMessageBox.Ok) #daca le dau titlu la            eroare.exec_()            #categorii merge sa completez mesaju cu ce cat nu e bifata        #self.verifica(self.giGroup.checkedId()) or \        #self.verifica(self.functGroup.checkedId()) or \        #self.verifica(self.comorbidGroup.checkedId()) or \        #self.verifica(self.grasimeGroup.checkedId()) or \        #self.verifica(self.hipotrofieGroup.checkedId()) :    def verifica(self,categorie):         if categorie==-1:            return False            print 'nu ai bifat o categorie'        else:            return True            print 'ai bifat categoria'    def moderate(self):        mesaj=QtGui.QMessageBox.information(self,"moderate","comorbiditi moderate:\        ICC clasa I-II NYHA; boal coronarian documentat; boli \        pulmonare cronice compensate funcional; HTA form moderat/sever.\        ".decode('utf-8'),QtGui.QMessageBox.Ok)     def majore(self):        mesaj=QtGui.QMessageBox.information(self,"majore",'comorbiditati\        CC clasa III sau IV; SIDA boal; boal coronaian sever; BPOC moderat\        sau sever; sechele     neurologice severe; neoplasm metastazat sau\        chemoterapie recent'.decode('utf-8'),QtGui.QMessageBox.Ok)        class Analize(QtGui.QDialog):    def __init__(self,query,nume,cnp, parent=None):        self.alte={}        self.query=query        self.nume=nume        QtGui.QDialog.__init__(self,parent)        self.setWindowTitle('Analize '+self.nume)        self.cnp=cnp        self.layout=QtGui.QGridLayout()        #TODO: sa nu uit sa bag un warning cand da ok cu ce analize nu sunt trecute        evaluari=QtGui.QLabel('Vezi evaluari anterioare:')        self.evaluariContainer=QtGui.QWidget()        self.evaluariLayout=QtGui.QHBoxLayout()        self.evaluariContainer.setLayout(self.evaluariLayout)        self.evaluari=QtGui.QComboBox()        self.evaluariLayout.addWidget(self.evaluari)        self.altaData=QtGui.QPushButton('alta data')        self.evaluariLayout.addWidget(self.altaData)        self.meniuData=QtGui.QMenu(self.altaData)        self.calendar=QtGui.QCalendarWidget(self.meniuData)         self.apasaData=QtGui.QWidgetAction(self.meniuData)        self.apasaData.setDefaultWidget(self.calendar)        self.meniuData.addAction(self.apasaData)        self.altaData.setMenu(self.meniuData)        self.connect(self.calendar,QtCore.SIGNAL("clicked(QDate)"),self.baga_alta_data)        self.layout.addWidget(evaluari)        self.veziEvaluari()        self.layout.addWidget(self.evaluariContainer)        tabw=QtGui.QTabWidget()        hlg=QtGui.QWidget()        pipi=QtGui.QWidget()        pipiLayout=QtGui.QGridLayout()        hlgLayout=QtGui.QGridLayout()        leucocite=QtGui.QLabel('leucocite',hlg)        self.leucocite=QtGui.QLineEdit(hlg)        hgb=QtGui.QLabel('hemoglobina',hlg)        self.hgb=QtGui.QLineEdit(hlg)        hct=QtGui.QLabel('hematocrit',hlg)        self.hct=QtGui.QLineEdit(hlg)        plt=QtGui.QLabel('trombocite',hlg)        self.plt=QtGui.QLineEdit(hlg)        bicarb=QtGui.QLabel('bicarbonat seric',hlg)        self.bicarb=QtGui.QLineEdit(hlg)        glicemie=QtGui.QLabel('glicemie',hlg)        self.glicemie=QtGui.QLineEdit(hlg)        alte=QtGui.QLabel('alta analiza',hlg)        self.altaAnaliza=QtGui.QLineEdit(hlg)        self.altaAnalizaValoare=QtGui.QLineEdit(hlg)        self.bagaAltaAnaliza=QtGui.QPushButton('baga analiza asta')        self.connect(self.bagaAltaAnaliza,QtCore.SIGNAL('clicked()'),self.alteAnalize)        hlgLayout.addWidget(leucocite,0,0)        hlgLayout.addWidget(self.leucocite,0,1)        hlgLayout.addWidget(hgb,1,0)        hlgLayout.addWidget(self.hgb,1,1)        hlgLayout.addWidget(hct,2,0)        hlgLayout.addWidget(self.hct,2,1)        hlgLayout.addWidget(plt,3,0)        hlgLayout.addWidget(self.plt,3,1)        hlgLayout.addWidget(bicarb,4,0)        hlgLayout.addWidget(self.bicarb,4,1)        pipiLayout.addWidget(glicemie,0,0)        pipiLayout.addWidget(self.glicemie,0,1)        hlgLayout.addWidget(alte,6,0)        hlgLayout.addWidget(self.altaAnaliza,7,0)        hlgLayout.addWidget(self.altaAnalizaValoare,7,1)        hlgLayout.addWidget(self.bagaAltaAnaliza,8,0)        hlg.setLayout(hlgLayout)        biochimie=QtGui.QWidget()        biochimieLayout=QtGui.QGridLayout()        acidUric=QtGui.QLabel('ac uric',biochimie)        self.acidUric=QtGui.QLineEdit(biochimie)        albumina=QtGui.QLabel('albumina',biochimie)        self.albumina=QtGui.QLineEdit(biochimie)        calciuTotal=QtGui.QLabel('calciu total',biochimie)        self.calciuTotal=QtGui.QLineEdit(biochimie)        creatinina=QtGui.QLabel('creatinina',biochimie)        self.creatinina=QtGui.QLineEdit(biochimie)        fosfor=QtGui.QLabel('fosfor',biochimie)        self.fosfor=QtGui.QLineEdit(biochimie)        fosfataza=QtGui.QLabel('fosfataza alcalina',biochimie)        self.fosfataza=QtGui.QLineEdit(biochimie)        tgop=QtGui.QLabel('TGO/TGP',pipi)        self.tgop=QtGui.QLineEdit(pipi)        uree=QtGui.QLabel('uree',biochimie)        self.uree=QtGui.QLineEdit(biochimie)        glicata=QtGui.QLabel('hemoglobina glicozilata',pipi)        self.glicata=QtGui.QLineEdit(pipi)        trigliceride=QtGui.QLabel('trigliceride',biochimie)        self.trigliceride=QtGui.QLineEdit(biochimie)        colesterol=QtGui.QLabel('colesterol total',pipi)        self.colesterol=QtGui.QLineEdit(pipi)        biochimieLayout.addWidget(acidUric,9,0)        biochimieLayout.addWidget(self.acidUric,9,1)        biochimieLayout.addWidget(albumina,3,0)        biochimieLayout.addWidget(self.albumina,3,1)        biochimieLayout.addWidget(calciuTotal,0,0)        biochimieLayout.addWidget(self.calciuTotal,0,1)        biochimieLayout.addWidget(creatinina,10,0)        biochimieLayout.addWidget(self.creatinina,10,1)        biochimieLayout.addWidget(fosfor,2,0)        biochimieLayout.addWidget(self.fosfor,2,1)        biochimieLayout.addWidget(fosfataza,1,0)        biochimieLayout.addWidget(self.fosfataza,1,1)        pipiLayout.addWidget(tgop,3,0)        pipiLayout.addWidget(self.tgop,3,1)        biochimieLayout.addWidget(uree,8,0)        biochimieLayout.addWidget(self.uree,8,1)        pipiLayout.addWidget(glicata,4,0)        pipiLayout.addWidget(self.glicata,4,1)        pipiLayout.addWidget(trigliceride,2,0)        pipiLayout.addWidget(self.trigliceride,2,1)        pipiLayout.addWidget(colesterol,1,0)        pipiLayout.addWidget(self.colesterol,1,1)        biochimie.setLayout(biochimieLayout)        leucocitepipi=QtGui.QLabel('in urina leucocite',biochimie)        self.leucocitepipi=QtGui.QLineEdit(biochimie)        hematii=QtGui.QLabel('in urina hematii',biochimie)        self.hematii=QtGui.QLineEdit(biochimie)        micro=QtGui.QLabel('microalbuminurie',biochimie)        self.micro=QtGui.QLineEdit(biochimie)        raport=QtGui.QLabel('raport microalbuminurie/creatinurie',biochimie)        self.raport=QtGui.QLineEdit(biochimie)        biochimieLayout.addWidget(leucocitepipi,6,0)        biochimieLayout.addWidget(self.leucocitepipi,6,1)        biochimieLayout.addWidget(hematii,7,0)        biochimieLayout.addWidget(self.hematii,7,1)        biochimieLayout.addWidget(micro,4,0)        biochimieLayout.addWidget(self.micro,4,1)        biochimieLayout.addWidget(raport,5,0)        biochimieLayout.addWidget(self.raport,5,1)        pipi.setLayout(pipiLayout)        patologi=QtGui.QLabel('Mai jos bagi cu , diagnosticele')        self.patologi=QtGui.QTextEdit()        self.layout.addWidget(patologi)        self.layout.addWidget(self.patologi)        recomandari=QtGui.QLabel('Aici recomandarile')        #incerc sa reimplementez click-dreapta pentru retete        self.recomandari=Recomandari(self)        #self.recomandari=QtGui.QTextEdit()        self.adaugaEvaluare=QtGui.QPushButton('Adauga Evaluare')         self.adaugaPrinteaza=QtGui.QPushButton('Adauga si Printeaza')        tabw.addTab(biochimie,"analize 1")        tabw.addTab(pipi,"analize 2")         tabw.addTab(hlg,"analize 3")        self.layout.addWidget(tabw)        mdrd=QtGui.QPushButton('Mdrd2')        epi=QtGui.QPushButton('Epi')        self.clearence=QtGui.QLabel()        self.layout.addWidget(mdrd)        self.layout.addWidget(epi)        self.layout.addWidget(self.clearence)        self.rfg=0        self.layout.addWidget(recomandari)        self.layout.addWidget(self.recomandari)        self.layout.addWidget(self.adaugaEvaluare)        self.layout.addWidget(self.adaugaPrinteaza)        self.setLayout(self.layout)        self.connect(self.adaugaEvaluare,QtCore.SIGNAL('clicked()'),self.baga_analize)        self.connect(self.adaugaEvaluare,QtCore.SIGNAL('clicked()'),self,QtCore.SLOT('accept()'))        self.connect(self.adaugaPrinteaza,QtCore.SIGNAL('clicked()'),lambda:self.baga_analize(1))        self.connect(mdrd,QtCore.SIGNAL('clicked()'),self.calculeaza)        self.connect(epi,QtCore.SIGNAL('clicked()'),self.epi)        self.connect(self.evaluari,QtCore.SIGNAL('currentIndexChanged(int)'),self.populeaza)        self.setTabOrder(self.calciuTotal, self.fosfataza)        self.setTabOrder(self.fosfataza, self.fosfor)        self.setTabOrder(self.fosfor, self.albumina)        self.setTabOrder(self.albumina, micro)        self.setTabOrder(self.micro, self.raport)        self.setTabOrder(self.raport, self.leucocitepipi)        self.setTabOrder(self.leucocitepipi, self.hematii)        self.setTabOrder(self.hematii, self.uree)        self.setTabOrder(self.uree, self.acidUric)        self.setTabOrder(self.acidUric, self.creatinina)        self.setTabOrder(self.creatinina, self.glicata)        self.setTabOrder(self.glicata, self.glicemie)        self.setTabOrder(self.glicemie, self.colesterol)        self.setTabOrder(self.colesterol, self.trigliceride)        self.setTabOrder(self.trigliceride, self.tgop)        self.exec_()    def populeaza(self):        data=self.evaluari.currentText()        self.query.prepare('select * from analize where cnp=? and data=?')        self.query.addBindValue(QtCore.QVariant(self.cnp))        self.query.addBindValue(QtCore.QVariant(data))        self.query.exec_()        lista_analize=["acidUric","albumina","calciuTotal","creatinina","fosfor","fosfataza",                    "tgop","glicata","uree","trigliceride","colesterol","leucocite","hgb",                    "hct","plt","bicarb","leucocitepipi","hematii","micro","raport",                    "patologi","recomandari"]        while self.query.next():            self.acidUric.setText(self.query.value(0).toString())            self.albumina.setText(self.query.value(1).toString())            self.calciuTotal.setText(self.query.value(2).toString())            self.creatinina.setText(self.query.value(3).toString())            self.fosfor.setText(self.query.value(4).toString())            self.fosfataza.setText(self.query.value(5).toString())            self.tgop.setText(self.query.value(6).toString())            self.glicata.setText(self.query.value(7).toString())            self.uree.setText(self.query.value(8).toString())            self.trigliceride.setText(self.query.value(9).toString())            self.colesterol.setText(self.query.value(10).toString())            self.leucocite.setText(self.query.value(11).toString())            self.hgb.setText(self.query.value(12).toString())            self.hct.setText(self.query.value(13).toString())            self.plt.setText(self.query.value(14).toString())            self.bicarb.setText(self.query.value(15).toString())            self.leucocitepipi.setText(self.query.value(16).toString())            self.hematii.setText(self.query.value(17).toString())            self.micro.setText(self.query.value(18).toString())            self.raport.setText(self.query.value(19).toString())            self.patologi.setText(self.query.value(20).toString())            self.recomandari.setText(self.query.value(21).toString())    def veziEvaluari(self):        self.query.prepare('select data from analize where cnp=?')        self.query.addBindValue(QtCore.QVariant(self.cnp))        self.query.exec_()        self.numarEvaluari=0        while self.query.next():            self.numarEvaluari+=1            meh=self.query.value(0).toString()            self.evaluari.addItem(meh)        self.evaluari.addItem(QtCore.QDate.currentDate().toString("yyyy-MM-dd"))        self.evaluari.setCurrentIndex(self.numarEvaluari)    def baga_alta_data(self):        self.evaluari.addItem(self.calendar.selectedDate().toString("yyyy-MM-dd"))        self.meniuData.hide()        self.evaluari.setCurrentIndex(self.numarEvaluari+1)    def epi(self):        sex=(self.cnp)[0]        varsta=QtCore.QDate.year(QtCore.QDate.currentDate())-int('19'+(self.cnp)[1]+(self.cnp)[2])        if sex=='2':            sex_coeficient1=0.7            sex_coeficient2=-0.329            sex_coeficient3=1.018        if sex=='1':            sex_coeficient1=0.9            sex_coeficient2=-0.411            sex_coeficient3=1        crsx=float(self.creatinina.text())/sex_coeficient1        self.rfg=141*pow(min(crsx,1),sex_coeficient2)*pow(max(crsx,1),-1.209)*pow(0.993,varsta)*sex_coeficient3        self.clearence.setText('EPI zice'+str(self.rfg))    def calculeaza(self):        sex=(self.cnp)[0]        varsta=QtCore.QDate.year(QtCore.QDate.currentDate())-int('19'+(self.cnp)[1]+(self.cnp)[2])        if not self.albumina.text()=='0':            if sex=='1':                sex_coeficient=1            if sex=='2':                sex_coeficient=0.762            try:                self.rfg=pow(float(self.albumina.text()), 0.318)*pow((float(self.uree.text())/2), -0.170)*\                    pow(float(self.creatinina.text()), -0.999)*pow(varsta, -0.176)*170*sex_coeficient            except:                self.rfg='error'#TODO better error handaling         else :            if sex=='1':                sex_coeficient=1            if sex=='2':                sex_coeficient=0.742            try:                self.rfg=186*pow(float(self.creatinina.text()),\                -1.154)*pow(varsta,-0.203)*sex_coeficient            except:                self.rfg='error'#TODO better error handaling        self.clearence.setText('MDRD2 zice'+str(self.rfg))        self.stadiu(self.rfg)    def stadiu(self,rfg):        if rfg>90 and rfg<130:            self.stadiu='I'        if rfg<90 and rfg>60:            self.stadiu='II'        if rfg<60 and rfg>30:            self.stadiu='III'        if rfg<30 and rfg>15:            self.stadiu='IV'        if rfg<15:            self.stadiu='V'    def alteAnalize(self):        if self.altaAnaliza.text()=='' or self.altaAnalizaValoare.text()=='':            a=QtGui.QErrorMessage(self)            a.showMessage('Colega baga analiza si valoarea ei in casutele de\            mai sus(imediat cum citesti asta)')        self.alte[self.altaAnaliza.text()]=self.altaAnalizaValoare.text()        self.altaAnaliza.clear()        self.altaAnalizaValoare.clear()    def baga_analize(self,analize=0):        self.query.exec_('create table if not exists analize \        (ac_uric real,albumina real,calciu_total real,creatinina real,\                         fosfor real, fosfataza real, tgop real,glicata real,uree real,trigliceride real,\                         colesterol real,leucocite real,hemoglobina real,hematocrit real,trombocite real,\                         bicarbonat real,leucocitepipi real,hematiipipi real,microalb real,\                         raport real,diagnostice blob,recomandari blob,cnp integer(13),data date)')         self.query.prepare('select * from analize where cnp=? and data=?')        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.cnp)))        self.query.addBindValue(QtCore.QVariant(self.evaluari.currentText()))        self.query.exec_()        dejaBagat=0        while self.query.next():            dejaBagat+=1        if dejaBagat>0:            self.query.prepare('update analize set\            ac_uric=?,albumina=?,calciu_total=?,creatinina=?,fosfor=?,fosfataza=?,tgop=?,glicata=?,\            uree=?,trigliceride=?,colesterol=?,leucocite=?,hemoglobina=?,hematocrit=?,\            trombocite=?,bicarbonat=?,leucocitepipi=?,hematiipipi=?,microalb=?,\            raport=?,diagnostice=?,recomandari=? where cnp=? and data=?')        if dejaBagat==0:            self.query.prepare('insert into analize values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)')        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.acidUric.text())))         self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.albumina.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.calciuTotal.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.creatinina.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.fosfor.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.fosfataza.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.tgop.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.glicata.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.uree.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.trigliceride.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.colesterol.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.leucocite.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.hgb.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.hct.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.plt.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.bicarb.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.leucocitepipi.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.hematii.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.micro.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.raport.text())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.patologi.toPlainText())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.recomandari.toPlainText())))        self.query.addBindValue(QtCore.QVariant(QtCore.QString(self.cnp)))        self.query.addBindValue(QtCore.QVariant(self.evaluari.currentText()))        self.query.exec_()        if analize==1:            self.printeaza()    def numele(self):        nume=str(self.nume)        nume_cu_litere_mari=str()        for word in nume.split():            nume_cu_litere_mari+=word.capitalize()            nume_cu_litere_mari+=' '        return nume_cu_litere_mari    def printeaza(self):        self.printer=QtGui.QPrinter(QtGui.QPrinter.HighResolution)        #self.printer.setPageMargins(7,10,7,10,QtGui.QPrinter.Millimeter)        #Pastreaza linia de mai sus ca nu stii cand cui ce-i vine        self.printer.setPageSize(QtGui.QPrinter.A4)        text=u'<html><body style="width: 210mm; height:297mm;">\            <div><img src="header_paulica.png"/></div>\                <div align="center" ><h2>Bilet de externare /Scrisoare medicala</h2></div>\                <BR></BR><div><h3>Nume:%(nume)s</h3></div>'\                %{'nume':self.numele()}        text+='<div><h3>Data evaluare: %(data)s</h3></div>' %{'data':self.evaluari.currentText()}        text+='<div><h3>Diagnostice :%(patologi)s</h3></div>' %{'patologi':self.patologi.toPlainText()}        text+='<div><h3>Tabel analize:</div><div">\                <table border="9" style="font-size:72px; text-align:center" bordercolor="black" cellpadding="5" cellspacing="0">\        <tr><th>Analiza</font></th><th>Valoare</th></tr>\                <tr><td>Acid uric</td><td>%(aciduric)s mg/dL</td></tr>' %{'aciduric':self.acidUric.text()}        text+='<tr><td>Albumina</td><td>%(albumina)s g/dL</td></tr>' %{'albumina':self.albumina.text()}        text+='<tr><td>Calciu total</td><td>%(calciu)s mg/dL</td></tr>' %{'calciu':self.calciuTotal.text()}        text+='<tr><td>Creatinina Serica</td><td>%(creatinina)s mg/dL</td></tr>'%{'creatinina':self.creatinina.text()}        text+='<tr><td>Fosfor</td><td>%(fosfor)s mg/dL</td></tr>'%{'fosfor':self.fosfor.text()}        text+='<tr><td>Fosfataza alcalina</td><td>%(fosfataza)s UI/L</td></tr>'%{'fosfataza':self.fosfataza.text()}        text+='<tr><td>TGO/TGP</td><td>%(tgop)s UI/L</td></tr>'%{'tgop':self.tgop.text()}        text+='<tr><td>Uree</td><td>%(uree)s mg/dL</td></tr>'%{'uree':self.uree.text()}        text+='<tr><td>Hemoglobina glicozilata</td><td>%(glicata)s %%</td></tr>'%{'glicata':self.glicata.text()}        text+='<tr><td>Colesterol Total</td><td>%(colesterol)s mg/dL</td></tr>'%{'colesterol':self.colesterol.text()}        text+='<tr><td>Trigliceride</td><td>%(trigliceride)s mg/dL</td></tr>'%{'trigliceride':self.trigliceride.text()}        text+='<tr><td>Glicemie</td><td>%(glicemie)s mg/dL</td></tr>'%{'glicemie':self.glicemie.text()}        if not self.rfg==0:            text+='<tr><td>MDRD2 </td><td>%(rfg)i</td></tr>'%{'rfg':self.rfg}        text+='<tr><td>Hemoleucograma</td>'        text+='<td>Leucocite %(leucocite)s mii/uL<br></br>'%{'leucocite':self.leucocite.text()}        text+='Hemoglobina %(hgb)s g/dL<br></br>'%{'hgb':self.hgb.text()}        text+='Hematocrit %(hct)s %%<br></br>'%{'hct':self.hct.text()}        text+='Trombocite %(plt)s mii/uL</td></tr>'%{'plt':self.plt.text()}        text+='<tr><td>Sumar urina</td>'        text+='<td>Hematii %(hematii)s /uL<br></br>'%{'hematii':self.hematii.text()}        text+='Microalbuminurie %(micro)s mg/dL<br></br>'%{'micro':self.micro.text()}        text+='Raport microalbuminurie/creatinina %(rap)s mg/g</td><tr></h3>'%{'rap':self.raport.text()}        if len(self.alte.keys())>0:            for k in self.alte:                text+='<tr><td>%(analiza)s</td><td>%(analizaValoare)s</td></tr>'%{'analiza':k,'analizaValoare':self.alte[k]}        text+='<br></br></table></div>\                <div><h3>Recomandari: %(recomandari)s</h3></div></body></html>'\                %{'recomandari':self.recomandari.toHtml()}        dialog=QtGui.QPrintDialog(self.printer,self)        if dialog.exec_():            document=QtGui.QTextDocument()            document.setHtml(text)            document.print_(self.printer)     class Recomandari(QtGui.QTextEdit):    def __init__(self,parent=None):        QtGui.QTextEdit.__init__(self,parent)    def contextMenuEvent(self,event):        #self.meniu=QtGui.QMenu(self)        self.meniu=self.createStandardContextMenu(event.pos())        self.meniu.addSeparator()        self.meniu.addAction("tipareste reteta &ketosteril")        self.meniu.addAction("tipareste reteta A&DO")        self.meniu.addAction("insera restrictia &proteica")        self.meniu.exec_(event.globalPos())    class Pacient(QtGui.QDialog):    def __init__(self,query,parent=None):        self.query=query        self.query.exec_("create table  if not exists pacienti (nume varchar(15), prenume varchar(25), data_dializa date,data_diabet date, cnp integer primary key) ")        #QtGui.QApplication.processEvents()        QtGui.QDialog.__init__(self,parent)        self.setWindowTitle('Pacient')        nume=QtGui.QLabel('Nume')        self.nume=QtGui.QLineEdit()        prenume=QtGui.QLabel('Prenume')        self.prenume=QtGui.QLineEdit()        cnp=QtGui.QLabel('CNP')        self.cnp=QtGui.QLineEdit()        v=QtGui.QRegExpValidator(QtCore.QRegExp("[0-9]{13}"),self.cnp)        #prima cifra din cnp nu trebe sa fie 0!        self.cnp.setValidator(v)        data_diabet=QtGui.QLabel('Debutul Diabetului')        self.data_diabet=QtGui.QDateEdit()        self.data_diabet.setCalendarPopup(True)        data_dializa=QtGui.QLabel('Debutul Dializei')        self.data_dializa=QtGui.QDateEdit()        self.data_dializa.setCalendarPopup(True)        self.adresa=QtGui.QCheckBox("bag si adresa")        self.adresa.setCheckState(QtCore.Qt.Checked)        butoane=QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel)        layout=QtGui.QGridLayout()        layout.addWidget(nume)        layout.addWidget(self.nume)        layout.addWidget(prenume)        layout.addWidget(self.prenume)        layout.addWidget(cnp)        layout.addWidget(self.cnp)        layout.addWidget(data_diabet)        layout.addWidget(self.data_diabet)        layout.addWidget(data_dializa)        layout.addWidget(self.data_dializa)        layout.addWidget(self.adresa)        layout.addWidget(butoane)        self.setLayout(layout)        self.connect(butoane,QtCore.SIGNAL('accepted()'),QtCore.SLOT('accept()'))        self.connect(butoane,QtCore.SIGNAL('rejected()'), QtCore.SLOT('reject()'))        cnpBun=(2,0)        if self.exec_()==QtGui.QDialog.Accepted and \           v.validate(self.cnp.text(),0)==cnpBun:            self.adaugaPacient()        #elif self.exec_()==QtGui.QDialog.Accepted and \            #v.validate(self.cnp.text(),0)!=cnpBun:        else:                a=QtGui.QErrorMessage(self)                a.showMessage(QtCore.QString('cnpu nu e bun'))                a.exec_()    def insert_pacient(self,nume,prenume,data_dializa,data_diabet,cnp):        self.query.prepare("select * from pacienti where cnp=?")        self.query.addBindValue(QtCore.QVariant(QtCore.QString(cnp)))        self.query.exec_()        nume_cautat=[]        prenume_cautat=[]        cnp_cautat=[]        while self.query.next():            nume_cautat.append(self.query.value(0))            prenume_cautat.append(self.query.value(1))            cnp_cautat.append(self.query.value(2))        if nume and cnp_cautat:            QtGui.QMessageBox.warning(self, "nu e bine", "CNPu cautat %(cnp)s e deja in baza de date pentru %(nume)s" %{'cnp':cnp,'nume':nume})        else:            self.query.prepare("insert into pacienti (nume, prenume, data_dializa, data_diabet, cnp) values (?,?,?,?,?)")            self.query.addBindValue(QtCore.QVariant(QtCore.QString(nume)))            self.query.addBindValue(QtCore.QVariant(QtCore.QString(prenume)))            self.query.addBindValue(QtCore.QVariant(data_dializa))            self.query.addBindValue(QtCore.QVariant(data_diabet))            self.query.addBindValue(QtCore.QVariant(QtCore.QString(cnp)))            self.query.exec_()      def adaugaPacient(self):        try:            self.insert_pacient(self.nume.text().toLower(),self.prenume.text().toLower(), self.data_dializa.date(), \                       self.data_diabet.date(),self.cnp.text())        except ValueError,e: #am reparat CNPU nu stiu la ce value error sa mai astept            a=QtGui.QErrorMessage(self)            a.showMessage(QtCore.QString('una din valorile introduse nu e buna'))            a.exec_()        #QtGui.QApplication.processEvents()        if self.adresa.isChecked():Adresa(self.query,self.cnp.text(),self.nume.text().toLower()) #urat..de refacutqapp=QtGui.QApplication([])first=First()sys.exit(qapp.exec_())