private async Task <int> UpdateDetails() { double height = ((VisitHeightFeet.SelectedIndex + 1) * 12 + VisitHeightInch.SelectedIndex) * 0.0254; int weight = Int32.Parse(VisitWeight.Text.ToString()); string DateVisited = VisitYearComboBox.Items[VisitYearComboBox.SelectedIndex].ToString() + "-" + VisitMonthComboBox.Items[VisitMonthComboBox.SelectedIndex].ToString() + "-" + VisitDayComboBox.Items[VisitDayComboBox.SelectedIndex].ToString(); double bmi = ExtraModules.CalculateBMI(VisitHeightFeet.SelectedIndex + 1, VisitHeightInch.SelectedIndex, weight); try { string updateQuery = "UPDATE MedicalDetails SET TimeStamp = @ts, BloodGlucose = @bg , SystolicBP = @sbp , DiastolicBP = @dbp , DiseaseFound = @disease , Height = @height , Weight = @weight , Symptoms = @symptoms , BMI = @bmi WHERE PID = @pid AND DateVisited = @dv"; Statement statement = await this.database.PrepareStatementAsync(updateQuery); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@ts", DateTime.Now.ToString(ExtraModules.datePatt)); statement.BindTextParameterWithName("@dv", DateVisited); if (!VisitBloodGlucose.Text.ToString().Equals("")) { statement.BindIntParameterWithName("@bg", Int32.Parse(VisitBloodGlucose.Text.ToString())); } else { statement.BindIntParameterWithName("@bg", 0); } if (!VisitDiastolicBP.Text.ToString().Equals("")) { statement.BindIntParameterWithName("@dbp", Int32.Parse(VisitDiastolicBP.Text.ToString())); } else { statement.BindIntParameterWithName("@dbp", 0); } if (!VisitSystolicBP.Text.ToString().Equals("")) { statement.BindIntParameterWithName("@sbp", Int32.Parse(VisitSystolicBP.Text.ToString())); } else { statement.BindIntParameterWithName("@sbp", 0); } statement.BindTextParameterWithName("@disease", ExtraModules.removesemicolon(VisitDiseasesDiagnosed.Text.ToString())); statement.BindDoubleParameterWithName("@height", height); statement.BindIntParameterWithName("@weight", weight); statement.BindTextParameterWithName("@symptoms", ExtraModules.removesemicolon(ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringNewLine(VisitSymptoms.Text.ToString())))); statement.BindDoubleParameterWithName("@bmi", bmi); await statement.StepAsync(); } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_DETAILS---MEDIC_DETAILS" + "\n" + ex.Message + "\n" + result.ToString()); } //statement.Reset(); //string insertBMI = "UPDATE MedicalDetailsBMI SET BMI = @bmi WHERE Height = @height AND Weight = @weight"; //statement = await this.database.PrepareStatementAsync(insertBMI); //statement.BindDoubleParameterWithName("@height", height); //statement.BindIntParameterWithName("@weight", weight); //statement.BindDoubleParameterWithName("@bmi", bmi); //await statement.StepAsync(); try { string deleteMedicine = "DELETE FROM MedicalDetailsMedicine WHERE PID = @pid AND DateVisited = @dv"; Statement statement = await this.database.PrepareStatementAsync(deleteMedicine); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@dv", DateVisited); await statement.StepAsync(); } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_DETAILS---MEDIC_DETAILS_DEL" + "\n" + ex.Message + "\n" + result.ToString()); } try { string deleteVaccine = "DELETE FROM MedicalDetailsVaccine WHERE PID = @pid AND DateVisited = @dv"; Statement statement = await this.database.PrepareStatementAsync(deleteVaccine); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@dv", DateVisited); await statement.StepAsync(); } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_DETAILS---MEDIC_DETAILS_VACCINE_DEL" + "\n" + ex.Message + "\n" + result.ToString()); } try { string insertMedicine = "INSERT INTO MedicalDetailsMedicine (TimeStamp, PID, DateVisited, Medicine) VALUES (@ts, @pid, @dv, @medicine)"; foreach (string str in ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringNewLine(VisitMedicineGiven.Text.ToString())).Split(',')) { if (str != "") { Statement statement = await this.database.PrepareStatementAsync(insertMedicine); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@ts", DateTime.Now.ToString(ExtraModules.datePatt)); statement.BindTextParameterWithName("@dv", DateVisited); statement.BindTextParameterWithName("@medicine", ExtraModules.removesemicolon(str)); await statement.StepAsync(); statement.Reset(); } } } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_DETAILS---MEDIC_DETAILS_MEDICINE_INSERT" + "\n" + ex.Message + "\n" + result.ToString()); } try { string insertVaccine = "INSERT INTO MedicalDetailsVaccine (TimeStamp, PID, DateVisited, Vaccine) VALUES (@ts, @pid, @dv, @vaccine)"; foreach (string str in ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringNewLine(VisitVaccine.Text.ToString())).Split(',')) { if (str != "") { Statement statement = await this.database.PrepareStatementAsync(insertVaccine); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@ts", DateTime.Now.ToString(ExtraModules.datePatt)); statement.BindTextParameterWithName("@dv", DateVisited); statement.BindTextParameterWithName("@vaccine", ExtraModules.removesemicolon(str)); await statement.StepAsync(); statement.Reset(); } } } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_DETAILS---MEDIC_DETAILS_VACCINE_INSERT" + "\n" + ex.Message + "\n" + result.ToString()); } this.ClearAllFields(); isUpdating = false; this.UpdateEditedDetails(); return(DBConnect.RESULT_OK); }
private async Task <int> InsertDetails() { double height = ((VisitHeightFeet.SelectedIndex + 1) * 12 + VisitHeightInch.SelectedIndex) * 0.0254; int weight = Int32.Parse(VisitWeight.Text.ToString()); string DateVisited = VisitYearComboBox.Items[VisitYearComboBox.SelectedIndex].ToString() + "-" + VisitMonthComboBox.Items[VisitMonthComboBox.SelectedIndex].ToString() + "-" + VisitDayComboBox.Items[VisitDayComboBox.SelectedIndex].ToString(); double bmi = ExtraModules.CalculateBMI(VisitHeightFeet.SelectedIndex + 1, VisitHeightInch.SelectedIndex, weight); try { string insertQuery = "INSERT INTO MedicalDetails (TimeStamp ,PID, DateVisited, Age, BloodGlucose, SystolicBP, DiastolicBP, DiseaseFound, Height, Weight, Symptoms, BMI) " + "VALUES (@ts, @pid, @dv, @age, @bg, @sbp, @dbp, @disease, @height, @weight, @symptoms, @bmi)"; Statement statement = await this.database.PrepareStatementAsync(insertQuery); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@ts", DateTime.Now.ToString(ExtraModules.datePatt)); statement.BindTextParameterWithName("@dv", DateVisited); statement.BindIntParameterWithName("@age", await this.GetPatientAge(this.PID)); if (!VisitBloodGlucose.Text.ToString().Equals("")) { statement.BindIntParameterWithName("@bg", Int32.Parse(VisitBloodGlucose.Text.ToString())); } else { statement.BindIntParameterWithName("@bg", 0); } if (!VisitDiastolicBP.Text.ToString().Equals("")) { statement.BindIntParameterWithName("@dbp", Int32.Parse(VisitDiastolicBP.Text.ToString())); } else { statement.BindIntParameterWithName("@dbp", 0); } if (!VisitSystolicBP.Text.ToString().Equals("")) { statement.BindIntParameterWithName("@sbp", Int32.Parse(VisitSystolicBP.Text.ToString())); } else { statement.BindIntParameterWithName("@sbp", 0); } statement.BindTextParameterWithName("@disease", VisitDiseasesDiagnosed.Text.ToString()); statement.BindDoubleParameterWithName("@height", height); statement.BindIntParameterWithName("@weight", weight); statement.BindTextParameterWithName("@symptoms", ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringNewLine(VisitSymptoms.Text.ToString()))); statement.BindDoubleParameterWithName("@bmi", bmi); await statement.StepAsync(); } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---INSERT_DETAILS---MEDIC_DETAILS" + "\n" + ex.Message + "\n" + result.ToString()); } try { string insertMedicine = "INSERT INTO MedicalDetailsMedicine (TimeStamp, PID, DateVisited, Medicine) VALUES (@ts, @pid, @dv, @medicine)"; foreach (string str in ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringNewLine(VisitMedicineGiven.Text.ToString())).Split(',')) { Statement statement = await this.database.PrepareStatementAsync(insertMedicine); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@ts", DateTime.Now.ToString(ExtraModules.datePatt)); statement.BindTextParameterWithName("@dv", DateVisited); statement.BindTextParameterWithName("@medicine", ExtraModules.removesemicolon(str)); await statement.StepAsync(); statement.Reset(); } } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---INSERT_DETAILS---MEDIC_DETAILS_MEDICINE" + "\n" + ex.Message + "\n" + result.ToString()); } try { string insertVaccine = "INSERT INTO MedicalDetailsVaccine (TimeStamp, PID, DateVisited, Vaccine) VALUES (@ts, @pid, @dv, @vaccine)"; foreach (string str in ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringNewLine(VisitVaccine.Text.ToString())).Split(',')) { Statement statement = await this.database.PrepareStatementAsync(insertVaccine); statement.BindTextParameterWithName("@pid", this.PID); statement.BindTextParameterWithName("@ts", DateTime.Now.ToString(ExtraModules.datePatt)); statement.BindTextParameterWithName("@dv", DateVisited); statement.BindTextParameterWithName("@vaccine", ExtraModules.removesemicolon(str)); await statement.StepAsync(); statement.Reset(); } this.ocString.Add(DateVisited); } catch (Exception ex) { var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult); Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_DETAILS---MEDIC_DETAILS_VACCINE" + "\n" + ex.Message + "\n" + result.ToString()); } this.ClearAllFields(); VisitListBox.SelectedIndex = this.ocString.IndexOf(DateVisited); if (this.ocString.Count() == 1) { this.visibleStackPanels(); } return(DBConnect.RESULT_OK); }