class TakenTissueJournal(db.Model): __tablename__ = u'TakenTissueJournal' __table_args__ = (db.Index(u'period_barcode', u'period', u'barcode'), ) id = db.Column(db.Integer, primary_key=True) client_id = db.Column(db.ForeignKey('Client.id'), nullable=False, index=True) tissueType_id = db.Column(db.ForeignKey('rbTissueType.id'), nullable=False, index=True) externalId = db.Column(db.String(30), nullable=False) amount = db.Column(db.Integer, nullable=False, server_default=u"'0'") unit_id = db.Column(db.ForeignKey('rbUnit.id'), index=True) datetimeTaken = db.Column(db.DateTime, nullable=False) execPerson_id = db.Column(db.ForeignKey('Person.id'), index=True) note = db.Column(db.String(128), nullable=False, default='') barcode = db.Column(db.Integer, nullable=False) # set with trigger period = db.Column(db.Integer, nullable=False) # set with trigger client = db.relationship(u'Client') execPerson = db.relationship(u'Person') tissueType = db.relationship(u'rbTissueType') unit = db.relationship(u'rbUnit') @property def barcode_s(self): return code128C(self.barcode).decode('windows-1252')
class rbTissueType(db.Model): __tablename__ = u'rbTissueType' id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(64), nullable=False) name = db.Column(db.String(128), nullable=False) group_id = db.Column(db.ForeignKey('rbTissueType.id'), index=True) sexCode = db.Column("sex", db.Integer, nullable=False, server_default=u"'0'") group = db.relationship(u'rbTissueType', remote_side=[id]) @property def sex(self): return {0: u'Любой', 1: u'М', 2: u'Ж'}[self.sexCode] def __json__(self): return { 'id': self.id, 'code': self.code, 'name': self.name, 'sex': self.sex, }
class ClientWork(db.Model): __tablename__ = u'ClientWork' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.Integer, index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer, index=True) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") client_id = db.Column(db.ForeignKey('Client.id'), nullable=False, index=True) org_id = db.Column(db.ForeignKey('Organisation.id'), index=True) shortName = db.Column('freeInput', db.String(200), nullable=False) post = db.Column(db.String(200), nullable=False) stage = db.Column(db.Integer, nullable=False) OKVED = db.Column(db.String(10), nullable=False) version = db.Column(db.Integer, nullable=False) rank_id = db.Column(db.Integer, nullable=False) arm_id = db.Column(db.Integer, nullable=False) client = db.relationship(u'Client') organisation = db.relationship(u'Organisation') # hurts = db.relationship(u'ClientworkHurt') def __unicode__(self): parts = [] if self.shortName: parts.append(self.shortName) if self.post: parts.append(self.post) if self.OKVED: parts.append(u'ОКВЭД: ' + self._OKVED) return ', '.join(parts)
class OrgStructure_HospitalBed(db.Model): __tablename__ = u'OrgStructure_HospitalBed' id = db.Column(db.Integer, primary_key=True) master_id = db.Column(db.Integer, db.ForeignKey('OrgStructure.id'), nullable=False, index=True) idx = db.Column(db.Integer, nullable=False, server_default=u"'0'") code = db.Column(db.String(16), nullable=False, server_default=u"''") name = db.Column(db.String(64), nullable=False, server_default=u"''") isPermanentCode = db.Column("isPermanent", db.Integer, nullable=False, server_default=u"'0'") type_id = db.Column(db.Integer, db.ForeignKey('rbHospitalBedType.id'), index=True) profile_id = db.Column(db.Integer, db.ForeignKey('rbHospitalBedProfile.id'), index=True) relief = db.Column(db.Integer, nullable=False, server_default=u"'0'") schedule_id = db.Column(db.Integer, db.ForeignKey('rbHospitalBedSchedule.id'), index=True) begDate = db.Column(db.Date) endDate = db.Column(db.Date) sex = db.Column(db.Integer, nullable=False, server_default=u"'0'") age = db.Column(db.String(9), nullable=False) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) involution = db.Column(db.Integer, nullable=False, server_default=u"'0'") begDateInvolute = db.Column(db.Date) endDateInvolute = db.Column(db.Date) orgStructure = db.relationship(u'OrgStructure') type = db.relationship(u'rbHospitalBedType') profile = db.relationship(u'rbHospitalBedProfile') schedule = db.relationship(u'rbHospitalBedSchedule') def __json__(self): return { 'id': self.id, 'org_structure_id': self.master_id, 'code': self.code, 'name': self.name, 'type': self.type, 'profile': self.profile, 'schedule': self.schedule } @property def isPermanent(self): return self.isPermanentCode == 1
class rbJobType(db.Model): __tablename__ = u'rbJobType' id = db.Column(db.Integer, primary_key=True) group_id = db.Column(db.Integer, index=True) code = db.Column(db.String(64), nullable=False) regionalCode = db.Column(db.String(64), nullable=False) name = db.Column(db.Unicode(128), nullable=False) laboratory_id = db.Column(db.Integer, index=True) isInstant = db.Column(db.Integer, nullable=False, server_default=u"'0'")
class ConfigVariables(db.Model): __tablename__ = '%s_config' % TABLE_PREFIX id = db.Column(db.Integer, primary_key=True, autoincrement=True) code = db.Column(db.String(25), unique=True, nullable=False) name = db.Column(db.Unicode(50), unique=True, nullable=False) value = db.Column(db.Unicode(100)) value_type = db.Column(db.String(30)) def __unicode__(self): return self.code
class rbOperationType(db.Model): __tablename__ = u'rbOperationType' id = db.Column(db.Integer, primary_key=True) cd_r = db.Column(db.Integer, nullable=False) cd_subr = db.Column(db.Integer, nullable=False) code = db.Column(db.String(8), nullable=False, index=True) ktso = db.Column(db.Integer, nullable=False) name = db.Column(db.String(64), nullable=False, index=True) def __json__(self): return { 'id': self.id, 'code': self.code, 'name': self.name, }
class rbScene(db.Model): __tablename__ = u'rbScene' id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(8), nullable=False, index=True) name = db.Column(db.Unicode(64), nullable=False, index=True) serviceModifier = db.Column(db.Unicode(128), nullable=False)
class EventPayment(db.Model): __tablename__ = 'Event_Payment' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, default=0) master_id = db.Column(db.Integer, db.ForeignKey('Event.id')) date = db.Column(db.Date, nullable=False) cashOperation_id = db.Column(db.ForeignKey('rbCashOperation.id'), index=True) sum = db.Column(db.Float(asdecimal=True), nullable=False) typePayment = db.Column(db.Integer, nullable=False) settlementAccount = db.Column(db.String(64)) bank_id = db.Column(db.Integer, index=True) numberCreditCard = db.Column(db.String(64)) cashBox = db.Column(db.String(32), nullable=False) sumDiscount = db.Column(db.Float(asdecimal=True), nullable=False) action_id = db.Column(db.Integer, db.ForeignKey('Action.id')) service_id = db.Column(db.Integer, db.ForeignKey('rbService.id')) localContract_id = db.Column(db.Integer, db.ForeignKey('Event_LocalContract.id')) cashOperation = db.relationship(u'rbCashOperation') def __json__(self): return { 'id': self.id, 'date': self.date, 'sum': self.sum, 'sum_discount': self.sumDiscount, 'action_id': self.action_id, 'service_id': self.service_id, 'localContract_id': self.localContract_id, }
class AddressHouse(db.Model): __tablename__ = u'AddressHouse' __table_args__ = (db.Index(u'KLADRCode', u'KLADRCode', u'KLADRStreetCode', u'number', u'corpus'), ) id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, default=0, server_default=u"'0'") KLADRCode = db.Column(db.String(13), nullable=False) KLADRStreetCode = db.Column(db.String(17), nullable=False) number = db.Column(db.String(8), nullable=False) corpus = db.Column(db.String(8), nullable=False) def __init__(self, loc_code, street_code, house_number, corpus_number): self.KLADRCode = loc_code self.KLADRStreetCode = street_code self.number = house_number self.corpus = corpus_number def __json__(self): return { 'id': self.id, 'deleted': self.deleted, 'locality_code': self.KLADRCode, 'street_code': self.KLADRStreetCode, 'number': self.number, 'corpus': self.corpus } def __int__(self): return self.id
class Diagnosis(db.Model): __tablename__ = u'Diagnosis' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.ForeignKey('Person.id'), index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.ForeignKey('Person.id'), index=True) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") client_id = db.Column(db.ForeignKey('Client.id'), index=True, nullable=False) diagnosisType_id = db.Column(db.ForeignKey('rbDiagnosisType.id'), index=True, nullable=False) character_id = db.Column(db.ForeignKey('rbDiseaseCharacter.id'), index=True) MKB = db.Column(db.String(8), db.ForeignKey('MKB.DiagID'), index=True) MKBEx = db.Column(db.String(8), db.ForeignKey('MKB.DiagID'), index=True) dispanser_id = db.Column(db.ForeignKey('rbDispanser.id'), index=True) traumaType_id = db.Column(db.ForeignKey('rbTraumaType.id'), index=True) setDate = db.Column(db.Date) endDate = db.Column(db.Date) mod_id = db.Column(db.ForeignKey('Diagnosis.id'), index=True) person_id = db.Column(db.ForeignKey('Person.id'), index=True) # diagnosisName = db.Column(db.String(64), nullable=False) createPerson = db.relationship('Person', foreign_keys=[createPerson_id]) modifyPerson = db.relationship('Person', foreign_keys=[modifyPerson_id]) person = db.relationship('Person', foreign_keys=[person_id], lazy=False, innerjoin=True) client = db.relationship('Client') diagnosisType = db.relationship('rbDiagnosisType', lazy=False, innerjoin=True) character = db.relationship('rbDiseaseCharacter', lazy=False) mkb = db.relationship('MKB', foreign_keys=[MKB]) mkb_ex = db.relationship('MKB', foreign_keys=[MKBEx]) dispanser = db.relationship('rbDispanser', lazy=False) mod = db.relationship('Diagnosis', remote_side=[id]) traumaType = db.relationship('rbTraumaType', lazy=False) def __int__(self): return self.id
class ClientContact(db.Model): __tablename__ = 'ClientContact' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'", default=0) client_id = db.Column(db.ForeignKey('Client.id'), nullable=False, index=True) contactType_id = db.Column(db.Integer, db.ForeignKey('rbContactType.id'), nullable=False, index=True) contact = db.Column(db.String(32), nullable=False) notes = db.Column(db.Unicode(64), nullable=False, default=u'') version = db.Column(db.Integer, nullable=False, default=0) contactType = db.relationship(u'rbContactType', lazy=False) def __init__(self, cont_type, text, notes, client): self.contactType_id = int(cont_type) if cont_type else None self.contact = text self.notes = notes self.client = client @property def name(self): return self.contactType.name if self.contactType else None def __json__(self): return { 'id': self.id, 'deleted': self.deleted, 'contact_type': self.contactType, 'contact_text': self.contact, 'notes': self.notes } def __int__(self): return self.id
class JobTicket(db.Model): __tablename__ = u'Job_Ticket' id = db.Column(db.Integer, primary_key=True) master_id = db.Column(db.Integer, db.ForeignKey('Job.id'), nullable=False, index=True) idx = db.Column(db.Integer, nullable=False, server_default=u"'0'") datetime = db.Column(db.DateTime, nullable=False) resTimestamp = db.Column(db.DateTime) resConnectionId = db.Column(db.Integer) status = db.Column(db.Integer, nullable=False, server_default=u"'0'") begDateTime = db.Column(db.DateTime) endDateTime = db.Column(db.DateTime) label = db.Column(db.String(64), nullable=False, server_default=u"''") note = db.Column(db.String(128), nullable=False, server_default=u"''") job = db.relationship(u'Job') @property def jobType(self): return self.job.job_type @property def orgStructure(self): return self.job.org_structure def __unicode__(self): return u'%s, %s, %s' % (unicode(self.jobType), unicode( self.datetime), unicode(self.orgStructure)) def __json__(self): return { 'id': self.id, 'job': self.job, 'datetime': self.datetime, 'status': self.status, 'beg_datetime': self.begDateTime, 'end_datetime': self.endDateTime, 'label': self.label, 'note': self.note, }
class rbAnalysisStatus(db.Model): __tablename__ = u'rbAnalysisStatus' id = db.Column(db.Integer, primary_key=True) statusName = db.Column(db.String(80), nullable=False, unique=True) def __json__(self): return { 'id': self.id, 'code': self.statusName, 'name': self.statusName }
class ActionTemplate(db.Model): __tablename__ = u'ActionTemplate' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.Integer, index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer, index=True) deleted = db.Column(db.Integer, nullable=False) group_id = db.Column(db.Integer, index=True) code = db.Column(db.String(64), nullable=False) name = db.Column(db.String(255), nullable=False) sex = db.Column(db.Integer, nullable=False) age = db.Column(db.String(9), nullable=False) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) owner_id = db.Column(db.Integer, index=True) speciality_id = db.Column(db.Integer, index=True) action_id = db.Column(db.Integer, index=True)
class rbHospitalBedType(db.Model): __tablename__ = u'rbHospitalBedType' id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(8), nullable=False, index=True) name = db.Column(db.Unicode(64), nullable=False, index=True) def __json__(self): return { 'id': self.id, 'code': self.code, 'name': self.name, }
class Kladr(db.Model): __bind_key__ = 'kladr' __tablename__ = 'KLADR' __table_args__ = (db.Index('long_name', 'prefix', 'NAME', 'SOCR', 'STATUS'), db.Index('NAME', 'NAME', 'SOCR'), db.Index('parent', 'parent', 'NAME', 'SOCR', 'CODE')) NAME = db.Column(db.Unicode(40), nullable=False) SOCR = db.Column(db.Unicode(10), nullable=False) CODE = db.Column(db.String(13), primary_key=True) INDEX = db.Column(db.String(6), nullable=False) GNINMB = db.Column(db.String(4), nullable=False) UNO = db.Column(db.String(4), nullable=False) OCATD = db.Column(db.String(11), nullable=False, index=True) STATUS = db.Column(db.String(1), nullable=False) parent = db.Column(db.String(13), nullable=False) infis = db.Column(db.String(5), nullable=False, index=True) prefix = db.Column(db.String(2), nullable=False) id = db.Column(db.Integer, nullable=False, unique=True)
class rbHospitalBedProfile(db.Model): __tablename__ = u'rbHospitalBedProfile' id = db.Column(db.Integer, primary_key=True) code = db.Column(db.String(8), nullable=False, index=True) name = db.Column(db.Unicode(64), nullable=False, index=True) service_id = db.Column(db.Integer, db.ForeignKey('rbService.id'), index=True) # service = db.relationship('rbService') def __json__(self): return { 'id': self.id, 'code': self.code, 'name': self.name, }
class Street(db.Model): __bind_key__ = 'kladr' __tablename__ = 'STREET' __table_args__ = (db.Index('NAME_SOCR', 'NAME', 'SOCR', 'CODE'), ) NAME = db.Column(db.Unicode(40), nullable=False) SOCR = db.Column(db.Unicode(10), nullable=False) CODE = db.Column(db.String(17), primary_key=True) INDEX = db.Column(db.String(6), nullable=False) GNINMB = db.Column(db.String(4), nullable=False) UNO = db.Column(db.String(4), nullable=False) OCATD = db.Column(db.String(11), nullable=False) infis = db.Column(db.String(5), nullable=False, index=True)
class ClientIdentification(db.Model): __tablename__ = u'ClientIdentification' __table_args__ = (db.Index(u'accountingSystem_id', u'accountingSystem_id', u'identifier'), ) id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.Integer, index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer, index=True) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") client_id = db.Column(db.ForeignKey('Client.id'), nullable=False, index=True) accountingSystem_id = db.Column(db.Integer, db.ForeignKey('rbAccountingSystem.id'), nullable=False) identifier = db.Column(db.String(16), nullable=False) checkDate = db.Column(db.Date) version = db.Column(db.Integer, nullable=False) accountingSystems = db.relationship(u'rbAccountingSystem', lazy=False) @property def code(self): return self.attachType.code @property def name(self): return self.attachType.name def __json__(self): return { 'id': self.id, 'accounting_system': self.accountingSystems, 'identifier': self.identifier, 'chechDate': self.checkDate, } def __int__(self): return self.id
class EventType_Action(db.Model): __tablename__ = u'EventType_Action' id = db.Column(db.Integer, primary_key=True) eventType_id = db.Column(db.Integer, db.ForeignKey('EventType.id'), nullable=False, index=True) idx = db.Column(db.Integer, nullable=False, server_default=u"'0'") actionType_id = db.Column(db.Integer, db.ForeignKey('ActionType.id'), nullable=False, index=True) speciality_id = db.Column(db.Integer, index=True) tissueType_id = db.Column(db.Integer, db.ForeignKey('rbTissueType.id'), index=True) sex = db.Column(db.Integer, nullable=False) age = db.Column(db.String(9), nullable=False) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) selectionGroup = db.Column(db.Integer, nullable=False, server_default=u"'0'") actuality = db.Column(db.Integer, nullable=False) expose = db.Column(db.Integer, nullable=False, server_default=u"'1'") payable = db.Column(db.Integer, nullable=False, server_default=u"'0'") academicDegree_id = db.Column(db.Integer, db.ForeignKey('rbAcademicDegree.id')) actionType = db.relationship('ActionType') def __json__(self): return {'id': self.id} def __int__(self): return self.id
class ActionPropertyTemplate(db.Model): __tablename__ = u'ActionPropertyTemplate' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.Integer, index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer, index=True) deleted = db.Column(db.Integer, nullable=False) group_id = db.Column(db.Integer, index=True) parentCode = db.Column(db.String(20), nullable=False) code = db.Column(db.String(64), nullable=False, index=True) federalCode = db.Column(db.String(64), nullable=False, index=True) regionalCode = db.Column(db.String(64), nullable=False) name = db.Column(db.String(120), nullable=False, index=True) abbrev = db.Column(db.String(64), nullable=False) sex = db.Column(db.Integer, nullable=False) age = db.Column(db.String(9), nullable=False) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) service_id = db.Column(db.Integer, index=True)
class ActionPropertyType(db.Model): __tablename__ = u'ActionPropertyType' id = db.Column(db.Integer, primary_key=True) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") actionType_id = db.Column(db.Integer, db.ForeignKey('ActionType.id'), nullable=False, index=True) idx = db.Column(db.Integer, nullable=False, server_default=u"'0'") template_id = db.Column(db.ForeignKey('ActionPropertyTemplate.id'), index=True) name = db.Column(db.String(128), nullable=False) descr = db.Column(db.String(128), nullable=False) unit_id = db.Column(db.Integer, db.ForeignKey('rbUnit.id'), index=True) typeName = db.Column(db.String(64), nullable=False) valueDomain = db.Column(db.Text, nullable=False) defaultValue = db.Column(db.String(5000), nullable=False) isVector = db.Column(db.Integer, nullable=False, server_default=u"'0'") norm = db.Column(db.String(64), nullable=False) sex = db.Column(db.Integer, nullable=False) age = db.Column(db.String(9), nullable=False) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) penalty = db.Column(db.Integer, nullable=False, server_default=u"'0'") visibleInJobTicket = db.Column(db.Integer, nullable=False, server_default=u"'0'") isAssignable = db.Column(db.Integer, nullable=False, server_default=u"'0'") test_id = db.Column(db.Integer, index=True) defaultEvaluation = db.Column(db.Integer, nullable=False, server_default=u"'0'") toEpicrisis = db.Column(db.Integer, nullable=False, server_default=u"'0'") code = db.Column(db.String(25), index=True) mandatory = db.Column(db.Integer, nullable=False, server_default=u"'0'") readOnly = db.Column(db.Integer, nullable=False, server_default=u"'0'") createDatetime = db.Column(db.DateTime, nullable=False, index=True) createPerson_id = db.Column(db.Integer) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer) unit = db.relationship('rbUnit') template = db.relationship('ActionPropertyTemplate') def __json__(self): result = { 'id': self.id, 'name': self.name, 'code': self.code, 'domain': self.valueDomain, 'is_assignable': self.isAssignable, 'ro': self.readOnly, 'mandatory': self.mandatory, 'type_name': self.typeName, 'unit': self.unit, 'vector': bool(self.isVector), } if self.typeName == 'String': if self.valueDomain: result['values'] = [ choice.strip('\' *') for choice in self.valueDomain.split(',') ] return result
class ClientDocument(db.Model): __tablename__ = 'ClientDocument' __table_args__ = (db.Index(u'Ser_Numb', u'serial', u'number'), ) id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'", default=0) clientId = db.Column("client_id", db.ForeignKey('Client.id'), nullable=False, index=True) documentType_id = db.Column(db.Integer, db.ForeignKey('rbDocumentType.id'), nullable=False, index=True) serial = db.Column(db.String(8), nullable=False) number = db.Column(db.String(16), nullable=False) date = db.Column(db.Date, nullable=False) origin = db.Column(db.String(256), nullable=False) version = db.Column(db.Integer, nullable=False, default=0) endDate = db.Column(db.Date) documentType = db.relationship(u'rbDocumentType', lazy=False) def __init__(self, doc_type, serial, number, beg_date, end_date, origin, client): self.documentType_id = int(doc_type) if doc_type else None self.serial = serial self.number = number self.date = beg_date self.endDate = end_date self.origin = origin self.client = client @property def documentTypeCode(self): return self.documentType.regionalCode @property def serial_left(self): try: sl = self.serial.split(' ')[0] except (AttributeError, IndexError): sl = None return sl @property def serial_right(self): try: sr = self.serial.split(' ')[1] except (AttributeError, IndexError): sr = None return sr def __unicode__(self): return (' '.join( [getattr(self.documentType, 'name', ''), self.serial, self.number])).strip() def __json__(self): return { 'id': self.id, 'doc_type': self.documentType, 'deleted': self.deleted, 'serial': self.serial, 'number': self.number, 'beg_date': self.date, 'end_date': self.endDate, 'origin': self.origin, 'doc_text': self.__unicode__(), } def __int__(self): return self.id
class Action(db.Model): __tablename__ = u'Action' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") actionType_id = db.Column(db.Integer, db.ForeignKey('ActionType.id'), nullable=False, index=True) event_id = db.Column(db.Integer, db.ForeignKey('Event.id'), index=True) idx = db.Column(db.Integer, nullable=False, server_default=u"'0'") directionDate = db.Column(db.DateTime) status = db.Column(db.Integer, nullable=False) setPerson_id = db.Column(db.Integer, db.ForeignKey('Person.id'), index=True) isUrgent = db.Column(db.Boolean, nullable=False, server_default=u"'0'") begDate = db.Column(db.DateTime) plannedEndDate = db.Column(db.DateTime, nullable=False) endDate = db.Column(db.DateTime) note = db.Column(db.Text, nullable=False, default='') person_id = db.Column(db.Integer, db.ForeignKey('Person.id'), index=True) office = db.Column(db.String(16), nullable=False, default='') amount = db.Column(db.Float(asdecimal=True), nullable=False) uet = db.Column(db.Float(asdecimal=True), server_default=u"'0'") expose = db.Column(db.Boolean, nullable=False, server_default=u"'1'") payStatus = db.Column(db.Integer, nullable=False, default=0) account = db.Column(db.Boolean, nullable=False, default=0) finance_id = db.Column(db.Integer, db.ForeignKey('rbFinance.id'), index=True) prescription_id = db.Column(db.Integer, index=True) takenTissueJournal_id = db.Column(db.ForeignKey('TakenTissueJournal.id'), index=True) contract_id = db.Column(db.Integer, index=True) coordDate = db.Column(db.DateTime) coordPerson_id = db.Column(db.Integer, db.ForeignKey('Person.id'), index=True) coordAgent = db.Column(db.String(128), nullable=False, server_default=u"''") coordInspector = db.Column(db.String(128), nullable=False, server_default=u"''") coordText = db.Column(db.String, nullable=False, default='') hospitalUidFrom = db.Column(db.String(128), nullable=False, server_default=u"'0'") pacientInQueueType = db.Column(db.Integer, server_default=u"'0'") AppointmentType = db.Column(db.Enum(u'0', u'amb', u'hospital', u'polyclinic', u'diagnostics', u'portal', u'otherLPU'), nullable=False, default=u'0') version = db.Column(db.Integer, nullable=False, server_default=u"'0'") parentAction_id = db.Column(db.Integer, index=True) uuid_id = db.Column(db.ForeignKey('UUID.id'), nullable=False, index=True, server_default=u"'0'") dcm_study_uid = db.Column(db.String(50)) actionType = db.relationship(u'ActionType') event = db.relationship(u'Event') person = db.relationship(u'Person', foreign_keys='Action.person_id') setPerson = db.relationship(u'Person', foreign_keys='Action.setPerson_id') coordPerson = db.relationship(u'Person', foreign_keys='Action.coordPerson_id') takenTissueJournal = db.relationship(u'TakenTissueJournal') # tissues = db.relationship(u'Tissue', secondary=u'ActionTissue') properties = db.relationship(u'ActionProperty') self_finance = db.relationship(u'rbFinance') uuid = db.relationship('UUID')
class ActionProperty(db.Model): __tablename__ = u'ActionProperty' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") action_id = db.Column(db.Integer, db.ForeignKey('Action.id'), nullable=False, index=True) type_id = db.Column(db.Integer, db.ForeignKey('ActionPropertyType.id'), nullable=False, index=True) unit_id = db.Column(db.Integer, db.ForeignKey('rbUnit.id'), index=True) norm = db.Column(db.String(64), nullable=False, default='') isAssigned = db.Column(db.Boolean, nullable=False, server_default=u"'0'") evaluation = db.Column(db.Integer, default=None) version = db.Column(db.Integer, nullable=False, server_default=u"'0'") action = db.relationship(u'Action') type = db.relationship(u'ActionPropertyType', lazy=False, innerjoin=True) unit = db.relationship(u'rbUnit', lazy=False) def __get_property_name(self): type_name = self.type.typeName if type_name in ["Constructor", u"Жалобы", 'Text', 'Html']: class_name = 'String' elif type_name == u"Запись в др. ЛПУ": class_name = 'OtherLPURecord' elif type_name == "FlatDirectory": class_name = 'FDRecord' else: class_name = type_name return '_value_{0}'.format(class_name) @property def value_object(self): return getattr(self, self.__get_property_name()) @value_object.setter def value_object(self, value): setattr(self, self.__get_property_name(), value) @property def value(self): value_object = self.value_object if not value_object: return None if self.type.isVector: return [item.value for item in value_object] else: return value_object[0].value @value.setter def value(self, value): self.set_value(value) def set_value(self, value, raw=False): value_object = self.value_object # Следующая магия вытаскивает класс, ассоциированный с backref-пропертей, созданной этим же классом у нашего # ActionProperty. Объекты этого класса мы будем создавать для значений value_class = getattr( self.__class__, self.__get_property_name()).property.mapper.class_ def set_value(val_object, value): if raw and hasattr(val_object, 'value_'): val_object.value_ = value else: val_object.value = value def make_value(value, index=0): val = value_class() set_value(val, value) val.index = index val.property_object = self db.session.add(val) return val if not self.type.isVector: if len(value_object) == 0: if value is not None: value_object.append(make_value(value)) else: if value is None: db.session.delete(value_object[0]) else: set_value(value_object[0], value) else: m = min(len(value_object), len(value)) for i in xrange(m): value_object[i].value = value[i] if len(value_object) < len(value): for i in xrange(m, len(value)): value_object.append(make_value(value[i], i)) elif len(value_object) > len(value): for i in xrange(len(value_object) - 1, m - 1, -1): db.session.delete(value_object[i]) def __json__(self): return { 'id': self.id, 'idx': self.type.idx, 'type': self.type, 'is_assigned': self.isAssigned, 'value': self.value, }
class EventLocalContract(db.Model): __tablename__ = u'Event_LocalContract' __table_args__ = (db.Index(u'lastName', u'lastName', u'firstName', u'patrName', u'birthDate', u'id'), ) id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'", default=0) master_id = db.Column(db.Integer) coordDate = db.Column(db.DateTime) coordAgent = db.Column(db.String(128), nullable=False, server_default=u"''") coordInspector = db.Column(db.String(128), nullable=False, server_default=u"''") coordText = db.Column(db.String, nullable=False) dateContract = db.Column(db.Date, nullable=False) numberContract = db.Column(db.Unicode(64), nullable=False) sumLimit = db.Column(db.Float(asdecimal=True), nullable=False) lastName = db.Column(db.Unicode(30), nullable=False) firstName = db.Column(db.Unicode(30), nullable=False) patrName = db.Column(db.Unicode(30), nullable=False) birthDate = db.Column(db.Date, nullable=False, index=True) documentType_id = db.Column(db.Integer, db.ForeignKey('rbDocumentType.id'), index=True) serialLeft = db.Column(db.Unicode(8), nullable=False) serialRight = db.Column(db.Unicode(8), nullable=False) number = db.Column(db.String(16), nullable=False) regAddress = db.Column(db.Unicode(64), nullable=False) org_id = db.Column(db.Integer, db.ForeignKey('Organisation.id'), index=True) org = db.relationship(u'Organisation') documentType = db.relationship(u'rbDocumentType') # payments = db.relationship('EventPayment', backref=db.backref('local_contract')) # Это что вообще?! @property def document(self): document = ClientDocument() document.documentType = self.documentType document.serial = u'%s %s' % (self.serialLeft, self.serialRight) document.number = self.number return document def __unicode__(self): parts = [] if self.coordDate: parts.append(u'согласовано ' + self.coordDate) if self.coordText: parts.append(self.coordText) if self.number: parts.append(u'№ ' + self.number) if self.date: parts.append(u'от ' + self.date) if self.org: parts.append(unicode(self.org)) else: parts.append(self.lastName) parts.append(self.firstName) parts.append(self.patrName) return ' '.join(parts) def __json__(self): return { 'id': self.id, 'number_contract': self.numberContract, 'date_contract': self.dateContract, 'first_name': self.firstName, 'last_name': self.lastName, 'patr_name': self.patrName, 'birth_date': self.birthDate, 'doc_type_id': self.documentType_id, 'doc_type': self.documentType, 'serial_left': self.serialLeft, 'serial_right': self.serialRight, 'number': self.number, 'reg_address': self.regAddress, 'payer_org_id': self.org_id, 'payer_org': self.org, } def __int__(self): return self.id
class EventType(db.Model): __tablename__ = u'EventType' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.Integer, index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer, index=True) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") code = db.Column(db.String(8), nullable=False, index=True) name = db.Column(db.String(64), nullable=False) purpose_id = db.Column(db.Integer, db.ForeignKey('rbEventTypePurpose.id'), index=True) finance_id = db.Column(db.Integer, db.ForeignKey('rbFinance.id'), index=True) scene_id = db.Column(db.ForeignKey('rbScene.id'), index=True) visitServiceModifier = db.Column(db.String(128), nullable=False) visitServiceFilter = db.Column(db.String(32), nullable=False) visitFinance = db.Column(db.Integer, nullable=False, server_default=u"'0'") actionFinance = db.Column(db.Integer, nullable=False, server_default=u"'0'") period = db.Column(db.Integer, nullable=False) singleInPeriod = db.Column(db.Integer, nullable=False) isLong = db.Column(db.Integer, nullable=False, server_default=u"'0'") dateInput = db.Column(db.Integer, nullable=False, server_default=u"'0'") service_id = db.Column(db.Integer, db.ForeignKey('rbService.id'), index=True) printContext = db.Column("context", db.String(64), nullable=False) form = db.Column(db.String(64), nullable=False) minDuration = db.Column(db.Integer, nullable=False, server_default=u"'0'") maxDuration = db.Column(db.Integer, nullable=False, server_default=u"'0'") showStatusActionsInPlanner = db.Column(db.Integer, nullable=False, server_default=u"'1'") showDiagnosticActionsInPlanner = db.Column(db.Integer, nullable=False, server_default=u"'1'") showCureActionsInPlanner = db.Column(db.Integer, nullable=False, server_default=u"'1'") showMiscActionsInPlanner = db.Column(db.Integer, nullable=False, server_default=u"'1'") limitStatusActionsInput = db.Column(db.Integer, nullable=False, server_default=u"'0'") limitDiagnosticActionsInput = db.Column(db.Integer, nullable=False, server_default=u"'0'") limitCureActionsInput = db.Column(db.Integer, nullable=False, server_default=u"'0'") limitMiscActionsInput = db.Column(db.Integer, nullable=False, server_default=u"'0'") showTime = db.Column(db.Integer, nullable=False, server_default=u"'0'") medicalAidType_id = db.Column(db.Integer, index=True) eventProfile_id = db.Column(db.Integer, index=True) mesRequired = db.Column(db.Integer, nullable=False, server_default=u"'0'") mesCodeMask = db.Column(db.String(64), server_default=u"''") mesNameMask = db.Column(db.String(64), server_default=u"''") counter_id = db.Column(db.ForeignKey('rbCounter.id'), index=True) isExternal = db.Column(db.Integer, nullable=False, server_default=u"'0'") isAssistant = db.Column(db.Integer, nullable=False, server_default=u"'0'") isCurator = db.Column(db.Integer, nullable=False, server_default=u"'0'") canHavePayableActions = db.Column(db.Integer, nullable=False, server_default=u"'0'") isRequiredCoordination = db.Column(db.Integer, nullable=False, server_default=u"'0'") isOrgStructurePriority = db.Column(db.Integer, nullable=False, server_default=u"'0'") isTakenTissue = db.Column(db.Integer, nullable=False, server_default=u"'0'") sex = db.Column(db.Integer, nullable=False, server_default=u"'0'") age = db.Column(db.String(9), nullable=False) rbMedicalKind_id = db.Column(db.ForeignKey('rbMedicalKind.id'), index=True) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) requestType_id = db.Column(db.Integer, db.ForeignKey('rbRequestType.id')) counter = db.relationship(u'rbCounter') rbMedicalKind = db.relationship(u'rbMedicalKind') purpose = db.relationship(u'rbEventTypePurpose') finance = db.relationship(u'rbFinance') service = db.relationship(u'rbService') requestType = db.relationship(u'rbRequestType', lazy=False) scene = db.relationship(u'rbScene') @classmethod def get_default_et(cls): """Тип события (обращения по умолчанию). Должно браться из настроек, а сейчас это поликлиника(бюджет) - EventType.code = '09' """ return cls.query.filter_by(code='09').first() def __json__(self): return { 'id': self.id, 'code': self.code, 'name': self.name, 'purpose': self.purpose, 'finance': self.finance, 'print_context': self.printContext, 'form': self.form, 'mes': { 'required': self.mesRequired, 'code_mask': self.mesCodeMask, 'name_mask': self.mesNameMask, }, 'restrictions': AgeSex(self), 'medical_kind': self.rbMedicalKind, 'service': self.service, 'request_type': self.requestType, } def __int__(self): return self.id
class Event(db.Model): __tablename__ = u'Event' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) createPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id) modifyDatetime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now) modifyPerson_id = db.Column(db.Integer, index=True, default=safe_current_user_id, onupdate=safe_current_user_id) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'", default=0) externalId = db.Column(db.String(30), nullable=False) eventType_id = db.Column(db.Integer, db.ForeignKey('EventType.id'), nullable=False, index=True) org_id = db.Column(db.Integer, db.ForeignKey('Organisation.id')) client_id = db.Column(db.Integer, db.ForeignKey('Client.id'), index=True) contract_id = db.Column(db.Integer, db.ForeignKey('Contract.id'), index=True) prevEventDate = db.Column(db.DateTime) setDate = db.Column(db.DateTime, nullable=False, index=True) setPerson_id = db.Column(db.Integer, index=True) execDate = db.Column(db.DateTime, index=True) execPerson_id = db.Column(db.Integer, db.ForeignKey('Person.id'), index=True) isPrimaryCode = db.Column("isPrimary", db.Integer, nullable=False) order = db.Column(db.Integer, nullable=False) result_id = db.Column(db.Integer, db.ForeignKey('rbResult.id'), index=True) nextEventDate = db.Column(db.DateTime) payStatus = db.Column(db.Integer, nullable=False) typeAsset_id = db.Column(db.Integer, db.ForeignKey('rbEmergencyTypeAsset.id'), index=True) note = db.Column(db.Text, nullable=False, default='') curator_id = db.Column(db.Integer, db.ForeignKey('Person.id'), index=True) assistant_id = db.Column(db.Integer, db.ForeignKey('Person.id'), index=True) pregnancyWeek = db.Column(db.Integer, nullable=False, server_default=u"'0'", default=0) MES_id = db.Column(db.Integer, index=True) mesSpecification_id = db.Column(db.ForeignKey('rbMesSpecification.id'), index=True) rbAcheResult_id = db.Column(db.ForeignKey('rbAcheResult.id'), index=True) version = db.Column(db.Integer, nullable=False, server_default=u"'0'", default=0) privilege = db.Column(db.Integer, server_default=u"'0'") urgent = db.Column(db.Integer, server_default=u"'0'") orgStructure_id = db.Column(db.Integer, db.ForeignKey('OrgStructure.id')) uuid_id = db.Column(db.Integer, db.ForeignKey('UUID.id'), nullable=False, index=True, server_default=u"'0'") lpu_transfer = db.Column(db.String(100)) localContract_id = db.Column(db.Integer, db.ForeignKey('Event_LocalContract.id')) actions = db.relationship( u'Action', primaryjoin="and_(Action.event_id == Event.id, Action.deleted == 0)") eventType = db.relationship(u'EventType') execPerson = db.relationship(u'Person', foreign_keys='Event.execPerson_id') curator = db.relationship(u'Person', foreign_keys='Event.curator_id') assistant = db.relationship(u'Person', foreign_keys='Event.assistant_id') contract = db.relationship(u'Contract') organisation = db.relationship(u'Organisation') orgStructure = db.relationship('OrgStructure') mesSpecification = db.relationship(u'rbMesSpecification') rbAcheResult = db.relationship(u'rbAcheResult') result = db.relationship(u'rbResult') typeAsset = db.relationship(u'rbEmergencyTypeAsset') localContract = db.relationship(u'EventLocalContract', backref=db.backref('event')) payments = db.relationship('EventPayment', backref=db.backref('event')) client = db.relationship(u'Client') diagnostics = db.relationship( u'Diagnostic', lazy=True, innerjoin=True, primaryjoin= "and_(Event.id == Diagnostic.event_id, Diagnostic.deleted == 0)") visits = db.relationship( u'Visit', primaryjoin="and_(Event.id == Visit.event_id, Visit.deleted == 0)") uuid = db.relationship('UUID') @property def payer_required(self): # FIXME: перенести из application.lib.utils загрузку ролей и прав в app.py # тогда должны заработать нормальные импорты из utils.py from application.lib.utils import safe_traverse_attrs return safe_traverse_attrs(self.eventType, 'finance', 'code') in PAYER_EVENT_CODES @property def isPrimary(self): return self.isPrimaryCode == 1 @property def finance(self): return self.eventType.finance @property def departmentManager(self): return Person.join(rbPost).filter( Person.orgStructure_id == self.orgStructure_id, rbPost.flatCode == u'departmentManager').first() @property def current_org_structure(self): """ Get OrgStructure :return: current location of patient :rtype: application.models.exists.OrgStructure """ from .actions import ActionProperty_OrgStructure, ActionProperty, ActionType, Action from .exists import OrgStructure if self.orgStructure_id: return self.orgStructure prop = ActionProperty_OrgStructure.query.join( ActionProperty, ActionType, Action).filter( Action.event == self, Action.status < 2, ActionType.flatCode == 'moving', ).orderby(Action.begDate.desc()).first() if not prop: return None return OrgStructure.query.get(prop.value) @property def date(self): date = self.execDate if self.execDate is not None else datetime.date.today( ) return date def __unicode__(self): return unicode(self.eventType) def __int__(self): return self.id
class ActionType(db.Model): __tablename__ = u'ActionType' id = db.Column(db.Integer, primary_key=True) createDatetime = db.Column(db.DateTime, nullable=False) createPerson_id = db.Column(db.Integer, index=True) modifyDatetime = db.Column(db.DateTime, nullable=False) modifyPerson_id = db.Column(db.Integer, index=True) deleted = db.Column(db.Integer, nullable=False, server_default=u"'0'") hidden = db.Column(db.Integer, nullable=False, server_default=u"'0'") class_ = db.Column(u'class', db.Integer, nullable=False, index=True) group_id = db.Column(db.Integer, db.ForeignKey('ActionType.id'), index=True) code = db.Column(db.String(25), nullable=False) name = db.Column(db.Unicode(255), nullable=False) title = db.Column(db.Unicode(255), nullable=False) flatCode = db.Column(db.String(64), nullable=False, index=True) sex = db.Column(db.Integer, nullable=False) age = db.Column(db.String(9), nullable=False) age_bu = db.Column(db.Integer) age_bc = db.Column(db.SmallInteger) age_eu = db.Column(db.Integer) age_ec = db.Column(db.SmallInteger) office = db.Column(db.String(32), nullable=False) showInForm = db.Column(db.Integer, nullable=False) genTimetable = db.Column(db.Integer, nullable=False) service_id = db.Column(db.Integer, db.ForeignKey('rbService.id'), index=True) quotaType_id = db.Column(db.Integer, index=True) context = db.Column(db.String(64), nullable=False) amount = db.Column(db.Float(asdecimal=True), nullable=False, server_default=u"'1'") amountEvaluation = db.Column(db.Integer, nullable=False, server_default=u"'0'") defaultStatus = db.Column(db.Integer, nullable=False, server_default=u"'0'") defaultDirectionDate = db.Column(db.Integer, nullable=False, server_default=u"'0'") defaultPlannedEndDate = db.Column(db.Integer, nullable=False) defaultEndDate = db.Column(db.Integer, nullable=False, server_default=u"'0'") defaultExecPerson_id = db.Column(db.Integer, index=True) defaultPersonInEvent = db.Column(db.Integer, nullable=False, server_default=u"'0'") defaultPersonInEditor = db.Column(db.Integer, nullable=False, server_default=u"'0'") maxOccursInEvent = db.Column(db.Integer, nullable=False, server_default=u"'0'") showTime = db.Column(db.Integer, nullable=False, server_default=u"'0'") isMES = db.Column(db.Integer) nomenclativeService_id = db.Column(db.Integer, db.ForeignKey('rbService.id'), index=True) isPreferable = db.Column(db.Integer, nullable=False, server_default=u"'1'") prescribedType_id = db.Column(db.Integer, index=True) shedule_id = db.Column(db.Integer, index=True) isRequiredCoordination = db.Column(db.Integer, nullable=False, server_default=u"'0'") isRequiredTissue = db.Column(db.Integer, nullable=False, server_default=u"'0'") testTubeType_id = db.Column(db.Integer, index=True) jobType_id = db.Column(db.ForeignKey('rbJobType.id'), index=True) mnem = db.Column(db.String(32), server_default=u"''") layout = db.Column(db.Text) service = db.relationship(u'rbService', foreign_keys='ActionType.service_id') nomenclatureService = db.relationship( u'rbService', foreign_keys='ActionType.nomenclativeService_id') property_types = db.relationship(u'ActionPropertyType', lazy='dynamic') group = db.relationship(u'ActionType', remote_side=[id]) jobType = db.relationship(u'rbJobType', lazy=False) tissue_type = db.relationship( 'ActionType_TissueType', primaryjoin= 'and_(ActionType_TissueType.master_id == ActionType.id, ActionType_TissueType.idx == 0)', uselist=False) def get_property_type_by_name(self, name): return self.property_types.filter( ActionPropertyType.name == name).first() def get_property_type_by_code(self, code): return self.property_types.filter( ActionPropertyType.code == code).first() def __json__(self): return { 'id': self.id, 'code': self.code, 'name': self.name, 'class': self.class_, 'flat_code': self.flatCode, 'title': self.title, 'context_name': self.context, }