Files
continuousimprovement/src/Strata.ContinuousImprovement.Api/Controllers/JazzQvi/QviLineItemSavingsController.cs
T

92 lines
3.3 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Strata.ContinuousImprovement.Biz.QualityVariation.QVI;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace Strata.ContinuousImprovement.Api.Controllers.JazzQvi
{
[ApiController]
[ApiVersion("1.0")]
[Route("api/v{api-version:apiVersion}/quality-variation-savings/line-items")]
public class QviLineItemSavingsController : ControllerBase
{
private readonly IQviLineItemSavingsService _qviLineItemSavingsService;
public QviLineItemSavingsController(IQviLineItemSavingsService qviLineItemSavingsService)
{
_qviLineItemSavingsService = qviLineItemSavingsService;
}
[HttpGet("case-type-families")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesDefaultResponseType]
public async Task<ActionResult<IEnumerable<QviLineItemCaseTypeFamilyInfo>>> GetCaseTypeFamilies(
[FromQuery] Guid configurationGuid,
[FromQuery] bool isBaseline = false,
CancellationToken cancellationToken = default)
{
if (configurationGuid == Guid.Empty)
{
return BadRequest("configurationGuid is required.");
}
var result = await _qviLineItemSavingsService.GetCaseTypeFamilyInfoAsync(
configurationGuid,
isBaseline,
cancellationToken);
return Ok(result);
}
[HttpGet("drg-types")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesDefaultResponseType]
public async Task<ActionResult<IEnumerable<QviLineItemDrgTypeInfo>>> GetDrgTypes(
[FromQuery] Guid configurationGuid,
[FromQuery] bool isBaseline = false,
CancellationToken cancellationToken = default)
{
if (configurationGuid == Guid.Empty)
{
return BadRequest("configurationGuid is required.");
}
var result = await _qviLineItemSavingsService.GetDrgTypeInfoAsync(
configurationGuid,
isBaseline,
cancellationToken);
return Ok(result);
}
[HttpGet("encounter-savings")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesDefaultResponseType]
public async Task<ActionResult<IEnumerable<QviLineItemEncounterSavingInfo>>> GetEncounterSavings(
[FromQuery] Guid configurationGuid,
[FromQuery] Guid? opportunityGuid = null,
[FromQuery] bool? isBaseline = null,
CancellationToken cancellationToken = default)
{
if (configurationGuid == Guid.Empty)
{
return BadRequest("configurationGuid is required.");
}
var result = await _qviLineItemSavingsService.GetEncounterSavingInfoAsync(
configurationGuid,
opportunityGuid,
isBaseline,
cancellationToken);
return Ok(result);
}
}
}