update readme
do Ward table missing critical clinical columns
This commit is contained in:
@@ -12,4 +12,11 @@ public record WardEncounterSummary(
|
||||
int QsofaScore,
|
||||
bool SepsisActive,
|
||||
SepsisBundleComplianceStatus? SepsisBundleStatus,
|
||||
int OpenAlertCount);
|
||||
int OpenAlertCount,
|
||||
int? SofaScore,
|
||||
int? SofaDelta,
|
||||
int? GcsScore,
|
||||
string? GcsClassification,
|
||||
DateTimeOffset? LastObservationAt,
|
||||
string AttendingPhysician,
|
||||
DateTimeOffset AdmittedAt);
|
||||
|
||||
@@ -97,12 +97,38 @@ public class EncounterService : IEncounterService
|
||||
.GroupBy(b => b.EncounterId)
|
||||
.ToDictionary(g => g.Key, g => g.First());
|
||||
|
||||
var sofaByEncounter = (await _db.SofaScores
|
||||
.AsNoTracking()
|
||||
.Where(s => encounterIds.Contains(s.EncounterId))
|
||||
.OrderByDescending(s => s.CalculatedAt)
|
||||
.ToListAsync())
|
||||
.GroupBy(s => s.EncounterId)
|
||||
.ToDictionary(g => g.Key, g => g.First());
|
||||
|
||||
var gcsByEncounter = (await _db.GcsScores
|
||||
.AsNoTracking()
|
||||
.Where(s => encounterIds.Contains(s.EncounterId))
|
||||
.OrderByDescending(s => s.CalculatedAt)
|
||||
.ToListAsync())
|
||||
.GroupBy(s => s.EncounterId)
|
||||
.ToDictionary(g => g.Key, g => g.First());
|
||||
|
||||
var lastObservationByEncounter = await _db.Observations
|
||||
.AsNoTracking()
|
||||
.Where(o => encounterIds.Contains(o.EncounterId))
|
||||
.GroupBy(o => o.EncounterId)
|
||||
.Select(g => new { EncounterId = g.Key, LastAt = g.Max(o => o.RecordedAt) })
|
||||
.ToDictionaryAsync(x => x.EncounterId, x => x.LastAt);
|
||||
|
||||
var summaries = new List<WardEncounterSummary>(encounters.Count);
|
||||
foreach (var encounter in encounters)
|
||||
{
|
||||
news2ByEncounter.TryGetValue(encounter.Id, out var news2);
|
||||
bundlesByEncounter.TryGetValue(encounter.Id, out var bundle);
|
||||
openAlertCounts.TryGetValue(encounter.Id, out var openCount);
|
||||
sofaByEncounter.TryGetValue(encounter.Id, out var sofa);
|
||||
gcsByEncounter.TryGetValue(encounter.Id, out var gcs);
|
||||
lastObservationByEncounter.TryGetValue(encounter.Id, out var lastObservationAt);
|
||||
|
||||
var qsofaScore = await _qsofa.GetActiveCriteriaCountAsync(encounter.Id);
|
||||
|
||||
@@ -120,7 +146,14 @@ public class EncounterService : IEncounterService
|
||||
qsofaScore,
|
||||
bundle is not null && bundle.ComplianceStatus != SepsisBundleComplianceStatus.Compliant,
|
||||
bundle?.ComplianceStatus,
|
||||
openCount));
|
||||
openCount,
|
||||
sofa?.TotalScore,
|
||||
sofa?.DeltaFromBaseline,
|
||||
gcs?.TotalScore,
|
||||
gcs?.Classification,
|
||||
lastObservationAt,
|
||||
encounter.AttendingPhysician,
|
||||
encounter.AdmittedAt));
|
||||
}
|
||||
|
||||
return new PagedResult<WardEncounterSummary>(summaries, page, pageSize, total);
|
||||
|
||||
Reference in New Issue
Block a user