public async Task <IHttpActionResult> GetUserWeightVitals(HealthGoalModel healthGoalModel) { try { if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { var userVitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1 && u.Name == "Weight") .OrderByDescending(u => u.ResultDateTime) .Take(5) .ToListAsync(); return(Ok(userVitals)); } else { var userVitals = await db.tUserVitals .OrderBy(u => u.ResultDateTime) .Where(u => u.UserID == healthGoalModel.UserId && u.ResultDateTime >= healthGoalModel.StartDate && u.ResultDateTime <= healthGoalModel.EndDate && u.SystemStatusID == 1 && u.Name == "Weight") .ToListAsync(); return(Ok(userVitals)); } } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserExerciseVitals(HealthGoalModel healthGoalModel) { try { if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { var activities = await db.tUserActivities .OrderByDescending(u => u.StartDateTime) .Where(u => u.UserID == healthGoalModel.UserId && u.Steps != null && u.SystemStatusID == 1) .Take(5) .ToListAsync(); return(Ok(activities)); } else { var activities = await db.tUserActivities .OrderBy(u => u.StartDateTime) .Where(u => u.UserID == healthGoalModel.UserId && u.StartDateTime >= healthGoalModel.StartDate && u.StartDateTime <= healthGoalModel.EndDate && u.Steps != null && u.SystemStatusID == 1) .ToListAsync(); return(Ok(activities)); } } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserBloodPressure(HealthGoalModel healthGoalModel) { try { var idList = new string[] { "Systolic Blood Pressure", "Diastolic Blood Pressure", "Heart Rate" }; if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { var vitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1 && idList.Contains(u.Name)) .GroupBy(u => new { ResulDateTime = u.ResultDateTime }) .Select(details => new UserVitalModel { ResultDateTime = details.Key.ResulDateTime, Systolic = details.FirstOrDefault(u => (u.Name == "Systolic Blood Pressure")).Value, Diastolic = details.FirstOrDefault(u => (u.Name == "Diastolic Blood Pressure")).Value, HeartRate = details.FirstOrDefault(u => (u.Name == "Heart Rate")).Value }) .OrderByDescending(u => u.ResultDateTime) .Take(5) .ToListAsync(); return(Ok(vitals)); } else { var vitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.ResultDateTime >= healthGoalModel.StartDate && u.ResultDateTime <= healthGoalModel.EndDate && u.SystemStatusID == 1 && idList.Contains(u.Name)) .GroupBy(u => new { ResulDateTime = u.ResultDateTime }) .Select(details => new UserVitalModel { ResultDateTime = details.Key.ResulDateTime, Systolic = details.FirstOrDefault(u => (u.Name == "Systolic Blood Pressure")).Value, Diastolic = details.FirstOrDefault(u => (u.Name == "Diastolic Blood Pressure")).Value, HeartRate = details.FirstOrDefault(u => (u.Name == "Heart Rate")).Value }) .OrderBy(u => u.ResultDateTime) .ToListAsync(); return(Ok(vitals)); } } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserLast5ExerciseVitals(HealthGoalModel healthGoalModel) { var activities = await db.tUserActivities .OrderByDescending(u => u.StartDateTime) .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1) .Take(5) .ToListAsync(); return(Ok(activities)); }
public async Task <IHttpActionResult> GetUserCholesterol(HealthGoalModel healthGoalModel) { var idList = new int[] { 568, 570, 572 }; if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { var result = await db.tUserTestResults .Join(db.tUserTestResultComponents, test => test.ID, comp => comp.TestResultID, (test, comp) => new { TestResult = test, Component = comp }) .Join(db.tXrefUserTestResultComponentsCodes, tc => tc.Component.ID, compcode => compcode.UserTestResultComponentID, (tc, compcode) => new { tc.TestResult.UserID, tc.TestResult.ResultDateTime, tc.Component.Name, tc.Component.Value, compcode.CodeID, tc.TestResult.SystemStatusID }) .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1 && idList.Contains(u.CodeID)) .GroupBy(u => new { ResulDateTime = u.ResultDateTime }) .Select(g => new UserTestModel { ResultDateTime = g.Key.ResulDateTime, Hdl = g.FirstOrDefault(u => (u.CodeID == 570)).Value, Ldl = g.FirstOrDefault(u => (u.CodeID == 572)).Value, Cholesterol = g.FirstOrDefault(u => (u.CodeID == 568)).Value }) .OrderByDescending(u => u.ResultDateTime) .Take(5) .ToListAsync(); return(Ok(result)); } else { var result = await db.tUserTestResults .Join(db.tUserTestResultComponents, test => test.ID, comp => comp.TestResultID, (test, comp) => new { TestResult = test, Component = comp }) .Join(db.tXrefUserTestResultComponentsCodes, tc => tc.Component.ID, compcode => compcode.UserTestResultComponentID, (tc, compcode) => new { tc.TestResult.UserID, tc.TestResult.ResultDateTime, tc.Component.Name, tc.Component.Value, compcode.CodeID, tc.TestResult.SystemStatusID }) .Where(u => u.UserID == healthGoalModel.UserId && u.ResultDateTime >= healthGoalModel.StartDate && u.ResultDateTime <= healthGoalModel.EndDate && u.SystemStatusID == 1 && idList.Contains(u.CodeID)) .GroupBy(u => new { ResulDateTime = u.ResultDateTime }) .Select(g => new UserTestModel { ResultDateTime = g.Key.ResulDateTime, Hdl = g.FirstOrDefault(u => (u.CodeID == 570)).Value, Ldl = g.FirstOrDefault(u => (u.CodeID == 572)).Value, Cholesterol = g.FirstOrDefault(u => (u.CodeID == 568)).Value }) .OrderBy(u => u.ResultDateTime) .ToListAsync(); return(Ok(result)); } }
public async Task <IHttpActionResult> GetUserSleepVitals(HealthGoalModel healthGoalModel) { var sleeps = await db.tUserSleeps .OrderBy(u => u.StartDateTime) .Where(u => u.UserID == healthGoalModel.UserId && u.StartDateTime >= healthGoalModel.StartDate && u.StartDateTime <= healthGoalModel.EndDate && u.SystemStatusID == 1).Select(s => new UserSleepModel { StartDateTime = s.StartDateTime, TimeAsleep = s.TimeAsleep }) .ToListAsync(); return(Ok(sleeps)); }
public async Task <IHttpActionResult> GetUserCurrentBloodPressure(HealthGoalModel healthGoalModel) { try { var idList = new string[] { "Systolic Blood Pressure", "Diastolic Blood Pressure", "Heart Rate" }; List <DAL.tUserVital> vitals; if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { vitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1 && idList.Contains(u.Name)) .ToListAsync(); } else { vitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.ResultDateTime >= healthGoalModel.StartDate && u.ResultDateTime <= healthGoalModel.EndDate && u.SystemStatusID == 1 && idList.Contains(u.Name)) .ToListAsync(); } var systolic = vitals.Where(u => u.Name == "Systolic Blood Pressure" && u.Value > 0) .OrderByDescending(u => u.ResultDateTime) .FirstOrDefault(); var diastolic = vitals.Where(u => u.Name == "Diastolic Blood Pressure" && u.Value > 0) .OrderByDescending(u => u.ResultDateTime) .FirstOrDefault(); var heartRate = vitals.Where(u => u.Name == "Heart Rate" && u.Value > 0) .OrderByDescending(u => u.ResultDateTime) .FirstOrDefault(); return(Ok(new { Systolic = systolic?.Value ?? 0, Diastolic = diastolic?.Value ?? 0, HeartRate = heartRate?.Value ?? 0, ResultDateTime = diastolic?.ResultDateTime })); } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserDietVitals(HealthGoalModel healthGoalModel) { try { if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { var userModel = await db.tUserDiets .Join(db.tXrefUserDietNutrients, d => d.ID, x => x.UserDietID, (d, x) => new { d, x }) .Where(w => w.x.NutrientID == 170 && w.d.UserID == healthGoalModel.UserId && w.d.SystemStatusID == 1) .GroupBy(y => new { y.d.EnteredDateTime }) .Select(g => new UserDietModel { EnteredDateTime = g.Key.EnteredDateTime, Value = g.Sum(a => a.x.Value) }) .OrderByDescending(u => u.EnteredDateTime) .Take(5) .ToListAsync(); return(Ok(userModel)); } else { var userModel = await db.tUserDiets .Join(db.tXrefUserDietNutrients, d => d.ID, x => x.UserDietID, (d, x) => new { d, x }) .Where(w => w.x.NutrientID == 170 && w.d.UserID == healthGoalModel.UserId && w.d.EnteredDateTime >= healthGoalModel.StartDate && w.d.EnteredDateTime <= healthGoalModel.EndDate && w.d.SystemStatusID == 1) .GroupBy(y => new { y.d.EnteredDateTime }) .Select(g => new UserDietModel { EnteredDateTime = g.Key.EnteredDateTime, Value = g.Sum(a => a.x.Value) }).ToListAsync(); return(Ok(userModel)); } } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserLast5WeightVitals(HealthGoalModel healthGoalModel) { try { var userVitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1 && u.Name == "Weight") .OrderByDescending(u => u.ResultDateTime) .Take(5) .ToListAsync(); return(Ok(userVitals)); } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserBloodGlucose(HealthGoalModel healthGoalModel) { if (healthGoalModel.Last5 != null && healthGoalModel.Last5 == true) { var userModel = await db.tUserTestResultComponents.Include(u => u.tUserTestResult) .Include(u => u.tXrefUserTestResultComponentsCodes) .Where(u => u.tXrefUserTestResultComponentsCodes.Any(x => x.CodeID == 604) && u.tUserTestResult.SystemStatusID == 1 && u.SystemStatusID == 1 && u.tUserTestResult.UserID == healthGoalModel.UserId) .Select(t => new UserTestModel { ResultDateTime = t.tUserTestResult.ResultDateTime, Value = t.Value }) .OrderByDescending(u => u.ResultDateTime) .Take(5) .ToListAsync(); return(Ok(userModel)); } else { var userModel = await db.tUserTestResultComponents.Include(u => u.tUserTestResult) .Include(u => u.tXrefUserTestResultComponentsCodes) .Where(u => u.tXrefUserTestResultComponentsCodes.Any(x => x.CodeID == 604) && u.tUserTestResult.SystemStatusID == 1 && u.SystemStatusID == 1 && u.tUserTestResult.UserID == healthGoalModel.UserId && u.tUserTestResult.ResultDateTime >= healthGoalModel.StartDate && u.tUserTestResult.ResultDateTime <= healthGoalModel.EndDate) .Select(t => new UserTestModel { ResultDateTime = t.tUserTestResult.ResultDateTime, Value = t.Value }).OrderBy(o => o.ResultDateTime) .ToListAsync(); return(Ok(userModel)); } }
public async Task <IHttpActionResult> GetUserTrendActivity(HealthGoalModel healthGoalModel) { var activities = await db.tUserActivities.Include(u => u.tActivity) .Include(u => u.tUnitsOfMeasure) .Include(u => u.tUnitsOfMeasure1) .Include(u => u.tUserSourceService.tSourceService) .Where(u => u.UserID == healthGoalModel.UserId && u.StartDateTime >= healthGoalModel.StartDate && u.StartDateTime <= healthGoalModel.EndDate && u.SystemStatusID == 1).Select(u => new Models.UserData.UserAcitivityModel { ActivityID = u.ActivityID, ID = u.ID, SourceObjectID = u.SourceObjectID, UserID = u.UserID, UserSourceServiceID = u.UserSourceServiceID, Duration = u.Duration, Distance = u.Distance, DurationUOMID = u.tUnitsOfMeasure.ID, DistanceUOMID = u.tUnitsOfMeasure1.ID, DurationUOM = u.tUnitsOfMeasure.UnitOfMeasure, DistanceUOM = u.tUnitsOfMeasure1.UnitOfMeasure, Steps = u.Steps, Calories = u.Calories, LightActivityMin = u.LightActivityMin, ModerateActivityMin = u.ModerateActivityMin, VigorousActivityMin = u.VigorousActivityMin, SedentaryActivityMin = u.SedentaryActivityMin, StartDateTime = u.StartDateTime, EndDateTime = u.EndDateTime, SystemStatusID = u.SystemStatusID, CreateDateTime = u.CreateDateTime, LastUpdatedDateTime = u.LastUpdatedDateTime, UserDerivedNote = db.tUserDerivedNotes.FirstOrDefault(a => a.fkObjectID == u.ObjectID), Activity = u.tActivity.Name, Source = u.tUserSourceService.tSourceService.ServiceName }).OrderBy(u => u.StartDateTime). ToListAsync(); return(Ok(activities)); }
public async Task <IHttpActionResult> GetUserLast5DietVitals(HealthGoalModel healthGoalModel) { //db.tUserDiets // .Include(d=>d.tXrefUserDietNutrients) // .OrderBy(u => u.EnteredDateTime) // .Where(u => u.UserID == healthGoalModel.UserId && u.EnteredDateTime >= healthGoalModel.StartDate && // u.EnteredDateTime <= healthGoalModel.EndDate).ToList(); var userModel = await db.tUserDiets .Join(db.tXrefUserDietNutrients, d => d.ID, x => x.UserDietID, (d, x) => new { d, x }) .Where(w => w.x.NutrientID == 170 && w.d.UserID == healthGoalModel.UserId && w.d.SystemStatusID == 1) .GroupBy(y => new { y.d.EnteredDateTime }) .Select(g => new UserDietModel { EnteredDateTime = g.Key.EnteredDateTime, Value = g.Sum(a => a.x.Value) }) .OrderByDescending(u => u.EnteredDateTime) .Take(5) .ToListAsync(); return(Ok(userModel)); }
public async Task <IHttpActionResult> GetUserTrendCholesterol(HealthGoalModel healthGoalModel) { try { var idList = new int[] { 568, 570, 572 }; var result = await db.tUserTestResultComponents.Include(u => u.tUserTestResult) .Include(u => u.tUnitsOfMeasure) .Include(u => u.tXrefUserTestResultComponentsCodes) .Include(u => u.tUserTestResult.tSourceOrganization.tOrganization) .Include(u => u.tUserTestResult.tUserSourceService.tSourceService) .Include(u => u.tUserTestResult.tTestResultStatus) .Where(u => u.tXrefUserTestResultComponentsCodes.Any(x => idList.Contains(x.CodeID)) && u.tUserTestResult.SystemStatusID == 1 && u.SystemStatusID == 1 && u.tUserTestResult.UserID == healthGoalModel.UserId && u.tUserTestResult.ResultDateTime >= healthGoalModel.StartDate && u.tUserTestResult.ResultDateTime <= healthGoalModel.EndDate) .Select(t => new { t.tUserTestResult.UserID, t.tUserTestResult.ResultDateTime, TestResultID = t.tUserTestResult.ID, tSourceOrganization = t.tUserTestResult.tSourceOrganization.tOrganization, t.tUserTestResult.tTestResultStatus, tUserSourceService = t.tUserTestResult.tUserSourceService.tSourceService, t.Name, t.ObjectID, t.tUserTestResult.SourceObjectID, t.tUserTestResult.SourceOrganizationID, t.tUserTestResult.StatusID, t.tUserTestResult.UserSourceServiceID, t.Value, t.UOMID, t.Comments, t.HighValue, t.LowValue, t.RefRange, t.tUserTestResult.SystemStatusID, t.tUnitsOfMeasure.UnitOfMeasure, TestResultComponentID = t.ID, Count = db.tUserTestResultComponents.Where(u => u.TestResultID == t.TestResultID).Count(), Note = db.tUserDerivedNotes.FirstOrDefault(a => a.fkObjectID == t.ObjectID), CodeID = db.tXrefUserTestResultComponentsCodes.FirstOrDefault(c => c.UserTestResultComponentID == t.ID).CodeID }).OrderBy(u => u.ResultDateTime) .ToListAsync(); var retVal = new List <UserBloodGlucose>(); foreach (var ts in result) { var glucoitem = new UserBloodGlucose { NoteID = ts.Note?.ID ?? 0, TestResultID = ts.TestResultID, TestResultComponentID = ts.TestResultComponentID, Note = ts.Note?.Note ?? "", ResultDateTime = ts.ResultDateTime, Status = ts.tTestResultStatus.Status, Source = ts.SourceOrganizationID != null ? ts.tSourceOrganization.Name : ts.tUserSourceService.ServiceName, UOMID = ts.UOMID, Value = ts.Value, Comments = ts.Comments, UserID = ts.UserID, SourceObjectID = ts.SourceObjectID, SourceOrganizationID = ts.SourceOrganizationID, StatusID = ts.StatusID, UserSourceServiceID = ts.UserSourceServiceID, SystemStatusID = ts.SystemStatusID, UnitOfMeasure = ts.UnitOfMeasure, Count = ts.Count, HighValue = ts.HighValue, LowValue = ts.LowValue, RefRange = ts.RefRange , CodeID = ts.CodeID, Name = ts.Name }; retVal.Add(glucoitem); } return(Ok(retVal)); } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserTrendWeight(HealthGoalModel healthGoalModel) { try { var result = await db.tUserVitals .Include(u => u.tUnitsOfMeasure) .Include(u => u.tSourceOrganization.tOrganization) .Include(u => u.tUserSourceService.tSourceService) .Where(u => u.SystemStatusID == 1 && u.UserID == healthGoalModel.UserId && u.ResultDateTime >= healthGoalModel.StartDate && u.ResultDateTime <= healthGoalModel.EndDate && u.Name == "Weight") .Select(t => new { t.UserID, t.ResultDateTime, t.ID, tSourceOrganization = t.tSourceOrganization.tOrganization, tUserSourceService = t.tUserSourceService.tSourceService, t.Name, t.ObjectID, t.SourceObjectID, t.SourceOrganizationID, t.UserSourceServiceID, t.Value, t.UOMID, t.SystemStatusID, t.tUnitsOfMeasure.UnitOfMeasure, Note = db.tUserDerivedNotes.FirstOrDefault(a => a.fkObjectID == t.ObjectID) }).OrderBy(u => u.ResultDateTime) .ToListAsync(); var retVal = new List <UserVital>(); foreach (var ts in result) { var bpitem = new UserVital { NoteID = ts.Note?.ID ?? 0, ID = ts.ID, Note = ts.Note?.Note ?? "", ResultDateTime = ts.ResultDateTime, Source = ts.SourceOrganizationID != null ? ts.tSourceOrganization.Name : ts.tUserSourceService.ServiceName, UOMID = ts.UOMID, Value = ts.Value, UserID = ts.UserID, SourceObjectID = ts.SourceObjectID, SourceOrganizationID = ts.SourceOrganizationID, UserSourceServiceID = ts.UserSourceServiceID, SystemStatusID = ts.SystemStatusID, UnitOfMeasure = ts.UnitOfMeasure, Name = ts.Name }; retVal.Add(bpitem); } return(Ok(retVal)); } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserBodyComposition(HealthGoalModel healthGoalModel) { try { var idList = new string[] { "Weight", "Height" }; var femaleGender = new string[] { "Female", "Female-to-Male (FTM)" }; var userVitals = await db.tUserVitals .Where(u => u.UserID == healthGoalModel.UserId && u.SystemStatusID == 1 && idList.Contains(u.Name)) .ToListAsync(); var user = await dbUsers.tUsers.Include(u => u.tGender).Where(u => u.ID == healthGoalModel.UserId).FirstOrDefaultAsync(); int genderMode; if (user.tGender != null) { genderMode = femaleGender.Contains(user.tGender.Gender) ? 0 : 1; } else { genderMode = 1; } var weightDetails = userVitals.Where(u => u.Name == "Weight" && u.Value > 0).OrderByDescending(u => u.ResultDateTime).FirstOrDefault(); double weight = 0, height = 0, bmi = 0, adultBodyFatPercent = 0, bodyFat = 0, leanTissue = 0; if (weightDetails != null) { switch (weightDetails.UOMID) { case 128: //kg weight = Convert.ToDouble(weightDetails.Value) * 2.20462; break; case 139: //lbs weight = Convert.ToDouble(weightDetails.Value); break; } } var heightDetails = userVitals.Where(u => u.Name == "Height" && u.Value > 0).OrderByDescending(u => u.ResultDateTime).FirstOrDefault(); if (heightDetails != null) { switch (heightDetails.UOMID) { case 251: //mm height = (Convert.ToDouble(heightDetails.Value) / 25.4); break; case 50: //cm height = (Convert.ToDouble(heightDetails.Value) / 2.54); break; case 109: //in height = Convert.ToDouble(heightDetails.Value); break; default: switch (genderMode) { case 0: height = 62; break; case 1: height = 66; break; } break; } } else { switch (genderMode) { case 0: height = 62; break; case 1: height = 66; break; } } int iAge = 45; if (user.DOB != null) { iAge = (DateTime.Now.Year - user.DOB.Value.Year); } if (weight > 0 && height > 0) { bmi = Math.Round((weight / (height * height)) * 703, 2); adultBodyFatPercent = Math.Round((1.2 * bmi) + (0.23 * iAge) - (10.8 * genderMode) - 5.4, 2); bodyFat = Math.Round(((adultBodyFatPercent / 100) * weight), 2); leanTissue = Math.Round(weight - ((adultBodyFatPercent / 100) * weight), 2); } var lstBodyComposition = new List <UserBodyComposition> { new UserBodyComposition { Source = "BodyFat", Value = bodyFat, ResultDateTime = weightDetails?.ResultDateTime.Date }, new UserBodyComposition { Source = "LeanTissue", Value = leanTissue, ResultDateTime = weightDetails?.ResultDateTime.Date } }; return(Ok(lstBodyComposition)); } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserTrendDiet(HealthGoalModel healthGoalModel) { try { var result = await db.tUserDiets .Include(u => u.tDietCategory) .Include(u => u.tUnitsOfMeasure) .Include(u => u.tUserSourceService.tSourceService) .Where(u => u.SystemStatusID == 1 && u.UserID == healthGoalModel.UserId && u.EnteredDateTime >= healthGoalModel.StartDate && u.EnteredDateTime <= healthGoalModel.EndDate) .Select(t => new { t.UserID, t.EnteredDateTime, t.ID, tUserSourceService = t.tUserSourceService.tSourceService, t.Name, t.ObjectID, t.SourceObjectID, t.UserSourceServiceID, t.Servings, t.ServingUOMID, t.SystemStatusID, t.tUnitsOfMeasure.UnitOfMeasure, t.DietCategoryID, Category = t.tDietCategory.Name, t.CreateDateTime, Note = db.tUserDerivedNotes.FirstOrDefault(a => a.fkObjectID == t.ObjectID) }).OrderBy(u => u.EnteredDateTime) .ToListAsync(); var retVal = new List <Models.UserData.UserDiet>(); foreach (var ts in result) { var uditem = new Models.UserData.UserDiet { NoteID = ts.Note?.ID ?? 0, ID = ts.ID, Note = ts.Note?.Note ?? "", EnteredDateTime = ts.EnteredDateTime, Source = ts.tUserSourceService != null ? ts.tUserSourceService.ServiceName : "", ServingUOMID = ts.ServingUOMID, Servings = ts.Servings, UserID = ts.UserID, SourceObjectID = ts.SourceObjectID, UserSourceServiceID = ts.UserSourceServiceID, SystemStatusID = ts.SystemStatusID, UnitOfMeasure = ts.UnitOfMeasure, Name = ts.Name, DietCategoryID = ts.DietCategoryID, Category = ts.Category, CreateDateTime = ts.CreateDateTime }; retVal.Add(uditem); } return(Ok(retVal)); } catch (Exception ex) { throw; } }
public async Task <IHttpActionResult> GetUserTrendBloodGlucose(HealthGoalModel healthGoalModel) { try { var result = await db.tUserTestResultComponents.Include(u => u.tUserTestResult) .Include(u => u.tUnitsOfMeasure) .Include(u => u.tXrefUserTestResultComponentsCodes) .Include(u => u.tUserTestResult.tSourceOrganization.tOrganization) .Include(u => u.tUserTestResult.tUserSourceService.tSourceService) .Include(u => u.tUserTestResult.tTestResultStatus) .Where(u => u.tXrefUserTestResultComponentsCodes.Any(x => x.CodeID == 604) && u.tUserTestResult.SystemStatusID == 1 && u.SystemStatusID == 1 && u.tUserTestResult.UserID == healthGoalModel.UserId && u.tUserTestResult.ResultDateTime >= healthGoalModel.StartDate && u.tUserTestResult.ResultDateTime <= healthGoalModel.EndDate) .Select(t => new { t.tUserTestResult.UserID, t.tUserTestResult.ResultDateTime, TestResultID = t.tUserTestResult.ID, tSourceOrganization = t.tUserTestResult.tSourceOrganization.tOrganization, t.tUserTestResult.tTestResultStatus, tUserSourceService = t.tUserTestResult.tUserSourceService.tSourceService, t.Name, t.ObjectID, t.tUserTestResult.SourceObjectID, t.tUserTestResult.SourceOrganizationID, t.tUserTestResult.StatusID, t.tUserTestResult.UserSourceServiceID, t.Value, t.UOMID, t.Comments, t.tUserTestResult.SystemStatusID, t.tUnitsOfMeasure.UnitOfMeasure, TestResultComponentID = t.ID, Count = db.tUserTestResultComponents.Where(u => u.TestResultID == t.TestResultID).Count(), Note = db.tUserDerivedNotes.FirstOrDefault(a => a.fkObjectID == t.ObjectID) }).OrderBy(u => u.ResultDateTime) .ToListAsync(); // db.tUserTestResults //.Include(u => u.tSourceOrganization.tOrganization) //.Include(u => u.tUserSourceService.tSourceService) //.Include(u => u.tTestResultStatus) //.Include(u => u.tUserTestResultComponents) //.Include(u => u.tXrefUserTestResultsCodes) //.Where(u => u.tXrefUserTestResultsCodes.Any(x => x.CodeID == 604)) //.SelectMany(u => u.tUserTestResultComponents.SelectMany(y=> y.tXrefUserTestResultComponentsCodes).Select(t => new //{ // u.UserID, // u.ResultDateTime, // TestResultID = u.ID, // tSourceOrganization= u.tSourceOrganization.tOrganization, // u.tTestResultStatus, // tUserSourceService = u.tUserSourceService.tSourceService, // u.Name, // u.ObjectID, // u.SourceObjectID, // u.SourceOrganizationID, // u.StatusID, // u.UserSourceServiceID, // t.tUserTestResultComponent.Value, // t.tUserTestResultComponent.UOMID, // t.tUserTestResultComponent.Comments, // u.SystemStatusID, // t.tUserTestResultComponent.tUnitsOfMeasure.UnitOfMeasure, // TestResultComponentID = t.tUserTestResultComponent.ID, //})) //.ToListAsync(); var retVal = new List <UserBloodGlucose>(); foreach (var ts in result) { var glucoitem = new UserBloodGlucose { NoteID = ts.Note?.ID ?? 0, TestResultID = ts.TestResultID, TestResultComponentID = ts.TestResultComponentID, Note = ts.Note?.Note ?? "", ResultDateTime = ts.ResultDateTime, Status = ts.tTestResultStatus.Status, Source = ts.SourceOrganizationID != null ? ts.tSourceOrganization.Name : ts.tUserSourceService.ServiceName, UOMID = ts.UOMID, Value = ts.Value, Comments = ts.Comments, UserID = ts.UserID, SourceObjectID = ts.SourceObjectID, SourceOrganizationID = ts.SourceOrganizationID, StatusID = ts.StatusID, UserSourceServiceID = ts.UserSourceServiceID, SystemStatusID = ts.SystemStatusID, UnitOfMeasure = ts.UnitOfMeasure, Count = ts.Count }; retVal.Add(glucoitem); } return(Ok(retVal)); } catch (Exception ex) { throw; } }