private SoftDeleteObservableCollection <BloodPressureDto> GetBloodPressures(List <ResultDto> vitalSignResults, ref DateTime activityStartDate)
        {
            var bloodPressureDtos = new SoftDeleteObservableCollection <BloodPressureDto> ();

            var systolicBPResults  = vitalSignResults.FindAll(vsr => vsr.ResultType.DisplayName == SystolicBP);
            var diastolicBPResults = vitalSignResults.FindAll(vsr => vsr.ResultType.DisplayName == DiastolicBP);

            var minCount = systolicBPResults.Count > diastolicBPResults.Count ? diastolicBPResults.Count : systolicBPResults.Count;

            if (minCount >= 1)
            {
                for (int i = 1; i <= minCount; i++)
                {
                    SetActivityDate(systolicBPResults[i - 1], ref activityStartDate);
                    var bloodPressureDto = CreateBloodPressureDto(systolicBPResults[i - 1], diastolicBPResults[i - 1]);
                    if (bloodPressureDto != null)
                    {
                        bloodPressureDtos.Add(bloodPressureDto);
                    }
                }
            }

            if (systolicBPResults.Count > minCount)
            {
                for (int i = minCount + 1; i <= systolicBPResults.Count; i++)
                {
                    SetActivityDate(systolicBPResults[i - 1], ref activityStartDate);
                    var bloodPressureDto = CreateBloodPressureDto(systolicBPResults[i - 1], null);
                    if (bloodPressureDto != null)
                    {
                        bloodPressureDtos.Add(bloodPressureDto);
                    }
                }
            }

            if (diastolicBPResults.Count > minCount)
            {
                for (int i = minCount + 1; i <= diastolicBPResults.Count; i++)
                {
                    SetActivityDate(diastolicBPResults[i - 1], ref activityStartDate);
                    var bloodPressureDto = CreateBloodPressureDto(null, diastolicBPResults[i - 1]);
                    if (bloodPressureDto != null)
                    {
                        bloodPressureDtos.Add(bloodPressureDto);
                    }
                }
            }

            return(bloodPressureDtos);
        }
        private SoftDeleteObservableCollection <HeartRateDto> GetHeartRates(List <ResultDto> vitalSignResults, ref DateTime activityStartDate)
        {
            var heartRateDtos = new SoftDeleteObservableCollection <HeartRateDto>();

            var heartRateResults = vitalSignResults.FindAll(vsr => vsr.ResultType.DisplayName == HeartRate);

            foreach (var heartRateResult in heartRateResults)
            {
                SetActivityDate(heartRateResult, ref activityStartDate);

                if (heartRateResult.ResultValue != null && heartRateResult.ResultValue.PhysicalQuantity != null && !string.IsNullOrEmpty(heartRateResult.ResultValue.PhysicalQuantity.Value))
                {
                    var dto = new HeartRateDto()
                    {
                        BeatsPerMinuteMeasure = GetNullableIntValue(heartRateResult.ResultValue.PhysicalQuantity.Value)
                    };
                    heartRateDtos.Add(dto);
                }
            }

            return(heartRateDtos);
        }