code View

id 14
Title EVI-CS13 / Patients in ART without ARV drugs prescriptions
Type evidenza
Highlight group filequery1003.cs, Evidenze
Description Patients in ART without ARV drugs prescriptions
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();

        DateTime datetmp030 = DateTime.Now.AddDays(-30);

        var qrye030 = (from p in db.d_person
                       from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty()
                       from s in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "TARV" && w.active == true)
                       from e in db.d_events.Where(w => p.id_person == w.id_person & w.event_type == "VISIT")
                       from pre in db.d_events_att.Where(w => e.id_event == w.id_event & w.domain == "A_DPRES")
                       from far in db.Farmaci.Where(w => pre.vt5 == w.idFarmaco)
                       from comp in db.Composti.Where(w => far.idComposto == w.idComposto)
                       where
                         p.date_stopped == null
                         && s.status == "TARV_SI"
                         && comp.ARV == true
                       select new
                       {
                           p.id_person,
                           q.idApt,
                           p.id_dream,
                           p.pe_surname,
                           p.pe_name,
                           p.pe_sex,
                           p.pe_dob,
                           e.date_apt_exe,
                           giorni = pre.vn2
                       }).ToList();

        var qry = (from a in qrye030
                   group a by new
                   {
                       a.id_person,
                       a.id_dream,
                       a.pe_surname,
                       a.pe_name,
                       a.pe_sex,
                       a.pe_dob,
                       a.idApt
                   } into g
                   where g.Max(p => p.date_apt_exe.Value.AddDays(Convert.ToDouble(p.giorni))) < datetmp030
                   select new
                   {
                       g.Key.id_person,
                       g.Key.idApt,
                       g.Key.id_dream,
                       g.Key.pe_surname,
                       g.Key.pe_name,
                       g.Key.pe_sex,
                       g.Key.pe_dob,
                       cop_tarv = (DateTime?)g.Max(p => p.date_apt_exe.Value.AddDays(Convert.ToDouble(p.giorni)))
                   }).ToDataTable();

        dt = qry;
        dt.TableName = "lst_data";

 

Ordine