134 lines
5.4 KiB
C#
134 lines
5.4 KiB
C#
<Query Kind="Statements">
|
|
<Connection>
|
|
<ID>77b65bea-e766-4e3c-a1ed-c4c2534b6019</ID>
|
|
<Persist>true</Persist>
|
|
<Server>D0001-SQL-01.sdt.local</Server>
|
|
<Database>jazz dev master</Database>
|
|
<ShowServer>true</ShowServer>
|
|
</Connection>
|
|
<Reference><ProgramFilesX64>\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.ComponentModel.Composition</Namespace>
|
|
<Namespace>System.ComponentModel.Composition.Hosting</Namespace>
|
|
<Namespace>System.ComponentModel.Composition.Primitives</Namespace>
|
|
<Namespace>System.ComponentModel.Composition.ReflectionModel</Namespace>
|
|
<Namespace>System.Diagnostics</Namespace>
|
|
<Namespace>System.Diagnostics.Tracing</Namespace>
|
|
<Namespace>System.IO.Compression</Namespace>
|
|
<Namespace>System.Net.Http</Namespace>
|
|
<Namespace>System.Net.Http.Headers</Namespace>
|
|
<Namespace>System.Numerics</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>
|
|
|
|
var grps = CaseTypeFamilyMappingICD10s
|
|
.Where(ctf => ctf.CaseTypeFamilyVersionID == 2)
|
|
.GroupBy(ctf => new { ctf.CaseTypeFamilyID, ctf.ICD10Code })
|
|
.OrderBy(grp => grp.Key.CaseTypeFamilyID)
|
|
.ThenBy(grp => grp.Key.ICD10Code)
|
|
.Select(grp => new { grp.Key.CaseTypeFamilyID, grp.Key.ICD10Code, count = grp.Count() });
|
|
|
|
var grpBreak = 100000;
|
|
var pageSize = 10000;
|
|
foreach (var grp in grps)
|
|
{
|
|
grp.Dump();
|
|
if (grp.count > grpBreak)
|
|
{
|
|
var subgrps = CaseTypeFamilyMappingICD10s
|
|
.Where(ctf => ctf.CaseTypeFamilyVersionID == 2)
|
|
.GroupBy(ctf => new { ctf.CaseTypeFamilyID, ctf.ICD10Code, ctf.MSDRGCode })
|
|
.OrderBy(subgrp => subgrp.Key.CaseTypeFamilyID)
|
|
.ThenBy(subgrp => subgrp.Key.ICD10Code)
|
|
.ThenBy(subgrp => subgrp.Key.MSDRGCode)
|
|
.Select(subgrp => new { subgrp.Key.CaseTypeFamilyID, subgrp.Key.ICD10Code, subgrp.Key.MSDRGCode, count = subgrp.Count() });
|
|
|
|
foreach (var subgrp in subgrps)
|
|
{
|
|
subgrp.Dump();
|
|
var subgrpremove = from mapping in CaseTypeFamilyMappingICD10s
|
|
where mapping.CaseTypeFamilyID == subgrp.CaseTypeFamilyID
|
|
&& mapping.ICD10Code == subgrp.ICD10Code
|
|
&& mapping.MSDRGCode == subgrp.MSDRGCode
|
|
&& mapping.CaseTypeFamilyVersionID == 2
|
|
select mapping;
|
|
|
|
if (subgrpremove.Any())
|
|
{
|
|
var pages = ((subgrp.count + (pageSize - 1)) / pageSize);
|
|
Enumerable.Range(0, pages).ToList()
|
|
.ForEach(page =>
|
|
{
|
|
$"{(page + 1)} of {pages}".Dump();
|
|
var workSet = subgrpremove.Skip(page * pageSize).Take(pageSize).ToList();
|
|
CaseTypeFamilyMappingICD10s.DeleteAllOnSubmit(workSet);
|
|
SubmitChanges();
|
|
});
|
|
}
|
|
}
|
|
continue;
|
|
}
|
|
var remove = from mapping in CaseTypeFamilyMappingICD10s
|
|
where mapping.CaseTypeFamilyID == grp.CaseTypeFamilyID
|
|
&& mapping.ICD10Code == grp.ICD10Code
|
|
&& mapping.CaseTypeFamilyVersionID == 2
|
|
select mapping;
|
|
|
|
if (remove.Any())
|
|
{
|
|
var pages = ((grp.count + (pageSize - 1)) / pageSize);
|
|
Enumerable.Range(0, pages).ToList()
|
|
.ForEach(page =>
|
|
{
|
|
$"{(page + 1)} of {pages}".Dump();
|
|
var workSet = remove.Skip(page * pageSize).Take(pageSize).ToList();
|
|
CaseTypeFamilyMappingICD10s.DeleteAllOnSubmit(workSet);
|
|
SubmitChanges();
|
|
});
|
|
}
|
|
} |