Files
linqpad/DepartmentPatientCensus Analysis.linq
T

96 lines
4.1 KiB
C#

<Query Kind="Program">
<Connection>
<ID>463c2997-8a6a-4688-9575-6549e5215f7b</ID>
<Persist>true</Persist>
<Server>D0011-SQL-01.sdt.local</Server>
<Database>jazz tst CNE 20191210.1</Database>
<ShowServer>true</ShowServer>
</Connection>
<Reference>&lt;ProgramFilesX64&gt;\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll</Reference>
<NuGetReference>Amazon.Lambda.S3Events</NuGetReference>
<NuGetReference>AWSSDK.Core</NuGetReference>
<NuGetReference>AWSSDK.S3</NuGetReference>
<Namespace>Amazon</Namespace>
<Namespace>Amazon.Auth.AccessControlPolicy</Namespace>
<Namespace>Amazon.Auth.AccessControlPolicy.ActionIdentifiers</Namespace>
<Namespace>Amazon.Internal</Namespace>
<Namespace>Amazon.Lambda.S3Events</Namespace>
<Namespace>Amazon.MissingTypes</Namespace>
<Namespace>Amazon.Runtime</Namespace>
<Namespace>Amazon.Runtime.CredentialManagement</Namespace>
<Namespace>Amazon.Runtime.CredentialManagement.Internal</Namespace>
<Namespace>Amazon.Runtime.EventStreams</Namespace>
<Namespace>Amazon.Runtime.EventStreams.Internal</Namespace>
<Namespace>Amazon.Runtime.Internal</Namespace>
<Namespace>Amazon.Runtime.Internal.Auth</Namespace>
<Namespace>Amazon.Runtime.Internal.Settings</Namespace>
<Namespace>Amazon.Runtime.Internal.Transform</Namespace>
<Namespace>Amazon.Runtime.Internal.Util</Namespace>
<Namespace>Amazon.Runtime.SharedInterfaces</Namespace>
<Namespace>Amazon.Runtime.SharedInterfaces.Internal</Namespace>
<Namespace>Amazon.S3</Namespace>
<Namespace>Amazon.S3.Encryption</Namespace>
<Namespace>Amazon.S3.Encryption.Internal</Namespace>
<Namespace>Amazon.S3.Internal</Namespace>
<Namespace>Amazon.S3.IO</Namespace>
<Namespace>Amazon.S3.Model</Namespace>
<Namespace>Amazon.S3.Model.Internal.MarshallTransformations</Namespace>
<Namespace>Amazon.S3.Transfer</Namespace>
<Namespace>Amazon.S3.Util</Namespace>
<Namespace>Amazon.Util</Namespace>
<Namespace>Amazon.Util.Internal</Namespace>
<Namespace>Amazon.Util.Internal.PlatformServices</Namespace>
<Namespace>Newtonsoft.Json</Namespace>
<Namespace>Newtonsoft.Json.Converters</Namespace>
<Namespace>Newtonsoft.Json.Linq</Namespace>
<Namespace>Newtonsoft.Json.Schema</Namespace>
<Namespace>Newtonsoft.Json.Serialization</Namespace>
<Namespace>System</Namespace>
<Namespace>System.Diagnostics</Namespace>
<Namespace>System.Diagnostics.Tracing</Namespace>
<Namespace>System.IO.Compression</Namespace>
<Namespace>ThirdParty.BouncyCastle.Asn1</Namespace>
<Namespace>ThirdParty.BouncyCastle.Asn1.Utilities</Namespace>
<Namespace>ThirdParty.BouncyCastle.Math</Namespace>
<Namespace>ThirdParty.BouncyCastle.OpenSsl</Namespace>
<Namespace>ThirdParty.BouncyCastle.Utilities.IO.Pem</Namespace>
<Namespace>ThirdParty.Ionic.Zlib</Namespace>
<Namespace>ThirdParty.Json.LitJson</Namespace>
<Namespace>ThirdParty.MD5</Namespace>
</Query>
void Main()
{
var configurationGuid = Guid.Parse("880C4912-5A58-40B7-ADB1-1F9BD365E6AF");
var configuration = (from c in Configurations where c.ConfigurationGUID == configurationGuid select c).Single();
//configuration.Dump(nameof(configuration));
var baselineEndDate = configuration.WasteEndDate;
var baselineStartDate = baselineEndDate.AddYears(-1).AddDays(1);
(from dpc in DepartmentPatientCensus
where dpc.EnterTime < baselineEndDate && dpc.ExitTime > baselineStartDate
select new { dpc.RowID, dpc.DepartmentID, dpc.EncounterRecordNumber, dpc.EnterTime, dpc.ExitTime, dpc.IsNewborn, baselineStartDate, baselineEndDate })
.ToList()
.GroupBy(ed => new { ed.DepartmentID, ed.EnterTime.Year, ed.EnterTime.Month, ed.EnterTime.Day, ed.EnterTime.Hour }, (g, d) => d.Select(x => new
{
g.DepartmentID,
g.Year,
g.Month,
g.Day,
g.Hour,
newbornEncounters = d.Where(y => y.IsNewborn).Count(),
encounters = d.Where(y => !y.IsNewborn).Count()
}).First())
.Where(ed => new[] { 21398, 21915 }.Contains(ed.DepartmentID))
.GroupBy(ed => ed.DepartmentID, (g, d) => new
{
DepartmentId = g,
Data = d.OrderBy(ed => ed.Year)
.ThenBy(ed => ed.Month)
.ThenBy(ed => ed.Day)
.ThenBy(ed => ed.Hour)
})
.Dump();
}
// Define other methods and classes here