def __init__(self, patient_id): #: self.patient_id = patient_id #: self.record_list = [] self._orig_record_list = [] query = '''select tooth, surfaces, material, comment from %s where patient_id=?''' % TABLENAME q_query = QtSql.QSqlQuery(SETTINGS.psql_conn) q_query.prepare(query) q_query.addBindValue(patient_id) q_query.exec_() while q_query.next(): record = q_query.record() new = FillRecord() QtSql.QSqlQuery.__init__(new, record) ## make a copy (a marker of database state) orig = QtSql.QSqlRecord() QtSql.QSqlQuery.__init__(orig, record) #self.record_list.append(record) self.record_list.append(new) self._orig_record_list.append(orig)
def get_records(self): ''' poll the database to get all address records associated with the patient_id given at init ''' self.record_list, self.orig_record_list = [], [] # this query LOOKS simple.. but the underlying view is VERY complex. query = ''' select * from view_addresses where patient_id=? order by mailing_pref''' q_query = QtSql.QSqlQuery(SETTINGS.psql_conn) q_query.prepare(query) q_query.addBindValue(self.patient_id) q_query.exec_() while q_query.next(): record = q_query.record() #make a copy orig = QtSql.QSqlRecord(record) new = AddressRecord(record) if self.record_list == []: SETTINGS.set_last_used_address(new) self.record_list.append(new) self.orig_record_list.append(orig)
def get(self, itemId): if type(itemId) == QVariant: itemId = itemId.toInt()[0] res = CRecordCache.get(self, itemId) # atronah: Чтобы избежать ситуации с постоянным обращением к базе, если в кеше есть запись, но она пустая # было принято решение разделить понятия # None - отсутствие в кэше, используется в CRecordCache.get как результат отстутствия в словаре # и # QtSql.QSqlRecord() - есть в кэше, но имеет пустое значение. if res is None: cond = [self.idCol.eq(itemId)] if self.deletedCol: cond.append(self.database.mainTable(self.table)['deleted'].eq(0)) if self.filter: tblPerson = self.database.table('Person') tblOrgStructJob = self.database.table('OrgStructure_Job') tblorgStruct = self.database.table('OrgStructure') queryTbl = tblPerson.innerJoin(tblorgStruct, tblPerson['orgStructure_id'].eq(tblorgStruct['id'])) queryTbl = queryTbl.innerJoin(tblOrgStructJob, tblOrgStructJob['master_id'].eq(tblorgStruct['id'])) orgStructJobId = self.database.translate(queryTbl, tblPerson['id'], QtGui.qApp.userId, tblOrgStructJob['id']) if orgStructJobId: cond.append(self.database.mainTable(self.table)['orgStructureJob_id'].eq(orgStructJobId)) res = self.database.getRecordEx(self.table, self.cols, cond, order=self._order) self.put(itemId, res if res else QtSql.QSqlRecord()) # atronah: для совместимости со старым кодом решено не возвращать QtSql.QSqlRecord(), а как и раньше - None для пустой записи return res if res and not res.isEmpty() else None
def copyItems(self, items=None): if not items: items = [] newItems = [] for item in items: newItems.append(QtSql.QSqlRecord(item)) return newItems
def on_actDuplicate_triggered(self): index = self.tblItems.currentIndex() row = index.row() items = self.modelItems.items() if 0 <= row < len(items): newItem = QtSql.QSqlRecord(items[row]) newItem.setValue('id', QtCore.QVariant()) self.modelItems.insertRecord(row + 1, newItem)
def __init__(self, parent, equipmentId, tripodCount): CRecordListModel.__init__(self, parent) self.addCol(CLoadingProbeModel.CLocInDocProbeCol(self)) self._parent = parent self._equipmentId = equipmentId self._tripodCapacity = forceInt(QtGui.qApp.db.translate('rbEquipment', 'id', equipmentId, 'tripodCapacity')) self._tripodCount = tripodCount self._tripodNumber = 0 self._probeIdList = [] self._existsProbeIdList = [] self._mapProbeId2Record = {None: QtSql.QSqlRecord()} self._mapCurrentProbeId2Record = {None: QtSql.QSqlRecord()} self._mapTripodNumberToItems = {} self.buildItemsCache()
def newRecord(self, fields=None, otherRecord=None): record = QtSql.QSqlRecord() for field in self.fields: if fields and field.field.name() not in fields: continue record.append(QtSql.QSqlField(field.field)) if otherRecord and otherRecord.contains(field.field.name()) and field != self._idField: record.setValue(field.field.name(), otherRecord.value(field.field.name())) return record
def empty_record(): rec = QtSql.QSqlRecord() rec.append(QtSql.QSqlField('id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('formula_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('number', QtCore.QVariant.String)) rec.append(QtSql.QSqlField('is_deciduous', QtCore.QVariant.Bool)) rec.append(QtSql.QSqlField('status_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('mobility', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('deleted', QtCore.QVariant.Bool)) return rec
def get_record(tooth_id, section, state_id): rec = QtSql.QSqlRecord() rec.append(QtSql.QSqlField('id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('tooth_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('section', QtCore.QVariant.String)) rec.append(QtSql.QSqlField('state_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('deleted', QtCore.QVariant.Bool)) rec.setValue('tooth_id', tooth_id) rec.setValue('section', section) rec.setValue('state_id', state_id) return rec
def handle_rcvd_record(self, r): # Create QSqlRecord object record = QtSql.QSqlRecord() record.append(QtSql.QSqlField("timestamp")) record.append(QtSql.QSqlField("component")) record.append(QtSql.QSqlField("verbosity")) record.append(QtSql.QSqlField("message")) record.setValue(0, r['asctime']) record.setValue(1, r['module']) record.setValue(2, r['levelname']) record.setValue(3, r['message']) # Insert record self.insert_record(record)
def _getSubRecord(self, masterId): subRecord = self._subRecordCache.setdefault(masterId, None) if subRecord is None: subRecord = QtGui.qApp.db.getRecordEx( table=self._subTable, cols='*', where=[self._subTable[self._subTableForeignKey].eq(masterId)] + self._subTableCond, order=u'%s DESC' % self._subTable.idField()) if subRecord is None: subRecord = QtSql.QSqlRecord(self._subTableNewRecord) subRecord.setValue(self._subTableForeignKey, QtCore.QVariant(masterId)) self._subRecordCache[masterId] = subRecord return subRecord
def create_person(self, person, person_id=None): rec = QtSql.QSqlRecord() rec.append(QtSql.QSqlField('code', QtCore.QVariant.String)) rec.setValue('code', QtCore.QVariant(person['TabNumber'])) rec.append(QtSql.QSqlField('federalCode', QtCore.QVariant.String)) rec.setValue('federalCode', QtCore.QVariant(person['TabNumber'])) rec.append(QtSql.QSqlField('regionalCode', QtCore.QVariant.String)) rec.setValue('regionalCode', QtCore.QVariant(person['TabNumber'])) rec.append(QtSql.QSqlField('firstName', QtCore.QVariant.String)) rec.setValue('firstName', QtCore.QVariant(person['Name'])) rec.append(QtSql.QSqlField('lastName', QtCore.QVariant.String)) rec.setValue('lastName', QtCore.QVariant(person['Surname'])) rec.append(QtSql.QSqlField('patrName', QtCore.QVariant.String)) rec.setValue('patrName', QtCore.QVariant(person['Patroname'])) rec.append(QtSql.QSqlField('sex', QtCore.QVariant.Int)) rec.setValue('sex', QtCore.QVariant(person['Sex'])) rec.append(QtSql.QSqlField('post_id', QtCore.QVariant.Int)) if person['PostGUID'] in self.posts: rec.setValue('post_id', QtCore.QVariant(self.posts[person['PostGUID']])) rec.append(QtSql.QSqlField('speciality_id', QtCore.QVariant.Int)) if person['SpecialityGUID'] in self.specialities: rec.setValue( 'speciality_id', QtCore.QVariant(self.specialities[person['SpecialityGUID']])) rec.append(QtSql.QSqlField('orgStructure_id', QtCore.QVariant.Int)) if person['SubdivisionGUID'] in self.org_structures: rec.setValue( 'orgStructure_id', QtCore.QVariant( self.org_structures[person['SubdivisionGUID']])) rec.append(QtSql.QSqlField('SNILS', QtCore.QVariant.String)) rec.setValue('SNILS', QtCore.QVariant(person['SNILS'])) rec.append(QtSql.QSqlField('birthDate', QtCore.QVariant.Date)) rec.setValue('birthDate', QtCore.QVariant(person['DateBirth'])) rec.append(QtSql.QSqlField('syncGUID', QtCore.QVariant.String)) rec.setValue('syncGUID', QtCore.QVariant(person['GUID'])) if person['DateEnd']: rec.append(QtSql.QSqlField('retired', QtCore.QVariant.Int)) rec.append(QtSql.QSqlField('retireDate', QtCore.QVariant.Date)) rec.setValue('retired', QtCore.QVariant(1)) rec.setValue('retireDate', QtCore.QVariant(person['DateEnd'])) if person_id: rec.append(QtSql.QSqlField('id', QtCore.QVariant.Int)) rec.setValue('id', QtCore.QVariant(person_id)) rec.append(QtSql.QSqlField('org_id', QtCore.QVariant.Int)) rec.setValue('org_id', QtCore.QVariant(QtGui.qApp.currentOrgId())) return rec
def run(self): # Parse log message ts, verb, comp, msg = self.parse_logmsg() # Create record record = QtSql.QSqlRecord() record.append(QtSql.QSqlField("timestamp")) record.append(QtSql.QSqlField("component")) record.append(QtSql.QSqlField("verbosity")) record.append(QtSql.QSqlField("message")) record.setValue(0, ts) record.setValue(1, comp) record.setValue(2, verb) record.setValue(3, msg) # Insert record self.parent.insertRecordSignal.emit(record)
def getNewRecord(): rec = QtSql.QSqlRecord() id_field = QtSql.QSqlField('id', QtCore.QVariant.ULongLong) id_field.setAutoValue(True) rec.append(id_field) rec.append(QtSql.QSqlField('client_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('amount', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('note', QtCore.QVariant.String)) rec.append(QtSql.QSqlField('tissueType_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('unit_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('number', QtCore.QVariant.String)) rec.append(QtSql.QSqlField('status', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('datetimeTaken', QtCore.QVariant.DateTime)) rec.append(QtSql.QSqlField('execPerson_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('externalId', QtCore.QVariant.String)) return rec
def record(self): """This method return in a QSqlRecord the fields (rows) of the last query""" if DEBUG_MODE: print "$$ -> LlampexResult.record() (crear QSqlRecord())" info = QtSql.QSqlRecord() if not self.isActive() or not self.isSelect(): return info global pg2qttype for field in self.fields: f = QtSql.QSqlField(field[0], pg2qttype[field[1]]) info.append(f) #if DEBUG_MODE: # print "$$ -> field:", field #if DEBUG_MODE: # print "$$ <<< LlampexResult.record()" return info
def __init__(self, patient_id): #: self.patient_id = patient_id query = 'SELECT * from %s WHERE ix = ?'% TABLENAME q_query = QtSql.QSqlQuery(SETTINGS.psql_conn) q_query.prepare(query) q_query.addBindValue(patient_id) q_query.exec_() if not q_query.next(): raise PatientNotFoundError else: record = q_query.record() QtSql.QSqlQuery.__init__(self, record) ## make a copy (a marker of database state) self.orig = QtSql.QSqlRecord() QtSql.QSqlQuery.__init__(self.orig, record)
def __init__(self, patient_id): InsertableRecord.__init__(self, SETTINGS.psql_conn, TABLENAME) #: self.patient_id = patient_id query = '''SELECT * from %s WHERE patient_id = ? order by ix desc limit 1'''% TABLENAME q_query = QtSql.QSqlQuery(SETTINGS.psql_conn) q_query.prepare(query) q_query.addBindValue(patient_id) q_query.exec_() q_query.next() record = q_query.record() QtSql.QSqlQuery.__init__(self, record) ## make a copy (a marker of database state) self.orig = QtSql.QSqlRecord() QtSql.QSqlQuery.__init__(self.orig, record)
def __init__(self, patient_id): self.tablename = TABLENAME #: self.patient_id = patient_id #: self.exists_in_db = True query = 'SELECT * from %s WHERE patient_id = ? limit 1'% TABLENAME q_query = QtSql.QSqlQuery(SETTINGS.psql_conn) q_query.prepare(query) q_query.addBindValue(patient_id) q_query.exec_() if not q_query.next(): # no memos exist. self.exists_in_db = False record = q_query.record() QtSql.QSqlQuery.__init__(self, record) ## make a copy (a marker of database state) self.orig = QtSql.QSqlRecord() QtSql.QSqlQuery.__init__(self.orig, record)
def on_openInRedactor(self): index = self.currentIndex() if index.isValid(): row = index.row() items = self.model().items() if 0 <= row < len(items): oldRecord, oldAction = items[row] oldRecord.setValue('event_id', toVariant(self._parent.eventEditor.itemId()) ) # Необходимо для шаблонов печати. dialog = CActionEditDialog(self) dialog.save = lambda: True dialog.setForceClientId(self._parent.clientId()) dialog.setRecord(QtSql.QSqlRecord(oldRecord)) dialog.setReduced(True) CAction.copyAction(oldAction, dialog.action) if dialog.exec_(): record = dialog.getRecord() items[row] = (record, dialog.action) self._parent.onActionCurrentChanged()
def updateInfoByHead(self, orgId): if orgId or self.cmbHead.value(): db = QtGui.qApp.db record = db.getRecord(db.table('Organisation'), '*', orgId) if not record: record = QtSql.QSqlRecord() setLineEditValue(self.edtINN, record, 'INN') setLineEditValue(self.edtKPP, record, 'KPP') setLineEditValue(self.edtOGRN, record, 'OGRN') setLineEditValue(self.edtFSS, record, 'FSS') setLineEditValue(self.edtOKATO, record, 'OKATO') setLineEditValue(self.edtOKPO, record, 'OKPO') setRBComboBoxValue(self.cmbOKPF, record, 'OKPF_id') setRBComboBoxValue(self.cmbOKFS, record, 'OKFS_id') headIsEmpty = not orgId self.edtINN.setEnabled(headIsEmpty) self.edtKPP.setEnabled(headIsEmpty) self.edtOGRN.setEnabled(headIsEmpty) self.edtFSS.setEnabled(headIsEmpty) self.edtOKATO.setEnabled(headIsEmpty) self.edtOKPO.setEnabled(headIsEmpty) self.cmbOKPF.setEnabled(headIsEmpty) self.cmbOKFS.setEnabled(headIsEmpty)
def empty_record(): rec = QtSql.QSqlRecord() rec.append(QtSql.QSqlField('id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('event_id', QtCore.QVariant.ULongLong)) rec.append(QtSql.QSqlField('is_deciduous', QtCore.QVariant.Bool)) return rec
def getNewRecord(cls): record = QtSql.QSqlRecord() for fieldName, fieldType in cls.fields: record.append(QtSql.QSqlField(fieldName, fieldType)) return record
def enterUsernameLogin(self,index): rec=QtSql.QSqlRecord() rec=self.tmUser.record(index.row()) self.user_login=rec.value("username") self.ui.lineEditPassword.clear()
def build(self, params): begDate = params.get('begDate', QtCore.QDate()) endDate = params.get('endDate', QtCore.QDate()) byPeriod = params.get('byPeriod', False) doctype = params.get('doctype', 0) tempInvalidReason = params.get('tempInvalidReason', None) onlyClosed = params.get('onlyClosed', True) orgStructureId = params.get('orgStructureId', None) personId = params.get('personId', None) durationFrom = params.get('durationFrom', 0) durationTo = params.get('durationTo', 0) sex = params.get('sex', 0) ageFrom = params.get('ageFrom', 0) ageTo = params.get('ageTo', 150) socStatusClassId = params.get('socStatusClassId', None) socStatusTypeId = params.get('socStatusTypeId', None) MKBFilter = params.get('MKBFilter', 0) MKBFrom = params.get('MKBFrom', '') MKBTo = params.get('MKBTo', '') insuranceOfficeMark = params.get('insuranceOfficeMark', 0) query = selectData(begDate, endDate, byPeriod, doctype, tempInvalidReason, onlyClosed, orgStructureId, personId, durationFrom, durationTo, sex, ageFrom, ageTo, socStatusClassId, socStatusTypeId, MKBFilter, MKBFrom, MKBTo, insuranceOfficeMark) self.setQueryText(forceString(query.lastQuery())) if query.next(): record = query.record() else: record = QtSql.QSqlRecord() # now text doc = QtGui.QTextDocument() cursor = QtGui.QTextCursor(doc) cursor.setCharFormat(CReportBase.ReportTitle) cursor.insertText(self.name) cursor.insertBlock() self.dumpParams(cursor, params) cursor.insertBlock() tableColumns = [ ('10%', [ u'Количество лиц, у которых установлена временная нетрудоспособность', u'всего', u'1' ], CReportBase.AlignRight), ('10%', [ u'', u'в т.ч. в результате несчастных случаев на производстве и профессиональных заболеваний', u'2' ], CReportBase.AlignRight), ('10%', [ u'Количество лиц, у которых временная нетрудоспособность установлена врачебной комиссией (сроком свыше 30 дней)', u'всего', u'3' ], CReportBase.AlignRight), ('10%', [ u'', u'в т.ч. в результате несчастных случаев на производстве и профессиональных заболеваний', u'4' ], CReportBase.AlignRight), ('10%', [ u'Количество лиц направленных на госпитализацию', u'всего', u'5' ], CReportBase.AlignRight), ('10%', [ u'', u'в т.ч. в результате несчастных случаев на производстве и профессиональных заболеваний', u'6' ], CReportBase.AlignRight), ('10%', [ u'Количество лиц направленных на медико-социальную экспертную комиссию', u'всего', u'7' ], CReportBase.AlignRight), ('10%', [ u'', u'в т.ч. в результате несчастных случаев на производстве и профессиональных заболеваний', u'8' ], CReportBase.AlignRight), ('10%', [ u'Количество лиц вернувшихся в трудоспособное состояние', u'', u'9' ], CReportBase.AlignRight), ('10%', [ u'Количество выданных заключений независимой экспертизы', u'', u'10' ], CReportBase.AlignRight), ] table = createTable(cursor, tableColumns) table.mergeCells(0, 0, 1, 2) table.mergeCells(0, 2, 1, 2) table.mergeCells(0, 4, 1, 2) table.mergeCells(0, 6, 1, 2) table.mergeCells(0, 8, 2, 1) table.mergeCells(0, 9, 2, 1) i = table.addRow() for j in range(10): table.setText(i, j, forceInt(record.value(j))) return doc
def buildItemsCache(self): emptyValue = QtSql.QSqlRecord() rowCount = self.rowCount() for tripodNumber in xrange(self._tripodCount): self._mapTripodNumberToItems[tripodNumber] = [emptyValue]*rowCount