|
|
@ -1,7 +1,9 @@ |
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
using Microsoft.EntityFrameworkCore; |
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
|
|
using Microsoft.Extensions.Configuration; |
|
|
using Shentun.Peis.Enums; |
|
|
using Shentun.Peis.Enums; |
|
|
|
|
|
using Shentun.Peis.MenuInfos; |
|
|
using Shentun.Peis.Models; |
|
|
using Shentun.Peis.Models; |
|
|
using Shentun.Peis.PatientRegisters; |
|
|
using Shentun.Peis.PatientRegisters; |
|
|
using Shentun.Peis.RegisterCheckItems; |
|
|
using Shentun.Peis.RegisterCheckItems; |
|
|
@ -9,6 +11,7 @@ using Shentun.Peis.RegisterCheckSummarys; |
|
|
using System; |
|
|
using System; |
|
|
using System.Collections.Generic; |
|
|
using System.Collections.Generic; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
|
|
|
using System.Linq.Dynamic.Core; |
|
|
using System.Text; |
|
|
using System.Text; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
using Volo.Abp; |
|
|
using Volo.Abp; |
|
|
@ -42,6 +45,10 @@ namespace Shentun.Peis.RegisterChecks |
|
|
private readonly RegisterCheckItemManager _registerCheckItemManager; |
|
|
private readonly RegisterCheckItemManager _registerCheckItemManager; |
|
|
private readonly CacheService _cacheService; |
|
|
private readonly CacheService _cacheService; |
|
|
private readonly IGuidGenerator _guidGenerator; |
|
|
private readonly IGuidGenerator _guidGenerator; |
|
|
|
|
|
private readonly IConfiguration _configuration; |
|
|
|
|
|
private readonly ICurrentUser _currentUser; |
|
|
|
|
|
private readonly IRepository<UserItemType> _userItemTypeRepository; |
|
|
|
|
|
private readonly IRepository<Asbitem, Guid> _asbitemRepository; |
|
|
|
|
|
|
|
|
public RegisterCheckAppService(IRepository<RegisterCheck, Guid> registerCheckRepository, |
|
|
public RegisterCheckAppService(IRepository<RegisterCheck, Guid> registerCheckRepository, |
|
|
IRepository<RegisterCheckItem> registerCheckItemRepository, |
|
|
IRepository<RegisterCheckItem> registerCheckItemRepository, |
|
|
@ -53,19 +60,27 @@ namespace Shentun.Peis.RegisterChecks |
|
|
RegisterCheckManager registerCheckManager, |
|
|
RegisterCheckManager registerCheckManager, |
|
|
RegisterCheckItemManager registerCheckItemManager, |
|
|
RegisterCheckItemManager registerCheckItemManager, |
|
|
CacheService cacheService, |
|
|
CacheService cacheService, |
|
|
IGuidGenerator guidGenerator) |
|
|
|
|
|
|
|
|
IGuidGenerator guidGenerator, |
|
|
|
|
|
IConfiguration configuration, |
|
|
|
|
|
ICurrentUser currentUser, |
|
|
|
|
|
IRepository<UserItemType> userItemTypeRepository, |
|
|
|
|
|
IRepository<Asbitem, Guid> asbitemRepository) |
|
|
{ |
|
|
{ |
|
|
this._registerCheckRepository = registerCheckRepository; |
|
|
|
|
|
this._userRepository = userRepository; |
|
|
|
|
|
this._registerCheckManager = registerCheckManager; |
|
|
|
|
|
this._patientRegisterRepository = patientRegisterRepository; |
|
|
|
|
|
this._referenceRangeRepository = referenceRangeRepository; |
|
|
|
|
|
|
|
|
_registerCheckRepository = registerCheckRepository; |
|
|
|
|
|
_userRepository = userRepository; |
|
|
|
|
|
_registerCheckManager = registerCheckManager; |
|
|
|
|
|
_patientRegisterRepository = patientRegisterRepository; |
|
|
|
|
|
_referenceRangeRepository = referenceRangeRepository; |
|
|
_registerCheckItemRepository = registerCheckItemRepository; |
|
|
_registerCheckItemRepository = registerCheckItemRepository; |
|
|
_registerCheckSummaryRepository = registerCheckSummaryRepository; |
|
|
_registerCheckSummaryRepository = registerCheckSummaryRepository; |
|
|
_registerCheckSuggestionRepository = registerCheckSuggestionRepository; |
|
|
_registerCheckSuggestionRepository = registerCheckSuggestionRepository; |
|
|
this._registerCheckItemManager = registerCheckItemManager; |
|
|
|
|
|
|
|
|
_registerCheckItemManager = registerCheckItemManager; |
|
|
_cacheService = cacheService; |
|
|
_cacheService = cacheService; |
|
|
_guidGenerator = guidGenerator; |
|
|
_guidGenerator = guidGenerator; |
|
|
|
|
|
_configuration = configuration; |
|
|
|
|
|
_currentUser = currentUser; |
|
|
|
|
|
_userItemTypeRepository = userItemTypeRepository; |
|
|
|
|
|
_asbitemRepository = asbitemRepository; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
@ -122,11 +137,11 @@ namespace Shentun.Peis.RegisterChecks |
|
|
|
|
|
|
|
|
var entlist = (await _registerCheckRepository.GetDbSetAsync()) |
|
|
var entlist = (await _registerCheckRepository.GetDbSetAsync()) |
|
|
.Include(x => x.RegisterCheckAsbitems) |
|
|
.Include(x => x.RegisterCheckAsbitems) |
|
|
.ThenInclude(x => x.Asbitem).ThenInclude(x=>x.ItemType) |
|
|
|
|
|
|
|
|
.ThenInclude(x => x.Asbitem).ThenInclude(x => x.ItemType) |
|
|
.Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(PatientRegisterId)).ToList(); |
|
|
.Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(PatientRegisterId)).ToList(); |
|
|
//排序
|
|
|
//排序
|
|
|
entlist = entlist.OrderBy(o=>o.RegisterCheckAsbitems.Max(o=>o.Asbitem.ItemType.DisplayOrder)).ToList() |
|
|
|
|
|
.OrderBy(o=>o.RegisterCheckAsbitems.Max(o=>o.Asbitem.DisplayOrder)).ToList(); |
|
|
|
|
|
|
|
|
entlist = entlist.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.ItemType.DisplayOrder)).ToList() |
|
|
|
|
|
.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.DisplayOrder)).ToList(); |
|
|
var userList = await _userRepository.GetListAsync(); |
|
|
var userList = await _userRepository.GetListAsync(); |
|
|
|
|
|
|
|
|
var entdto = entlist.Select(s => new RegisterCheckOrAsbitemNameOrIsChargeDto |
|
|
var entdto = entlist.Select(s => new RegisterCheckOrAsbitemNameOrIsChargeDto |
|
|
@ -163,6 +178,68 @@ namespace Shentun.Peis.RegisterChecks |
|
|
return entdto; |
|
|
return entdto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取登记check表数据(附带组合项目名称跟是否收费) 医生诊台左边列表 只有一个收费就显示收费 增加项目类别权限控制
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="input"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("api/app/RegisterCheck/GetRegisterCheckWithAsbitems")] |
|
|
|
|
|
public async Task<List<RegisterCheckWithAsbitemsDto>> GetRegisterCheckWithAsbitemsAsync(PatientRegisterIdInputDto input) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
var entlist = (await _registerCheckRepository.GetQueryableAsync()) |
|
|
|
|
|
.Include(x => x.RegisterCheckAsbitems) |
|
|
|
|
|
.ThenInclude(x => x.Asbitem).ThenInclude(x => x.ItemType) |
|
|
|
|
|
.Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(input.PatientRegisterId)); |
|
|
|
|
|
|
|
|
|
|
|
#region 增加项目类别权限
|
|
|
|
|
|
|
|
|
|
|
|
string AdminId = _configuration.GetValue<string>("AdminId"); |
|
|
|
|
|
if (_currentUser.Id.Value != Guid.Parse(AdminId)) |
|
|
|
|
|
{ |
|
|
|
|
|
var asbitemIds = (from userItemType in await _userItemTypeRepository.GetQueryableAsync() |
|
|
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() on userItemType.ItemTypeId equals asbitem.ItemTypeId |
|
|
|
|
|
where userItemType.UserId == _currentUser.Id.Value |
|
|
|
|
|
select asbitem.Id).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
if (asbitemIds.Any()) |
|
|
|
|
|
{ |
|
|
|
|
|
entlist = entlist.Where(m => asbitemIds.Contains(m.RegisterCheckAsbitems.FirstOrDefault().Id)); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
return new List<RegisterCheckWithAsbitemsDto>(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//排序
|
|
|
|
|
|
entlist = entlist.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.ItemType.DisplayOrder)) |
|
|
|
|
|
.ThenBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.DisplayOrder)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var entdto = entlist.ToList().Select(s => new RegisterCheckWithAsbitemsDto |
|
|
|
|
|
{ |
|
|
|
|
|
AsbitemName = string.Join(",", s.RegisterCheckAsbitems.Select(rs => rs.Asbitem.DisplayName).ToList()), |
|
|
|
|
|
AuditorUserId = s.AuditorUserId, |
|
|
|
|
|
AuditTime = s.AuditTime, |
|
|
|
|
|
CheckDate = DataHelper.ConversionDateToString(s.CheckDate), |
|
|
|
|
|
CheckDoctorId = s.CheckDoctorId, |
|
|
|
|
|
CheckRequestNo = s.CheckRequestNo, |
|
|
|
|
|
CompleteFlag = s.CompleteFlag, |
|
|
|
|
|
Id = s.Id, |
|
|
|
|
|
IsAudit = s.IsAudit, |
|
|
|
|
|
IsCharge = s.RegisterCheckAsbitems.Where(m => m.IsCharge == 'Y').Count() > 0 ? 'Y' : 'N', |
|
|
|
|
|
IsLock = s.IsLock, |
|
|
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
return entdto; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
[HttpPost("api/app/registercheck/UpdateCheckResult")] |
|
|
[HttpPost("api/app/registercheck/UpdateCheckResult")] |
|
|
public async Task UpdateCheckResult(UpdateCheckResultDto input) |
|
|
public async Task UpdateCheckResult(UpdateCheckResultDto input) |
|
|
{ |
|
|
{ |
|
|
@ -200,7 +277,7 @@ namespace Shentun.Peis.RegisterChecks |
|
|
//修改小结
|
|
|
//修改小结
|
|
|
var deleteRegisterCheckSummarys = await _registerCheckSummaryRepository.GetListAsync(o => o.RegisterCheckId == input.RegisterCheckId); |
|
|
var deleteRegisterCheckSummarys = await _registerCheckSummaryRepository.GetListAsync(o => o.RegisterCheckId == input.RegisterCheckId); |
|
|
await _registerCheckSummaryRepository.DeleteManyAsync(deleteRegisterCheckSummarys); |
|
|
await _registerCheckSummaryRepository.DeleteManyAsync(deleteRegisterCheckSummarys); |
|
|
for(var i = 0; i < input.Summarys.Count; i++) |
|
|
|
|
|
|
|
|
for (var i = 0; i < input.Summarys.Count; i++) |
|
|
{ |
|
|
{ |
|
|
var registerCheckSummary = new RegisterCheckSummary(_guidGenerator.Create()) |
|
|
var registerCheckSummary = new RegisterCheckSummary(_guidGenerator.Create()) |
|
|
{ |
|
|
{ |
|
|
|