Beispiel #1
0
        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]);
                }
            }
        }
Beispiel #2
0
        /// <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);
                        }
                    }
                }
            }
        }