private void Generator() { if (_Weight != 0) { int User_age = DateTime.Now.Year - ((Users)BindingContext).birthdate.Year; Double length = ((Users)BindingContext).length; //Double mass = Convert.ToDouble(WeightEntry.Text); BMIs BMI = new BMIs(); BMI.time = DateTime.UtcNow; BMI.UserID = ((Users)BindingContext).ID; BMI.BMI = _Weight / ((length / 100) * (length / 100)); BMI.weight = _Weight; if (((Users)BindingContext).Gender == 1) // Gender = 1 means User Gender is Man { BMI.BMR = (_Weight * 13.7) - (length * 5) + (User_age * 8.6) + 66; } else { BMI.BMR = (_Weight * 9.7) - (length * 1.7) + (User_age * 4.7) + 655; } //Res.Text += (" BMR =" + BMR); App.Database.AddBMI(BMI); _BMI = BMI; ShowBMIResult(); } }
public string AddBMI(BMIs BMI) { try { _database.Insert(BMI); return("Sucessfully Added"); } catch (Exception e) { return($"Error :{e.Message}"); } }
private Double GetCalorieBMR() { List <BMIs> _BMIs = App.Database.GetBMI(App.UserID); if (_BMIs.Count > 0) { BMIs _BMI = _BMIs[_BMIs.Count - 1]; return(_BMI.BMR * _BetaMultiplier); } else { return(0);// dont have BMR } }
//private int User_age=0; //private Double length=0; //private Double mass =0; //public float BMI; //public float BMR; //public static readonly BindableProperty UserProperty = BindableProperty.Create<Users, user>(p => p.user, new Users()); //public Users user //{ // get => (Users)GetValue(UserProperty); // set => SetValue(UserProperty, value); //} //Users user; //public int age //{ // //get { return (int)GetValue(length); } //} public BMIPage() { InitializeComponent(); _BMIs = App.Database.GetBMI(App.UserID); if (_BMIs.Count > 0) { _BMI = _BMIs[_BMIs.Count - 1]; ShowBMIResult(); } else { ShowBMINoResult(); } }
public void SetBMIClass(DataTable bmiData) { //get the last bmi observation if (BMIs.Count() > 0 && (Sex.ToLower() == "male" || Sex.ToLower() == "female")) { //determine the age at the last observation var lastObs = BMIs.Last(); double ageInMonths = (lastObs.Date.Subtract(Date_Of_Birth).TotalDays / 365.25) * 12; //if over 20 use standard bmi if (ageInMonths > 20 * 12) { if (lastObs.Measurement < (decimal)18.5) { BMIClass = BMIClassification.Underweight; } else if (lastObs.Measurement < (decimal)25.0) { BMIClass = BMIClassification.Normal; } else if (lastObs.Measurement < (decimal)25.0) { BMIClass = BMIClassification.Overweight; } else { BMIClass = BMIClassification.Obese; } } else if (ageInMonths > 24) { //otherwise use the childhood chart //round the age in months to the nearest .5 ageInMonths = Math.Round(ageInMonths) + .5; //select the data rows that are relevant var results = from myRow in bmiData.AsEnumerable() where myRow.Field <string>("age_in_months") == ageInMonths.ToString() && Sex.ToLower() == myRow.Field <string>("gender") select myRow; //if var underweight = from row in results where row.Field <string>("bmi_percentile") == "0.5" select row; var normal = from row in results where row.Field <string>("bmi_percentile") == "0.85" select row; var overweight = from row in results where row.Field <string>("bmi_percentile") == "0.95" select row; if (lastObs.Measurement < Decimal.Parse(underweight.First().Field <string>("bmi"))) { BMIClass = BMIClassification.Underweight; } else if (lastObs.Measurement < Decimal.Parse(normal.First().Field <string>("bmi"))) { BMIClass = BMIClassification.Normal; } else if (lastObs.Measurement < Decimal.Parse(overweight.First().Field <string>("bmi"))) { BMIClass = BMIClassification.Overweight; } else { BMIClass = BMIClassification.Obese; } } else { BMIClass = BMIClassification.Normal; } } else { //if there are no observations just set it to normal BMIClass = BMIClassification.Normal; } }
public Patient(HL7.Patient patient) { Random rand = new Random(); ID = patient.Id; FirstName = patient.Name.ElementAt(0).Given.ElementAt(0); LastName = patient.Name.ElementAt(0).Family.ElementAt(0); MiddleName = ""; Sex = patient.GenderElement.Value.ToString(); Ethnicity = ethnicities[rand.Next(0, ethnicities.Length)]; Insurance_Type = "Unknown"; Date_Of_Birth = Convert.ToDateTime(patient.BirthDate); Add_Address(patient.Address.ElementAt(0).Line.ElementAt(0), patient.Address.ElementAt(0).City, patient.Address.ElementAt(0).State, patient.Address.ElementAt(0).PostalCode, patient.Address.ElementAt(0).District); //if there isn't a saved practitioner generate and add it to the list, otherwise uses the provided one if (patient.CareProvider.Count == 0) { PractitionerIDs.Add(rand.Next(1, 5)); } else { foreach (var practitionerRef in patient.CareProvider) { PractitionerIDs.Add(Int32.Parse(practitionerRef.Reference.Replace("Practitioner/", ""))); } } //default hypertension Has_HyperTension = false; HypertensionClass = HypertensionClassification.Normal; //default bmi BMIClass = BMIClassification.Normal; foreach (Data_Holder dh in Patient_Data.PatientInfo(ID)) { switch (dh.Type) { case "BMI": BMIs.Add(new BMI(dh.Date, dh.Measurement)); break; case "WEIGHT": Weights.Add(new Weight(dh.Date, dh.Measurement)); break; case "HEIGHT": Heights.Add(new Height(dh.Date, dh.Measurement)); break; case "HEMOGLOBIN": Hemoglobins.Add(new Hemoglobin(dh.Date, dh.Measurement)); HemoglobinClass = (dh.Measurement < (decimal)0.057) ? HemoglobinClassification.Normal : HemoglobinClassification.High; break; case "HYPERTENSION": Has_HyperTension = true; HypertensionClass = HypertensionClassification.Diagnosed; break; } } }