code View

id 38
Title EVI-CS01
Type evidenza
Highlight group filequery1002.cs, Trattamenti
Description Pazienti in COTRIMOXAZOLO alla fine del periodo
Code
          var q_uvu = db.d_events
      .AsNoTracking()
      .Where(x => x.event_type.ToLower() == "app_verify" && x.date_apt_exe == null)
      .Select(s => new { s.id_person, idApt = (string.IsNullOrEmpty(s.id_event) ? "" : "!") }).Distinct();

        var qryP = (from P in db.d_person
                    from q in q_uvu.Where(w => w.id_person == P.id_person).DefaultIfEmpty()
                    where
                         (P.date_stopped == null || P.date_stopped > date_to1)
                    select new
                    {
                        P.id_person,
                        P.id_dream,
                        P.pe_surname,
                        P.pe_name,
                        P.pe_sex,
                        P.pe_dob,
                        P.date_started,
                        q.idApt

                    }).ToList();


        var st = db.d_status
             .AsNoTracking()
             .Where(W => W.date_started <= date_to1 && W.domain == "TER_COT")
             .OrderByDescending(o => o.date_started)
             .ThenByDescending(o => o.id_status)
                 .ToList()
                 .GroupBy(g => g.id_person)
                 .Select(s => new
                 {
                     ida = s.Key,
                     status = s.MaxBy(m => m.date_started),
                 }).ToList()
                 .Select(s => new
                 {
                     s.ida,
                     CURRENT_STATUS = s.status.status,
                     ID_PERSON = s.status.id_person,
                     CURRENT_STATUS_ID = s.status.id_status,
                     DATE_STARTED = s.status.date_started
                 }).ToList();

        var qry = (from P in qryP
                   from s in st.Where(W => W.ID_PERSON == P.id_person)
                   where
                        s.CURRENT_STATUS == "YES"
                   select new
                   {
                       P.id_person,
                       P.id_dream,
                       P.pe_surname,
                       P.pe_name,
                       P.pe_sex,
                       P.pe_dob,
                       P.date_started,
                       s.DATE_STARTED,
                       P.idApt

                   }).AsEnumerable()
                 .Select(s => new
                 {
                     s.id_person,
                     s.idApt,
                         //idApt = q_uvu.Contains(s.id_person) ? "!" : "",
                         s.id_dream,
                     s.pe_surname,
                     s.pe_name,
                     s.pe_sex,
                     s.pe_dob,
                     s.date_started,
                     age = (s.pe_dob.HasValue ? (DateTime.Today.Date.Year - s.pe_dob.Value.Date.Year).ToString() : ""),
                     s.DATE_STARTED

                 });

        dt = qry.ToDataTable();
        dt.TableName = "lst_data";

 

Ordine