def addVisit(self, record): db = QtGui.qApp.db try: visit = db.table('Visit').newRecord() eventId = self.addIfNotExistEvent(record) visit.setValue('event_id', eventId) self.addDiagnostic(record, eventId) self.addIfNotExistEmergencyCall(record, eventId) visit.setValue('date', toVariant(forceDate(record['begDate']))) visit.setValue('visitType_id', self.visitTypeId) visit.setValue('person_id', forceRef(record['personId'])) visit.setValue('scene_id', self.sceneId) visit.setValue('finance_id', CFinanceType.getId(CFinanceType.CMI)) visit.setValue('service_id', self.getServiceId(record)) self.visits += 1 return forceRef(db.insertRecord(db.table('Visit'), visit)) except Exception as ex: self.logBrowser.append(u'<b><font color=red>ОШИБКА:</b> ' + u'\nСтрока: {0:d} ФИО: {1:s} \n'.format( self.i, forceString(record['lastName']) + u' ' + forceString(record['firstName']) + u' ' + forceString(record['patrName']) + u' ' + forceDate(record['birthDate']). toString(QtCore.Qt.ISODate)) + ex.message + u'\n') self.btnImport.setEnabled(True) db.rollback() raise
def loadPreferences(self, preferences): CDialogBase.loadPreferences(self, preferences) self.rbByPeriod.setChecked( forceBool(getPref(preferences, 'byPeriod', False))) self.edtLeavedDate.setDate( forceDate( getPref(preferences, 'leavedDate', QtCore.QDate.currentDate()))) self.chkByReceivedDate.setChecked( forceBool(getPref(preferences, 'byReceivedDate', False))) self.edtReceivedBegDate.setDate( forceDate( getPref(preferences, 'receivedBegDate', QtCore.QDate.currentDate()))) self.edtReceivedEndDate.setDate( forceDate( getPref(preferences, 'receivedEndDate', QtCore.QDate.currentDate()))) self.chkByLeavedDate.setChecked( forceBool(getPref(preferences, 'byLeavedDate', True))) self.edtLeavedBegDate.setDate( forceDate( getPref(preferences, 'leavedBegDate', QtCore.QDate.currentDate()))) self.edtLeavedEndDate.setDate( forceDate( getPref(preferences, 'leavedEndDate', QtCore.QDate.currentDate()))) self.cmbOrgStructure.setValue( forceRef( getPref(preferences, 'orgStructureId', QtGui.qApp.currentOrgStructureId())))
def initByRecord(self, record): self._type = forceInt(record.value('type')) self._doctype = self.getInstance(CTempInvalidDocTypeInfo, forceRef(record.value('doctype_id'))) self._reason = self.getInstance( CTempInvalidReasonInfo, forceRef(record.value('tempInvalidReason_id'))) self._extraReason = self.getInstance( CTempInvalidExtraReasonInfo, forceRef(record.value('tempInvalidExtraReason_id'))) self._busyness = forceInt(record.value('busyness')) self._placeWork = forceString(record.value('placeWork')) self._serial = forceString(record.value('serial')) self._number = forceString(record.value('number')) self._sex = formatSex(forceInt(record.value('sex'))) self._age = forceInt(record.value('age')) self._employmentService = forceBool(record.value('employmentService')) self._duration = forceInt(record.value('duration')) self._externalDuration = 0 self._begDate = CDateInfo(forceDate(record.value('begDate'))) self._endDate = CDateInfo(forceDate(record.value('endDate'))) self._person = self.getInstance(CPersonInfo, forceRef(record.value('person_id'))) self._closed = forceInt(record.value('closed')) self._MKB = self.getInstance(CMKBInfo, forceString(record.value('MKB'))) self._MKBEx = self.getInstance(CMKBInfo, forceString(record.value('MKBEx'))) prev_id = forceRef(record.value('prev_id')) if prev_id: self._prev = self.getInstance(CTempInvalidInfo, prev_id) self._periods = self.getInstance(CTempInvalidPeriodInfoList, self.id)
def addIfNotExistEvent(self, record): db = QtGui.qApp.db id = forceRef( db.translateEx('Event', 'externalId', record['externalId'], 'id')) if id: self.clientId = forceRef( db.translateEx('Event', 'id', id, 'client_id')) return id else: event = db.table('Event').newRecord() event.setValue('externalId', record['externalId']) event.setValue('eventType_id', self.eventTypeId) event.setValue('org_id', self.getOrganisationId(record)) self.clientId = self.addIfNotExistClient(record) event.setValue('client_id', self.clientId) # event.setValue('contract_id', ) #Нет event.setValue('setDate', toVariant(forceDate(record['begDate']))) event.setValue('execDate', toVariant(forceDate(record['endDate']))) event.setValue('execPerson_id', forceRef(record['personId'])) event.setValue('createPerson_id', forceRef(record['personId'])) event.setValue('result_id', self.getEventResultId(record)) event.setValue('littleStranger_id', self.addEventLittleStranger(record)) event.setValue('goal_id', self.getGoalId(record)) self.events += 1 return forceRef(db.insertRecord(db.table('Event'), event))
def loadData(self, clientId, showAccomp, showModified): self.items = [] if clientId: db = QtGui.qApp.db tableDiagnosis = db.table('Diagnosis') tableDispanser = db.table('rbDispanser') table = tableDiagnosis.leftJoin( tableDispanser, tableDispanser['id'].eq(tableDiagnosis['dispanser_id'])) cols = [ tableDiagnosis['id'], tableDiagnosis['MKB'], tableDiagnosis['MKBEx'], tableDiagnosis['morphologyMKB'], tableDiagnosis['setDate'], tableDiagnosis['endDate'], tableDispanser['observed'], tableDiagnosis['mod_id'], tableDiagnosis['diagnosisType_id'], tableDiagnosis['character_id'] ] cond = [ tableDiagnosis['client_id'].eq(clientId), tableDiagnosis['character_id'].eq(self.characterId), tableDiagnosis['deleted'].eq(0) ] dtIdList = [self.dtidBase] if showAccomp: dtIdList.append(self.dtidAcomp) if showModified: dtIdList.append(self.dtidModified) cond.append(tableDiagnosis['diagnosisType_id'].inlist(dtIdList)) if not showModified: cond.append(tableDiagnosis['mod_id'].isNull()) # if self.limitDate: # cond.append(tableDiagnosis['endDate'].ge(getLimitDate())) records = db.getRecordList( table, cols, cond, tableDiagnosis['endDate'].name() + ' DESC') for record in records: id = forceRef(record.value('id')) MKB = forceString(record.value('MKB')) MKBEx = forceString(record.value('MKBEx')) morphologyMKB = forceString(record.value('morphologyMKB')) setDate = forceDate(record.value('setDate')) endDate = forceDate(record.value('endDate')) observed = forceBool(record.value('observed')) modId = forceRef(record.value('mod_id')) diagnosisTypeId = forceRef(record.value('diagnosisType_id')) characterId = forceRef(record.value('character_id')) item = [(MKB + '+' + MKBEx) if MKBEx else MKB, forceString(setDate), forceString(endDate), formatBool(observed), MKB, MKBEx, diagnosisTypeId != self.dtidBase, bool(modId) or diagnosisTypeId == self.dtidModified, None, id] if self.colAdd: item.insert(1, morphologyMKB) self.items.append(item) self.reset()
def getActionLength(self, record, countRedDays): if record: startDate = forceDate(record.value('begDate')) stopDate = forceDate(record.value('endDate')) if startDate and stopDate: return getEventLengthDays(startDate, stopDate, countRedDays, self.eventEditor.eventTypeId) return 0
def processPolicy(self, isNew, clientId, policy): """Запись данных о полисе пациента. Если не совпадает со старым - добавляем новую запись. @param isNew: пациент отсутствует в базе. Если это не так, то производится поиск полиса и определение необходимости изменения данных. @param clientId: id пациента @param policy: данные о полисе. @return: None """ if policy: db = self.db policyType = self._cache.policyType.get(policy.PolicyTypeCode, None) policyTypeId = policyType['id'] if policyType else None policyKind = self._cache.policyKind.get(policy.PolicyKindCode, '') policyKindId = policyKind['id'] if policyKind else None insurerId = self.getOrgIdByCode(policy.InsurerCode) if isNew: clientPolicyRecord = self.tableClientPolicy.newRecord() else: clientPolicyRecord = getClientPolicy(clientId) if clientPolicyRecord is None or \ forceString(clientPolicyRecord.value('serial')) != policy.Serial or \ forceString(clientPolicyRecord.value('number')) != policy.Number or \ forceDate(clientPolicyRecord.value('begDate')).toString(QtCore.Qt.ISODate) != policy.BegDate or \ forceDate(clientPolicyRecord.value('endDate')).toString(QtCore.Qt.ISODate) != policy.EndDate or \ forceString(clientPolicyRecord.value('name')) != policy.Name or \ forceRef(clientPolicyRecord.value('policyType_id')) != policyTypeId or \ forceRef(clientPolicyRecord.value('policyKind_id')) != policyKindId or \ forceRef(clientPolicyRecord.value('insurer_id')) != insurerId: clientPolicyRecord = self.tableClientPolicy.newRecord() else: return clientPolicyRecord.setValue('serial', toVariant(policy.Serial)) clientPolicyRecord.setValue('number', toVariant(policy.Number)) clientPolicyRecord.setValue( 'begDate', toVariant( QtCore.QDate.fromString(policy.BegDate, QtCore.Qt.ISODate))) clientPolicyRecord.setValue( 'endDate', toVariant( QtCore.QDate.fromString(policy.EndDate, QtCore.Qt.ISODate))) clientPolicyRecord.setValue('name', toVariant(policy.Name)) clientPolicyRecord.setValue('insurer_id', toVariant(insurerId)) if policyTypeId: clientPolicyRecord.setValue('policyType_id', toVariant(policyTypeId)) if policyKindId: clientPolicyRecord.setValue('policyKind_id', toVariant(policyKindId)) clientPolicyRecord.setValue('client_id', toVariant(clientId)) db.insertOrUpdate(self.tableClientPolicy, clientPolicyRecord)
def getPersonInfo(record): personInfo = '' if forceInt(record.value('policyKindCode')) == 1: personInfo += u'Тип документа: Полис ОМС старого образца, код ' + forceString( record.value('policyKindCode')) + ' ; ' elif forceInt(record.value('policyKindCode')) == 2: personInfo += u'Тип документа: Временное свидетельство, код ' + forceString( record.value('policyKindCode')) + ' ; ' elif forceInt(record.value('policyKindCode')) == 3: personInfo += u'Тип документа: Полис ОМС единого образца, код ' + forceString( record.value('policyKindCode')) + ' ; ' else: personInfo += u'Тип документа: - , код ' + forceString( record.value('policyKindCode')) + ' ; ' if forceString(record.value('policySerial')): personInfo += u'серия полиса: ' + forceString( record.value('policySerial')) + '; ' if forceString(record.value('policyNumber')): personInfo += u'номер полиса: ' + forceString( record.value('policyNumber')) + '; ' if forceString(record.value('orgInsInfisCode')): personInfo += u'код СМО: ' + forceString( record.value('orgInsInfisCode')) + '; ' if forceString(record.value('orgInsArea')): personInfo += u'код территории страхования: ' + forceString( record.value('orgInsArea')) + '; ' if forceString(record.value('lastName')) or forceString( record.value('firstName')) or forceString( record.value('patrName')): personInfo += u'ФИО пациента: ' + forceString( record.value('lastName')) + ' ' + forceString( record.value('firstName')) + ' ' + forceString( record.value('patrName')) + '; ' if forceInt(record.value('sex')) == 0: personInfo += u'пол: не определено; ' elif forceInt(record.value('sex')) == 1: personInfo += u'пол: М; ' else: personInfo += u'пол: Ж; ' if forceDate(record.value('birthDate')): personInfo += u'дата рождения: ' + forceDate( record.value('birthDate')).toString('yyyy-MM-dd') + 'T00:00:00; ' if forceString(record.value('contactName')) or forceString( record.value('contact')): personInfo += u'контактная информация: ' + forceString( record.value('contactName')) + ' ' + forceString( record.value('contact')) + '; ' if forceString(record.value('documentSerial')): personInfo += u'серия документа, удостоверяющего личность: ' + forceString( record.value('documentSerial')) + '; ' if forceString(record.value('documentNumber')): personInfo += u'номер документа, удостоверяющего личность: ' + forceString( record.value('documentNumber')) + '; ' if forceString(record.value('documentType')): personInfo += u'тип документа, удостоверяющего личность: ' + forceString( record.value('documentType')) + '. ' return personInfo
def checkPolicy(self, clientId, setDate, execDate): policy=getClientPolicy(clientId) if policy: begDate=forceDate(policy.value('begDate')) endDate=forceDate(policy.value('endDate')) if begDate and begDate>setDate: self.err2log(u'полис выдан после начала ДД') if endDate and endDate<execDate: self.err2log(u'полис аннулирован')
def loadData(self): self.items = [] db = QtGui.qApp.db tableAPHB = db.table('ActionProperty_HospitalBed') tableAP = db.table('ActionProperty') tableAction = db.table('Action') tableEvent = db.table('Event') tableClient = db.table('Client') tableEventType = db.table('EventType') tablePersonWithSpeciality = db.table('vrbPersonWithSpeciality') queryTable = tableAPHB.leftJoin(tableAP, tableAPHB['id'].eq(tableAP['id'])) queryTable = queryTable.leftJoin( tableAction, tableAction['id'].eq(tableAP['action_id'])) queryTable = queryTable.leftJoin( tableEvent, tableEvent['id'].eq(tableAction['event_id'])) queryTable = queryTable.leftJoin( tableClient, tableEvent['client_id'].eq(tableClient['id'])) queryTable = queryTable.leftJoin( tableEventType, tableEvent['eventType_id'].eq(tableEventType['id'])) queryTable = queryTable.leftJoin( tablePersonWithSpeciality, tableEvent['execPerson_id'].eq(tablePersonWithSpeciality['id'])) cols = [ tableEvent['id'].alias('eventId'), tableEvent['client_id'], tableClient['lastName'], tableClient['firstName'], tableClient['patrName'], tableClient['sex'], tableClient['birthDate'], tableEvent['setDate'], tableEvent['execDate'], tablePersonWithSpeciality['name'], tableEventType['name'].alias('eventType') ] cond = [ tableAPHB['value'].eq(self.hospitalBedId), tableAction['deleted'].eq(0), tableAction['status'].inlist([0, 1]), tableEvent['deleted'].eq(0), ] records = db.getRecordList(queryTable, cols, cond) for record in records: clientId = forceRef(record.value('client_id')) sexClient = self.sex[forceInt(record.value('sex'))] item = [ clientId, forceString(record.value('lastName')) + u' ' + forceString(record.value('firstName')) + u' ' + forceString(record.value('patrName')), sexClient, forceDate(record.value('birthDate')), forceDate(record.value('setDate')), forceDate(record.value('execDate')), forceString(record.value('eventType')), forceString(record.value('name')), forceRef(record.value('eventId')) ] self.items.append(item) self.reset()
def initByRecord(self, record): self._begPerson = self.getInstance( CPersonInfo, forceRef(record.value('begPerson_id'))) self._begDate = CDateInfo(forceDate(record.value('begDate'))) self._endPerson = self.getInstance( CPersonInfo, forceRef(record.value('endPerson_id'))) self._endDate = CDateInfo(forceDate(record.value('endDate'))) self._numberPermit = forceString(record.value('numberPermit')) self._begDatePermit = CDateInfo( forceDate(record.value('begDatePermit'))) self._endDatePermit = CDateInfo( forceDate(record.value('endDatePermit'))) self._isExternal = forceBool(record.value('isExternal')) self._regime = self.getInstance(CTempInvalidRegimeInfo, forceRef(record.value('regime_id'))) self._break = self.getInstance(CTempInvalidBreakInfo, forceRef(record.value('break_id'))) self._breakDate = CDateInfo(forceDate(record.value('breakDate'))) self._note = forceString(record.value('note')) self._result = self.getInstance(CTempInvalidResultInfo, forceRef(record.value('result_id'))) self._directDateOnKAK = CDateInfo( forceDate(record.value('directDateOnKAK'))) self._expert = self.getInstance(CPersonInfo, forceRef(record.value('expert_id'))) self._dateKAK = CDateInfo(forceDate(record.value('dateKAK'))) self._begDateHospital = CDateInfo( forceDate(record.value('begDateHospital'))) self._endDateHospital = CDateInfo( forceDate(record.value('endDateHospital')))
def props(self): result = {} result['group'] = forceRef(self.cmbServiceGroup.value()) result['section'] = forceRef(self.cmbSection.value()) result['type'] = forceRef(self.cmbType.value()) result['class'] = forceRef(self.cmbClass.value()) result['code'] = forceStringEx(self.edtCode.text()) result['name'] = forceStringEx(self.edtName.text()) result['EIS'] = self.chkEIS.checkState() result['nomenclature'] = self.chkNomenclature.checkState() result['begDate'] = forceDate(self.edtBegDate.date()) result['endDate'] = forceDate(self.edtEndDate.date()) return result
def startImport(self): db = QtGui.qApp.db dbf = self.openDBF() nprocessed = 0 self.progressBar.setValue(0) self.progressBar.setMaximum(dbf.recordCount) tblSPR73 = db.table('mes.SPR73') for row in dbf: self.progressBar.step() QtGui.qApp.processEvents() if self.abort: self.log.append(u'Прервано пользователем') return code = forceString(row['CODE']) code2 = forceString(row['CODE2']) if not code2: code2 = code begDate = forceDate(row['DATN']) if not begDate: begDate = dateLeftInfinity # Сейчас мы считаем, что так быть не может. endDate = forceDate(row['DATO']) if not endDate: endDate = dateRightInfinity SPR72List = db.getRecordList(tblSPR73, cols='*', where=db.joinAnd([ tblSPR73['begDate'].eq(begDate), tblSPR73['endDate'].eq(endDate), tblSPR73['CODE'].eq(code), tblSPR73['CODE2'].eq(code2)])) if len(SPR72List) > 1: self.addDuplicateAlertToLog(u'SPR72 (mes.SPR72)', code, [r.value('id') for r in SPR72List]) elif len(SPR72List) == 1: continue else: SPR72List = db.getRecordList(tblSPR73, cols='*', where=db.joinAnd([ tblSPR73['begDate'].eq(begDate), tblSPR73['endDate'].eq(dateRightInfinity), tblSPR73['CODE'].eq(code), tblSPR73['CODE2'].eq(code2)])) if len(SPR72List) > 1: self.addDuplicateAlertToLog(u'SPR72 (mes.SPR72)', code, [r.value('id') for r in SPR72List]) for record in SPR72List: self.fillSPR73Record(db, tblSPR73, record, endDate=endDate) elif len(SPR72List) == 1: self.fillSPR73Record(db, tblSPR73, SPR72List[0], endDate=endDate) else: self.fillSPR73Record(db, tblSPR73, tblSPR73.newRecord(), begDate, endDate, code, code2) nprocessed += 1 self.log.append(u'Обработано %d записей' % nprocessed) self.log.append(u'готово') QtGui.qApp.preferences.appPrefs['ImportSPR73FileName'] = toVariant(self.edtFileName.text())
def build(self, params): query = selectData(params) self.setQueryText(forceString(query.lastQuery())) doc = QtGui.QTextDocument() cursor = QtGui.QTextCursor(doc) cursor.setCharFormat(CReportBase.ReportTitle) cursor.insertText(self.title()) cursor.insertBlock() self.dumpParams(cursor, params) cursor.insertBlock() tableColumns = [ (' 9%', [u'Код пациента'], CReportBase.AlignLeft), (' 9%', [u'Внешний идентификатор'], CReportBase.AlignLeft), ('20%', [u'ФИО пациента'], CReportBase.AlignLeft), (' 5%', [u'Пол'], CReportBase.AlignLeft), ('10%', [u'Дата рождения'], CReportBase.AlignLeft), ('10%', [u'Период лечения'], CReportBase.AlignLeft), (' 9%', [u'Код МКБ'], CReportBase.AlignLeft), (' 9%', [u'Стандарт/КСГ'], CReportBase.AlignLeft), ('10%', [u'Отделение пребывания'], CReportBase.AlignLeft), (' 9%', [u'Сумма ДМС-ОМС'], CReportBase.AlignLeft), ] table = createTable(cursor, tableColumns) masterRecord = MasterRecord() while query.next(): record = query.record() masterRecord.addElement( PatientRecord( forceString(record.value('clientId')), forceString(record.value('externalId')), forceString(record.value('clientName')), formatSex(record.value('sex')), forceDate( record.value('birthDate')).toString('dd.MM.yyyy'), forceDate(record.value('setDate')).toString('dd.MM.yyyy') + '/' + forceDate(record.value('execDate')).toString('dd.MM.yyyy'), forceString(record.value('MKB')), forceString(record.value('KSG')), forceString(record.value('orgStructName')), forceInt(record.value('sum')))) buildTable(table, masterRecord) return doc
def flags(self, index): row = index.row() record = self.getRecordByRow(row) enabled = not forceBool(record.value('disabledForPrescription')) if enabled: if self.date: regDate = forceDate(record.value('regDate')) annDate = forceDate(record.value('annDate')) enabled = (not regDate or regDate <= self.date) and (not annDate or self.date < annDate) if enabled: return Qt.ItemIsEnabled | Qt.ItemIsSelectable else: return Qt.ItemIsSelectable
def loadData(self, clientId): self.items = [] if clientId: db = QtGui.qApp.db table = db.table('TempInvalid') tableInvalidPeriod = db.table('TempInvalid_Period') tableInvalidRegime = db.table('rbTempInvalidRegime') tableTempInvalidDocument = db.table('rbTempInvalidDocument') cond = [ table['deleted'].eq(0), table['client_id'].eq(clientId), table['type'].eq(self.type_), table['endDate'].eq(tableInvalidPeriod['endDate']) ] cols = [ table['id'], tableInvalidRegime['code'], tableInvalidRegime['name'], tableTempInvalidDocument['code'].alias('docCode'), tableTempInvalidDocument['name'].alias('docName'), table['begDate'], table['endDate'], table['closed'], table['serial'], table['number'] ] queryTable = tableInvalidPeriod.leftJoin( table, table['id'].eq(tableInvalidPeriod['master_id'])) queryTable = queryTable.leftJoin( tableInvalidRegime, tableInvalidRegime['id'].eq(tableInvalidPeriod['regime_id'])) queryTable = queryTable.leftJoin( tableTempInvalidDocument, tableTempInvalidDocument['id'].eq(table['doctype_id'])) for record in db.getRecordList(queryTable, cols, cond, 'endDate DESC'): regimeCode = forceString(record.value('code')) regimeName = forceString(record.value('name')) docCode = forceString(record.value('docCode')) docName = forceString(record.value('docName')) begDate = forceDate(record.value('begDate')) endDate = forceDate(record.value('endDate')) closed = forceInt(record.value('closed')) item = [ (docCode + ' - ' + regimeCode), # 0 forceString(begDate), # 1 forceString(endDate), # 2 self.closedDict.get(closed, ''), # 3 docName, # 4 regimeName, # 5 None # 6 ] self.items.append(item) self.reset()
def getPeriodDate(self): if self.eventId: db = QtGui.qApp.db tableAction = db.table('Action') tableAPT = db.table('ActionPropertyType') tableAP = db.table('ActionProperty') tableAT = db.table('ActionType') actionTypeIdList = db.getDistinctIdList(tableAT, [tableAT['id']], [ tableAT['deleted'].eq(0), tableAT['flatCode'].like(u'temperatureSheet%') ]) cond = [ tableAPT['deleted'].eq(0), tableAPT['actionType_id'].inlist(actionTypeIdList), tableAction['deleted'].eq(0), tableAction['event_id'].eq(self.eventId) ] tableQuery = tableAction.innerJoin( tableAP, tableAP['action_id'].eq(tableAction['id'])) tableQuery = tableQuery.innerJoin( tableAPT, tableAPT['id'].eq(tableAP['type_id'])) recordMIN = db.getRecordEx(tableQuery, 'MIN(Action.begDate) AS begDate', cond) recordMAX = db.getRecordEx(tableQuery, 'MAX(Action.begDate) AS begDate', cond) begDateMIN = None begDateMAX = None if recordMIN: begDateMIN = forceDate(recordMIN.value('begDate')) if recordMAX: begDateMAX = forceDate(recordMAX.value('begDate')) if not begDateMIN: begDateMIN = QtCore.QDate(QtCore.QDate().currentDate().year(), QtCore.QDate().currentDate().month(), 1) if not begDateMAX: begDateMAX = QtCore.QDate(QtCore.QDate().currentDate().year(), QtCore.QDate().currentDate().month(), 15) self.edtBegDate.setDate(begDateMIN) self.edtEndDate.setDate(begDateMAX) else: currentDate = QtCore.QDate().currentDate() month = currentDate.month() year = currentDate.year() begDate = QtCore.QDate(year, month, 1) endDate = QtCore.QDate(year, month, 15) self.edtBegDate.setDate(begDate) self.edtEndDate.setDate(endDate)
def build(self, params): query = selectData(params) self.setQueryText(forceString(query.lastQuery())) doc = QtGui.QTextDocument() cursor = QtGui.QTextCursor(doc) cursor.setCharFormat(CReportBase.ReportTitle) cursor.insertText(self.title()) cursor.insertBlock() self.dumpParams(cursor, params) cursor.insertBlock() u'''№ п/п - порядковый номер записи в таблице Код пациента - client.id ФИО пациента - Фамилия имя отчество полностью Дата рождения - дата рождения пациента Период лечения - event.setDate-event.execDate Врач — Код, имя полностью Подразделение -(отображается полное наименование от головного до конечного) Контроль - отображается наименование сработавшего контроля.''' tableColumns = [ (' 2%', [u'№'], CReportBase.AlignLeft), (' 8%', [u'Код пациента'], CReportBase.AlignLeft), ('15%', [u'ФИО'], CReportBase.AlignLeft), (' 10%', [u'Д/р'], CReportBase.AlignLeft), (' 2%', [u'Пол'], CReportBase.AlignLeft), ('10%', [u'Период лечения'], CReportBase.AlignLeft), ('15%', [u'Врач'], CReportBase.AlignLeft), ('20%', [u'Подразделение'], CReportBase.AlignLeft), ('20%', [u'Код и наименование услуги'], CReportBase.AlignLeft), ] table = createTable(cursor, tableColumns) while query.next(): record = query.record() row = table.addRow() fields = (row, forceInt(record.value('clientId')), forceString(record.value('name')), forceString(record.value('birthDate')), forceString(record.value('sex')), forceString( forceDate(record.value('startDate')).toString( 'dd.MM.yyyy') + ' - ' + forceDate(record.value('finishDate')).toString( 'dd.MM.yyyy')), forceString(record.value('personName')), getOrgStructureFullName(record.value('orgId')), forceString(record.value('service'))) for col, val in enumerate(fields): table.setText(row, col, val) return doc
def checkDataEntered(self): result = True begDate = forceDate(self.edtBegDate.date()) endDate = forceDate(self.edtEndDate.date()) itemsCnt = len(self.modelItems._items) result = result and (begDate < endDate or self.checkValueMessage( u'Дата начала должна быть меньше даты окончания!', False, self, None, None)) result = result and (itemsCnt > 0 or self.checkValueMessage( u'Необходимо заполнить табличную часть формуляра!', False, self, None, None)) for row, item in enumerate(self.modelItems.items()): if not self.checkItemDataEntered(row, item): return False return result
def setRecord(self, record): CItemEditorBaseDialog.setRecord(self, record) self._id = forceRef(record.value('id')) self.cmbEventPurpose.setValue(forceInt( record.value('eventPurpose_id'))) self.edtCode.setText(forceString(record.value(rbCode))) self.edtRegionalCode.setText(forceString(record.value('regionalCode'))) self.edtName.setText(forceString(record.value(rbName))) self.edtFederalCode.setText(forceString(record.value('federalCode'))) # self.cmbResult.setValue(forceRef(record.value('result_id'))) self.tblRBResult.setValues(self.results()) self.chkFilterResults.setChecked( forceBool(record.value('filterResults'))) self.edtBegDate.setDate(forceDate(record.value('begDate'))) self.edtEndDate.setDate(forceDate(record.value('endDate')))
def _initByRecord(self, record): self._orgStructure = self.getInstance( COrgStructureInfo, forceRef(record.value('master_id'))) self._isPermanent = forceBool(record.value('isPermanent')) self._type = self.getInstance(CHospitalBedTypeInfo, forceRef(record.value('type_id'))) self._code = forceString(record.value('code')) self._name = forceString(record.value('name')) self._profile = self.getInstance(CHospitalBedProfileInfo, forceRef(record.value('profile_id'))) self._relief = forceInt(record.value('relief')) self._schedule = self.getInstance( CHospitalBedScheduleInfo, forceRef(record.value('schedule_id'))) self._begDate = CDateInfo(forceDate(record.value('begDate'))) self._endDate = CDateInfo(forceDate(record.value('endDate')))
def showQueuePosition(self, actionId): if actionId: db = QtGui.qApp.db tableAction = db.table('Action') tablePerson = db.table('Person') cols = [ tableAction['directionDate'], tableAction['person_id'], tablePerson['orgStructure_id'], tablePerson['speciality_id'] ] cond = [ tableAction['id'].eq(actionId), tableAction['deleted'].eq(0), tablePerson['deleted'].eq(0) ] table = tableAction.innerJoin( tablePerson, tablePerson['id'].eq(tableAction['person_id'])) record = db.getRecordEx(table, cols, cond) if record: date = forceDate(record.value('directionDate')) personId = forceRef(record.value('person_id')) orgStructureId = forceRef(record.value('orgStructure_id')) specialityId = forceRef(record.value('speciality_id')) try: if QtGui.qApp.mainWindow.dockResources and personId and date and orgStructureId and specialityId and actionId: QtGui.qApp.mainWindow.dockResources.content.showQueueItem( orgStructureId, specialityId, personId, date, actionId) except: pass
def setRecord(self, record): self._event = self.getInstance(CEventInfo, forceRef(record.value('event_id'))) self._dateTime = CDateInfo(forceDate(record.value('dateTime'))) self._number = forceString(record.value('number')) self._socCode = forceString(record.value('socCode')) self._pregCard = forceInt(record.value('pregCard')) self._finance = self.getInstance(CFinanceInfo, forceRef(record.value('finance_id'))) self._percentage = forceInt(record.value('percentage')) self._mkb = forceString(record.value('mkb')) self._formularyItem = self.getInstance( CDloDrugFormularyItemInfo, forceRef(record.value('formularyItem_id'))) self._dosage = forceString(record.value('dosage')) self._qnt = forceInt(record.value('qnt')) self._duration = forceInt(record.value('duration')) self._numPerDay = forceInt(record.value('numPerDay')) self._signa = forceString(record.value('signa')) self._isVk = forceInt(record.value('isVk')) self._term = forceInt(record.value('term')) self._status = forceInt(record.value('status')) self._sentToMiac = forceInt(record.value('sentToMiac')) self._errorCode = forceString(record.value('errorCode')) self._printMnn = forceInt(record.value('printMnn'))
def getOrgStruct(record): result = '' result += u'Текущие к/д: ' + repr((forceDate(record.value('movingDate'))).daysTo(forceDate(record.value('endMovingDate') if forceDate(record.value('endMovingDate')) != QtCore.QDate() else QtCore.QDate.currentDate()))) + '\n' result += (forceString(record.value('receivedDate')) + '\n') result += (forceString(record.value('movingDate')) + '\n') result += (forceString(record.value('orgStructName')) if forceString(record.value('orgStructName')) != '' else u'Приёмное отделение' + '\n') return result
def getLastEquipmentMaintenanceDateFromModel(self, startupDate): date = startupDate for item in self.journalModel.items(): modelDate = forceDate(item.value('date')) if modelDate > date: date = modelDate return date
def updateClientPolicy(self, record): if record is None: self.cmbClientPolicy.updatePolicy() return execDate = forceDate(record.value('execDate')) eventIsClosed = not execDate.isNull() eventIsPayed = getRealPayed(forceInt(record.value('payStatus'))) if eventIsPayed or ( eventIsClosed and not QtGui.qApp.userHasRight(urEditClientPolicyInClosedEvent)): self.cmbClientPolicy.setEnabled(False) else: self.cmbClientPolicy.setEventIsClosed(eventIsClosed) self.cmbClientPolicy.setDate( execDate if eventIsClosed else QtCore.QDate.currentDate()) if getEventFinanceCode(forceRef( record.value('eventType_id'))) == 3: # ДМС franchisPolicyTypeId = forceRef( QtGui.qApp.db.translate('rbPolicyType', 'code', 'franchis', 'id')) if franchisPolicyTypeId: self.cmbClientPolicy.setPolicyTypeId(franchisPolicyTypeId) self.cmbClientPolicy.updatePolicy() if not self.cmbClientPolicy.value(): self.cmbClientPolicy.setPolicyTypeId( forceRef( QtGui.qApp.db.translate( 'rbPolicyType', 'code', '3', 'id'))) self.cmbClientPolicy.updatePolicy() else: self.cmbClientPolicy.updatePolicy()
def getPlannedEndDateByJobTicketProperty(record): # план заполняется по номерку, a номерок может подбираться автоматом if record: action = CAction(record=record) actionType = action.getType() propertyTypeList = actionType.getPropertiesById().values() for propertyType in propertyTypeList: if type(propertyType.valueType ) == CJobTicketActionPropertyValueType: property = action.getPropertyById(propertyType.id) jobTicketId = property.getValue() if jobTicketId: db = QtGui.qApp.db date = forceDate( db.translate('Job_Ticket', 'id', jobTicketId, 'datetime')) jobId = forceRef( db.translate('Job_Ticket', 'id', jobTicketId, 'master_id')) jobTypeId = forceRef( db.translate('Job', 'id', jobId, 'jobType_id')) ticketDuration = forceInt( db.translate('rbJobType', 'id', jobTypeId, 'ticketDuration')) return date.addDays(ticketDuration) return None
def loadDiagnostics(self, modelDiagnostics): db = QtGui.qApp.db table = db.table('Diagnostic') isDiagnosisManualSwitch = modelDiagnostics.manualSwitchDiagnosis() rawItems = db.getRecordList(table, '*', [ table['deleted'].eq(0), table['event_id'].eq(self.itemId()), modelDiagnostics.filter ], 'id') items = [] for record in rawItems: diagnosisId = record.value('diagnosis_id') MKB = db.translate('Diagnosis', 'id', forceRef(diagnosisId), 'MKB') MKBEx = db.translate('Diagnosis', 'id', forceRef(diagnosisId), 'MKBEx') morphologyMKB = db.translate('Diagnosis', 'id', forceRef(diagnosisId), 'morphologyMKB') setDate = forceDate(record.value('setDate')) newRecord = modelDiagnostics.getEmptyRecord() copyFields(newRecord, record) newRecord.setValue('MKB', MKB) newRecord.setValue('MKBEx', MKBEx) newRecord.setValue('morphologyMKB', morphologyMKB) if isDiagnosisManualSwitch: isCheckedHandleDiagnosis = checkIsHandleDiagnosisIsChecked( setDate, self.clientId, diagnosisId) newRecord.setValue('handleDiagnosis', QtCore.QVariant(isCheckedHandleDiagnosis)) items.append(newRecord) modelDiagnostics.setItems(items)
def printDailyJournal(self, cnt, table, record, primaryInfo, accountingSystem, clientId, isViewBirthDate, isViewRegAdress): row = table.addRow() table.setText(row, 0, cnt) table.setText(row, 1, primaryInfo) table.setText( row, 2, forceString(record.value('clientIdentifier')) if accountingSystem else forceString(clientId)) time = forceTime(record.value('time')) table.setText(row, 3, time.toString('hh:mm') if time else u'--:--') table.setText( row, 4, forceString(record.value('lastName')) + u' ' + forceString(record.value('firstName')) + u' ' + forceString(record.value('patrName'))) if isViewBirthDate: table.setText( row, 5, forceDate(record.value('birthDate')).toString('yyyy-MM-dd')) else: table.setText(row, 5, forceString(record.value('clientAge'))) table.setText( row, 6, forceString( record.value( 'locAddress' if isViewRegAdress else 'clientAttachInfo'))) table.setText(row, 7, forceString(record.value('note'))) cnt += 1 return cnt
def dateCheck(lst, date1, date2): if lst: rec = lst[0] rec_date1 = forceDate(rec.value('begDate')) rec_date2 = forceDate(rec.value('endDate')) if rec_date1 < date1: self.err2log(u'даты периодов пересекаются') return if rec_date1 != date1: self.err2log(u'разрыв в датах периодов') return dateCheck(lst[1:], rec_date2.addDays(1), date2) else: if date1 != date2.addDays(1): self.err2log(u'даты окончания периодов не совпадают') return