Пример #1
0
class Fp17IncompleteTreatment(models.EpisodeSubrecord):
    _is_singleton = True
    _title = 'FP17 Treatment Course'

    incomplete_treatment_band_1 = fields.BooleanField(default=False)
    incomplete_treatment_band_2 = fields.BooleanField(default=False)
    incomplete_treatment_band_3 = fields.BooleanField(default=False)
    date_of_acceptance = fields.DateField(blank=True, null=True)
    completion_or_last_visit = fields.DateField(blank=True, null=True)
Пример #2
0
class Fp17IncompleteTreatment(models.EpisodeSubrecord):
    _is_singleton = True

    date_of_acceptance = fields.DateField(blank=True,
                                          null=True,
                                          verbose_name="Date of acceptance")
    completion_or_last_visit = fields.DateField(
        blank=True, null=True, verbose_name="Completion or last visit")

    class Meta:
        verbose_name = "Incomplete treatment and treatment dates"
Пример #3
0
class Leg(models.Model):
    date = fields.DateField(default=now)
    name = fields.CharField(max_length=40, unique=True)
    slug = fields.SlugField(max_length=40, db_index=True, editable=False)
    start = fields.CharField(max_length=30)
    end = fields.CharField(max_length=30)
    description = fields.TextField(max_length=320, blank=True)
    duration = fields.DecimalField(decimal_places=1, max_digits=2, default=1.0)
    distanceKM = fields.IntegerField()
    morning = fields.BooleanField(default=True)
    map = models.FileField(upload_to=get_map_path, blank=True)

    class Meta:
        unique_together = ('date', 'morning')

    def __str__(self):
        return "{} - {} {}: {}km from {} to {}".format(
            self.name, self.date, "am" if self.morning else "pm",
            self.distanceKM, self.start, self.end)

    @classmethod
    def Totals(cls):
        return cls.objects.aggregate(distance=Sum('distanceKM'),
                                     days=Count('date', distinct=True))

    prepopulated_fields = {"slug": ("title", )}
Пример #4
0
class OrthodonticTreatment(models.EpisodeSubrecord):
    _is_singleton = True

    patient_failed_to_return = fields.BooleanField(
        default=False,
        verbose_name="Treatment abandoned - patient failed to return")
    patient_requested_stop = fields.BooleanField(
        default=False, verbose_name="Treatment abandoned - patient requested")
    treatment_discontinued = fields.BooleanField(default=False, )
    treatment_completed = fields.BooleanField(default=False)
    par_scores_calculated = fields.BooleanField(default=False,
                                                verbose_name="PAR ")
    iotn = fields.IntegerField(blank=True, null=True, verbose_name="IOTN")
    # Index of Orthodontic Treatment Need
    # Only accepts 1-5
    iotn = fields.IntegerField(blank=True, null=True, verbose_name="IOTN")
    # Only accepts 1-10
    aesthetic_component = fields.IntegerField(blank=True, null=True)
    iotn_not_applicable = fields.BooleanField(
        default=False, verbose_name="IOTN not applicable")
    repair = fields.BooleanField(
        default=False,
        verbose_name="Repair to appliance fitted by another dentist")
    replacement = fields.BooleanField(
        default=False, verbose_name="Regulation 11 replacement appliance")
    date_of_completion = fields.DateField(
        blank=True, null=True, verbose_name="Date of completion or last visit")
Пример #5
0
class ApiSitemapVersion(object):
    class Meta:
        get_latest_by = 'id'
    
    version             = fields.TextField()
    depreciation_date   = fields.DateField(blank=True, null=True)
    content             = JSONField(default="{}")
Пример #6
0
class OperationNote(models.EpisodeSubrecord):

    start_time = fields.TimeField()
    end_time = fields.TimeField()
    date = fields.DateField()

    lead_surgeon = models.ForeignKeyOrFreeText(
        StaffMember, related_name="%(class)s_lead_surgeon")
    lead_anaesthetist = models.ForeignKeyOrFreeText(
        StaffMember, related_name="%(class)s_lead_anaesthetist")

    surgeon = ManyToManyField(StaffMember, related_name="%(class)s_surgeon")
    assistant = ManyToManyField(StaffMember,
                                related_name="%(class)s_assistant")
    anaesthetist = ManyToManyField(StaffMember,
                                   related_name="%(class)s_anaesthetist")

    dvt_heparin = fields.BooleanField(default=False)
    dvt_ted_stockings = fields.BooleanField(default=False)
    dvt_pnematic = fields.BooleanField(default=False)
    dvt_aspirin = fields.BooleanField(default=False)

    antibiotics = fields.CharField(max_length=40)
    indication = fields.CharField(max_length=20)
    position = fields.CharField(max_length=20)
    incision = fields.CharField(max_length=20)
    findings = fields.TextField()
    procedure = fields.TextField()

    anaesthetic = models.ForeignKeyOrFreeText(AnaestheticType)
    cancer = models.ForeignKeyOrFreeText(CancerType)
    asa = models.ForeignKeyOrFreeText(AsaType)
    urgency = models.ForeignKeyOrFreeText(Urgency)
Пример #7
0
class Blog(models.Model):
    title = fields.CharField(max_length=100)
    date = fields.DateField()
    content = fields.TextField(default='no content for this entry')

# to show in the admin console the object from database with the title instead of object 1, object 2, ...
    def __str__(self):
        return self.title
Пример #8
0
class Mood(models.Model):
    date = fields.DateField()
    title = fields.CharField(max_length=50)
    image = models.ImageField()
    description = fields.TextField()

    def __str__(self):
        return str(self.date)
Пример #9
0
class Fp17Declaration(models.EpisodeSubrecord):
    _is_singleton = True

    necessary_care_provided = fields.BooleanField(default=False)
    necessary_care_carried_out = fields.BooleanField(default=False)

    signature = fields.CharField(max_length=255, blank=True, null=True)
    signature_date = fields.DateField(blank=True, null=True)
Пример #10
0
class OrthodonticAssessment(models.EpisodeSubrecord):
    _is_singleton = True

    assessment_and_review = fields.BooleanField(default=False)
    assess_and_refuse_treatment = fields.BooleanField(
        default=False, verbose_name="Assess & refuse treatment")
    assess_and_appliance_fitted = fields.BooleanField(
        default=False, verbose_name="Assess & appliance fitted")

    # Index of Orthodontic Treatment Need
    # Only accepts 1-5
    iotn = fields.IntegerField(blank=True, null=True, verbose_name="IOTN")
    # Only accepts 1-10
    aesthetic_component = fields.IntegerField(blank=True, null=True)
    iotn_not_applicable = fields.BooleanField(
        default=False, verbose_name="IOTN not applicable")
    date_of_referral = fields.DateField(blank=True, null=True)
    date_of_assessment = fields.DateField(blank=True, null=True)
    date_of_appliance_fitted = fields.DateField(blank=True, null=True)
Пример #11
0
class MealPlan(models.Model):
    LUNCH_CHOICES = tuple(
        # e.g. (1, "Lunch")
        (m.value, m.name.title())
        for m in  Meal
    )

    date = fields.DateField(db_index=True)
    recipe_name = fields.CharField(max_length=255)
    meal_id = fields.IntegerField(choices=LUNCH_CHOICES)
Пример #12
0
 def _resolve_output_field(self):
     if isinstance(self.value, str):
         return fields.CharField()
     if isinstance(self.value, bool):
         return fields.BooleanField()
     if isinstance(self.value, int):
         return fields.IntegerField()
     if isinstance(self.value, float):
         return fields.FloatField()
     if isinstance(self.value, datetime.datetime):
         return fields.DateTimeField()
     if isinstance(self.value, datetime.date):
         return fields.DateField()
     if isinstance(self.value, datetime.time):
         return fields.TimeField()
     if isinstance(self.value, datetime.timedelta):
         return fields.DurationField()
     if isinstance(self.value, Decimal):
         return fields.DecimalField()
     if isinstance(self.value, bytes):
         return fields.BinaryField()
     if isinstance(self.value, UUID):
         return fields.UUIDField()
Пример #13
0
 def __init__(self, lookup, lookup_type):
     super(Date, self).__init__(output_field=fields.DateField())
     self.lookup = lookup
     self.col = None
     self.lookup_type = lookup_type
Пример #14
0
 def __init__(self, col, lookup_type):
     super(Date, self).__init__(output_field=fields.DateField())
     self.col = col
     self.lookup_type = lookup_type
Пример #15
0
    def get(self, request, **kwargs):
        try:
            start_date = request.GET.get('startDate', '120d')
            start_date = parse_relative_date(start_date)
        except ValueError as e:
            raise ParseError(detail=f'Invalid start date: {start_date}')

        try:
            end_date = request.GET.get('endDate', '0d')
            end_date = parse_relative_date(end_date)
        except ValueError:
            raise ParseError(detail=f'Invalid end date: {end_date}')

        try:
            stats_period = max(int(request.GET.get('statsPeriod', '10')), 1)
        except ValueError:
            raise ParseError(detail=f'Invalid stats period: {stats_period}')

        try:
            slug = kwargs['account_slug']
            account = Account.objects.get(holders__in=[request.user],
                                          slug=slug)
        except Account.DoesNotExist:
            raise Http404

        activities = AccountActivity.objects \
            .filter(account=account) \
            .filter(date__gte=start_date) \
            .filter(date__lte=end_date)

        first_date = activities.aggregate(Min('date'))['date__min']

        period = ExpressionWrapper((F('date') - first_date) / stats_period,
                                   output_field=fields.DurationField())
        period_date = ExpressionWrapper(first_date +
                                        stats_period * F('period'),
                                        output_field=fields.DateField())
        activities = activities.annotate(period=period) \
            .order_by('period') \
            .values('period') \
            .annotate(
                period_date=period_date,
                period_balance=ArrayAgg('balance'),
                period_deposit=Sum('deposit'),
                period_withdrawl=Sum('withdrawl'),
            )

        # if there is a period of inactivity on the account, the series
        # will be missing data during those periods, so let's fill them
        activities = list(activities)
        periods = {activity['period'] for activity in activities}
        all_periods = set(range(max(periods) + 1))
        for period in sorted(all_periods - periods):
            # since we align the beginning of the activities to the
            # first activity within the defined date range, the 0th
            # period should always be defined
            assert period != 0

            previous = activities[period - 1]
            activities.insert(
                period, {
                    'period':
                    period,
                    'period_date':
                    previous['period_date'] + timedelta(days=stats_period),
                    'period_balance': [previous['period_balance'][-1]],
                    'period_deposit':
                    0.,
                    'period_withdrawl':
                    0.,
                })

        # drop the extraneous balance data, we just want the final balance
        # at the end of each period
        for activity in activities:
            activity['period_balance'] = activity['period_balance'][-1]
            activity['period_withdrawl'] = -activity['period_withdrawl']

        return Response(activities, status=status.HTTP_200_OK)
Пример #16
0
class TODOItem(models.EpisodeSubrecord):
    job       = fields.CharField(max_length=200)
    due_date  = fields.DateField(blank=True, null=True)
    details   = fields.TextField(blank=True, null=True)
    completed = fields.BooleanField(default=False)
Пример #17
0
class FirstLastTest(models.Model):
    ts = fields.DateField()
    val = fields.IntegerField()
Пример #18
0
class DischargeDue(models.EpisodeSubrecord):
    _icon = 'fa fa-calendar'

    date = fields.DateField(blank=True, null=True)