Example #1
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     axis_min = -0.5
     axis_max = 10.5
     hlines = [0, 5, 10]
     axis_label = "Progress towards goal (0-10)"
     title_start = "GBO Goal Rating Sheet – Goal "
     return [
         TrackerInfo(
             value=self.goal_1_progress if self.rate_goal_1 else None,
             plot_label=title_start + "1",
             axis_label=axis_label,
             axis_min=axis_min,
             axis_max=axis_max,
             horizontal_lines=hlines,
         ),
         TrackerInfo(
             value=self.goal_2_progress if self.rate_goal_2 else None,
             plot_label=title_start + "2",
             axis_label=axis_label,
             axis_min=axis_min,
             axis_max=axis_max,
             horizontal_lines=hlines,
         ),
         TrackerInfo(
             value=self.goal_3_progress if self.rate_goal_3 else None,
             plot_label=title_start + "3",
             axis_label=axis_label,
             axis_min=axis_min,
             axis_max=axis_max,
             horizontal_lines=hlines,
         ),
     ]
Example #2
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="PANSS total score",
                     axis_label="Total score ({}-{})".format(
                         self.MIN_TOTAL, self.MAX_TOTAL),
                     axis_min=self.MIN_TOTAL - 0.5,
                     axis_max=self.MAX_TOTAL + 0.5),
         TrackerInfo(value=self.score_p(),
                     plot_label="PANSS P score",
                     axis_label="P score ({}-{})".format(
                         self.MIN_P, self.MAX_P),
                     axis_min=self.MIN_P - 0.5,
                     axis_max=self.MAX_P + 0.5),
         TrackerInfo(value=self.score_n(),
                     plot_label="PANSS N score",
                     axis_label="N score ({}-{})".format(
                         self.MIN_N, self.MAX_N),
                     axis_min=self.MIN_N - 0.5,
                     axis_max=self.MAX_N + 0.5),
         TrackerInfo(value=self.score_g(),
                     plot_label="PANSS G score",
                     axis_label="G score ({}-{})".format(
                         self.MIN_G, self.MAX_G),
                     axis_min=self.MIN_G - 0.5,
                     axis_max=self.MAX_G + 0.5),
         TrackerInfo(value=self.composite(),
                     plot_label="PANSS composite score ({} to {})".format(
                         self.MIN_P_MINUS_N, self.MAX_P_MINUS_N),
                     axis_label="P - N"),
     ]
Example #3
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(
             value=self.total_score(),
             plot_label="IES-R total score (lower is better)",
             axis_label=f"Total score (out of {self.MAX_TOTAL})",
             axis_min=-0.5,
             axis_max=self.MAX_TOTAL + 0.5,
         ),
         TrackerInfo(
             value=self.avoidance_score(),
             plot_label="IES-R avoidance score",
             axis_label=f"Avoidance score (out of {self.MAX_AVOIDANCE})",
             axis_min=-0.5,
             axis_max=self.MAX_AVOIDANCE + 0.5,
         ),
         TrackerInfo(
             value=self.intrusion_score(),
             plot_label="IES-R intrusion score",
             axis_label=f"Intrusion score (out of {self.MAX_INTRUSION})",
             axis_min=-0.5,
             axis_max=self.MAX_INTRUSION + 0.5,
         ),
         TrackerInfo(
             value=self.hyperarousal_score(),
             plot_label="IES-R hyperarousal score",
             axis_label=
             f"Hyperarousal score (out of {self.MAX_HYPERAROUSAL})",  # noqa
             axis_min=-0.5,
             axis_max=self.MAX_HYPERAROUSAL + 0.5,
         ),
     ]
Example #4
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     # $ signs enable TEX mode for matplotlib, e.g. "$BMI (kg/m^2)$"
     return [
         TrackerInfo(
             value=self.bmi(),
             plot_label="Body mass index",
             axis_label="BMI (kg/m^2)",
             axis_min=10,
             axis_max=42,
             horizontal_lines=[13, 15, 16, 17, 17.5, 18.5, 25, 30, 35, 40],
             horizontal_labels=[
                 # positioned near the mid-range for some:
                 TrackerLabel(
                     12.5,
                     self.wxstring(req, "underweight_under_13"),
                     LabelAlignment.top,
                 ),
                 TrackerLabel(14, self.wxstring(req, "underweight_13_15")),
                 TrackerLabel(
                     15.5, self.wxstring(req, "underweight_15_16")
                 ),
                 TrackerLabel(
                     16.5, self.wxstring(req, "underweight_16_17")
                 ),
                 TrackerLabel(
                     17.25, self.wxstring(req, "underweight_17_17.5")
                 ),
                 TrackerLabel(
                     18, self.wxstring(req, "underweight_17.5_18.5")
                 ),
                 TrackerLabel(21.75, self.wxstring(req, "normal")),
                 TrackerLabel(27.5, self.wxstring(req, "overweight")),
                 TrackerLabel(32.5, self.wxstring(req, "obese_1")),
                 TrackerLabel(37.6, self.wxstring(req, "obese_2")),
                 TrackerLabel(
                     40.5,
                     self.wxstring(req, "obese_3"),
                     LabelAlignment.bottom,
                 ),
             ],
             aspect_ratio=1.0,
         ),
         TrackerInfo(
             value=self.mass_kg,
             plot_label="Mass (kg)",
             axis_label="Mass (kg)",
         ),
         TrackerInfo(
             value=self.waist_cm,
             plot_label="Waist circumference (cm)",
             axis_label="Waist circumference (cm)",
         ),
     ]
Example #5
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.get_tto_qol(),
                     plot_label="Quality of life: time trade-off",
                     axis_label="TTO QoL (0-1)",
                     axis_min=0,
                     axis_max=1),
         TrackerInfo(value=self.get_rs_qol(),
                     plot_label="Quality of life: rating scale",
                     axis_label="RS QoL (0-1)",
                     axis_min=0,
                     axis_max=1),
     ]
Example #6
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(
             value=self.total_score(),
             plot_label="PHQ-9 total score (rating depressive symptoms)",
             axis_label="Score for Q1-9 (out of {})".format(
                 self.MAX_SCORE_MAIN),
             axis_min=-0.5,
             axis_max=self.MAX_SCORE_MAIN + 0.5,
             axis_ticks=[
                 TrackerAxisTick(27, "27"),
                 TrackerAxisTick(25, "25"),
                 TrackerAxisTick(20, "20"),
                 TrackerAxisTick(15, "15"),
                 TrackerAxisTick(10, "10"),
                 TrackerAxisTick(5, "5"),
                 TrackerAxisTick(0, "0"),
             ],
             horizontal_lines=[19.5, 14.5, 9.5, 4.5],
             horizontal_labels=[
                 TrackerLabel(23, req.wappstring("severe")),
                 TrackerLabel(17, req.wappstring("moderately_severe")),
                 TrackerLabel(12, req.wappstring("moderate")),
                 TrackerLabel(7, req.wappstring("mild")),
                 TrackerLabel(2.25, req.wappstring("none")),
             ])
     ]
Example #7
0
    def get_crp_tracker(self, req: CamcopsRequest) -> TrackerInfo:
        axis_min = -0.5
        axis_max = 9.0
        axis_ticks = [
            TrackerAxisTick(n, str(n)) for n in range(0,
                                                      int(axis_max) + 1)
        ]

        horizontal_lines = [
            self.CRP_MODERATE_HIGH_CUTOFF,
            self.CRP_LOW_MODERATE_CUTOFF,
            self.CRP_REMISSION_LOW_CUTOFF,
            0,
        ]

        horizontal_labels = [
            TrackerLabel(6.8, self.wxstring(req, "high")),
            TrackerLabel(3.75, self.wxstring(req, "moderate")),
            TrackerLabel(2.65, self.wxstring(req, "low")),
            TrackerLabel(1.2, self.wxstring(req, "remission")),
        ]

        return TrackerInfo(
            value=self.das28_crp(),
            plot_label="DAS28-CRP",
            axis_label="DAS28-CRP",
            axis_min=axis_min,
            axis_max=axis_max,
            axis_ticks=axis_ticks,
            horizontal_lines=horizontal_lines,
            horizontal_labels=horizontal_labels,
        )
Example #8
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(
             value=self.clinical_score(),
             plot_label="CORE-10 clinical score (rating distress)",
             axis_label="Clinical score (out of {})".format(self.MAX_SCORE),
             axis_min=-0.5,
             axis_max=self.MAX_SCORE + 0.5,
             axis_ticks=[
                 TrackerAxisTick(40, "40"),
                 TrackerAxisTick(35, "35"),
                 TrackerAxisTick(30, "30"),
                 TrackerAxisTick(25, "25"),
                 TrackerAxisTick(20, "20"),
                 TrackerAxisTick(15, "15"),
                 TrackerAxisTick(10, "10"),
                 TrackerAxisTick(5, "5"),
                 TrackerAxisTick(0, "0"),
             ],
             horizontal_lines=[
                 30,
                 20,
                 10,
             ],
         )
     ]
Example #9
0
    def get_esr_tracker(self, req: CamcopsRequest) -> TrackerInfo:
        axis_min = -0.5
        axis_max = 10.0
        axis_ticks = [
            TrackerAxisTick(n, str(n)) for n in range(0,
                                                      int(axis_max) + 1)
        ]

        horizontal_lines = [
            self.ESR_MODERATE_HIGH_CUTOFF,
            self.ESR_LOW_MODERATE_CUTOFF,
            self.ESR_REMISSION_LOW_CUTOFF,
            0,
        ]

        horizontal_labels = [
            TrackerLabel(7.55, self.wxstring(req, "high")),
            TrackerLabel(4.15, self.wxstring(req, "moderate")),
            TrackerLabel(2.9, self.wxstring(req, "low")),
            TrackerLabel(1.3, self.wxstring(req, "remission")),
        ]

        return TrackerInfo(
            value=self.das28_esr(),
            plot_label="DAS28-ESR",
            axis_label="DAS28-ESR",
            axis_min=axis_min,
            axis_max=axis_max,
            axis_ticks=axis_ticks,
            horizontal_lines=horizontal_lines,
            horizontal_labels=horizontal_labels,
        )
Example #10
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     line_step = 20
     preliminary_cutoff = 33
     return [
         TrackerInfo(
             value=self.total_score(),
             plot_label="PCL-5 total score",
             axis_label=f"Total score ({self.MIN_SCORE}-{self.MAX_SCORE})",
             axis_min=self.MIN_SCORE - 0.5,
             axis_max=self.MAX_SCORE + 0.5,
             axis_ticks=regular_tracker_axis_ticks_int(self.MIN_SCORE,
                                                       self.MAX_SCORE,
                                                       step=line_step),
             horizontal_lines=equally_spaced_int(
                 self.MIN_SCORE + line_step,
                 self.MAX_SCORE - line_step,
                 step=line_step,
             ) + [preliminary_cutoff],
             horizontal_labels=[
                 TrackerLabel(
                     preliminary_cutoff,
                     self.wxstring(req, "preliminary_cutoff"),
                 )
             ],
         )
     ]
Example #11
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     line_step = 20
     threshold_line = self.DEPRESSION_RISK_THRESHOLD - 0.5
     # noinspection PyTypeChecker
     return [
         TrackerInfo(
             value=self.total_score(),
             plot_label="CESD total score",
             axis_label=f"Total score ({self.MIN_SCORE}-{self.MAX_SCORE})",
             axis_min=self.MIN_SCORE - 0.5,
             axis_max=self.MAX_SCORE + 0.5,
             axis_ticks=regular_tracker_axis_ticks_int(self.MIN_SCORE,
                                                       self.MAX_SCORE,
                                                       step=line_step),
             horizontal_lines=equally_spaced_int(
                 self.MIN_SCORE + line_step,
                 self.MAX_SCORE - line_step,
                 step=line_step,
             ) + [threshold_line],
             horizontal_labels=[
                 TrackerLabel(
                     threshold_line,
                     self.wxstring(req, "depression_or_risk_of"),
                 )
             ],
         )
     ]
Example #12
0
    def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
        axis_min = self.MINIMUM - 0.5
        axis_max = self.MAXIMUM + 0.5
        axis_ticks = [
            TrackerAxisTick(n, str(n)) for n in range(0,
                                                      int(axis_max) + 1)
        ]

        horizontal_lines = [self.MAXIMUM, self.ACTIVE_CUTOFF, self.MINIMUM]

        horizontal_labels = [
            TrackerLabel(self.ACTIVE_CUTOFF + 0.5,
                         self.wxstring(req, "active")),
            TrackerLabel(self.ACTIVE_CUTOFF - 0.5,
                         self.wxstring(req, "inactive")),
        ]

        return [
            TrackerInfo(
                value=self.basdai(),
                plot_label="BASDAI",
                axis_label="BASDAI",
                axis_min=axis_min,
                axis_max=axis_max,
                axis_ticks=axis_ticks,
                horizontal_lines=horizontal_lines,
                horizontal_labels=horizontal_labels,
            )
        ]
Example #13
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(
             value=self.total_score(),
             plot_label="PHQ-9 total score (rating depressive symptoms)",
             axis_label=f"Score for Q1-9 (out of {self.MAX_SCORE_MAIN})",
             axis_min=-0.5,
             axis_max=self.MAX_SCORE_MAIN + 0.5,
             axis_ticks=[
                 TrackerAxisTick(27, "27"),
                 TrackerAxisTick(25, "25"),
                 TrackerAxisTick(20, "20"),
                 TrackerAxisTick(15, "15"),
                 TrackerAxisTick(10, "10"),
                 TrackerAxisTick(5, "5"),
                 TrackerAxisTick(0, "0"),
             ],
             horizontal_lines=[19.5, 14.5, 9.5, 4.5],
             horizontal_labels=[
                 TrackerLabel(23, req.sstring(SS.SEVERE)),
                 TrackerLabel(17, req.sstring(SS.MODERATELY_SEVERE)),
                 TrackerLabel(12, req.sstring(SS.MODERATE)),
                 TrackerLabel(7, req.sstring(SS.MILD)),
                 TrackerLabel(2.25, req.sstring(SS.NONE)),
             ],
         )
     ]
Example #14
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(
             value=self.anxiety_score(),
             plot_label="HADS anxiety score",
             axis_label=f"Anxiety score (out of {self.MAX_ANX_SCORE})",
             axis_min=-0.5,
             axis_max=self.MAX_ANX_SCORE + 0.5,
         ),
         TrackerInfo(
             value=self.depression_score(),
             plot_label="HADS depression score",
             axis_label=f"Depression score (out of {self.MAX_DEP_SCORE})",
             axis_min=-0.5,
             axis_max=self.MAX_DEP_SCORE + 0.5,
         ),
     ]
Example #15
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [TrackerInfo(
         value=self.total_score(),
         plot_label="CGI total score",
         axis_label="Total score (out of {})".format(self.MAX_SCORE),
         axis_min=-0.5,
         axis_max=self.MAX_SCORE + 0.5
     )]
Example #16
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [TrackerInfo(
         value=self.total_score(),
         plot_label="BDI total score (rating depressive symptoms)",
         axis_label="Score for Q1-21 (out of {})".format(MAX_SCORE),
         axis_min=-0.5,
         axis_max=MAX_SCORE + 0.5
     )]
Example #17
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="GAF score (rating overall functioning)",
                     axis_label="Score (1-100)",
                     axis_min=0.5,
                     axis_max=100.5)
     ]
Example #18
0
 def tracker_element(cls, value: float, plot_label: str) -> TrackerInfo:
     return TrackerInfo(
         value=value,
         plot_label="RAND-36: " + plot_label,
         axis_label="Scale score (out of 100)",
         axis_min=-0.5,
         axis_max=100.5,
     )
Example #19
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.utility,
                     plot_label="Quality of life: standard gamble",
                     axis_label="QoL (0-1)",
                     axis_min=0,
                     axis_max=1)
     ]
Example #20
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="CAPS total score",
                     axis_label="Total score (out of 32)",
                     axis_min=-0.5,
                     axis_max=32.5)
     ]
Example #21
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     scoredict = self.get_score()
     return [
         TrackerInfo(
             value=scoredict['total'],
             plot_label="IFS total score (higher is better)",
             axis_label="Total score (out of {})".format(self.MAX_TOTAL),
             axis_min=-0.5,
             axis_max=self.MAX_TOTAL + 0.5
         ),
         TrackerInfo(
             value=scoredict['wm'],
             plot_label="IFS working memory index (higher is better)",
             axis_label="Total score (out of {})".format(self.MAX_WM),
             axis_min=-0.5,
             axis_max=self.MAX_WM + 0.5
         ),
     ]
Example #22
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [TrackerInfo(
         value=self.total_score(),
         plot_label="SWEMWBS total score (rating mental well-being)",
         axis_label="Total score ({}-{})".format(
             self.MINTOTALSCORE, self.MAXTOTALSCORE),
         axis_min=self.MINTOTALSCORE - 0.5,
         axis_max=self.MAXTOTALSCORE + 0.5
     )]
Example #23
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="PDSS total score (lower is better)",
                     axis_label="Total score (out of {})".format(
                         self.MAX_TOTAL),
                     axis_min=-0.5,
                     axis_max=self.MAX_TOTAL + 0.5)
     ]
Example #24
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="WSAS total score (lower is better)",
                     axis_label="Total score (out of {}–{})".format(
                         self.MAX_IF_RETIRED, self.MAX_IF_WORKING),
                     axis_min=-0.5,
                     axis_max=self.MAX_IF_WORKING + 0.5)
     ]
Example #25
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="ACE-III total score",
                     axis_label="Total score (out of 100)",
                     axis_min=-0.5,
                     axis_max=100.5,
                     horizontal_lines=[82.5, 88.5])
     ]
Example #26
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [TrackerInfo(
         value=self.total_score(),
         plot_label="DAST total score",
         axis_label="Total score (out of {})".format(self.NQUESTIONS),
         axis_min=-0.5,
         axis_max=self.NQUESTIONS + 0.5,
         horizontal_lines=[10.5, 5.5]
     )]
Example #27
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(value=self.total_score(),
                     plot_label="AUDIT total score",
                     axis_label="Total score (out of 40)",
                     axis_min=-0.5,
                     axis_max=40.5,
                     horizontal_lines=[7.5])
     ]
Example #28
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     scoredict = self.get_score()
     return [
         TrackerInfo(
             value=scoredict["total"],
             plot_label="IFS total score (higher is better)",
             axis_label=f"Total score (out of {self.MAX_TOTAL})",
             axis_min=-0.5,
             axis_max=self.MAX_TOTAL + 0.5,
         ),
         TrackerInfo(
             value=scoredict["wm"],
             plot_label="IFS working memory index (higher is better)",
             axis_label=f"Total score (out of {self.MAX_WM})",
             axis_min=-0.5,
             axis_max=self.MAX_WM + 0.5,
         ),
     ]
Example #29
0
 def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
     return [
         TrackerInfo(
             value=self.total_score(),
             plot_label="PSWQ total score (lower is better)",
             axis_label=f"Total score ({self.MIN_TOTAL}–{self.MAX_TOTAL})",
             axis_min=self.MIN_TOTAL - 0.5,
             axis_max=self.MAX_TOTAL + 0.5,
         )
     ]
Example #30
0
    def get_trackers(self, req: CamcopsRequest) -> List[TrackerInfo]:
        axis_min = -0.5
        axis_max = 7.5
        axis_ticks = [
            TrackerAxisTick(n, str(n)) for n in range(0, int(axis_max) + 1)
        ]

        horizontal_lines = [
            self.HIGH_VERY_HIGH_CUTOFF,
            self.MODERATE_HIGH_CUTOFF,
            self.INACTIVE_MODERATE_CUTOFF,
            0,
        ]

        horizontal_labels = [
            TrackerLabel(5.25, self.wxstring(req, "very_high")),
            TrackerLabel(2.8, self.wxstring(req, "high")),
            TrackerLabel(1.7, self.wxstring(req, "moderate")),
            TrackerLabel(0.65, self.wxstring(req, "inactive")),
        ]

        return [
            TrackerInfo(
                value=self.asdas_crp(),
                plot_label="ASDAS-CRP",
                axis_label="ASDAS-CRP",
                axis_min=axis_min,
                axis_max=axis_max,
                axis_ticks=axis_ticks,
                horizontal_lines=horizontal_lines,
                horizontal_labels=horizontal_labels,
            ),
            TrackerInfo(
                value=self.asdas_esr(),
                plot_label="ASDAS-ESR",
                axis_label="ASDAS-ESR",
                axis_min=axis_min,
                axis_max=axis_max,
                axis_ticks=axis_ticks,
                horizontal_lines=horizontal_lines,
                horizontal_labels=horizontal_labels,
            ),
        ]