code View

id 59
Title Patients in TPI-TARV treatment in the period
Type evidenza
Highlight group filequery1013.cs, Gestione
Description
Code
       DateTime date_to1 = date_to.AddHours(23.99);

        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();

        //Calcolo l'ultimo inizio di terapia TPI per ciascun paziente prima della data di valutazione
        //(w.DataInizio.Value.Year <= date_to. & f.MaxDiData.Value.Month <= date_to & f.MaxDiData.Value.Day <= date_to)
        var qLastSStart = db.d_status
                                .AsNoTracking()
                                .Where(w => w.date_started < date_to1 && w.date_started > date_from && w.domain == "TBC_PRE_TPI" && w.status == "YES")
                                .GroupBy(g => g.id_person)
                                .Select(s => new
                                {
                                    idAnagrafica = s.Key,
                                    LastSStart = s.Max(m => m.date_started)
                                });


        //Pazienti in trattamento TPI alla fine del periodo
        var qry = (from a in db.d_person
                   from b in qLastSStart.Where(w => a.id_person == w.idAnagrafica)
                   from c in q_uvu.Where(w => a.id_person == w.id_person).DefaultIfEmpty()
                   where
                     b.LastSStart != null
                     && (a.date_stopped == null || a.date_stopped > date_to1)

                   select new
                   {
                       a.id_person,
                       c.idApt,
                       a.id_dream,
                       a.pe_surname,
                       a.pe_name,
                       a.pe_sex,
                       Data_Nascita = (a != null) ? a.pe_dob : (DateTime?)null,
                       AssistanceStartDate = (a != null) ? a.date_assistance_start : (DateTime?)null,
                       b.LastSStart,
                       a.pe_note

                   }).AsEnumerable();

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

 

Ordine