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_())