code View

id 9
Title EVI-CS09 /HIV+ children in PMTCT (Service not changed)
Type evidenza
Highlight group filequery1003.cs, Evidenze
Description children HIV+ still in MCPC_C service
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 datetmp = DateTime.Now.AddDays(-4380); //12 years
        var qry = (from p in db.d_person
                   from p_att in db.d_person_att.Where(w => w.id_person == p.id_person & w.domain == "A_PEOPL").DefaultIfEmpty()
                   from s in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "SERVICE" && w.active == true).DefaultIfEmpty()
                   from sh in db.d_status.Where(w => w.id_person == p.id_person && w.domain == "HIVST" && w.active == true).DefaultIfEmpty()
                   from q in q_uvu.Where(w => p.id_person == w.id_person).DefaultIfEmpty()
                   where
                     p.date_stopped == null &&
                     sh.status == "HIV_YES" &&
                     p_att.vt2 != null && //born in PTMC
                     p.pe_dob > datetmp && // < 12 years old
                     (s.status == "MCPC" || s.status == "MCPC_C")
                   select new
                   {
                       p.id_person,
                       q.idApt,
                       p.id_dream,
                       p.pe_surname,
                       p.pe_name,
                       p.pe_sex,
                       p.pe_dob,
                       p.date_started,
                       p.pe_note

                   }).AsEnumerable().Select(s => new
                   {
                       s.id_person,
                       s.idApt,
                       s.id_dream,
                       s.pe_surname,
                       s.pe_name,
                       s.pe_sex,
                       _data = (s.pe_dob.HasValue) ? s.pe_dob.Value.ToShortDateString() : "",
                       s.date_started,
                       s.pe_note
                   });

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

 

Ordine