Beispiel #1
0
        private async Task <string> LoginServer(List <KeyValuePair <string, string> > values)
        {
            if (ExtraModules.IsInternet())
            {
                var httpClient = new HttpClient();
                var response   = await httpClient.PostAsync(ExtraModules.domain_address + "/login.php", new FormUrlEncodedContent(values));

                var responseString = await response.Content.ReadAsStringAsync();

                Debug.WriteLine("MainPage" + responseString);
                JsonObject root  = Windows.Data.Json.JsonValue.Parse(responseString).GetObject();
                string     error = root.GetNamedString("error");
                if (error.Equals("Success"))
                {
                    string username     = root.GetNamedString("Username");
                    string userid       = root.GetNamedString("UserId").ToString();
                    string auth_token   = root.GetNamedString("Auth_Token");
                    string organisation = root.GetNamedString("Organisation");
                    string login_time   = DateTime.Now.ToUniversalTime().ToString("yyyyMMddHHmmssfff");

                    this.database = App.database;

                    await Insert_UserDetails_In_Database(userid, username, organisation, login_time, auth_token);

                    return("success");
                }
                else
                {
                    return(error);
                }
            }
            return("Check internet Connection");
        }
Beispiel #2
0
        private async void SendMailClicked(object sender, RoutedEventArgs e)
        {
            if (isEmailInfoFilled())
            {
                AnalysisSampleDataItem selectedItem = RecordGrid.SelectedItem as AnalysisSampleDataItem;

                if (selectedItem != null)
                {
                    Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;
                    StorageFile sampleFile = await temporaryFolder.CreateFileAsync(selectedItem.Name.Trim() + ".csv", CreationCollisionOption.ReplaceExisting);

                    EmailInfoForm.IsOpen      = false;
                    AnalysisPageCmdbar.IsOpen = false;

                    await FileIO.WriteTextAsync(sampleFile, ExtraModules.getFileDataForAnalysisItem(selectedItem));

                    AnalysisExportProgressRing.IsActive   = true;
                    AnalysisExportProgressRing.Visibility = Windows.UI.Xaml.Visibility.Visible;
                    await ExtraModules.Send_Email(FromEmail.Text, FromPassword.Password, ToEmail.Text, Subject.Text, "Check from Health Organiser", sampleFile.Path);

                    await sampleFile.DeleteAsync(StorageDeleteOption.PermanentDelete);

                    AnalysisExportProgressRing.IsActive   = false;
                    AnalysisExportProgressRing.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                    this.clearEmailInfoFields();
                }
                else
                {
                    EmailInfoForm.IsOpen = false;
                }
            }

            AnalysisPageCmdbar.IsOpen = false;
        }
Beispiel #3
0
        private async Task <bool> checkLogin()
        {
            if (ExtraModules.IsInternet())
            {
                var data = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("username", MainPageUsername.Text.ToString()),
                    new KeyValuePair <string, string>("password", MainPagePassword.Password.ToString())
                };
                string output = await LoginServer(data);

                if (output.Equals("success"))
                {
                    return(true);
                }
                else
                {
                    var messageDialog = new MessageDialog(output, "Error");
                    messageDialog.Commands.Add(new Windows.UI.Popups.UICommand("OK", null));
                    var dialogResult = await messageDialog.ShowAsync();
                }
            }
            return(false);  //this shud be uncommented for running with server
            //return true;
        }
Beispiel #4
0
        private async Task Uploadtoserver(List <KeyValuePair <string, string> > values)
        {
            if (ExtraModules.IsInternet())
            {
                var httpClient = new HttpClient();
                var response   = await httpClient.PostAsync(ExtraModules.domain_address + "/UpdateServerdata.php", new FormUrlEncodedContent(values));

                var responseString = await response.Content.ReadAsStringAsync();

                try
                {
                    Debug.WriteLine("Sync Output" + responseString);
                    // JsonObject root = Windows.Data.Json.JsonValue.Parse(responseString).GetObject();
                    // string error = root.GetNamedString("error");
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Exception in Sync");
                    Debug.WriteLine(ex.Message.ToString());
                }
            }
            else
            {
                Debug.WriteLine("Check internet Connection");
            }
        }
Beispiel #5
0
        ///////////////////This are the methods used to update the display immideately after updating
        private async Task <bool> UpdateDiseaseData(BasicDiseases tempDisease)
        {
            docKitName.Text        = tempDisease.Name;
            docKitDescription.Text = "\n" + tempDisease.Description;
            docKitImage.Source     = await ImageMethods.Base64StringToBitmap(tempDisease.Image);

            docKitSymptomsPanel.Children.Clear();
            foreach (var i in tempDisease.Symptoms.Split(','))
            {
                if (i.Equals(""))
                {
                    continue;
                }

                StackPanel docKitSymptomsStackPanels = new StackPanel();
                docKitSymptomsStackPanels.Margin      = new Thickness(0, 15, 0, 0);
                docKitSymptomsStackPanels.Orientation = Orientation.Horizontal;

                TextBlock dot = new TextBlock();
                dot.Width    = 15;
                dot.FontSize = 20;
                dot.Text     = "•";
                docKitSymptomsStackPanels.Children.Add(dot);

                TextBlock Symptom = new TextBlock();
                Symptom.Width        = 650;
                Symptom.Text         = ExtraModules.RemoveStringSpace(i).Replace(",", "");
                Symptom.TextWrapping = TextWrapping.Wrap;
                Symptom.FontSize     = 20;
                docKitSymptomsStackPanels.Children.Add(Symptom);

                docKitSymptomsPanel.Children.Add(docKitSymptomsStackPanels);
            }
            return(true);
        }
Beispiel #6
0
        private async Task <string> SignupServer(List <KeyValuePair <string, string> > values)
        {
            if (ExtraModules.IsInternet())
            {
                var httpClient = new HttpClient();
                var response   = await httpClient.PostAsync(ExtraModules.domain_address + "/signup.php", new FormUrlEncodedContent(values));

                var responseString = await response.Content.ReadAsStringAsync();

                Debug.WriteLine("Signup Output" + responseString);
                JsonObject root  = Windows.Data.Json.JsonValue.Parse(responseString).GetObject();
                string     error = root.GetNamedString("error");
                return(error);
            }
            return("Check internet Connection");
        }
Beispiel #7
0
        //sync functions
        private async void SettingsSynClicked(object sender, RoutedEventArgs e)
        {
            SettingsWaitTextBlock.Text       = "Syncing";
            SettingsWaitTextBlock.Visibility = Windows.UI.Xaml.Visibility.Visible;
            SettingsSyncButton.Visibility    = Windows.UI.Xaml.Visibility.Collapsed;
            settingsProgress.Visibility      = Windows.UI.Xaml.Visibility.Visible;
            if (ExtraModules.IsInternet())
            {
                string timestamp = await getTimeStamp();//"1/25/2014 3:34:06 AM";

                string userid = await getUserId();

                string auth_token = await getAuthToken();

                string statements = await sendToServer(timestamp, userid);

                var data = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("userid", userid),
                    new KeyValuePair <string, string>("auth_token", auth_token),
                    new KeyValuePair <string, string>("updatestatements", statements)
                };
                var datatorecieve = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("userid", userid),
                    new KeyValuePair <string, string>("auth_token", auth_token),
                    new KeyValuePair <string, string>("timestamp", timestamp)
                };

                await Uploadtoserver(data);
                await getfromserver(datatorecieve);

                SettingsWaitTextBlock.Text = "Done";
            }
            else
            {
                SettingsWaitTextBlock.Text = "Failed";
            }
            SettingsSyncButton.IsEnabled  = true;
            settingsProgress.Visibility   = Windows.UI.Xaml.Visibility.Collapsed;
            SettingsSyncButton.Visibility = Windows.UI.Xaml.Visibility.Visible;

            // SettingsWaitTextBlock.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
        }
Beispiel #8
0
        private async Task SignUpNewUser()
        {
            if (ExtraModules.IsInternet())
            {
                var data = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("username", MainPageSignUpUsername.Text),
                    new KeyValuePair <string, string>("password", MainPageSignUpPassword.Password.ToString()),
                    new KeyValuePair <string, string>("organisation", MainPageSignUpNGOName.Text),
                    new KeyValuePair <string, string>("email", MainPageSignUpEmail.Text)
                };
                string output = await SignupServer(data);

                var messageDialog = new MessageDialog(output, "");
                messageDialog.Commands.Add(new Windows.UI.Popups.UICommand("OK", null));
                var dialogResult = await messageDialog.ShowAsync();
            }
            return;
        }
Beispiel #9
0
        private async void ExportProfileClicked(object sender, RoutedEventArgs e)
        {
            AnalysisSampleDataItem selectedItem = RecordGrid.SelectedItem as AnalysisSampleDataItem;

            FileSavePicker savePicker = new FileSavePicker();

            savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            // Dropdown of file types the user can save the file as

            savePicker.FileTypeChoices.Add("Tabular Data", new List <string>()
            {
                ".csv"
            });
            // Default file name if the user does not type one in or select a file to replace

            savePicker.SuggestedFileName = selectedItem.Name;

            StorageFile file = await savePicker.PickSaveFileAsync();


            if (file != null && selectedItem != null)
            {
                CachedFileManager.DeferUpdates(file);

                // write to file
                AnalysisExportProgressRing.IsActive   = true;
                AnalysisExportProgressRing.Visibility = Windows.UI.Xaml.Visibility.Visible;
                await FileIO.WriteTextAsync(file, ExtraModules.getFileDataForAnalysisItem(selectedItem));

                AnalysisExportProgressRing.IsActive   = false;
                AnalysisExportProgressRing.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);

                if (status == FileUpdateStatus.Complete)
                {
                    Debug.WriteLine("File " + file.Name + " was saved.");
                }
                else
                {
                    Debug.WriteLine("File " + file.Name + " couldn't be saved.");
                }
            }
        }
Beispiel #10
0
        private bool isEmailInfoFilled()
        {
            bool flag = true;

            if (!ExtraModules.isEmail(FromEmail.Text))
            {
                FromEmail.BorderBrush     = new SolidColorBrush(Windows.UI.Colors.Red);
                FromEmail.PlaceholderText = "Invalid Email";
                FromEmail.Text            = "";
                flag = false;
            }

            if (!ExtraModules.isEmail(ToEmail.Text))
            {
                ToEmail.BorderBrush     = new SolidColorBrush(Windows.UI.Colors.Red);
                ToEmail.PlaceholderText = "Invalid Email";
                ToEmail.Text            = "";
                flag = false;
            }

            return(flag);
        }
Beispiel #11
0
        private async Task <string> getfromserver(List <KeyValuePair <string, string> > values)
        {
            if (ExtraModules.IsInternet())
            {
                var httpClient = new HttpClient();
                var response   = await httpClient.PostAsync(ExtraModules.domain_address + "/updatetomachine.php", new FormUrlEncodedContent(values));

                var responseString = await response.Content.ReadAsStringAsync();

                //Debug.WriteLine("Sync Output" + responseString);
                string error = responseString.ToString();
                //JsonObject root = Windows.Data.Json.JsonValue.Parse(responseString).GetObject();
                //string error = root.GetNamedString("query");
                await aftergetFromServer(error);

                string userid = await getUserId();

                updateTimeStamp(userid);
                return("done");
            }
            return("Check internet Connection");
        }
Beispiel #12
0
        private async void UpdateEditedDetails()
        {
            if (VisitListBox.SelectedItem != null)
            {
                try
                {
                    string    query     = "SELECT * FROM MedicalDetails WHERE PID = @pid AND DateVisited = @dv";
                    Statement statement = await this.database.PrepareStatementAsync(query);

                    statement.BindTextParameterWithName("@pid", this.PID);
                    statement.BindTextParameterWithName("@dv", VisitListBox.Items[VisitListBox.SelectedIndex].ToString());
                    statement.EnableColumnsProperty();
                    if (await statement.StepAsync())
                    {
                        VisitSymptomsPanel.Children.Clear();

                        foreach (string str in statement.Columns["Symptoms"].Split(','))
                        {
                            StackPanel VisitSymptomsStackPanels = new StackPanel();
                            VisitSymptomsStackPanels.Margin      = new Thickness(0, 15, 0, 0);
                            VisitSymptomsStackPanels.Orientation = Orientation.Horizontal;

                            TextBlock dot = new TextBlock();
                            dot.Width    = 10;
                            dot.FontSize = 15;
                            dot.Text     = "•";
                            VisitSymptomsStackPanels.Children.Add(dot);

                            TextBlock vaccineName = new TextBlock();
                            vaccineName.Width        = 280;
                            vaccineName.Text         = ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringSpace(str));
                            vaccineName.TextWrapping = TextWrapping.Wrap;
                            vaccineName.FontSize     = 15;
                            VisitSymptomsStackPanels.Children.Add(vaccineName);

                            VisitSymptomsPanel.Children.Add(VisitSymptomsStackPanels);
                        }

                        VisitTextDisease.Text = "\n" + statement.Columns["DiseaseFound"];
                        VisitTextBG.Text      = statement.Columns["BloodGlucose"];
                        VisitTextBP.Text      = statement.Columns["SystolicBP"] + "/" + statement.Columns["DiastolicBP"];

                        double BMIDouble   = Convert.ToDouble(statement.Columns["BMI"]);
                        Double BMIRounded3 = Math.Round(BMIDouble, 3);
                        VisitTextBMI.Text = BMIRounded3.ToString();

                        VisitTextWeight.Text = statement.Columns["Weight"];
                        VisitTextHeight.Text = statement.Columns["Height"];
                    }
                }
                catch (Exception ex)
                {
                    var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult);
                    Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_EDITED_DETAILS" + "\n" + ex.Message + "\n" + result.ToString());
                }

                try
                {
                    string    query     = "SELECT * FROM MedicalDetailsMedicine WHERE PID = @pid AND DateVisited = @dv";
                    Statement statement = await this.database.PrepareStatementAsync(query);

                    statement.BindTextParameterWithName("@pid", this.PID);
                    statement.BindTextParameterWithName("@dv", VisitListBox.Items[VisitListBox.SelectedIndex].ToString());
                    statement.EnableColumnsProperty();

                    VisitTextMedicines.Children.Clear();
                    while (await statement.StepAsync())
                    {
                        StackPanel VisitMedicineStackPanels = new StackPanel();
                        VisitMedicineStackPanels.Margin      = new Thickness(0, 15, 0, 0);
                        VisitMedicineStackPanels.Orientation = Orientation.Horizontal;

                        TextBlock dot = new TextBlock();
                        dot.Width    = 10;
                        dot.FontSize = 15;
                        dot.Text     = "•";
                        VisitMedicineStackPanels.Children.Add(dot);

                        TextBlock medicineName = new TextBlock();
                        medicineName.Width        = 280;
                        medicineName.Text         = ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringSpace(statement.Columns["Medicine"]));
                        medicineName.TextWrapping = TextWrapping.Wrap;
                        medicineName.FontSize     = 15;
                        VisitMedicineStackPanels.Children.Add(medicineName);

                        VisitTextMedicines.Children.Add(VisitMedicineStackPanels);
                    }
                }
                catch (Exception ex)
                {
                    var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult);
                    Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_EDITED_DETAILS---MEDICINE" + "\n" + ex.Message + "\n" + result.ToString());
                }

                try
                {
                    string    query     = "SELECT * FROM MedicalDetailsVaccine WHERE PID = @pid AND DateVisited = @dv";
                    Statement statement = await this.database.PrepareStatementAsync(query);

                    statement.BindTextParameterWithName("@pid", this.PID);
                    statement.BindTextParameterWithName("@dv", VisitListBox.Items[VisitListBox.SelectedIndex].ToString());
                    statement.EnableColumnsProperty();

                    VisitTextVaccine.Children.Clear();
                    while (await statement.StepAsync())
                    {
                        if (statement.Columns["Vaccine"].Equals(""))
                        {
                            break;
                        }

                        StackPanel VisitVaccineStackPanels = new StackPanel();
                        VisitVaccineStackPanels.Margin      = new Thickness(0, 15, 0, 0);
                        VisitVaccineStackPanels.Orientation = Orientation.Horizontal;

                        TextBlock dot = new TextBlock();
                        dot.Width    = 10;
                        dot.FontSize = 15;
                        dot.Text     = "•";
                        VisitVaccineStackPanels.Children.Add(dot);

                        TextBlock VaccineName = new TextBlock();
                        VaccineName.Width        = 280;
                        VaccineName.Text         = ExtraModules.RemoveExtraCommas(ExtraModules.RemoveStringSpace(statement.Columns["Vaccine"]));
                        VaccineName.TextWrapping = TextWrapping.Wrap;
                        VaccineName.FontSize     = 15;
                        VisitVaccineStackPanels.Children.Add(VaccineName);

                        VisitTextVaccine.Children.Add(VisitVaccineStackPanels);
                    }
                }
                catch (Exception ex)
                {
                    var result = SQLiteWinRT.Database.GetSqliteErrorCode(ex.HResult);
                    Debug.WriteLine("CREATE_NEW_VISIT---UPDATE_EDITED_DETAILS---VACCINE" + "\n" + ex.Message + "\n" + result.ToString());
                }

                this.visibleStackPanels();
            }
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        private void UpdateView()
        {
            resultList = new List <AnalysisSampleDataItem>();

            foreach (AnalysisSampleDataItem item in mainItemList)
            {
                if (ByDateFlag)
                {
                    this.checkSelectedDates();

                    int lastDateOn = item.DatesVisited.Count;

                    if (lastDateOn > 0)
                    {
                        DateTime lastDate = ExtraModules.ConvertStringToDateTime(item.DatesVisited.ElementAt(lastDateOn - 1));
                        DateTime fromDate = new DateTime(Convert.ToInt32(AnalysisFromYearComboBox.SelectedItem), AnalysisFromMonthComboBox.SelectedIndex + 1, Convert.ToInt32(AnalysisFromDayComboBox.SelectedItem));
                        DateTime toDate   = new DateTime(Convert.ToInt32(AnalysisToYearComboBox.SelectedItem), AnalysisToMonthComboBox.SelectedIndex + 1, Convert.ToInt32(AnalysisToDayComboBox.SelectedItem));

                        if (!(fromDate <= lastDate && toDate >= lastDate))
                        {
                            continue;
                        }
                    }
                    else
                    {
                        continue;
                    }
                }


                if (CityFlag)
                {
                    if (!AnalysisCityBox.SelectedItem.ToString().Equals(item.City))
                    {
                        continue;
                    }
                }

                if (StateFlag)
                {
                    if (!AnalysisStateBox.SelectedItem.ToString().Equals(item.State))
                    {
                        continue;
                    }
                }

                if (SexFlag)
                {
                    switch (sexMale)
                    {
                    case 1: if (item.Sex != 'M')
                        {
                            continue;
                        }
                        break;

                    case -1: if (item.Sex != 'F')
                        {
                            continue;
                        }
                        break;
                    }
                }

                if (StatusFlag)
                {
                    switch (isMarried)
                    {
                    case 1: if (!item.Married)
                        {
                            continue;
                        }
                        break;

                    case -1: if (item.Married)
                        {
                            continue;
                        }
                        break;
                    }
                }

                if (BGFlag)
                {
                    if (!AnalysisBloodGroupBox.SelectedItem.ToString().Equals(item.BloodGroup))
                    {
                        continue;
                    }
                }

                if (DiseaseFlag)
                {
                    bool found = false;
                    foreach (string disease in item.Diseases.Values)
                    {
                        if (AnalysisDiseaseBox.SelectedItem.ToString().Equals(disease))
                        {
                            found = true;
                        }
                    }

                    if (!found)
                    {
                        continue;
                    }
                }

                if (AllergyFlag)
                {
                    bool found = false;
                    foreach (string allergy in item.Allergy)
                    {
                        if (AnalysisAllergyBox.SelectedItem.ToString().Equals(allergy))
                        {
                            found = true;
                        }
                    }

                    if (!found)
                    {
                        continue;
                    }
                }

                if (AddictionFlag)
                {
                    bool found = false;
                    foreach (string addiction in item.Addiction)
                    {
                        if (AnalysisAddictionBox.SelectedItem.ToString().Equals(addiction))
                        {
                            found = true;
                        }
                    }

                    if (!found)
                    {
                        continue;
                    }
                }

                if (VaccineFlag)
                {
                    bool found = false;
                    foreach (string vaccine in item.Vaccines.Values)
                    {
                        if (AnalysisVaccinationBox.SelectedItem.ToString().Equals(vaccine))
                        {
                            found = true;
                        }
                    }

                    if (!found)
                    {
                        continue;
                    }
                }

                if (OperationFlag)
                {
                    bool found = false;
                    foreach (string operation in item.Operation)
                    {
                        if (AnalysisOperationsBox.SelectedItem.ToString().Equals(operation))
                        {
                            found = true;
                        }
                    }

                    if (!found)
                    {
                        continue;
                    }
                }

                resultList.Add(item);
            }
            gridViewSource.Source = resultList;
        }
Beispiel #15
0
        private async void AnalysisExportListClicked(object sender, RoutedEventArgs e)
        {
            AnalysisExportProgressRing.IsActive   = true;
            AnalysisExportProgressRing.Visibility = Windows.UI.Xaml.Visibility.Visible;
            AnalysisMainGrid.Visibility           = Windows.UI.Xaml.Visibility.Collapsed;
            //if (AnalysisDetailsGrid.Visibility == Windows.UI.Xaml.Visibility.Visible)
            //    AnalysisDetailsGrid.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            //if (AnalysisGraphGridScrollViewer.Visibility == Windows.UI.Xaml.Visibility.Visible)
            //    AnalysisGraphGridScrollViewer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            this.AnalysisValidateFields();
            this.AnalysisSetFlags();
            this.UpdateView();
            RecordGrid.SelectedItem = null;

            FileSavePicker savePicker = new FileSavePicker();

            savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            // Dropdown of file types the user can save the file as

            savePicker.FileTypeChoices.Add("Tabular Data", new List <string>()
            {
                ".csv"
            });
            // Default file name if the user does not type one in or select a file to replace

            savePicker.SuggestedFileName = "New Document";

            StorageFile file = await savePicker.PickSaveFileAsync();


            if (file != null)
            {
                CachedFileManager.DeferUpdates(file);

                string data            = "";
                string columnSeparator = ", ";

                data += "Name,  " + "Blood Group,    " + "Sex,   " + "Martial Status,   " + "Occupation,    " + "City,  " + "State,    " + "Addiction, " + "Operation, " + "Vaccination,   " + "Family Background" + "\r\n";

                foreach (AnalysisSampleDataItem item in resultList)
                {
                    data += item.Name + columnSeparator;
                    data += item.BloodGroup + columnSeparator;
                    data += item.Sex + columnSeparator;
                    data += ExtraModules.getMartialStatus(item.Married) + columnSeparator;
                    data += item.Occupation + columnSeparator;
                    data += item.City + columnSeparator;
                    data += item.State + columnSeparator;

                    foreach (string addiction in item.Addiction)
                    {
                        if (!addiction.Equals(""))
                        {
                            data += addiction + "; ";
                        }
                    }
                    data += columnSeparator;

                    foreach (string operation in item.Operation)
                    {
                        if (!operation.Equals(""))
                        {
                            data += operation + "; ";
                        }
                    }
                    data += columnSeparator;

                    foreach (string vaccine in item.Vaccines.Values)
                    {
                        if (!vaccine.Equals(""))
                        {
                            data += vaccine + "; ";
                        }
                    }
                    data += columnSeparator;

                    data += item.FamilyBG.Replace(",", "; ") + columnSeparator;

                    data += "\r\n";
                }

                // write to file
                await FileIO.WriteTextAsync(file, data);

                FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);

                if (status == FileUpdateStatus.Complete)
                {
                    Debug.WriteLine("File " + file.Name + " was saved.");
                }
                else
                {
                    Debug.WriteLine("File " + file.Name + " couldn't be saved.");
                }
            }
            AnalysisExportProgressRing.IsActive   = false;
            AnalysisExportProgressRing.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
            AnalysisMainGrid.Visibility           = Windows.UI.Xaml.Visibility.Visible;
            //if (AnalysisDetailsGrid.Visibility == Windows.UI.Xaml.Visibility.Collapsed)
            //AnalysisDetailsGrid.Visibility = Windows.UI.Xaml.Visibility.Visible;
            //if (AnalysisGraphGridScrollViewer.Visibility == Windows.UI.Xaml.Visibility.Collapsed)
            //    AnalysisGraphGridScrollViewer.Visibility = Windows.UI.Xaml.Visibility.Visible;
            AnalysisDetailsGridAnimation.Begin();
            AnalysisGraphGridAnimation.Begin();
            Debug.WriteLine("hi");
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        //////////////////////This methods are for Buttons click events in Dialog Box opened.
        private async void docKitDialogSave(object sender, RoutedEventArgs e)
        {
            if (isDiseaseSelected)
            {
                if (docKitDName.Text.Equals("") || docKitDSymptoms.Text.Equals("") || docKitDDescription.Text.Equals("") || docKitDImage.Text.Equals(""))
                {
                    docKitErrorDescription.Visibility = Windows.UI.Xaml.Visibility.Visible;
                }
                else
                {
                    if (decodedImage != null)
                    {
                        if (isUpdating == true)
                        {
                            //Find that object's instance and change its values
                            if (docKitListBox.SelectedItem != null)
                            {
                                BasicDiseases tempDisease = await diseaseMethods.FindSingleDisease(this.ocString[docKitListBox.SelectedIndex].ToString());

                                tempDisease.Name        = docKitDName.Text;
                                tempDisease.Description = docKitDDescription.Text;
                                tempDisease.Image       = decodedImage;
                                tempDisease.Symptoms    = docKitDSymptoms.Text;

                                docKitDSymptoms.Text = ExtraModules.RemoveExtraCommas(docKitDSymptoms.Text);
                                tempDisease.Symptoms = docKitDSymptoms.Text;

                                await diseaseMethods.UpdateDisease(tempDisease);

                                isUpdating             = false;
                                docKitDName.IsReadOnly = false;
                                await this.UpdateDiseaseData(tempDisease);
                            }
                        }
                        else
                        {
                            await diseaseMethods.InsertDisease(new BasicDiseases()
                            {
                                Name = docKitDName.Text, Description = docKitDDescription.Text, Symptoms = ExtraModules.RemoveExtraCommas(docKitDSymptoms.Text), Image = decodedImage
                            });

                            this.ocString.Add(docKitDName.Text);
                            docKitListBox.SelectedIndex = this.ocString.IndexOf(docKitDName.Text);
                            if (ocString.Count() == 1)
                            {
                                this.showDiseaseItems();
                                await this.UpdateDiseaseData(new BasicDiseases()
                                {
                                    Name = docKitDName.Text, Description = docKitDDescription.Text, Symptoms = ExtraModules.RemoveExtraCommas(docKitDSymptoms.Text), Image = decodedImage
                                });

                                docKitDelBut.IsEnabled  = true;
                                docKitEditBut.IsEnabled = true;
                            }
                        }
                        docKitDialog.IsOpen = false;
                        //After everything is stored/Updated in database we need to reset all the fields.
                        this.ClearFormFields();
                    }
                }
            }
            else
            {
                if (docKitFAName.Text.Equals("") || docKitFASymptoms.Text.Equals("") || docKitFADescription.Text.Equals("") || docKitFAImage.Text.Equals(""))
                {
                    docKitFAErrorDescription.Visibility = Windows.UI.Xaml.Visibility.Visible;
                }
                else
                {
                    if (isUpdating == true)
                    {
                        if (docKitListBox.SelectedItem != null)
                        {
                            //Find that object's instance and change its values
                            BasicFirstAid tempFirstAid = await firstAidMethods.FindSingleFirstAid(this.ocString[docKitListBox.SelectedIndex].ToString());

                            tempFirstAid.Name     = docKitFAName.Text;
                            tempFirstAid.FirstAid = docKitFADescription.Text;
                            tempFirstAid.Image    = decodedImage;
                            tempFirstAid.DoNot    = docKitFASymptoms.Text;

                            await firstAidMethods.UpdateFirstAid(tempFirstAid);

                            isUpdating = false;
                            docKitFAName.IsReadOnly = false;
                            await this.UpdateFirstAidData(tempFirstAid);
                        }
                    }
                    else
                    {
                        await firstAidMethods.InsertFirstAid(new BasicFirstAid()
                        {
                            Name = docKitFAName.Text, FirstAid = docKitFADescription.Text, DoNot = docKitFASymptoms.Text, Image = decodedImage
                        });

                        this.ocString.Add(docKitFAName.Text);
                        docKitListBox.SelectedIndex = this.ocString.IndexOf(docKitFAName.Text);
                        if (ocString.Count() == 1)
                        {
                            this.showFirstAidItems();
                            await this.UpdateFirstAidData(new BasicFirstAid()
                            {
                                Name = docKitFAName.Text, FirstAid = docKitFADescription.Text, DoNot = docKitFASymptoms.Text, Image = decodedImage
                            });

                            docKitDelBut.IsEnabled  = true;
                            docKitEditBut.IsEnabled = true;
                        }
                    }
                    docKitDialogFirstAid.IsOpen = false;
                    //After everything is stored/Updated in database we need to reset all the fields.
                    this.ClearFormFields();
                }
            }
        }
Beispiel #18
0
        public static string getFileDataForAnalysisItem(AnalysisSampleDataItem selectedItem)
        {
            if (selectedItem == null)
            {
                return "";
            }

            string data = "";
            string columnSeparator = ", ";
            string lineSeparator = "\r\n";

            data += "Name" + columnSeparator;
            data += selectedItem.Name + columnSeparator + lineSeparator;
            data += "Blood Group" + columnSeparator;
            data += selectedItem.BloodGroup + columnSeparator + lineSeparator;
            data += "Sex " + columnSeparator;
            data += selectedItem.Sex + columnSeparator + lineSeparator;
            data += "Martial Status " + columnSeparator;
            data += ExtraModules.getMartialStatus(selectedItem.Married) + columnSeparator + lineSeparator;
            data += "Occupation" + columnSeparator;
            data += selectedItem.Occupation + columnSeparator + lineSeparator;

            data += lineSeparator + "Allergies";

            foreach (string allergy in selectedItem.Allergy)
            {
                data += columnSeparator;
                data += allergy + columnSeparator + lineSeparator;
            }

            data += lineSeparator + "Addiction";
            foreach (string addiction in selectedItem.Addiction)
            {
                data += columnSeparator;
                data += addiction + columnSeparator + lineSeparator;
            }

            data += lineSeparator + "Operation";
            foreach (string operation in selectedItem.Operation)
            {
                data += columnSeparator;
                data += operation + columnSeparator + lineSeparator;
            }

            if (selectedItem.DatesVisited.Count > 0)
            {
                data += lineSeparator + "Visits" + lineSeparator;

                foreach (string date in selectedItem.DatesVisited)
                {
                    data += date + columnSeparator;
                    string disease = "";
                    selectedItem.Diseases.TryGetValue(date, out disease);
                    string vaccine = "";
                    selectedItem.Vaccines.TryGetValue(date, out vaccine);
                    data += disease + columnSeparator + vaccine + lineSeparator;
                }
            }

            return data;
        }