Exemple #1
0
 def test_form_rejects_empty_string(self):
     form = CRIMetoclopramideForm(data={'weight': '',
                                        'rate': '',
                                        'volume': '',
                                        'infusion': '',
                                        'inc_volume': 100,
                                        'inc_infusion': 1})
     self.assertFalse(form.is_valid())
Exemple #2
0
 def test_increase_volume_and_infusion_fields_are_optional(self):
     form = CRIMetoclopramideForm(data={'weight': 4.0,
                                        'rate': 10,
                                        'volume': 100,
                                        'infusion': 4,
                                        'inc_volume': '',
                                        'inc_infusion': ''})
     self.assertTrue(form.is_valid())
Exemple #3
0
 def test_form_rejects_non_numeric_input(self):
     form = CRIMetoclopramideForm(data={'weight': 'wait',
                                        'rate': 'eight',
                                        'volume': 'volume',
                                        'infusion': 'fusion',
                                        'inc_volume': 'volume',
                                        'inc_infusion': 'fusion'})
     self.assertFalse(form.is_valid())
Exemple #4
0
def calc_cri_metoclopramide(request):
    """Calculates CRI dosages for metoclopramide

    GET parameters:
        weight: weight in kg
        rate: current rate
        volume: current iv volume in mLs
        infusion: target infusion rate

    Context:
        rx: calculated cri dosages rounded to 3 decimal places

    """
    form = CRIMetoclopramideForm()
    rx = dict()

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

        if form.is_valid():
            weight = float(request.GET['weight'])
            rate = float(request.GET['rate'])
            volume = float(request.GET['volume'])
            infusion = float(request.GET['infusion'])
            dose = (weight * infusion / 5)/(rate * 24) * volume

            rx = {'maint': round((weight * 2.2 * 30)/24, 3),
                  'maint_plus': round((weight * 30 + 70)/24, 3),
                  'dose': round(dose, 3),
                  'concentration': round(dose * 5 / volume, 3)}

            if request.GET['inc_infusion'] and request.GET['inc_volume']:
                inc_volume = float(request.GET['inc_volume'])
                inc_infusion = float(request.GET['inc_infusion'])
                dose_inc_infusion = inc_infusion + infusion

                rx['inc_infusion'] = round(dose_inc_infusion, 3)
                rx['inc_dose'] = round(((dose_inc_infusion * weight / (rate * 24)) - (dose * 5 / volume)) * inc_volume / 5, 3)
                rx['inc_rate'] = round((dose_inc_infusion * weight)/((dose * 5)/volume)/24, 3)

    return render(request, 'calc/cri_metoclopramide.html', {'navbar': 'calc',
                                                            'form': form,
                                                            'rx': rx})