Example #1
0
def calc_injection(request):
    """Calculates injection dosages based on weight.

    GET parameters:
        weight: weight in lbs

    Contxt:
        calculated dose rounded to 3 decimal places

    """

    meds = Injection.objects.all()
    rx = dict()

    # default displayed dosage of 0.0 mLs
    for med in meds:
        rx[med] = 0.0

    rx_ordered = OrderedDict(sorted(rx.items(), key=lambda t: t[0].name))

    if request.method == 'GET' and request.is_ajax():
        form = CalcInjForm(data=request.GET)

        if form.is_valid():
            weight = float(request.GET['weight'])

            for med in meds:
                rx_ordered[med] = round(med.factor * weight, 3)

    return render(request, 'calc/injection.html', {'rx': rx_ordered,
                                                   'form': CalcInjForm(),
                                                   'navbar': 'calc'})
Example #2
0
 def test_form_rejects_non_numeric_input(self):
     form = CalcInjForm(data={'weight': 'a string'})
     self.assertFalse(form.is_valid())
     self.assertEqual(form.errors['weight'], [INVALID_INPUT_ERROR])
Example #3
0
 def test_form_rejects_empty_string(self):
     form = CalcInjForm(data={'weight': ''})
     self.assertFalse(form.is_valid())