Browse Source

总检

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
7912835efd
  1. 4
      src/Shentun.Peis.Application.Contracts/LisRequests/AppendLisRequestDto.cs
  2. 14
      src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs
  3. 103
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  4. 4
      src/Shentun.Peis.Application/SumSuggestionHeaders/SumSuggestionHeaderAppService.cs
  5. 106
      src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs
  6. 1
      src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs
  7. 2
      src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs
  8. 2
      src/Shentun.Peis.EntityFrameworkCore/PatientRegisters/PatientRegisterChargeRepository.cs
  9. 2
      src/Shentun.Peis.EntityFrameworkCore/PrintReports/CheckRequestNoReportRepository.cs
  10. 72
      src/Shentun.Peis.EntityFrameworkCore/PrintReports/LisRequestReportRepository.cs
  11. 2
      src/Shentun.Peis.EntityFrameworkCore/SumSummaryReports/SumSummaryReportRepository.cs
  12. 20
      test/Shentun.Peis.Application.Tests/SumSuggestionHeaderAppServiceTest.cs

4
src/Shentun.Peis.Application.Contracts/LisRequests/AppendLisRequestDto.cs

@ -13,8 +13,8 @@ namespace Shentun.Peis.LisRequests
public Guid LisRequestId { get; set; }
/// <summary>
/// RegisterAsbitem表ID集合
/// RegisterCheckAsbitem表ID集合
/// </summary>
public List<Guid> RegisterAsbitemIds { get; set; }
public List<Guid> RegisterCheckAsbitemIds { get; set; }
}
}

14
src/Shentun.Peis.Application/LisRequests/LisRequestAppService.cs

@ -50,7 +50,7 @@ namespace Shentun.Peis.LisRequests
/// </summary>
/// <param name="PatientRegisterId">人员登记ID</param>
/// <returns></returns>
[HttpPost("api/app/lisrequest/setlisrequest")]
[HttpPost("api/app/LisRequest/SetLisRequest")]
public async Task<List<SetLisRequestDto>> SetLisRequestAsync(Guid PatientRegisterId)
{
var entlist = await _lisRequestManager.SetLisRequestAsync(PatientRegisterId);
@ -84,14 +84,14 @@ namespace Shentun.Peis.LisRequests
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
[HttpPost("api/app/lisrequest/appendlisrequestmany")]
[HttpPost("api/app/LisRequest/AppendLisRequestMany")]
public async Task AppendLisRequestManyAsync(List<AppendLisRequestDto> input)
{
if (input.Any())
{
foreach (var item in input)
{
await _lisRequestManager.AppendLisRequestAsync(item.LisRequestId, item.RegisterAsbitemIds);
await _lisRequestManager.AppendLisRequestAsync(item.LisRequestId, item.RegisterCheckAsbitemIds);
}
}
@ -107,12 +107,12 @@ namespace Shentun.Peis.LisRequests
/// </summary>
/// <param name="RegisterAsbitemIds">RegisterAsbitem表Id/param>
/// <returns></returns>
[HttpPost("api/app/lisrequest/addlisrequest")]
[HttpPost("api/app/LisRequest/AddLisRequest")]
public async Task AddLisRequestAsync(List<Guid> RegisterAsbitemIds)
{
if (RegisterAsbitemIds.Any())
{
await _lisRequestManager.AddLisRequestAsync(RegisterAsbitemIds);
var lisRequests = await _lisRequestManager.AddLisRequestAsync(RegisterAsbitemIds);
}
else
{
@ -126,7 +126,7 @@ namespace Shentun.Peis.LisRequests
/// </summary>
/// <param name="PatientRegisterId"></param>
/// <returns></returns>
[HttpPost("api/app/lisrequest/getregisterasbitemlisrequest")]
[HttpPost("api/app/LisRequest/GetRegisterAsbitemLisRequest")]
public async Task<List<RegisterAsbitemLisRequestDto>> GetRegisterAsbitemLisRequestAsync(Guid PatientRegisterId)
{
return await _lisRequestReportRepository.GetRegisterAsbitemLisRequestAsync(PatientRegisterId);
@ -139,7 +139,7 @@ namespace Shentun.Peis.LisRequests
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/lisrequest/updatelisrequestisprint")]
[HttpPost("api/app/LisRequest/UpdateLisRequestIsPrint")]
public async Task UpdateLisRequestIsPrintAsync(UpdateLisRequestIsPrintDto input)
{
if (input.OperateType == 1)

103
src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.LisRequests;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.SumSuggestionContents;
@ -14,11 +15,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TencentCloud.Wedata.V20210820.Models;
using Volo.Abp;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
using Volo.Abp.Uow;
namespace Shentun.Peis.PrintReports
{
@ -31,6 +32,12 @@ namespace Shentun.Peis.PrintReports
{
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<SampleContainer, Guid> _sampleContainerRepository;
private readonly IRepository<SampleType, Guid> _sampleTypeRepository;
private readonly IRepository<Sex> _sexRegisterRepository;
private readonly IRepository<ResultStatus> _resultStatusRepository;
private readonly IRepository<SumSummaryHeader, Guid> _sumSummaryHeaderRepository;
@ -43,10 +50,18 @@ namespace Shentun.Peis.PrintReports
private readonly ICheckRequestNoReportRepository _checkRequestNoReportRepository;
private readonly IChargeReportRepository _chargeReportRepository;
private readonly SysParmValueManager _sysParmValueManager;
private readonly CacheService _cacheService;
private readonly LisRequestManager _lisRequestManager;
private readonly IUnitOfWorkManager _unitOfWorkManager;
public PrintReportAppService(
IRepository<CustomerOrg, Guid> customerOrgRepository,
IRepository<PatientRegister, Guid> patientRegisterRepository,
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository,
IRepository<Asbitem, Guid> asbitemRepository,
IRepository<LisRequest, Guid> lisRequestRepository,
IRepository<SampleGroup, Guid> sampleGroupRepository,
IRepository<SampleContainer, Guid> sampleContainerRepository,
IRepository<SampleType, Guid> sampleTypeRepository,
IRepository<Sex> sexRegisterRepository,
IRepository<ResultStatus> resultStatusRepository,
IRepository<SumSummaryHeader, Guid> sumSummaryHeaderRepository,
@ -58,7 +73,10 @@ namespace Shentun.Peis.PrintReports
ILisRequestReportRepository lisRequestReportRepository,
ICheckRequestNoReportRepository checkRequestNoReportRepository,
IChargeReportRepository chargeReportRepository,
SysParmValueManager sysParmValueManager
SysParmValueManager sysParmValueManager,
CacheService cacheService,
LisRequestManager lisRequestManager,
IUnitOfWorkManager unitOfWorkManager
)
{
this._customerOrgRepository = customerOrgRepository;
@ -75,6 +93,15 @@ namespace Shentun.Peis.PrintReports
this._checkRequestNoReportRepository = checkRequestNoReportRepository;
this._chargeReportRepository = chargeReportRepository;
this._sysParmValueManager = sysParmValueManager;
_registerCheckAsbitemRepository = registerCheckAsbitemRepository;
_asbitemRepository = asbitemRepository;
_lisRequestRepository = lisRequestRepository;
_sampleGroupRepository = sampleGroupRepository;
_sampleContainerRepository = sampleContainerRepository;
_sampleTypeRepository = sampleTypeRepository;
_cacheService = cacheService;
_lisRequestManager = lisRequestManager;
_unitOfWorkManager = unitOfWorkManager;
}
@ -108,10 +135,76 @@ namespace Shentun.Peis.PrintReports
/// </summary>
/// <param name="PatientRegisterId"></param>
/// <returns></returns>
[HttpPost("api/app/printreport/getlisrequestreport")]
[HttpPost("api/app/printreport/GetLisRequestReport")]
public async Task<List<LisRequestReportDto>> GetLisRequestReportAsync(Guid PatientRegisterId)
{
return await _lisRequestReportRepository.GetLisRequestReportAsync(PatientRegisterId);
//生成LIS条码
await _lisRequestManager.SetLisRequestAsync(PatientRegisterId);
await _unitOfWorkManager.Current.SaveChangesAsync();
//检索条码数据
var customerOrgList = await _customerOrgRepository.GetListAsync();
var query = (from a in await _patientRegisterRepository.GetQueryableAsync()
join x in await _sexRegisterRepository.GetQueryableAsync() on a.SexId equals x.Id into xx
from ax in xx.DefaultIfEmpty()
join b in await _registerCheckAsbitemRepository.GetQueryableAsync() on a.Id equals b.PatientRegisterId into bb
from ab in bb.DefaultIfEmpty()
join f in await _asbitemRepository.GetQueryableAsync() on ab.AsbitemId equals f.Id into ff
from af in ff.DefaultIfEmpty()
join c in await _lisRequestRepository.GetQueryableAsync() on ab.LisRequestId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join d in await _sampleContainerRepository.GetQueryableAsync() on ac.SampleContainerId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
join e in await _sampleTypeRepository.GetQueryableAsync() on ac.SampleTypeId equals e.Id into ee
from ae in ee.DefaultIfEmpty()
where (a.Id == PatientRegisterId && ab.LisRequestId != null)
select new LisRequestReportDto
{
Age = a.Age,
AsbitemName = string.IsNullOrEmpty(af.ShortName) ? af.DisplayName : af.ShortName,
LisRequestNo = ac.LisRequestNo,
PatientName = a.PatientName,
PatientRegisterNo = a.PatientRegisterNo,
SampleContainerName = ad.DisplayName,
ContainerColor = ad.ContainerColor,
SampleContainerRemark = ad.ContainerRemark,
SampleTypeName = ae.DisplayName,
SexName = ax.DisplayName,
CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(a.CustomerOrgId).Result.DisplayName,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(a.CustomerOrgId).Result
}).ToList();
var entlist = query.GroupBy(g => new
{
g.LisRequestNo,
g.Age,
g.PatientName,
g.PatientRegisterNo,
g.SampleContainerName,
g.ContainerColor,
g.SampleContainerRemark,
g.SampleTypeName,
g.SexName,
g.CustomerOrgName,
g.DepartmentName
})
.Select(s => new LisRequestReportDto
{
SexName = s.Key.SexName,
SampleTypeName = s.Key.SampleTypeName,
SampleContainerRemark = s.Key.SampleContainerRemark,
SampleContainerName = s.Key.SampleContainerName,
ContainerColor = s.Key.ContainerColor,
PatientRegisterNo = s.Key.PatientRegisterNo,
PatientName = s.Key.PatientName,
Age = s.Key.Age,
LisRequestNo = s.Key.LisRequestNo,
CustomerOrgName = s.Key.CustomerOrgName,
DepartmentName = s.Key.DepartmentName,
AsbitemName = string.Join(",", s.Select(d => d.AsbitemName))
}).ToList();
return entlist;
}

4
src/Shentun.Peis.Application/SumSuggestionHeaders/SumSuggestionHeaderAppService.cs

@ -61,7 +61,7 @@ namespace Shentun.Peis.SumSuggestionHeaders
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/sumsuggestionheader/getsumsuggestionlist")]
[HttpPost("api/app/sumsuggestionheader/GetSumSuggestionList")]
public async Task<List<SumSuggestionDto>> GetSumSuggestionListAsync(PatientRegisterSumInputDto input)
{
if (input is null)
@ -97,7 +97,7 @@ namespace Shentun.Peis.SumSuggestionHeaders
SuggestionFlag = s.FirstOrDefault().sumSuggestionHeader.SuggestionFlag,
DisplayOrder = s.FirstOrDefault().sumSuggestionHeader.DisplayOrder,
DiagnosisIds = s.Where(o => o.sumDiagnosisHaveEmpty != null).
Select(x => x.sumDiagnosisHaveEmpty.DiagnosisId).ToList(),
Select(x => x.sumDiagnosisHaveEmpty.DiagnosisId).Distinct().ToList(),
MedicalInterpretations = s.Where(m => m.sumSuggestionContentHaveEmpty != null &&
m.sumSuggestionContentHaveEmpty.SuggestionType == SuggestionTypeFlag.MedicalInterpretation).
Select(sa => new SumSuggestionContentData

106
src/Shentun.Peis.Domain/LisRequests/LisRequestManager.cs

@ -16,7 +16,7 @@ namespace Shentun.Peis.LisRequests
{
public class LisRequestManager : DomainService
{
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerAsbitemeRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemeRepository;
private readonly IRepository<SampleGroup, Guid> _sampleGroupRepository;
private readonly IRepository<SampleGroupDetail> _sampleGroupDetailRepository;
private readonly IRepository<SysParmValue> _sysParmValueRepository;
@ -24,7 +24,7 @@ namespace Shentun.Peis.LisRequests
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly SysParmValueManager _sysParmValueManager;
public LisRequestManager(
IRepository<RegisterCheckAsbitem, Guid> registerAsbitemeRepository,
IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemeRepository,
IRepository<SampleGroup, Guid> sampleGroupRepository,
IRepository<SampleGroupDetail> sampleGroupDetailRepository,
IRepository<SysParmValue> sysParmValueRepository,
@ -33,7 +33,7 @@ namespace Shentun.Peis.LisRequests
SysParmValueManager sysParmValueManager
)
{
this._registerAsbitemeRepository = registerAsbitemeRepository;
this._registerCheckAsbitemeRepository = registerCheckAsbitemeRepository;
this._sampleGroupRepository = sampleGroupRepository;
this._sampleGroupDetailRepository = sampleGroupDetailRepository;
this._sysParmValueRepository = sysParmValueRepository;
@ -52,68 +52,16 @@ namespace Shentun.Peis.LisRequests
{
List<LisRequest> lisRequests = new List<LisRequest>();
//根据人员登记ID 查找登记的组合项目
var registerAsbitemeList = (await _registerAsbitemeRepository.GetDbSetAsync())
var registerCheckAsbitemList = (await _registerCheckAsbitemeRepository.GetDbSetAsync())
.Include(x => x.Asbitem)
.Include(x => x.PatientRegister)
.Where(m => m.PatientRegisterId == PatientRegisterId && m.LisRequestId == null)
.ToList();
//根据登记的组合ID 查找组合项目对应的条码分组
var sampleGroupDetailList = await _sampleGroupDetailRepository.GetListAsync(m => registerAsbitemeList.Select(s => s.AsbitemId).Contains(m.AsbitemId));
if (!sampleGroupDetailList.Any())
{
return lisRequests;
}
//查找条码分组信息 根据条码分组ID
var sampleGroupList = (await _sampleGroupRepository.GetDbSetAsync())
.Include(x => x.SampleContainer)
.Include(x => x.SampleType)
.Where(m => sampleGroupDetailList.Select(s => s.SampleGroupId).Contains(m.Id));
foreach (var sampleGroup in sampleGroupList)
{
//根据条码分组生成,一个条码分组生成一个检验单
#region 生成检验申请单
var lisRequestEnt = new LisRequest(GuidGenerator.Create())
{
IsPrint = 'N',
IsSignIn = 'N',
LisRequestNo = await CreateLisRequestNo(registerAsbitemeList.FirstOrDefault().PatientRegister.MedicalCenterId),
SampleContainerId = sampleGroup.SampleContainerId,
SampleTypeId = sampleGroup.SampleTypeId
};
//生成检验申请单的新实体
var lisRequestEnt_New = await _lisRequestRepository.InsertAsync(lisRequestEnt, true);
lisRequests.Add(lisRequestEnt_New);
#region 修改RegisterAsbitem表 LisRequestId
//当前条码分组ID绑定的组合项目
var AsbitemIds = sampleGroupDetailList.Where(m => m.SampleGroupId == sampleGroup.Id).Select(s => s.AsbitemId);
//获取需要更新的RegisterAsbitem数据
var registerAsbitemeList_Update = await _registerAsbitemeRepository.GetListAsync(f =>
f.PatientRegisterId == PatientRegisterId && AsbitemIds.Contains(f.AsbitemId) && f.LisRequestId == null);
if (registerAsbitemeList_Update.Any())
{
//更新LisRequestId
registerAsbitemeList_Update.ForEach(m => m.LisRequestId = lisRequestEnt_New.Id);
await _registerAsbitemeRepository.UpdateManyAsync(registerAsbitemeList_Update);
}
#endregion
#endregion
}
var registerCheckAsbitems = registerCheckAsbitemList.Select(o=>o.AsbitemId).ToList();
lisRequests = await AddLisRequestAsync(registerCheckAsbitems);
return lisRequests;
}
@ -122,17 +70,17 @@ namespace Shentun.Peis.LisRequests
/// 追加项目到检验单 如lisrequest内有项目完成体检或者弃检 不允许追加
/// </summary>
/// <param name="LisRequestId"></param>
/// <param name="RegisterAsbitemIds"></param>
/// <param name="RegisterCheckAsbitemIds"></param>
/// <returns></returns>
public async Task AppendLisRequestAsync(Guid LisRequestId, List<Guid> RegisterAsbitemIds)
public async Task AppendLisRequestAsync(Guid LisRequestId, List<Guid> RegisterCheckAsbitemIds)
{
//根据RegisterAsbitemId
var registerAsbitemInIdList = (await _registerAsbitemeRepository.GetDbSetAsync())
var registerAsbitemInIdList = (await _registerCheckAsbitemeRepository.GetDbSetAsync())
.Include(x => x.RegisterCheck)
.Where(m => RegisterAsbitemIds.Contains(m.Id)).ToList();
.Where(m => RegisterCheckAsbitemIds.Contains(m.Id)).ToList();
//根据LisRequestId
var registerAsbitemInLisRequestIdList = (await _registerAsbitemeRepository.GetDbSetAsync())
var registerAsbitemInLisRequestIdList = (await _registerCheckAsbitemeRepository.GetDbSetAsync())
.Include(x => x.RegisterCheck)
.Where(m => m.LisRequestId == LisRequestId).ToList();
@ -146,7 +94,7 @@ namespace Shentun.Peis.LisRequests
{
registerAsbitemInIdList.ForEach(f => f.LisRequestId = LisRequestId);
await _registerAsbitemeRepository.UpdateManyAsync(registerAsbitemInIdList);
await _registerCheckAsbitemeRepository.UpdateManyAsync(registerAsbitemInIdList);
}
else
{
@ -160,22 +108,18 @@ namespace Shentun.Peis.LisRequests
/// 追加项目到检验单 生成新的条码号
/// </summary>
/// <param name="LisRequestId"></param>
/// <param name="RegisterAsbitemIds"></param>
/// <param name="registerCheckAsbitemIds"></param>
/// <returns></returns>
public async Task AddLisRequestAsync(List<Guid> RegisterAsbitemIds)
public async Task<List<LisRequest>> AddLisRequestAsync(List<Guid> registerCheckAsbitemIds)
{
//List<LisRequest> msg = new List<LisRequest>();
List<LisRequest> lisRequests = new List<LisRequest>();
//根据RegisterAsbitem表ID 查找登记的组合项目
var registerAsbitemeList = (await _registerAsbitemeRepository.GetDbSetAsync())
var registerAsbitemeList = (await _registerCheckAsbitemeRepository.GetDbSetAsync())
.Include(x => x.Asbitem)
.Include(x => x.PatientRegister)
.Where(m => RegisterAsbitemIds.Contains(m.Id))
.Where(m => registerCheckAsbitemIds.Contains(m.Id))
.ToList();
if (registerAsbitemeList.Any())
{
@ -199,26 +143,28 @@ namespace Shentun.Peis.LisRequests
IsPrint = 'N',
IsSignIn = 'N',
LisRequestNo = await CreateLisRequestNo(registerAsbitemeList.FirstOrDefault().PatientRegister.MedicalCenterId),
//SampleGroupId = sampleGroup.Id
SampleContainerId = sampleGroup.SampleContainerId,
SampleTypeId = sampleGroup.SampleTypeId
};
//生成检验申请单的新实体
var lisRequestEnt_New = await _lisRequestRepository.InsertAsync(lisRequestEnt, true);
// msg.Add(lisRequestEnt_New);
lisRequests.Add(lisRequestEnt_New);
#region 修改RegisterAsbitem表 LisRequestId
//当前条码分组ID绑定的组合项目
var AsbitemIds = sampleGroupDetailList.Where(m => m.SampleGroupId == sampleGroup.Id).Select(s => s.AsbitemId);
//获取需要更新的RegisterAsbitem数据
var registerAsbitemeList_Update = await _registerAsbitemeRepository.GetListAsync(f => RegisterAsbitemIds.Contains(f.Id) && AsbitemIds.Contains(f.AsbitemId));
//获取需要更新的RegisterCheckAsbitem数据
var registerAsbitemeList_Update = await _registerCheckAsbitemeRepository.GetListAsync(
f => registerCheckAsbitemIds.Contains(f.Id) && AsbitemIds.Contains(f.AsbitemId));
if (registerAsbitemeList_Update.Any())
{
//更新LisRequestId
registerAsbitemeList_Update.ForEach(m => m.LisRequestId = lisRequestEnt_New.Id);
await _registerAsbitemeRepository.UpdateManyAsync(registerAsbitemeList_Update);
await _registerCheckAsbitemeRepository.UpdateManyAsync(registerAsbitemeList_Update);
}
#endregion
@ -228,7 +174,7 @@ namespace Shentun.Peis.LisRequests
}
}
//return msg;
return lisRequests;
}

1
src/Shentun.Peis.Domain/PrintReports/LisRequestReportDto.cs

@ -36,6 +36,7 @@ namespace Shentun.Peis.PrintReports
/// 标本容器名称
/// </summary>
public string SampleContainerName { get; set; }
public int ContainerColor { get; set; }
/// <summary>
/// 标本容器备注

2
src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs

@ -228,7 +228,7 @@ public class PeisDbContext :
public DbSet<PrimarykeyBuilder> PrimarykeyBuilders { get; set; } = null!;
public DbSet<QueueRegister> QueueRegisters { get; set; } = null!;
public DbSet<ReferenceRange> ReferenceRanges { get; set; } = null!;
public DbSet<RegisterCheckAsbitem> RegisterAsbitems { get; set; } = null!;
public DbSet<RegisterCheckAsbitem> RegisterCheckAsbitems { get; set; } = null!;
public DbSet<RegisterCheck> RegisterChecks { get; set; } = null!;
public DbSet<RegisterCheckCriticalValue> RegisterCheckCriticalValues { get; set; } = null!;
public DbSet<RegisterCheckItem> RegisterCheckItems { get; set; } = null!;

2
src/Shentun.Peis.EntityFrameworkCore/PatientRegisters/PatientRegisterChargeRepository.cs

@ -177,7 +177,7 @@ namespace Shentun.Peis.PatientRegisters
List<CustomerOrg> customerOrgs = dbContext.CustomerOrgs.ToList();
var query = (from a in dbContext.PatientRegisters.Where(m => dbContext.RegisterAsbitems.Where(rsb => rsb.IsCharge == 'N' && rsb.PayTypeFlag == PayTypeFlag.PersonPay).Select(s => s.PatientRegisterId).Contains(m.Id))
var query = (from a in dbContext.PatientRegisters.Where(m => dbContext.RegisterCheckAsbitems.Where(rsb => rsb.IsCharge == 'N' && rsb.PayTypeFlag == PayTypeFlag.PersonPay).Select(s => s.PatientRegisterId).Contains(m.Id))
join b in dbContext.Patients on a.PatientId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join c in dbContext.Sexes on a.SexId equals c.Id into cc

2
src/Shentun.Peis.EntityFrameworkCore/PrintReports/CheckRequestNoReportRepository.cs

@ -38,7 +38,7 @@ namespace Shentun.Peis.PrintReports
var query = (from a in dbContext.PatientRegisters
join b in dbContext.Sexes on a.SexId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join c in dbContext.RegisterAsbitems on a.Id equals c.PatientRegisterId into cc
join c in dbContext.RegisterCheckAsbitems on a.Id equals c.PatientRegisterId into cc
from ac in cc.DefaultIfEmpty()
join d in dbContext.Asbitems on ac.AsbitemId equals d.Id into dd
from ad in dd.DefaultIfEmpty()

72
src/Shentun.Peis.EntityFrameworkCore/PrintReports/LisRequestReportRepository.cs

@ -34,74 +34,8 @@ namespace Shentun.Peis.PrintReports
public async Task<List<LisRequestReportDto>> GetLisRequestReportAsync(Guid PatientRegisterId)
{
throw new Exception("禁止使用");
/*
var dbContext = await GetDbContextAsync();
var customerOrgList = await _customerOrgRepository.GetListAsync();
var query = (from a in dbContext.PatientRegisters
join x in dbContext.Sexes on a.SexId equals x.Id into xx
from ax in xx.DefaultIfEmpty()
join b in dbContext.RegisterAsbitems on a.Id equals b.PatientRegisterId into bb
from ab in bb.DefaultIfEmpty()
join f in dbContext.Asbitems on ab.AsbitemId equals f.Id into ff
from af in ff.DefaultIfEmpty()
join c in dbContext.LisRequests on ab.LisRequestId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join g in dbContext.SampleGroups on ac.SampleGroupId equals g.Id into gg
from ag in gg.DefaultIfEmpty()
join d in dbContext.SampleContainers on ag.SampleContainerId equals d.Id into dd
from ad in dd.DefaultIfEmpty()
join e in dbContext.SampleTypes on ag.SampleTypeId equals e.Id into ee
from ae in ee.DefaultIfEmpty()
where (a.Id == PatientRegisterId && ab.LisRequestId != null)
select new LisRequestReportDto
{
Age = a.Age,
AsbitemName = string.IsNullOrEmpty(af.ShortName) ? af.DisplayName : af.ShortName,
LisRequestNo = ac.LisRequestNo,
PatientName = a.PatientName,
PatientRegisterNo = a.PatientRegisterNo,
SampleContainerName = ad.ContainerColorName,
SampleContainerRemark = ad.ContainerRemark,
SampleTypeName = ae.DisplayName,
SexName = ax.DisplayName,
CustomerOrgName = EntityHelper.GetCustomerOrgParentNameNoSql(customerOrgList, a.CustomerOrgId),
DepartmentName = EntityHelper.GetCustomerOrgNameNoSql(customerOrgList, a.CustomerOrgId)
}).ToList();
var entlist = query.GroupBy(g => new
{
g.LisRequestNo,
g.Age,
g.PatientName,
g.PatientRegisterNo,
g.SampleContainerName,
g.SampleContainerRemark,
g.SampleTypeName,
g.SexName,
g.CustomerOrgName,
g.DepartmentName
})
.Select(s => new LisRequestReportDto
{
SexName = s.Key.SexName,
SampleTypeName = s.Key.SampleTypeName,
SampleContainerRemark = s.Key.SampleContainerRemark,
SampleContainerName = s.Key.SampleContainerName,
PatientRegisterNo = s.Key.PatientRegisterNo,
PatientName = s.Key.PatientName,
Age = s.Key.Age,
LisRequestNo = s.Key.LisRequestNo,
CustomerOrgName = s.Key.CustomerOrgName,
DepartmentName = s.Key.DepartmentName,
AsbitemName = string.Join(",", s.Select(d => d.AsbitemName))
}).ToList();
return entlist;
*/
}
/// <summary>
@ -115,7 +49,7 @@ namespace Shentun.Peis.PrintReports
var dbContext = await GetDbContextAsync();
var query = (from a in dbContext.PatientRegisters
join b in dbContext.RegisterAsbitems on a.Id equals b.PatientRegisterId into bb
join b in dbContext.RegisterCheckAsbitems on a.Id equals b.PatientRegisterId into bb
from ab in bb.DefaultIfEmpty()
join d in dbContext.RegisterChecks on ab.RegisterCheckId equals d.Id into dd
from ad in dd.DefaultIfEmpty()

2
src/Shentun.Peis.EntityFrameworkCore/SumSummaryReports/SumSummaryReportRepository.cs

@ -42,7 +42,7 @@ namespace Shentun.Peis.SumSummaryReports
join b in dbContext.Items.DefaultIfEmpty() on a.ItemId equals b.Id
join c in dbContext.Units.DefaultIfEmpty() on b.UnitId equals c.Id
join e in dbContext.RegisterChecks.DefaultIfEmpty() on a.RegisterCheckId equals e.Id
join f in dbContext.RegisterAsbitems.DefaultIfEmpty() on e.Id equals f.RegisterCheckId
join f in dbContext.RegisterCheckAsbitems.DefaultIfEmpty() on e.Id equals f.RegisterCheckId
join g in dbContext.PatientRegisters.DefaultIfEmpty() on f.PatientRegisterId equals g.Id
where (g.PatientId == PatientId && f.AsbitemId == AsbitemId)
select new HorizontalComparisonListEntity

20
test/Shentun.Peis.Application.Tests/SumSuggestionHeaderAppServiceTest.cs

@ -34,10 +34,26 @@ namespace Shentun.Peis
{
var result = await _appService.GetSumSuggestionListAsync(new PatientRegisters.PatientRegisterSumInputDto()
{ PatientRegisterId = new Guid("3a1051a8-933c-0f59-514f-837b6cf274d9") });
{ PatientRegisterId = new Guid("3a11ee70-02cb-c5e6-a087-79ecdd0356b6") });
foreach (var item in result)
{
_output.WriteLine(item.SuggestionTitle);
_output.WriteLine("标题:" + item.SuggestionTitle);
foreach(var item2 in item.DiagnosisIds)
{
_output.WriteLine("诊断:" + item2.ToString() );
}
foreach (var item2 in item.MedicalInterpretations)
{
_output.WriteLine("医学解释:" + item2.SuggestionContent);
}
foreach (var item2 in item.CommonReasons)
{
_output.WriteLine("常见原因:" + item2.SuggestionContent);
}
foreach (var item2 in item.HealthGuidances)
{
_output.WriteLine("健康指导:" + item2.SuggestionContent);
}
}
}
}

Loading…
Cancel
Save