code View

id 43
Title Last status, Last service in the period
Type snippet
Highlight group
Description
Code
// EXAMPLE 1
// last SERVICE
var qLastSStart = db.d_status
             .AsNoTracking().AsEnumerable()
             .Where(w => w.date_started < date_to1 && w.domain == "SERVICE" 
                                                   && (w.deleted == null || !(bool)w.deleted))
             .GroupBy(g => g.id_person)
             .Select(s => new
             {
                 id_person = s.Key,
                 dati = s.MaxBy(m => m.date_started)
             }).ToList(); 



// EXAMPLE 2
// Last data for last status
var st = db.d_status
             .AsNoTracking()
             .Where(W => W.date_started <= date_to1 && W.domain == "TER_COT" 
                                                    && (w.deleted == null || !(bool)w.deleted))
             .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();



#EXAMPLE 3

//Last start for each patient before End of period date
  var qLastSStart = db.d_status
                      .AsNoTracking()
                      .Where(w => w.date_started < date_to1 && w.domain == "TARV" 
                                                            && w.status == "TARV_SI")
                      .GroupBy(g => g.id_person)
                      .Select(s => new
                      {
                         id_person = s.Key,
                         LastSStart = s.Max(m => m.date_started)
                      });

#EXAMPLE 4 (on d_events)

//las appointments
var _dataLastApp = db.d_events
                     .AsNoTracking()
                     .Where(w => w.domain == "APPOINTMENT" && w.event_status == "APE-002"                      
                            && w.event_type == "VISIT"         
                            && w.date_apt_exe != null
                            && (w.deleted == null || !(bool)w.deleted))
                     .GroupBy(o => new { o.id_person })
                     .Select(s => new
                      {
                        idAnagrafica = s.Key.id_person,
                        DataApt = s.Max(g => g.date_apt),
                      }).ToList();

 

Ordine 20