Пример #1
0
 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})",
         ),
     ]
Пример #2
0
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'))
Пример #3
0
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
Пример #4
0
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="入库时间")
Пример #5
0
 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)),
     ]
Пример #6
0
 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",
         ),
     ]
Пример #7
0
 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?"),
     ]
Пример #8
0
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
Пример #9
0
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'))
Пример #10
0
 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"),
     ]
Пример #11
0
 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})",
         ),
     ]
Пример #12
0
 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)",
         ),
     ]
Пример #13
0
 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})",
         ),
     ]
Пример #14
0
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
Пример #15
0
 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)"),
     ]
Пример #16
0
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
Пример #17
0
 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
Пример #18
0
 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)),
     ]
Пример #19
0
class Cashout(BankingTransaction):
    __tablename__ = 'cashout'
    __mapper_args__ = {
        'polymorphic_identity': __tablename__,
    }

    id = Field(Integer(), ForeignKey(BankingTransaction.id), primary_key=True)
Пример #20
0
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="是否跨区办理")
Пример #21
0
 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)"),
     ]
Пример #22
0
    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)
Пример #23
0
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="金额合计")
Пример #24
0
 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)),
     ]
Пример #25
0
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
    }
Пример #26
0
 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})",
         )
     ]
Пример #27
0
 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
                        )),
     ]
Пример #28
0
 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",
         ),
     ]
Пример #29
0
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)
Пример #30
0
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())