Template
chore: deploy initial code base
This commit is contained in:
+297
@@ -0,0 +1,297 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Strata.ContinuousImprovement.Biz.DbContexts.Snowflake;
|
||||
using Strata.ContinuousImprovement.Biz.Exploration;
|
||||
using Strata.ContinuousImprovement.Biz.Exploration.CaseTypeFamilies;
|
||||
using Strata.ContinuousImprovement.Biz.Exploration.Filters;
|
||||
using Strata.ContinuousImprovement.Biz.FiscalMonths;
|
||||
using Strata.ContinuousImprovement.Biz.Test.Unit.Utilities;
|
||||
using Strata.ContinuousImprovement.Biz.Utilities;
|
||||
using Strata.ContinuousImprovement.JazzEntityFrameworkStub;
|
||||
using Strata.CoreLib.Claims;
|
||||
using Strata.StrataSphereCompare.Client;
|
||||
using Strata.StrataSphereCompare.Client.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using static Strata.ContinuousImprovement.Biz.Exploration.ExplorationService;
|
||||
using ExplorationFilter = Strata.ContinuousImprovement.Biz.Exploration.Filters.Filter;
|
||||
|
||||
namespace Strata.ContinuousImprovement.Biz.Test.Unit.Exploration
|
||||
{
|
||||
[TestFixture, Category("Unit")]
|
||||
public class ExplorationServiceBenchmarkingUnitTests
|
||||
{
|
||||
private const string FeatureFlagKey = "cibenchmarkingenabled";
|
||||
private const string CaseTypeFamilyName = "Sample CTF";
|
||||
|
||||
private Mock<ISnowflakeDatabaseContext> _snowflakeDatabaseContextMock;
|
||||
private Mock<IFiscalMonthResolver> _fiscalMonthResolverMock;
|
||||
private Mock<IClaimsPrincipalAccessor> _claimsPrincipalAccessorMock;
|
||||
private Mock<IStrataSphereCompareService> _strataSphereCompareServiceMock;
|
||||
private Mock<ILogger<ExplorationService>> _explorationServiceLoggerMock;
|
||||
private Mock<IExplorationFilterService> _explorationFilterServiceMock;
|
||||
|
||||
private ExplorationInfo _explorationInfo;
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void OneTimeSetUp()
|
||||
{
|
||||
_snowflakeDatabaseContextMock = new Mock<ISnowflakeDatabaseContext>();
|
||||
_fiscalMonthResolverMock = new Mock<IFiscalMonthResolver>();
|
||||
_explorationServiceLoggerMock = new Mock<ILogger<ExplorationService>>();
|
||||
|
||||
var principal = TestUtilities.GetClaimsPrincipalAccessor();
|
||||
var defaultUser = principal.GetCurrentClaimsPrincipal();
|
||||
_claimsPrincipalAccessorMock = new Mock<IClaimsPrincipalAccessor>();
|
||||
_claimsPrincipalAccessorMock.Setup(a => a.GetCurrentClaimsPrincipal()).Returns(defaultUser);
|
||||
|
||||
_strataSphereCompareServiceMock = new Mock<IStrataSphereCompareService>();
|
||||
_explorationFilterServiceMock = new Mock<IExplorationFilterService>();
|
||||
|
||||
// Setup ExplorationFilterService mock
|
||||
_explorationFilterServiceMock
|
||||
.Setup(s => s.GetFilterStringsAsync(It.IsAny<IEnumerable<FilterChipItem>>(), It.IsAny<IQueryParamBase>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(("", ""));
|
||||
_explorationFilterServiceMock
|
||||
.Setup(s => s.BuildDataFiltersAsync(It.IsAny<CaseTypeFamily>(), It.IsAny<string>(), It.IsAny<ExplorationFilter>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new CostDetailsFilterDto());
|
||||
|
||||
// Setup 1: For GetCaseTypeFamilySummariesAsync (no drill down filter)
|
||||
_strataSphereCompareServiceMock
|
||||
.Setup(s => s.GetCostDetailsAsync(
|
||||
It.IsAny<BaseComparisonParams>(),
|
||||
It.Is<CostDetailsFilterDto>(filter => filter.CostDetailsFilterDrillDown == null),
|
||||
It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new[]
|
||||
{
|
||||
new CostDetailsDto
|
||||
{
|
||||
AprDrgCaseTypeFamilyName = CaseTypeFamilyName,
|
||||
P50th_VariableDirectCost = 250.75m,
|
||||
P50th_Alos = 5.2m
|
||||
}
|
||||
});
|
||||
|
||||
// Setup 2: For GetCaseTypeFamilySummaryDetailsAsync (with drill down filter)
|
||||
_strataSphereCompareServiceMock
|
||||
.Setup(s => s.GetCostDetailsAsync(
|
||||
It.IsAny<BaseComparisonParams>(),
|
||||
It.Is<CostDetailsFilterDto>(filter => filter.CostDetailsFilterDrillDown != null),
|
||||
It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new[]
|
||||
{
|
||||
new CostDetailsDto
|
||||
{
|
||||
SphChargeCodeCostDriver = "LOS",
|
||||
P50th_VariableDirectCost = 150.50m,
|
||||
P50th_Alos = 3.2m
|
||||
},
|
||||
new CostDetailsDto
|
||||
{
|
||||
SphChargeCodeCostDriver = "Surgery",
|
||||
P50th_VariableDirectCost = 300.25m,
|
||||
P50th_Alos = 4.8m
|
||||
}
|
||||
});
|
||||
|
||||
// Summary Mock Data
|
||||
_snowflakeDatabaseContextMock
|
||||
.Setup(s => s.QueryAsync<CaseTypeFamilySummaryInfo>(
|
||||
It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>(), It.IsAny<TimeSpan>()))
|
||||
.ReturnsAsync(new[]
|
||||
{
|
||||
new CaseTypeFamilySummaryInfo { CaseTypeFamilyName = CaseTypeFamilyName }
|
||||
});
|
||||
|
||||
// Summary Detail Mock Data - for GetCaseTypeFamilySummaryDetailsAsync
|
||||
_snowflakeDatabaseContextMock
|
||||
.Setup(s => s.QueryAsync<CaseTypeFamilyEncounterInfo>(
|
||||
It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>(), It.IsAny<TimeSpan>()))
|
||||
.ReturnsAsync(new[]
|
||||
{
|
||||
new CaseTypeFamilyEncounterInfo
|
||||
{
|
||||
CaseTypeFamilyName = CaseTypeFamilyName,
|
||||
CostDriver = "LOS"
|
||||
},
|
||||
new CaseTypeFamilyEncounterInfo
|
||||
{
|
||||
CaseTypeFamilyName = CaseTypeFamilyName,
|
||||
CostDriver = "Surgery"
|
||||
}
|
||||
});
|
||||
|
||||
_explorationInfo = new ExplorationCostDriverInfo
|
||||
{
|
||||
CaseTypeFamilyId = 1,
|
||||
PeerGroupId = 1,
|
||||
ExclusionCriteria = new ExclusionCriteria
|
||||
{
|
||||
LosExclusionType = ExclusionCriteriaType.None,
|
||||
CostExclusionType = ExclusionCriteriaType.None
|
||||
},
|
||||
Filters = new ExplorationFilter // Use the alias
|
||||
{
|
||||
FilterChipItems = new List<FilterChipItem>
|
||||
{
|
||||
new FilterChipItem
|
||||
{
|
||||
ChipType = ChipType.DateRange,
|
||||
Key = ChipKey.DischargeDateID,
|
||||
DateRange = new List<DateTime>
|
||||
{
|
||||
new DateTime(2024, 1, 1),
|
||||
new DateTime(2024, 12, 31)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task GetCaseTypeFamilySummariesAsync_FeatureFlagOn_PopulatesPeerMetrics()
|
||||
{
|
||||
// Arrange
|
||||
var jazzFactory = new JazzEntityFrameworkFactory();
|
||||
await jazzFactory.CreateDbContextAsync(CancellationToken.None);
|
||||
|
||||
var featureFlagWrapper = Mock.Of<IFeatureFlagWrapper>();
|
||||
Mock.Get(featureFlagWrapper)
|
||||
.Setup(f => f.IsCiBenchmarkingEnabled(It.IsAny<bool>()))
|
||||
.ReturnsAsync(true);
|
||||
|
||||
var service = new ExplorationService(
|
||||
jazzFactory,
|
||||
_snowflakeDatabaseContextMock.Object,
|
||||
_fiscalMonthResolverMock.Object,
|
||||
featureFlagWrapper,
|
||||
_strataSphereCompareServiceMock.Object,
|
||||
_explorationFilterServiceMock.Object,
|
||||
_explorationServiceLoggerMock.Object);
|
||||
|
||||
// Act
|
||||
var summaries = await service.GetCaseTypeFamilySummariesAsync(_explorationInfo, CancellationToken.None);
|
||||
var summary = summaries.Single(s => s.Name == CaseTypeFamilyName);
|
||||
|
||||
// Assert
|
||||
Assert.That(summary.Data.PeerMedianCost, Is.EqualTo(250.75d));
|
||||
Assert.That(summary.Data.PeerMedianALos, Is.EqualTo(5.2d));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task GetCaseTypeFamilySummariesAsync_FeatureFlagOff_DefaultPeerMetrics()
|
||||
{
|
||||
// Arrange
|
||||
var jazzFactory = new JazzEntityFrameworkFactory();
|
||||
await jazzFactory.CreateDbContextAsync(CancellationToken.None);
|
||||
|
||||
var featureFlagWrapper = Mock.Of<IFeatureFlagWrapper>();
|
||||
Mock.Get(featureFlagWrapper)
|
||||
.Setup(f => f.IsCiBenchmarkingEnabled(It.IsAny<bool>()))
|
||||
.ReturnsAsync(false);
|
||||
|
||||
var service = new ExplorationService(
|
||||
jazzFactory,
|
||||
_snowflakeDatabaseContextMock.Object,
|
||||
_fiscalMonthResolverMock.Object,
|
||||
featureFlagWrapper,
|
||||
_strataSphereCompareServiceMock.Object,
|
||||
_explorationFilterServiceMock.Object,
|
||||
_explorationServiceLoggerMock.Object);
|
||||
|
||||
// Act
|
||||
var summaries = await service.GetCaseTypeFamilySummariesAsync(_explorationInfo, CancellationToken.None);
|
||||
var summary = summaries.Single(s => s.Name == CaseTypeFamilyName);
|
||||
|
||||
// Assert
|
||||
Assert.That(summary.Data.PeerMedianCost, Is.EqualTo(0d));
|
||||
Assert.That(summary.Data.PeerMedianALos, Is.EqualTo(0d));
|
||||
}
|
||||
|
||||
[Test, Ignore("Feature flag is not enabled, this might need additional refactoring")]
|
||||
public async Task GetCaseTypeFamilySummaryDetailsAsync_FeatureFlagOn_PopulatesPeerMetrics()
|
||||
{
|
||||
// Arrange
|
||||
var jazzFactory = new JazzEntityFrameworkFactory();
|
||||
await jazzFactory.CreateDbContextAsync(CancellationToken.None);
|
||||
|
||||
var featureFlagWrapper = Mock.Of<IFeatureFlagWrapper>();
|
||||
Mock.Get(featureFlagWrapper)
|
||||
.Setup(f => f.IsCiBenchmarkingEnabled(It.IsAny<bool>()))
|
||||
.ReturnsAsync(true);
|
||||
|
||||
var service = new ExplorationService(
|
||||
jazzFactory,
|
||||
_snowflakeDatabaseContextMock.Object,
|
||||
_fiscalMonthResolverMock.Object,
|
||||
featureFlagWrapper,
|
||||
_strataSphereCompareServiceMock.Object,
|
||||
_explorationFilterServiceMock.Object,
|
||||
_explorationServiceLoggerMock.Object);
|
||||
|
||||
// Act
|
||||
var summaries = await service.GetCaseTypeFamilySummaryDetailsAsync(_explorationInfo, CancellationToken.None);
|
||||
var summary = summaries.Single();
|
||||
|
||||
// Assert
|
||||
Assert.That(summary, Is.Not.Null);
|
||||
Assert.That(summary.Name, Is.EqualTo(CaseTypeFamilyName));
|
||||
Assert.That(summary.Children, Is.Not.Null.And.Not.Empty);
|
||||
|
||||
var losChild = summary.Children.FirstOrDefault(c => c.Name == "LOS");
|
||||
if (losChild != null)
|
||||
{
|
||||
Assert.That(losChild.Data.PeerMedianCost, Is.EqualTo(150.50d));
|
||||
}
|
||||
|
||||
var surgeryChild = summary.Children.FirstOrDefault(c => c.Name == "Surgery");
|
||||
if (surgeryChild != null)
|
||||
{
|
||||
Assert.That(surgeryChild.Data.PeerMedianCost, Is.EqualTo(300.25d));
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task GetCaseTypeFamilySummaryDetailsAsync_FeatureFlagOff_DefaultPeerMetrics()
|
||||
{
|
||||
// Arrange
|
||||
var jazzFactory = new JazzEntityFrameworkFactory();
|
||||
await jazzFactory.CreateDbContextAsync(CancellationToken.None);
|
||||
|
||||
var featureFlagWrapper = Mock.Of<IFeatureFlagWrapper>();
|
||||
Mock.Get(featureFlagWrapper)
|
||||
.Setup(f => f.IsCiBenchmarkingEnabled(It.IsAny<bool>()))
|
||||
.ReturnsAsync(false);
|
||||
|
||||
var service = new ExplorationService(
|
||||
jazzFactory,
|
||||
_snowflakeDatabaseContextMock.Object,
|
||||
_fiscalMonthResolverMock.Object,
|
||||
featureFlagWrapper,
|
||||
_strataSphereCompareServiceMock.Object,
|
||||
_explorationFilterServiceMock.Object,
|
||||
_explorationServiceLoggerMock.Object);
|
||||
|
||||
// Act
|
||||
var summaries = await service.GetCaseTypeFamilySummaryDetailsAsync(_explorationInfo as ExplorationCostDriverInfo, CancellationToken.None);
|
||||
var summary = summaries.Single();
|
||||
|
||||
// Assert
|
||||
Assert.That(summary, Is.Not.Null);
|
||||
Assert.That(summary.Name, Is.EqualTo(CaseTypeFamilyName));
|
||||
if (summary.Children != null && summary.Children.Any())
|
||||
{
|
||||
foreach (var child in summary.Children)
|
||||
{
|
||||
Assert.That(child.Data.PeerMedianCost, Is.EqualTo(0d));
|
||||
Assert.That(child.Data.PeerMedianALos, Is.EqualTo(0d));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+316
@@ -0,0 +1,316 @@
|
||||
using DocumentFormat.OpenXml.Wordprocessing;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using MoreLinq;
|
||||
using NUnit.Framework;
|
||||
using Strata.ContinuousImprovement.Biz.Configuration;
|
||||
using Strata.ContinuousImprovement.Biz.DbContexts;
|
||||
using Strata.ContinuousImprovement.Biz.DbContexts.Snowflake;
|
||||
using Strata.ContinuousImprovement.Biz.Exploration;
|
||||
using Strata.ContinuousImprovement.Biz.Exploration.CaseTypeFamilies;
|
||||
using Strata.ContinuousImprovement.Biz.Exploration.Filters;
|
||||
using Strata.ContinuousImprovement.Biz.FiscalMonths;
|
||||
using Strata.ContinuousImprovement.Biz.Test.Unit.Utilities;
|
||||
using Strata.ContinuousImprovement.Biz.Utilities;
|
||||
using Strata.ContinuousImprovement.JazzEntityFrameworkStub;
|
||||
using Strata.SqlTools.Configuration.Common.AsyncFactory;
|
||||
using Strata.StrataSphereCompare.Client;
|
||||
using Strata.StrataSphereCompare.Client.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using VerifyNUnit;
|
||||
using VerifyTests;
|
||||
using static Strata.ContinuousImprovement.Biz.Exploration.ExplorationService;
|
||||
using ExplorationFilter = Strata.ContinuousImprovement.Biz.Exploration.Filters.Filter;
|
||||
|
||||
namespace Strata.ContinuousImprovement.Biz.Test.Unit.Exploration
|
||||
{
|
||||
[TestFixture, Category("Unit")]
|
||||
public class ExplorationServiceTest
|
||||
{
|
||||
private const string SourceFilePath = @"Exploration/source/";
|
||||
|
||||
public IAsyncDbContextFactory<JazzDbContext> DbContextFactory { get; set; }
|
||||
public JazzEntityFrameworkFactory JAZZ_Framework { get; set; }
|
||||
public JazzDbContext JazzDbContext { get; set; }
|
||||
public ISqlGridReaderWrapper SqlGridReader { get; set; }
|
||||
public ISnowflakeDatabaseContext SnowflakeDatabaseContext { get; set; }
|
||||
public IConfigurationService ConfigurationService { get; set; }
|
||||
public IFiscalMonthResolver FiscalMonthResolver { get; set; }
|
||||
public ILogger<ExplorationService> Logger { get; set; }
|
||||
public VerifySettings VerifySettings { get; set; }
|
||||
public IFeatureFlagWrapper FeatureFlagWrapper { get; set; }
|
||||
public IStrataSphereCompareService StrataSphereCompareService { get; set; }
|
||||
public IExplorationFilterService ExplorationFilterService { get; set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void ExplorationServiceTestOneTimeSetUp()
|
||||
{
|
||||
DbContextFactory = Mock.Of<IAsyncDbContextFactory<JazzDbContext>>();
|
||||
JAZZ_Framework = new JazzEntityFrameworkFactory();
|
||||
|
||||
Mock.Get(DbContextFactory)
|
||||
.Setup(s => s.CreateDbContextAsync(It.IsAny<CancellationToken>()))
|
||||
.Returns(async () =>
|
||||
{
|
||||
JazzDbContext = await JAZZ_Framework.CreateDbContextAsync(CancellationToken.None);
|
||||
return JazzDbContext;
|
||||
});
|
||||
|
||||
SqlGridReader = Mock.Of<ISqlGridReaderWrapper>();
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read(It.IsAny<bool>()))
|
||||
.Returns(Enumerable.Empty<dynamic>());
|
||||
SnowflakeDatabaseContext = Mock.Of<ISnowflakeDatabaseContext>();
|
||||
Mock.Get(SnowflakeDatabaseContext)
|
||||
.Setup(s => s.QueryMultipleAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>(), It.IsAny<TimeSpan>()))
|
||||
.Returns(Task.FromResult(SqlGridReader));
|
||||
|
||||
ConfigurationService = Mock.Of<IConfigurationService>();
|
||||
FiscalMonthResolver = Mock.Of<IFiscalMonthResolver>();
|
||||
Logger = Mock.Of<ILogger<ExplorationService>>();
|
||||
VerifySettings = TestExtensions.TestSettings();
|
||||
FeatureFlagWrapper = Mock.Of<IFeatureFlagWrapper>();
|
||||
StrataSphereCompareService = Mock.Of<IStrataSphereCompareService>();
|
||||
ExplorationFilterService = Mock.Of<IExplorationFilterService>();
|
||||
|
||||
// Setup the mock to return empty results
|
||||
Mock.Get(ExplorationFilterService)
|
||||
.Setup(s => s.GetFilterStringsAsync(It.IsAny<IEnumerable<FilterChipItem>>(), It.IsAny<IQueryParamBase>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(("", ""));
|
||||
Mock.Get(ExplorationFilterService)
|
||||
.Setup(s => s.BuildDataFiltersAsync(It.IsAny<CaseTypeFamily>(), It.IsAny<string>(), It.IsAny<ExplorationFilter>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new CostDetailsFilterDto());
|
||||
Mock.Get(ExplorationFilterService)
|
||||
.Setup(s => s.CreateCostDriverFilter())
|
||||
.Returns(new FilterChipItem());
|
||||
Mock.Get(FeatureFlagWrapper)
|
||||
.Setup(f => f.IsCiBenchmarkingEnabled(It.IsAny<bool>()))
|
||||
.ReturnsAsync(true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
[TestCaseSource(nameof(GetCaseTypeFamilyDetailsTestCases))]
|
||||
public async Task GetCaseTypeFamilyDetailsTest(GetCaseTypeFamilyDetailsTestData data)
|
||||
{
|
||||
// arrange
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<CTFGroupCalcs>(It.IsAny<bool>()))
|
||||
.Returns(data.CTFGroupCalcsList);
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<EntityGroupCalcs>(It.IsAny<bool>()))
|
||||
.Returns(data.EntityGroupCalcsList);
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<EntityCodeGroupCalcs>(It.IsAny<bool>()))
|
||||
.Returns(data.EntityCodeGroupCalcsList);
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<EntityCodePhysicianGroupCalcs>(It.IsAny<bool>()))
|
||||
.Returns(data.EntityCodePhysicianGroupCalcsList);
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<CTFEncounterDetail>(It.IsAny<bool>()))
|
||||
.Returns(data.CTFEncounterDetailList);
|
||||
|
||||
var explorationService = new ExplorationService(
|
||||
DbContextFactory,
|
||||
SnowflakeDatabaseContext,
|
||||
FiscalMonthResolver,
|
||||
FeatureFlagWrapper,
|
||||
StrataSphereCompareService,
|
||||
ExplorationFilterService,
|
||||
Logger);
|
||||
|
||||
// act
|
||||
var taskResult = await explorationService.GetCaseTypeFamilyDetailsAsync(data.ExplorationDetailInfoData, CancellationToken.None);
|
||||
|
||||
// assert
|
||||
await Verifier.Verify(taskResult, VerifySettings)
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
[TestCaseSource(nameof(GetEncountersTestCases))]
|
||||
public async Task GetEncountersTest(GetEncountersTestData data)
|
||||
{
|
||||
// arrange
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<PhysicianInfo>(It.IsAny<bool>()))
|
||||
.Returns(data.PhysicianInfoList);
|
||||
Mock.Get(SqlGridReader)
|
||||
.Setup(s => s.Read<EncounterInfoBase>(It.IsAny<bool>()))
|
||||
.Returns(data.EncounterInfoBaseList);
|
||||
var configurationGuid = Guid.Empty;
|
||||
|
||||
var explorationService = new ExplorationService(
|
||||
DbContextFactory,
|
||||
SnowflakeDatabaseContext,
|
||||
FiscalMonthResolver,
|
||||
FeatureFlagWrapper,
|
||||
StrataSphereCompareService,
|
||||
ExplorationFilterService,
|
||||
Logger);
|
||||
|
||||
// act
|
||||
var taskResult = await explorationService.GetEncountersAsync(data.ExplorationDetailInfoData, configurationGuid, CancellationToken.None);
|
||||
|
||||
// assert
|
||||
await Verifier.Verify(taskResult, VerifySettings)
|
||||
.UseFileName(TestContext.CurrentContext.TestName());
|
||||
}
|
||||
|
||||
private static IEnumerable<TestCaseData> GetCaseTypeFamilyDetailsTestCases()
|
||||
{
|
||||
var testName = "GetCaseTypeFamilyDetailsTest";
|
||||
|
||||
var explorationDetailInfoDataJson = GetSourceFile("ExplorationDetailInfo.txt");
|
||||
var ctfGroupCalcsListJson = GetSourceFile("CTFGroupCalcs.txt");
|
||||
var entityGroupCalcsListJson = GetSourceFile("EntityGroupCalcs.txt");
|
||||
var entityCodeGroupCalcsListJson = GetSourceFile("EntityCodeGroupCalcs.txt");
|
||||
var entityCodePhysicianGroupCalcsListJson = GetSourceFile("EntityCodePhysicianGroupCalcs.txt");
|
||||
var ctfEncounterDetailListJson = GetSourceFile("CTFEncounterDetail.txt");
|
||||
|
||||
var dataAllMatch = new GetCaseTypeFamilyDetailsTestData()
|
||||
{
|
||||
ExplorationDetailInfoData = JsonSerializer.Deserialize<ExplorationDetailInfo>(explorationDetailInfoDataJson),
|
||||
CTFGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<CTFGroupCalcs>>(ctfGroupCalcsListJson),
|
||||
EntityGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<EntityGroupCalcs>>(entityGroupCalcsListJson),
|
||||
EntityCodeGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<EntityCodeGroupCalcs>>(entityCodeGroupCalcsListJson),
|
||||
EntityCodePhysicianGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<EntityCodePhysicianGroupCalcs>>(entityCodePhysicianGroupCalcsListJson),
|
||||
CTFEncounterDetailList = JsonSerializer.Deserialize<IEnumerable<CTFEncounterDetail>>(ctfEncounterDetailListJson)
|
||||
};
|
||||
dataAllMatch.ExplorationDetailInfoData.Filters = new ExplorationFilter() // FIXED: Changed from Biz.Exploration.Filters.Filter to ExplorationFilter
|
||||
{
|
||||
FilterChipItems = new List<FilterChipItem>()
|
||||
{
|
||||
new FilterChipItem {
|
||||
ChipType = ChipType.DateRange, Key = ChipKey.DischargeDateID,
|
||||
DateRange = new List<DateTime>()
|
||||
{
|
||||
new DateTime(2024, 1, 1),
|
||||
new DateTime(2024, 12, 31)
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
yield return new TestCaseData(dataAllMatch)
|
||||
.SetName($"{testName} All Match");
|
||||
|
||||
var dataPhysicianIdNotMatch = new GetCaseTypeFamilyDetailsTestData()
|
||||
{
|
||||
ExplorationDetailInfoData = dataAllMatch.ExplorationDetailInfoData,
|
||||
CTFGroupCalcsList = dataAllMatch.CTFGroupCalcsList,
|
||||
EntityGroupCalcsList = dataAllMatch.EntityGroupCalcsList,
|
||||
EntityCodeGroupCalcsList = dataAllMatch.EntityCodeGroupCalcsList,
|
||||
EntityCodePhysicianGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<EntityCodePhysicianGroupCalcs>>(entityCodePhysicianGroupCalcsListJson),
|
||||
CTFEncounterDetailList = dataAllMatch.CTFEncounterDetailList
|
||||
};
|
||||
dataPhysicianIdNotMatch.EntityCodePhysicianGroupCalcsList.First().PhysicianId = 0;
|
||||
yield return new TestCaseData(dataPhysicianIdNotMatch)
|
||||
.SetName($"{testName} PhysicianId Not Match");
|
||||
|
||||
var dataCodeNotMatch = new GetCaseTypeFamilyDetailsTestData()
|
||||
{
|
||||
ExplorationDetailInfoData = dataAllMatch.ExplorationDetailInfoData,
|
||||
CTFGroupCalcsList = dataAllMatch.CTFGroupCalcsList,
|
||||
EntityGroupCalcsList = dataAllMatch.EntityGroupCalcsList,
|
||||
EntityCodeGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<EntityCodeGroupCalcs>>(entityCodeGroupCalcsListJson),
|
||||
EntityCodePhysicianGroupCalcsList = dataAllMatch.EntityCodePhysicianGroupCalcsList,
|
||||
CTFEncounterDetailList = dataAllMatch.CTFEncounterDetailList
|
||||
};
|
||||
dataCodeNotMatch.EntityCodeGroupCalcsList.First().Code = "";
|
||||
yield return new TestCaseData(dataCodeNotMatch)
|
||||
.SetName($"{testName} Code Not Match");
|
||||
|
||||
var dataEntityNotMatch = new GetCaseTypeFamilyDetailsTestData()
|
||||
{
|
||||
ExplorationDetailInfoData = dataAllMatch.ExplorationDetailInfoData,
|
||||
CTFGroupCalcsList = dataAllMatch.CTFGroupCalcsList,
|
||||
EntityGroupCalcsList = JsonSerializer.Deserialize<IEnumerable<EntityGroupCalcs>>(entityGroupCalcsListJson),
|
||||
EntityCodeGroupCalcsList = dataAllMatch.EntityCodeGroupCalcsList,
|
||||
EntityCodePhysicianGroupCalcsList = dataAllMatch.EntityCodePhysicianGroupCalcsList,
|
||||
CTFEncounterDetailList = dataAllMatch.CTFEncounterDetailList
|
||||
};
|
||||
dataEntityNotMatch.EntityGroupCalcsList.First().EntityId = 0;
|
||||
yield return new TestCaseData(dataEntityNotMatch)
|
||||
.SetName($"{testName} Entity Not Match");
|
||||
}
|
||||
|
||||
private static IEnumerable<TestCaseData> GetEncountersTestCases()
|
||||
{
|
||||
var testName = "GetEncountersTest";
|
||||
|
||||
var explorationDetailInfoDataJson = GetSourceFile("ExplorationDetailInfo.txt");
|
||||
var physicianInfoJson = GetSourceFile("PhysicianInfo.txt");
|
||||
var encounterInfoBaseJson = GetSourceFile("EncounterInfoBase.txt");
|
||||
|
||||
var dataAllMatch = new GetEncountersTestData()
|
||||
{
|
||||
ExplorationDetailInfoData = JsonSerializer.Deserialize<ExplorationDetailInfo>(explorationDetailInfoDataJson),
|
||||
PhysicianInfoList = JsonSerializer.Deserialize<IEnumerable<PhysicianInfo>>(physicianInfoJson),
|
||||
EncounterInfoBaseList = JsonSerializer.Deserialize<IEnumerable<EncounterInfoBase>>(encounterInfoBaseJson)
|
||||
};
|
||||
|
||||
dataAllMatch.ExplorationDetailInfoData.Filters = new ExplorationFilter() // FIXED: Changed from Biz.Exploration.Filters.Filter to ExplorationFilter
|
||||
{
|
||||
FilterChipItems = new List<FilterChipItem>()
|
||||
{
|
||||
new FilterChipItem {
|
||||
ChipType = ChipType.DateRange, Key = ChipKey.DischargeDateID,
|
||||
DateRange = new List<DateTime>()
|
||||
{
|
||||
new DateTime(2024, 1, 1),
|
||||
new DateTime(2024, 12, 31)
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
yield return new TestCaseData(dataAllMatch)
|
||||
.SetName($"{testName} All Match");
|
||||
|
||||
var dataPhysicianIdNotMatch = new GetEncountersTestData()
|
||||
{
|
||||
ExplorationDetailInfoData = dataAllMatch.ExplorationDetailInfoData,
|
||||
PhysicianInfoList = JsonSerializer.Deserialize<IEnumerable<PhysicianInfo>>(physicianInfoJson),
|
||||
EncounterInfoBaseList = dataAllMatch.EncounterInfoBaseList,
|
||||
};
|
||||
dataPhysicianIdNotMatch.PhysicianInfoList.First().PhysicianID = 0;
|
||||
yield return new TestCaseData(dataPhysicianIdNotMatch)
|
||||
.SetName($"{testName} PhysicianId Not Match");
|
||||
}
|
||||
|
||||
private static string GetSourceFile(string file)
|
||||
{
|
||||
string filePath = Path.Combine(TestHelper.TestsRootDirectory, SourceFilePath, file);
|
||||
string jsonData = File.ReadAllText(filePath);
|
||||
return jsonData;
|
||||
}
|
||||
|
||||
public class GetCaseTypeFamilySummariesTestData
|
||||
{
|
||||
public ExplorationInfo ExplorationInfoData { get; set; }
|
||||
public IEnumerable<CaseTypeFamilyEncounterInfo> CaseTypeFamilyEncounterInfoList { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class GetCaseTypeFamilyDetailsTestData
|
||||
{
|
||||
public ExplorationDetailInfo ExplorationDetailInfoData { get; set; }
|
||||
public IEnumerable<CTFGroupCalcs> CTFGroupCalcsList { get; set; }
|
||||
public IEnumerable<EntityGroupCalcs> EntityGroupCalcsList { get; set; }
|
||||
public IEnumerable<EntityCodeGroupCalcs> EntityCodeGroupCalcsList { get; set; }
|
||||
public IEnumerable<EntityCodePhysicianGroupCalcs> EntityCodePhysicianGroupCalcsList { get; set; }
|
||||
public IEnumerable<CTFEncounterDetail> CTFEncounterDetailList { get; set; }
|
||||
}
|
||||
|
||||
public class GetEncountersTestData
|
||||
{
|
||||
public ExplorationDetailInfo ExplorationDetailInfoData { get; set; }
|
||||
public IEnumerable<PhysicianInfo> PhysicianInfoList { get; set; }
|
||||
public IEnumerable<EncounterInfoBase> EncounterInfoBaseList { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
[
|
||||
{
|
||||
"EncounterId": 24375411,
|
||||
"EncounterRecordNumber": "1024375411",
|
||||
"CTFType": 0,
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 3339,
|
||||
"LengthOfStay": 5,
|
||||
"VariableDirectCost": 208.1365,
|
||||
"IdentifiedVariation": 148.89435,
|
||||
"Charges": 4045.0814,
|
||||
"IsExpired": 0,
|
||||
"IsExcluded": false,
|
||||
"DischargeStatusCode": "06",
|
||||
"DischargeStatusDescription": "Discharged/transferred to home under care of an organized home health service organization in anticipation of covered skilled care"
|
||||
},
|
||||
{
|
||||
"EncounterId": 26713064,
|
||||
"EncounterRecordNumber": "1026713064",
|
||||
"CTFType": 0,
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 3474,
|
||||
"LengthOfStay": 3,
|
||||
"VariableDirectCost": 71.8018,
|
||||
"IdentifiedVariation": 12.559649999999998,
|
||||
"Charges": 985.8658,
|
||||
"IsExpired": 0,
|
||||
"IsExcluded": false,
|
||||
"DischargeStatusCode": "01",
|
||||
"DischargeStatusDescription": "Discharged to home or self care (routine discharge)"
|
||||
},
|
||||
{
|
||||
"EncounterId": 27090900,
|
||||
"EncounterRecordNumber": "1027090900",
|
||||
"CTFType": 0,
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 794,
|
||||
"LengthOfStay": 15,
|
||||
"VariableDirectCost": 5.0037,
|
||||
"IdentifiedVariation": -54.23845,
|
||||
"Charges": 384.65,
|
||||
"IsExpired": 0,
|
||||
"IsExcluded": true,
|
||||
"DischargeStatusCode": "03",
|
||||
"DischargeStatusDescription": "Discharged/transferred to Skilled Nursing Facility (SNF) with Medicare certification"
|
||||
},
|
||||
{
|
||||
"EncounterId": 28432227,
|
||||
"EncounterRecordNumber": "1028432227",
|
||||
"CTFType": 0,
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 3896,
|
||||
"LengthOfStay": 7,
|
||||
"VariableDirectCost": 46.6825,
|
||||
"IdentifiedVariation": -12.559650000000005,
|
||||
"Charges": 996.8704,
|
||||
"IsExpired": 0,
|
||||
"IsExcluded": true,
|
||||
"DischargeStatusCode": "03",
|
||||
"DischargeStatusDescription": "Discharged/transferred to Skilled Nursing Facility (SNF) with Medicare certification"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,7 @@
|
||||
[
|
||||
{
|
||||
"CTFId": 206,
|
||||
"CTFName": "Acute Adjustment Reaction And Psychosocial Dysfunction",
|
||||
"MedianVDC": 59.24215
|
||||
}
|
||||
]
|
||||
+596
@@ -0,0 +1,596 @@
|
||||
[
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "Laboratory",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 270.5061,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 283.5443,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 554.0504,
|
||||
"Charges": 11265.2698,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "Excluded",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 0.2644,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 0.2644,
|
||||
"Charges": 49.0752,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "OR Time",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": -15.31945,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 1066.93575,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 1051.6163,
|
||||
"Charges": 17348.9676,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "Supplies",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": -74.0283,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 275.0648,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 201.0365,
|
||||
"Charges": 908.8934,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "Pharmacy",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": -15.66025,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 120.94545,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 105.2852,
|
||||
"Charges": 1801.1414,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 0,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 0,
|
||||
"Charges": 0,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "Cardiovascular",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 5.0037,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 5.0037,
|
||||
"Charges": 393.3321,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 6654,
|
||||
"CaseTypeFamilyName": "Endoscopy Procedures on the Mediastinum",
|
||||
"Vdc": 2038.5242,
|
||||
"MedianVdc": 1931.0259,
|
||||
"TwentyFivePercentileVdc": 1877.27675,
|
||||
"SeventyFivePercentileVdc": 1984.77505,
|
||||
"TwentyFivePercentileLos": 0,
|
||||
"SeventyFivePercentileLos": 0,
|
||||
"CostDriver": "Therapeutic Services",
|
||||
"EncounterId": 2562780,
|
||||
"DischargeDateTime": "2023-01-17T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": -60.63385,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 0,
|
||||
"MedianLengthOfStay": 0,
|
||||
"MedianVariableDirectCost": 181.90155,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 121.2677,
|
||||
"Charges": 320.4913,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 0,
|
||||
"IqrVdc": 107.4983,
|
||||
"MadLos": 0,
|
||||
"MadVdc": 159.37698,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Pharmacy",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 373.0302,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 373.0302,
|
||||
"Charges": 11782.8149,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Supplies",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": -19.7357,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 87.3104,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 67.5747,
|
||||
"Charges": 254.2575,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "OR Time",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 680.5711,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 680.5711,
|
||||
"Charges": 12771.463,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "LOS",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 357.1267,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 1747.5269,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 2104.6536,
|
||||
"Charges": 29186.0674,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Other Diagnostic Services",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 37.18375,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 113.54845,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 150.7322,
|
||||
"Charges": 3224.1159,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 0,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 0,
|
||||
"Charges": 0,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Laboratory",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 123.2207,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 123.2207,
|
||||
"Charges": 5503.8051,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Therapeutic Services",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 245.3111,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 473.0037,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 718.3148,
|
||||
"Charges": 7026.8907,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Imaging",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": 0,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 37.5413,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 37.5413,
|
||||
"Charges": 690.5777,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
},
|
||||
{
|
||||
"CaseTypeFamilyId": 592,
|
||||
"CaseTypeFamilyName": "Skin Debridement",
|
||||
"Vdc": 4353.6024,
|
||||
"MedianVdc": 4353.6024,
|
||||
"TwentyFivePercentileVdc": 2983.74705,
|
||||
"SeventyFivePercentileVdc": 4525.49485,
|
||||
"TwentyFivePercentileLos": 4.5,
|
||||
"SeventyFivePercentileLos": 9.5,
|
||||
"CostDriver": "Excluded",
|
||||
"EncounterId": 2565425,
|
||||
"DischargeDateTime": "2023-02-02T00:00:00Z",
|
||||
"EncounterRecordNumber": null,
|
||||
"EntityId": 0,
|
||||
"IdentifiedVariation": -49.1141,
|
||||
"IsExpired": 0,
|
||||
"LengthOfStay": 12,
|
||||
"MedianLengthOfStay": 7,
|
||||
"MedianVariableDirectCost": 147.0779,
|
||||
"MedianGrossCharges": 0,
|
||||
"VariableDirectCost": 97.9638,
|
||||
"Charges": 1718.5171,
|
||||
"IsExcluded": false,
|
||||
"IqrLos": 5,
|
||||
"IqrVdc": 1541.7478,
|
||||
"MadLos": 7.413,
|
||||
"MadVdc": 509.6955,
|
||||
"DischargeStatusCode": null,
|
||||
"DischargeStatusDescription": null,
|
||||
"MortalityRate": 0,
|
||||
"ROM": 0,
|
||||
"SOI": 0
|
||||
}
|
||||
]
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
[
|
||||
{
|
||||
"EncounterId": 3490618,
|
||||
"EncounterRecordNumber": "1003490618",
|
||||
"PhysicianID": 3845,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 15,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-02-18T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 21268418,
|
||||
"EncounterRecordNumber": "1021268418",
|
||||
"PhysicianID": 3939,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 2,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-04-07T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 21269053,
|
||||
"EncounterRecordNumber": "1021269053",
|
||||
"PhysicianID": 2986,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 14,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-01-28T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 21366384,
|
||||
"EncounterRecordNumber": "1021366384",
|
||||
"PhysicianID": 1370,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 12,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-03-01T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 21549774,
|
||||
"EncounterRecordNumber": "1021549774",
|
||||
"PhysicianID": 3153,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 13,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 1,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-02-15T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 22931559,
|
||||
"EncounterRecordNumber": "1022931559",
|
||||
"PhysicianID": 4446,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 11,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-05-21T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 23497650,
|
||||
"EncounterRecordNumber": "1023497650",
|
||||
"PhysicianID": 842,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 8,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-05-14T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 24240851,
|
||||
"EncounterRecordNumber": "1024240851",
|
||||
"PhysicianID": 720,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 3,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-06-24T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 25272685,
|
||||
"EncounterRecordNumber": "1025272685",
|
||||
"PhysicianID": 3481,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 3,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-07-13T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 25954564,
|
||||
"EncounterRecordNumber": "1025954564",
|
||||
"PhysicianID": 842,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 2,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-08-04T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 25971328,
|
||||
"EncounterRecordNumber": "1025971328",
|
||||
"PhysicianID": 3343,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 2,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-07-25T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 27006329,
|
||||
"EncounterRecordNumber": "1027006329",
|
||||
"PhysicianID": 4269,
|
||||
"AgeCohortID": 3,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 2,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-10-01T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 29625457,
|
||||
"EncounterRecordNumber": "1029625457",
|
||||
"PhysicianID": 842,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 2,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 9,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-11-24T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
},
|
||||
{
|
||||
"EncounterId": 30059663,
|
||||
"EncounterRecordNumber": "1030059663",
|
||||
"PhysicianID": 24764,
|
||||
"AgeCohortID": 4,
|
||||
"EntityID": 13,
|
||||
"ServiceLineID": 13,
|
||||
"LengthOfStay": 6,
|
||||
"IsQVIEncounter": false,
|
||||
"DischargeDateTime": "2023-11-19T00:00:00Z",
|
||||
"IsExcluded": false
|
||||
}
|
||||
]
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
[
|
||||
{
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"CodeName": "880 - ACUTE ADJUSTMENT REACTION AND PSYCHOSOCIAL DYSFUNCTION",
|
||||
"MedianVDC": 59.24215,
|
||||
"MedianLOS": 6,
|
||||
"MedianCharges": 991.3681,
|
||||
"Id": "880",
|
||||
"Name": "880 - ACUTE ADJUSTMENT REACTION AND PSYCHOSOCIAL DYSFUNCTION"
|
||||
}
|
||||
]
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
[
|
||||
{
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 3474,
|
||||
"PhysicianName": "KLAPPERICH CORDELL",
|
||||
"MedianVDC": 71.8018,
|
||||
"MedianLOS": 3,
|
||||
"MedianCharges": 985.8658,
|
||||
"Id": "3474",
|
||||
"Name": "KLAPPERICH CORDELL"
|
||||
},
|
||||
{
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 3896,
|
||||
"PhysicianName": "HARTSE FRANKIE",
|
||||
"MedianVDC": 46.6825,
|
||||
"MedianLOS": 7,
|
||||
"MedianCharges": 996.8704,
|
||||
"Id": "3896",
|
||||
"Name": "HARTSE FRANKIE"
|
||||
},
|
||||
{
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 794,
|
||||
"PhysicianName": "DIAZDELEON HIPOLITO",
|
||||
"MedianVDC": 5.0037,
|
||||
"MedianLOS": 15,
|
||||
"MedianCharges": 384.65,
|
||||
"Id": "794",
|
||||
"Name": "DIAZDELEON HIPOLITO"
|
||||
},
|
||||
{
|
||||
"EntityId": 93,
|
||||
"Code": "880",
|
||||
"PhysicianId": 3339,
|
||||
"PhysicianName": "HATZENBUHLER SCOTTY",
|
||||
"MedianVDC": 208.1365,
|
||||
"MedianLOS": 5,
|
||||
"MedianCharges": 4045.0814,
|
||||
"Id": "3339",
|
||||
"Name": "HATZENBUHLER SCOTTY"
|
||||
}
|
||||
]
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
[
|
||||
{
|
||||
"EntityId": 93,
|
||||
"EntityName": "10 - Northern Valley Medical Center",
|
||||
"MedianVDC": 59.24215,
|
||||
"MedianLOS": 6,
|
||||
"MedianCharges": 991.3681,
|
||||
"Id": "93",
|
||||
"Name": "10 - Northern Valley Medical Center"
|
||||
}
|
||||
]
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"CaseTypeFamilyId": 206,
|
||||
"CostDriver": "Cardiovascular",
|
||||
"CodeType": null,
|
||||
"ExcludedEncounters": [],
|
||||
"IncludedEncounters": [],
|
||||
"ConfigurationGuid": "aa4cba4f-2506-462c-8e34-c45b21653988",
|
||||
"ExclusionCriteria": {
|
||||
"LosExclusionType": 0,
|
||||
"LosExclusionValue": 0,
|
||||
"CostExclusionType": 0,
|
||||
"CostExclusionValue": 0
|
||||
},
|
||||
"Filters": {
|
||||
"DischargeDateStart": "2023-01-01T00:00:00",
|
||||
"DischargeDateEnd": "2023-12-31T00:00:00",
|
||||
"FilterChipItems": []
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"ConfigurationGuid": "aa4cba4f-2506-462c-8e34-c45b21653988",
|
||||
"ExclusionCriteria": {
|
||||
"LosExclusionType": 0,
|
||||
"LosExclusionValue": 0,
|
||||
"CostExclusionType": 0,
|
||||
"CostExclusionValue": 0
|
||||
},
|
||||
"Filters": {
|
||||
"DischargeDateStart": "2023-01-01T00:00:00",
|
||||
"DischargeDateEnd": "2023-12-31T00:00:00",
|
||||
"FilterChipItems": []
|
||||
}
|
||||
}
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
[
|
||||
{
|
||||
"PhysicianID": 3153,
|
||||
"PhysicianName": "TOZIER BOBBY",
|
||||
"PhysicianGUID": "d3d281ce-c255-45f0-8334-88e15ffe48cd",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 208,
|
||||
"PhysicianSpecialty": "123 - Hospitalist",
|
||||
"PhysicianSpecialtyGUID": "3a3e27d9-3454-4fc3-83a9-e86b6fe3bd61"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 3845,
|
||||
"PhysicianName": "KEITHLEY CHRISTOPHER",
|
||||
"PhysicianGUID": "9dc822af-5b79-4063-b75a-72cc4cca6040",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 208,
|
||||
"PhysicianSpecialty": "123 - Hospitalist",
|
||||
"PhysicianSpecialtyGUID": "3a3e27d9-3454-4fc3-83a9-e86b6fe3bd61"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 1370,
|
||||
"PhysicianName": "BONELLO HUONG",
|
||||
"PhysicianGUID": "1fbc3e74-e32e-4a31-a55a-2ba2a581bf68",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 24764,
|
||||
"PhysicianName": "FLUETSCH CARY",
|
||||
"PhysicianGUID": "723d834b-d4da-4885-9efb-4c9de59cb982",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 4446,
|
||||
"PhysicianName": "DEMAS CHARLEY",
|
||||
"PhysicianGUID": "acefb0de-25b1-4cda-9eae-2b5799155816",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 271,
|
||||
"PhysicianSpecialty": "62 - Critical Care Medicine",
|
||||
"PhysicianSpecialtyGUID": "32c0a064-a015-472a-b1a1-3ee9ada450f2"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 3343,
|
||||
"PhysicianName": "BLINKA GRAIG",
|
||||
"PhysicianGUID": "a96d6d2c-029f-4689-8f31-51870150ac1c",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 208,
|
||||
"PhysicianSpecialty": "123 - Hospitalist",
|
||||
"PhysicianSpecialtyGUID": "3a3e27d9-3454-4fc3-83a9-e86b6fe3bd61"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 720,
|
||||
"PhysicianName": "TOMASSI RUSS",
|
||||
"PhysicianGUID": "3802cc8a-5ad5-48e0-864e-9acfe0e4d324",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 3481,
|
||||
"PhysicianName": "TREVIZO DIRK",
|
||||
"PhysicianGUID": "55639862-736c-4e9b-afcc-16673445c181",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 2986,
|
||||
"PhysicianName": "COAXUM RUDY",
|
||||
"PhysicianGUID": "3cd87422-3164-4c2c-9f42-dafa6c927353",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 842,
|
||||
"PhysicianName": "CLENDENON RENDA",
|
||||
"PhysicianGUID": "edb778e5-c677-4800-a1bc-153331e52f48",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 4269,
|
||||
"PhysicianName": "CROUTHAMEL SUNNY",
|
||||
"PhysicianGUID": "5c889c75-adab-4c08-9ccb-347ce13b9e70",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
},
|
||||
{
|
||||
"PhysicianID": 3939,
|
||||
"PhysicianName": "LANMAN JOVAN",
|
||||
"PhysicianGUID": "5b68c9cf-beaa-4267-9bc7-05cddba3de4c",
|
||||
"PhysicianGroupAffiliationID": 0,
|
||||
"PhysicianGroupAffiliation": "Not Specified",
|
||||
"PhysicianGroupAffiliationGUID": "1c3af86f-a7b7-4484-935c-bad5b93627e7",
|
||||
"PhysicianSpecialtyID": 221,
|
||||
"PhysicianSpecialty": "17 - Internal Medicine",
|
||||
"PhysicianSpecialtyGUID": "02db369d-885a-474a-acaf-81363e490534"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user