public void AddVitalParameters(long caseNr, VitalParameters vitalParameters) { try { connection.Open(); string sql = "INSERT INTO vital_parameters (case_id, time, heart_frequence, breath_frequence, bloodpressure_min, bloodpressure_max, temperature, oxygen_saturation) VALUES ("; sql += caseNr + ","; sql += "'" + vitalParameters.Time.ToString("yyyy-MM-dd HH:mm:ss") + "',"; sql += vitalParameters.HeartFrequence == null ? "NULL," : vitalParameters.HeartFrequence + ","; sql += vitalParameters.BreathFrequence == null ? "NULL," : vitalParameters.BreathFrequence + ","; sql += vitalParameters.BloodPressureMin == null ? "NULL," : vitalParameters.BloodPressureMin + ","; sql += vitalParameters.BloodPressureMax == null ? "NULL," : vitalParameters.BloodPressureMax + ","; sql += vitalParameters.Temperature == null ? "NULL," : vitalParameters.Temperature.ToString().Replace(",", ".") + ","; sql += vitalParameters.OxygenSaturation == null ? "NULL" : vitalParameters.OxygenSaturation + ""; sql += ")"; MySqlCommand command = new MySqlCommand(sql, connection); command.ExecuteNonQuery(); } catch (MySqlException e) { if (e.Message.ToLower().Contains("unable to connect to any of the specified mysql hosts")) { MessageBox.Show("Verbindung zum Anwendungsserver fehlgeschlagen!", "Verbindung fehlgeschlagen"); } } finally { connection.Close(); } }
private void BtnSaveParameters_Click(object sender, RoutedEventArgs e) { if (txtBloodPressureMin.Text.Trim().Length > 0 && txtBloodPressureMax.Text.Trim().Length == 0) { MessageBox.Show("Bitte geben Sie den systolischen Blutdruck an!", "Fehlende Werte"); return; } else if (txtBloodPressureMax.Text.Trim().Length > 0 && txtBloodPressureMin.Text.Trim().Length == 0) { MessageBox.Show("Bitte geben Sie den diastolischen Blutdruck an!", "Fehlende Werte"); return; } foreach (VitalParameters vitalParameters in SystemCase.PreviousVitalParameters) { if (vitalParameters.Time.ToString("ddMMyyyy HH:mm").Equals(DateTime.Now.ToString("ddMMyyyy HH:mm"))) { MessageBox.Show("Es exisitieren bereits Werte für diesen Zeitraum!", "Werte bereits vorhanden!"); return; } } VitalParameters newVitalParameters = new VitalParameters(); if (this.txtHeartFrequence.Text.Trim().Length == 0) { newVitalParameters.HeartFrequence = null; } else { newVitalParameters.HeartFrequence = int.Parse(this.txtHeartFrequence.Text); } if (this.txtBreathFrequence.Text.Trim().Length == 0) { newVitalParameters.BreathFrequence = null; } else { newVitalParameters.BreathFrequence = int.Parse(this.txtBreathFrequence.Text); } if (this.txtBloodPressureMin.Text.Trim().Length == 0) { newVitalParameters.BloodPressureMin = null; } else { newVitalParameters.BloodPressureMin = int.Parse(this.txtBloodPressureMin.Text); } if (this.txtBloodPressureMax.Text.Trim().Length == 0) { newVitalParameters.BloodPressureMax = null; } else { newVitalParameters.BloodPressureMax = int.Parse(this.txtBloodPressureMax.Text); } if (this.txtTemperature.Text.Trim().Length == 0) { newVitalParameters.Temperature = null; } else { newVitalParameters.Temperature = double.Parse(this.txtTemperature.Text.Replace(".", ",")); } if (this.txtOxygenSaturation.Text.Trim().Length == 0) { newVitalParameters.OxygenSaturation = null; } else { newVitalParameters.OxygenSaturation = int.Parse(this.txtOxygenSaturation.Text); } if (!this.NewCase) { App.DBConnection.AddVitalParameters(this.SystemCase.CaseNr, newVitalParameters); } this.SystemCase.PreviousVitalParameters.Add(newVitalParameters); this.cmbVitalParametersBox.Items.Clear(); this.cmbVitalParametersBox.ItemsSource = SystemCase.VitalParametersTimes; this.cmbVitalParametersBox.SelectedIndex = 0; }
private void DynamicDataLoader_DoWork(object sender, DoWorkEventArgs e) { List <Patient> patients = new List <Patient>(); List <Case> cases = new List <Case>(); MySqlCommand command = new MySqlCommand("SELECT * FROM patients", dataLoaderConnection); try { while (true) { if (!App.Editing) { patients = new List <Patient>(); cases = new List <Case>(); Dispatcher.BeginInvoke(DispatcherPriority.Background, new ParameterizedThreadStart(ClearData), new object()); command.CommandText = "SELECT * FROM patients"; using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { if ((int)reader["id"] == 1) { continue; } Patient patient = new Patient() { PatientNr = (int)reader["id"], FirstName = reader["firstname"].ToString(), LastName = reader["lastname"].ToString(), Gender = reader["gender"].ToString(), Birthday = DateTime.Parse(reader["birthday"].ToString()), PlaceOfBirth = "" + reader["place_of_birth"], // Nullable Nationality = "" + reader["nationality"], // Nullable HealthInsurance = "" + reader["health_insurance"], // Nullable KVNR = reader["kvnr"].ToString(), Address = reader["address"].ToString(), PostalCode = reader["postalcode"].ToString(), City = reader["city"].ToString(), Phone = "" + reader["phone"], // Nullable Mobile = "" + reader["mobile"], // Nullable AdditionalInformations = "" + reader["additional_informations"], // Nullable FunctionRelatives = "" + reader["function_relatives"], // Nullable FirstNameRelatives = "" + reader["firstname_relatives"], // Nullable LastNameRelatives = "" + reader["lastname_relatives"], // Nullable AddressRelatives = "" + reader["address_relatives"], // Nullable PostalCodeRelatives = "" + reader["postalcode_relatives"], // Nullable CityRelatives = "" + reader["city_relatives"], // Nullable PhoneRelatives = "" + reader["phone_relatives"], // Nullable MobileRelatives = "" + reader["mobile_relatives"] // Nullable }; //Dispatcher.BeginInvoke(DispatcherPriority.Background, new ParameterizedThreadStart(ClearData), new object()); patients.Add(patient); Dispatcher.BeginInvoke(DispatcherPriority.Background, new ParameterizedThreadStart(AddPatient), patient); //DynamicData.Patients.Add(patient); } } command.CommandText = "SELECT * FROM cases"; using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { if ("Closed".Equals(reader["case_status"].ToString())) { continue; } Patient patient = new Patient() { PatientNr = 1, FirstName = "Unbekannter", LastName = "Patient" }; foreach (Patient pat in patients) { if (pat.PatientNr == (int)reader["patient_id"]) { patient = pat; } } Case systemCase = new Case(patient) { CaseNr = (int)reader["id"], Priority = reader["priority"].ToString(), Status = reader["status"].ToString(), Location = reader["location"].ToString(), Arrival = DateTime.Parse(reader["arrival"].ToString()), Reevaluation = DateTime.Parse(reader["reevaluation"].ToString()), Complaint = reader["complaint"].ToString(), TypeOfArrival = reader["type_of_arrival"].ToString(), PlaceOfIncident = "" + reader["place_of_incident"], // Nullable Trauma = reader["trauma"].ToString(), OtherInformations = "" + reader["other_informations"], // Nullable Anamnesis = "" + reader["anamnesis"], // Nullable Services = "" + reader["services"], // Nullable ExternalServices = "" + reader["external_services"], // Nullable PhysicianLetter = "" + reader["physician_letter"], // Nullable Diagnosis = "" + reader["diagnosis"], // Nullable TypeOfRelease = "" + reader["type_of_release"] // Nullable }; //if (reader["release"] == typeof(DBNull)) systemCase.Released = DateTime.Parse(reader["release"].ToString()); if (!reader.IsDBNull(19)) { systemCase.MedicalId = (int)reader["medical_id"]; } if (!reader.IsDBNull(20)) { systemCase.NurseId = (int)reader["nurse_id"]; } cases.Add(systemCase); Dispatcher.BeginInvoke(DispatcherPriority.Background, new ParameterizedThreadStart(AddCase), systemCase); //DynamicData.Cases.Add(systemCase); } } command.CommandText = "SELECT id, firstname, lastname FROM users"; using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { foreach (Case sCase in cases) { if (sCase.MedicalId == (int)reader["id"]) { sCase.MedicalFullName = reader["firstname"].ToString() + " " + reader["lastname"].ToString(); } if (sCase.NurseId == (int)reader["id"]) { sCase.NurseFullName = reader["firstname"].ToString() + " " + reader["lastname"].ToString(); } } } } command.CommandText = "SELECT * FROM vital_parameters"; using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { foreach (Case sCase in cases) { if (sCase.CaseNr == (int)reader["case_id"]) { VitalParameters vitalParameters = new VitalParameters() { Time = DateTime.Parse(reader["time"].ToString()) }; if (!reader.IsDBNull(2)) { vitalParameters.HeartFrequence = (int)reader["heart_frequence"]; } if (!reader.IsDBNull(3)) { vitalParameters.BreathFrequence = (int)reader["breath_frequence"]; } if (!reader.IsDBNull(4)) { vitalParameters.BloodPressureMin = (int)reader["bloodpressure_min"]; } if (!reader.IsDBNull(5)) { vitalParameters.BloodPressureMax = (int)reader["bloodpressure_max"]; } if (!reader.IsDBNull(6)) { vitalParameters.Temperature = (double)reader["temperature"]; } if (!reader.IsDBNull(7)) { vitalParameters.OxygenSaturation = (int)reader["oxygen_saturation"]; } sCase.PreviousVitalParameters.Add(vitalParameters); } } } } for (int i = 0; i < 39; i++) { if (!continueDynamicDataLoading) { dataLoaderConnection.Close(); return; } Thread.Sleep(500); } } else { for (int i = 0; i < 39; i++) { if (!continueDynamicDataLoading) { dataLoaderConnection.Close(); return; } Thread.Sleep(500); } } } } catch (MySqlException ex) { if (ex.Message.ToLower().Contains("unable to connect to any of the specified mysql hosts")) { MessageBox.Show("Verbindung zum Anwendungsserver fehlgeschlagen!", "Verbindung fehlgeschlagen"); } dataLoaderConnection.Close(); return; } }