Ejemplo n.º 1
0
        public void Test_CalcCountDownForMedNoTimes_Is99()
        {
            var time = new DateTime(2016, 2, 25, 8, 0, 0);

            var medWithDoses = new MedicineWithDoses(new Medicine(), () => time);
            var count        = CountdownHelper.CalcCountDownValue(medWithDoses, () => time);

            Assert.AreEqual(99, count);
        }
Ejemplo n.º 2
0
        public void Test_CalcCountDownForMed_Pref_LunchDinner_AfterDinner_IsCorrect()
        {
            var time = new DateTime(2016, 2, 25, 22, 0, 0);

            var medWithDoses = new MedicineWithDoses(new Medicine(), () => time);

            medWithDoses.AddDoseTimes(new[] { TimeOfDay.Lunch, TimeOfDay.Dinner });
            var count = CountdownHelper.CalcCountDownValue(medWithDoses, () => time);

            Assert.AreEqual(94, count);
        }
Ejemplo n.º 3
0
        public void Test_CalcCountDownForMed_Pref_Lunch_IsCorrect()
        {
            var time = new DateTime(2016, 2, 25, 8, 0, 0);

            var medWithDoses = new MedicineWithDoses(new Medicine(), () => time);

            medWithDoses.AddDoseTime(TimeOfDay.Lunch);
            var count = CountdownHelper.CalcCountDownValue(medWithDoses, () => time);

            Assert.AreEqual(25, count);
        }
Ejemplo n.º 4
0
        public async Task <IEnumerable <MedicineWithDoses> > GetMedicinesWithDosesAsync(int patientId, int count)
        {
            var medicinesWithDoses = new List <MedicineWithDoses>();
            var medicines          = await _MedicinesRepository.GetMedicinesAsync(Request.GetTenant(), patientId, count * 3);

            var groupped = medicines.GroupBy(am => am.MedicineId);

            foreach (var mgroup in groupped)
            {
                var mwd = new MedicineWithDoses(mgroup.First());
                mwd.AddDoseTimes(mgroup.Select(am => am.TimeOfDay));
                medicinesWithDoses.Add(mwd);
            }

            return(medicinesWithDoses);
        }
Ejemplo n.º 5
0
        public static int CalcCountDownValue(MedicineWithDoses medicine)
        {
            if (medicine == null)
            {
                return(0);
            }

            var previousDoseTime = medicine.PreviousDoseTime;
            var nextDoseTime     = medicine.NextDoseTime;
            var totalTime        = TimeOfDayHelper.GetTimeBetween(previousDoseTime, nextDoseTime);
            var remainingTime    = TimeOfDayHelper.GetTimeOffsetForNextPill(medicine.NextDoseTime);
            var countDown        = ((int)remainingTime.TotalMinutes * 100) /
                                   (int)totalTime.TotalMinutes;

            return(countDown > CountDownMaxValue ? CountDownMaxValue : countDown);
        }
Ejemplo n.º 6
0
 void UpdateCurrentMedicine(MedicineWithDoses medicine)
 {
     CurrentMedicine       = medicine;
     FirstMedicineSelected = _firstMedicine == medicine;
 }
Ejemplo n.º 7
0
 public static int CalcCountDownValue(MedicineWithDoses medicine)
 {
     return(CalcCountDownValue(medicine, _dateTimeProvider));
 }