def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: scorer = self.get_score() return self.standard_task_summary_fields() + [ SummaryElement( name="quality_of_attachment_score", coltype=Integer(), value=scorer.quality_score, comment=f"Quality of attachment score (for complete tasks, " f"range " f"{self.MIN_QUALITY}-" f"{self.MAX_QUALITY})", ), SummaryElement( name="time_in_attachment_mode_score", coltype=Integer(), value=scorer.time_score, comment=f"Time spent in attachment mode (or intensity of " f"preoccupation) score (for complete tasks, range " f"{self.MIN_TIME}-" f"{self.MAX_TIME})", ), SummaryElement( name="global_attachment_score", coltype=Integer(), value=scorer.global_score, comment=f"Global attachment score (for complete tasks, range " f"{self.MIN_GLOBAL}-" f"{self.MAX_GLOBAL})", ), ]
class UserCompetence(db.Model): __tablename__ = 'user_competences' id = Column(Integer, primary_key=True) duration = Column(Integer()) turns = Column(Integer()) user_id = Column(Integer, ForeignKey('users.id')) competences_id = Column(Integer, ForeignKey('competences.id'))
class Invitation(ActivationMixin, DeclarativeBase): __tablename__ = 'invitation' code = Field(Unicode(), primary_key=True) total_sits = Field(Integer()) filled_sits = Field(Integer(), default=0) __table_args__ = (CheckConstraint( 'total_sits >= filled_sits', name='cc_invitation_total_sits_grater_that_filled'), ) @property def unfilled_sits(self): return self.total_sits - self.filled_sits @classmethod def ensure_code(cls, code): invitation = Invitation.query.filter( Invitation.code == code).with_for_update().one_or_none() if invitation is None: raise HttpNotFound() return invitation
class KhZfTjCollectionModel(Base): @classmethod def keys(self): return [ "qx", "ywmc", "ppmc", "yhmc", "sl", "khyc", "kdkhyc" # , "rksj"#这里由于自己增加的时间与表格不对应。就不加上 ] # 库名 __dbname__ = "BossReport".lower() # 表名 yxbl_201706 __tablename__ = "KhZfTj".lower() # 表结构 id = Column(Integer(), primary_key=True) qx = Column(String(100), doc="区县") ywmc = Column(String(100), doc="业务名称") ppmc = Column(String(100), doc="品牌名称") yhmc = Column(String(100), doc="优惠名称") sl = Column(Integer(), doc="数量") khyc = Column(Integer(), doc="开户预存") kdkhyc = Column(Integer(), doc="宽带开户预存") rksj = Column(TIMESTAMP, server_default=text("CURRENT_TIMESTAMP"), doc="入库时间")
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="total", coltype=Integer(), value=self.total_score(), comment="Total score ({}-{})".format( self.MIN_TOTAL, self.MAX_TOTAL)), SummaryElement(name="p", coltype=Integer(), value=self.score_p(), comment="Positive symptom (P) score ({}-{})".format( self.MIN_P, self.MAX_P)), SummaryElement(name="n", coltype=Integer(), value=self.score_n(), comment="Negative symptom (N) score ({}-{})".format( self.MIN_N, self.MAX_N)), SummaryElement(name="g", coltype=Integer(), value=self.score_g(), comment="General symptom (G) score ({}-{})".format( self.MIN_G, self.MAX_G)), SummaryElement(name="composite", coltype=Integer(), value=self.composite(), comment="Composite score (P - N) ({} to {})".format( self.MIN_P_MINUS_N, self.MAX_P_MINUS_N)), ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: scoredict = self.get_score() return self.standard_task_summary_fields() + [ SummaryElement( name="total", coltype=Integer(), value=scoredict["total"], comment="Total (0-n, higher better)", ), SummaryElement( name="n", coltype=Integer(), value=scoredict["n"], comment="Number of applicable questions", ), SummaryElement( name="score", coltype=Float(), value=scoredict["score"], comment="tcore / n", ), SummaryElement( name="logit", coltype=Float(), value=scoredict["logit"], comment="log(score / (1 - score))", ), SummaryElement( name="severity", coltype=SummaryCategoryColType, value=scoredict["severity"], comment="Severity", ), ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="n_core", coltype=Integer(), value=self.n_core(), comment="Number of core diagnostic symptoms (/3)"), SummaryElement( name="n_additional", coltype=Integer(), value=self.n_additional(), comment="Number of additional diagnostic symptoms (/7)"), SummaryElement( name="n_total", coltype=Integer(), value=self.n_total(), comment="Total number of diagnostic symptoms (/10)"), SummaryElement(name="n_somatic", coltype=Integer(), value=self.n_somatic(), comment="Number of somatic syndrome symptoms (/8)"), SummaryElement(name="category", coltype=SummaryCategoryColType, value=self.get_full_description(req), comment="Diagnostic category"), SummaryElement(name="psychosis_or_stupor", coltype=Boolean(), value=self.is_psychotic_or_stupor(), comment="Psychotic symptoms or stupor present?"), ]
class TicketMessage(ModifiedMixin, PaginationMixin, DeclarativeBase): __tablename__ = 'ticket_message' id = Field(Integer(), primary_key=True) ticket_id = Field(Integer(), ForeignKey(Ticket.id)) member_id = Field(Integer(), ForeignKey('member.id')) text = Field(Unicode()) is_answer = Field(Boolean(), default=False) _attachment = Field(TicketAttachment.as_mutable(JSON), nullable=True, protected=True) ticket = relationship(Ticket, lazy='select', uselist=False, protected=True) @property def attachment(self): return self._attachment.locate() if self._attachment else None @attachment.setter def attachment(self, value): if value is not None: self._attachment = TicketAttachment.create_from(value) else: self._attachment = None def to_dict(self): result = super().to_dict() result['attachment'] = self.attachment return result
class UserRoles(Base): __tablename__ = 'user_roles' id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('user_account.id', ondelete='CASCADE')) role_id = Column(Integer(), ForeignKey('roles.id', ondelete='CASCADE'))
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="total", coltype=Integer(), value=self.total_score(), comment="Total score (/{})".format( self.MAX_SCORE_MAIN)), SummaryElement(name="n_core", coltype=Integer(), value=self.n_core(), comment="Number of core symptoms"), SummaryElement(name="n_other", coltype=Integer(), value=self.n_other(), comment="Number of other symptoms"), SummaryElement(name="n_total", coltype=Integer(), value=self.n_total(), comment="Total number of symptoms"), SummaryElement(name="is_mds", coltype=Boolean(), value=self.is_mds(), comment="PHQ9 major depressive syndrome?"), SummaryElement(name="is_ods", coltype=Boolean(), value=self.is_ods(), comment="PHQ9 other depressive syndrome?"), SummaryElement(name="severity", coltype=SummaryCategoryColType, value=self.severity(req), comment="PHQ9 depression severity"), ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement( name="total_score", coltype=Integer(), value=self.total_score(), comment=f"Total score (/ {self.MAX_TOTAL})", ), SummaryElement( name="factor_1_score", coltype=Integer(), value=self.factor_1_score(), comment=f"Factor 1 score (/ {self.FACTOR_1_MAX})", ), SummaryElement( name="factor_2_score", coltype=Integer(), value=self.factor_2_score(), comment=f"Factor 2 score (/ {self.FACTOR_2_MAX})", ), SummaryElement( name="factor_3_score", coltype=Integer(), value=self.factor_3_score(), comment=f"Factor 3 score (/ {self.FACTOR_3_MAX})", ), SummaryElement( name="factor_4_score", coltype=Integer(), value=self.factor_4_score(), comment=f"Factor 4 score (/ {self.FACTOR_4_MAX})", ), ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement( name="total", coltype=Integer(), value=self.total_score(), comment="Total score (/32)", ), SummaryElement( name="distress", coltype=Integer(), value=self.distress_score(), comment="Distress score (/160)", ), SummaryElement( name="intrusiveness", coltype=Integer(), value=self.intrusiveness_score(), comment="Intrusiveness score (/160)", ), SummaryElement( name="frequency", coltype=Integer(), value=self.frequency_score(), comment="Frequency score (/160)", ), ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement( name="total_score", coltype=Integer(), value=self.total_score(), comment=f"Total score (/ {self.MAX_TOTAL})", ), SummaryElement( name="avoidance_score", coltype=Integer(), value=self.avoidance_score(), comment=f"Avoidance score (/ {self.MAX_AVOIDANCE})", ), SummaryElement( name="intrusion_score", coltype=Integer(), value=self.intrusion_score(), comment=f"Intrusion score (/ {self.MAX_INTRUSION})", ), SummaryElement( name="hyperarousal_score", coltype=Integer(), value=self.hyperarousal_score(), comment=f"Hyperarousal score (/ {self.MAX_HYPERAROUSAL})", ), ]
class UserRole(TimestampMixin, AccidaBase): __tablename__ = "user_roles" id = Column(Integer(), primary_key=True, autoincrement=True) name = Column(EnumType(UserRoleEnum), nullable=False) user_id = Column(Integer(), ForeignKey("users.id")) user = relationship("User", back_populates="roles") def __init__(self, name: str) -> None: self.name = name
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="anxiety", coltype=Integer(), value=self.anxiety_score(), comment="Anxiety score (/{})".format( self.MAX_ANX_SCORE)), SummaryElement(name="depression", coltype=Integer(), value=self.depression_score(), comment="Depression score (/21)"), ]
class Feedback(TimestampMixin, AccidaBase): __tablename__ = "feedbacks" id = Column(Integer(), primary_key=True, autoincrement=True) user_id = Column(Integer(), ForeignKey("users.id")) user = relationship("User", back_populates="feedbacks") model_id = Column(Integer(), ForeignKey("models.id")) model = relationship("Model", back_populates="feedbacks") def __init__(self, user_id, model_id) -> None: self.user_id = user_id self.model_id = model_id
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: d = self.get_score_dict() s = self.standard_task_summary_fields() for item in d: s.extend([ SummaryElement(name=item + "_n", coltype=Integer(), value=d[item][0], comment=item + " (numerator)"), SummaryElement(name=item + "_d", coltype=Integer(), value=d[item][1], comment=item + " (denominator)"), ]) return s
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement( name="n_endorsed", coltype=Integer(), value=self.n_endorsed(), comment="Number endorsed (/ {})".format(self.NQUESTIONS)), SummaryElement( name="severity_score", coltype=Integer(), value=self.severity_score(), comment="Severity score (/ {})".format(self.MAX_SEVERITY)), SummaryElement( name="distress_score", coltype=Integer(), value=self.distress_score(), comment="Distress score (/ {})".format(self.MAX_DISTRESS)), ]
class Cashout(BankingTransaction): __tablename__ = 'cashout' __mapper_args__ = { 'polymorphic_identity': __tablename__, } id = Field(Integer(), ForeignKey(BankingTransaction.id), primary_key=True)
class YxBlCollectionModel(Base): @classmethod def keys(self): return [ "gh", "qx", "yxzx", "yyt", "qdbm", "qdlx", "zdjx", "zdch", "blsj", "fsbm", "zdlx", "zdzs", "hdmc", "fsmc", "ywlx", "ddh", "jfje", "syzkqje", "gjk", "yck", "zsyhje", "zsycje", "zskje", "zswje", "zsqje", "zsdkqje", "sfydd", "fwhm", "ywdm", "jffs", "zdxh", "cgj", "dxsthsj", "mdj", "yhsxxxsj", "dbyf", "hylx", "hyj", "bhsgjk", "sj", "sfkqbl" ] # 库名 __dbname__ = "BossReport".lower() # 表名 yxbl_201706 __tablename__ = "YxBl".lower() # 表结构 id = Column(Integer(), primary_key=True) gh = Column(String(100), doc="工号") qx = Column(String(100), doc="区县") yxzx = Column(String(100), doc="营销中心") yyt = Column(String(100), doc="营业厅") qdbm = Column(String(100), doc="渠道编码") qdlx = Column(String(100), doc="渠道类型") zdjx = Column(String(100), doc="终端机型") zdch = Column(String(100), doc="终端串号") blsj = Column(String(100), doc="办理时间") fsbm = Column(String(100), doc="方式编码") zdlx = Column(String(100), doc="终端类型") zdzs = Column(String(100), doc="终端制式") hdmc = Column(String(100), doc="活动名称") fsmc = Column(String(100), doc="方式名称") ywlx = Column(String(100), doc="业务类型") ddh = Column(String(100), doc="订单号") jfje = Column(String(100), doc="缴费金额") syzkqje = Column(String(100), doc="使用抵扣券金额") gjk = Column(String(100), doc="购机款") yck = Column(String(100), doc="预存款") zsyhje = Column(String(100), doc="赠送优惠金额") zsycje = Column(String(100), doc="赠送预存金额") zskje = Column(String(100), doc="赠送卡金额") zswje = Column(String(100), doc="赠送物金额") zsqje = Column(String(100), doc="赠送其金额") zsdkqje = Column(String(100), doc="赠送抵扣券金额") sfydd = Column(String(100), doc="是否有订单") fwhm = Column(String(100), doc="服务号码") ywdm = Column(String(100), doc="业务代码") jffs = Column(String(100), doc="缴费方式") zdxh = Column(String(100), doc="终端型号") cgj = Column(String(100), doc="采购价") dxsthsj = Column(String(100), doc="代销商提货时间") mdj = Column(String(100), doc="买断价") yhsxxxsj = Column(String(100), doc="用户实现销售时间") dbyf = Column(String(100), doc="打标与否") hylx = Column(String(100), doc="合约类型") hyj = Column(String(100), doc="合约价") bhsgjk = Column(String(100), doc="不含税购机款") sj = Column(String(100), doc="税金") sfkqbl = Column(String(100), doc="是否跨区办理")
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="total_score", coltype=Integer(), value=self.total_score(), comment="Total score (/ 48)"), ]
class qAnswersMCMR(Base): __tablename__ = 'qAnswersMCMR' questionNo = Column(Integer(10), primary_key=True, autoincrement=True) variationNo = Column(SMALLINT(5), primary_key=True) answerNo = Column(TINYINT(3), primary_key=True) choiceNo = Column(TINYINT(3), primary_key=True) choiceValue = Column(VARCHAR(256), collation='utf8') isAnswer = Column(TINYINT(1)) canRandomize = Column(TINYINT(1)) def __init__(self, questionNo, variationNo, answerNo, choiceNo, choiceValue, isAnswer=0, canRandomize=1): """Constructor""" self.questionNo = questionNo self.variationNo = variationNo self.answerNo = answerNo self.choiceNo = choiceNo self.choiceValue = choiceValue self.isAnswer = isAnswer self.canRandomize = canRandomize def __repr__(self): """Show this object (database record)""" return "<User(%d, %s)>" % (self.questionNo, self.variationNo, self.answerNo, self.choiceNo)
class CzMxCollectionModel(Base): @classmethod def keys(self): return ["fwhm", "qx", "yyt", "czmc", "czgh", "czls", "czsj", "ywpp", "sxf", "skf", "qtf", "jehj" ] # 库名 __dbname__ = "BossReport".lower() # 表名 yxbl_201706 __tablename__ = "CzMx".lower() # 表结构 id = Column(Integer(), primary_key=True) fwhm = Column(String(100), doc="服务号码") qx = Column(String(100), doc="区县") yyt = Column(String(100), doc="营业厅") czmc = Column(String(100), doc="操作名称") czgh = Column(String(100), doc="操作工号") czls = Column(String(100), doc="操作流水") czsj = Column(String(100), doc="操作时间") ywpp = Column(String(100), doc="业务品牌") sxf = Column(String(100), doc="手续费") skf = Column(String(100), doc="SIM卡费") qtf = Column(String(100), doc="其他费") jehj = Column(String(100), doc="金额合计")
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="clinical_score", coltype=Integer(), value=self.clinical_score(), comment="Clinical score (/{})".format( self.MAX_SCORE)), ]
class BankingId(TimestampMixin, DeclarativeBase): __tablename__ = 'banking_id' id = Field(Integer(), primary_key=True) client_id = Field(Integer(), ForeignKey('client.id')) is_verified = Field(Boolean(), default=False) error = Field(Unicode(), nullable=True) client = relationship('Client', lazy='select', protected=True) type = Field(Enum('bank_account', 'bank_card', name='banking_id_type')) __mapper_args__ = { 'polymorphic_identity': __tablename__, 'polymorphic_on': type }
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement( name="total", coltype=Integer(), value=self.total_score(), comment=f"Total score (out of {self.MAX_TOTAL})", ) ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement(name="total", coltype=Integer(), value=self.total_score(), comment="Total score (range {}-{})".format( self.MINTOTALSCORE, self.MAXTOTALSCORE )), ]
def get_summaries(self, req: CamcopsRequest) -> List[SummaryElement]: return self.standard_task_summary_fields() + [ SummaryElement( name="total", coltype=Integer(), value=self.total_score(), comment=f"Total score ({self.MIN_SCORE}-{self.MAX_SCORE})", ), SummaryElement( name="num_symptomatic", coltype=Integer(), value=self.num_symptomatic(), comment="Total number of symptoms considered symptomatic " "(meaning scoring 3 or more)", ), SummaryElement( name="num_symptomatic_B", coltype=Integer(), value=self.num_symptomatic_b(), comment="Number of group B symptoms considered symptomatic " "(meaning scoring 3 or more)", ), SummaryElement( name="num_symptomatic_C", coltype=Integer(), value=self.num_symptomatic_c(), comment="Number of group C symptoms considered symptomatic " "(meaning scoring 3 or more)", ), SummaryElement( name="num_symptomatic_D", coltype=Integer(), value=self.num_symptomatic_d(), comment="Number of group D symptoms considered symptomatic " "(meaning scoring 3 or more)", ), SummaryElement( name="ptsd", coltype=Boolean(), value=self.ptsd(), comment="Meets DSM-IV criteria for PTSD", ), ]
class Client(Base): __tablename__ = 'client' idclient = Column('idclient', Integer(), primary_key=True) nom = Column('nom', String(100), nullable=False) adresse = Column('adresse', String(200), nullable=False) codepostal = Column('codepostal', String(10), nullable=False) ville = Column('ville', String(100), nullable=False) activite = Column('activite', String(200), nullable=False)
class Cashin(BankingTransaction): __tablename__ = 'cashin' __mapper_args__ = { 'polymorphic_identity': __tablename__, } id = Field(Integer(), ForeignKey(BankingTransaction.id), primary_key=True) # TODO: Add some salt to prevent man in the middle (Extra field to send on creation and check on verification) transaction_id = Field(Unicode())