public void GetDiagnosisPatient() { DBClass.openConnection(); //) CAST(DateOfBirth AS date), convert(Date, DateOfBirth, 23) //select distinct convert(VARCHAR, DataDiagnosis, 23) , NotesDiagnosis, LastNameTherapist from therapists, diagnosis where(diagnosis.IDPatient = '2') and therapists.LastNameTherapist = (select LastNameTherapist from therapists where IDTherapist = '2') DBClass.sql = "select distinct IDDiagnosis, convert(VARCHAR, DataDiagnosis, 23) , NotesDiagnosis, LastNameTherapist " + "from therapists, diagnosis " + "where (diagnosis.IDPatient = '" + infoPatientTemp[0] + "') and therapists.LastNameTherapist = (select LastNameTherapist from therapists where IDTherapist = '2')"; DBClass.cmd.CommandType = CommandType.Text; DBClass.cmd.CommandText = DBClass.sql; DBClass.da = new SqlDataAdapter(DBClass.cmd); DBClass.dt = new DataTable(); DBClass.da.Fill(DBClass.dt); // wyciągamy dane int j = 0; DiagnosisList.Clear(); using (SqlDataReader reader = DBClass.cmd.ExecuteReader()) { while (reader.Read()) { for (j = 0; j <= reader.FieldCount - 1; j++) // Looping throw colums { data[j] = reader.GetValue(j).ToString(); } if (data[7] == null) { data[7] = ""; } DiagnosisList.Add(new DiagnosisModel { IDDiagnosis = (data[0]), DataDiagnosis = data[1], NotesDiagnosis = data[2], LastNameTherapist = data[3] }); //Console.WriteLine("IDTherapist - " + data[7] + data[8]); } } }
/// <summary> /// Обновляет перечень диагнозов по всем тестам /// </summary> public void RefreshDiagnoses() { var accessor = DiagnosisItem.Accessor.Instance(null); DiagnosisList.Clear(); using (var manager = DbManagerFactory.Factory.Create(ModelUserContext.Instance)) { var fieldTests = FieldTests; foreach (var ft in fieldTests) { if (ft.IsMarkedToDelete) { continue; } //если результат не индикативный, то эти диагнозы не добавляем var idResult = ft.idfsPensideTestResult; var idTestType = ft.idfsPensideTestName; if (idResult == null) { continue; } var matrix = ft.TestResultLookup.FirstOrDefault( r => (r.idfsPensideTestName == idTestType) && (r.idfsPensideTestResult == idResult)); if (matrix == null) { continue; } if (!matrix.blnIndicative.HasValue) { continue; } if (!matrix.blnIndicative.Value) { continue; } var idDiagnosis = ft.idfsDiagnosis; if (!idDiagnosis.HasValue) { continue; } if (DiagnosisList.Count(s => s.idfsDiagnosis == idDiagnosis) == 0) { var diag = ft.DiagnosisLookup.FirstOrDefault(d => d.idfsDiagnosis == idDiagnosis); if (diag != null) { AddDiagnosisToList(accessor, manager, idDiagnosis.Value, diag.DiagnosisName); } } } foreach (var lt in LabTests) //TODO LabTestsFake? { if (lt.IsMarkedToDelete) { continue; } //если у лаб.теста результат не индикативный, то не добавляем его диагноз //// commented by Vdovin because blnIndicative is absent //if (!lt.blnIndicative.HasValue) continue; //if (!lt.blnIndicative.Value) continue; var idDiagnosis = lt.idfsDiagnosis; if (DiagnosisList.Count(s => s.idfsDiagnosis == idDiagnosis) == 0) { var diag = DiagnosesLookup.SingleOrDefault(c => c.idfsDiagnosis == idDiagnosis); if (diag != null) { AddDiagnosisToList(accessor, manager, idDiagnosis, diag.name); } } } //дополняем диагнозами из Summary foreach (var summary in Summaries) { if (summary.IsMarkedToDelete) { continue; } foreach (var diag in summary.DiagnosisList) { if (diag.IsMarkedToDelete) { continue; } if (diag.Diagnoses != null) { AddDiagnosisToList(accessor, manager, diag.Diagnoses.idfsDiagnosis, diag.Diagnoses.name); } } } } }