DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
79db22c0fe
  1. 58
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs
  2. 20
      src/Shentun.Peis.Domain/PrintReports/ICheckRequestNoReportRepository.cs
  3. 5
      src/Shentun.Peis.Domain/PrintReports/PacsNoReportDto.cs
  4. 65
      src/Shentun.Peis.EntityFrameworkCore/PrintReports/CheckRequestNoReportRepository.cs

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

@ -64,7 +64,7 @@ namespace Shentun.Peis.PrintReports
private readonly IRepository<OrganizationUnit, Guid> _organizationUnitRepository;
private readonly IPatientRegisterGuideReportRepository _patientRegisterGuideReportRepository;
private readonly ILisRequestReportRepository _lisRequestReportRepository;
private readonly ICheckRequestNoReportRepository _checkRequestNoReportRepository;
//private readonly ICheckRequestNoReportRepository _checkRequestNoReportRepository;
private readonly IChargeReportRepository _chargeReportRepository;
private readonly SysParmValueManager _sysParmValueManager;
private readonly CacheService _cacheService;
@ -101,7 +101,7 @@ namespace Shentun.Peis.PrintReports
IRepository<OrganizationUnit, Guid> organizationUnitRepository,
IPatientRegisterGuideReportRepository patientRegisterGuideReportRepository,
ILisRequestReportRepository lisRequestReportRepository,
ICheckRequestNoReportRepository checkRequestNoReportRepository,
//ICheckRequestNoReportRepository checkRequestNoReportRepository,
IChargeReportRepository chargeReportRepository,
SysParmValueManager sysParmValueManager,
@ -123,7 +123,7 @@ namespace Shentun.Peis.PrintReports
this._organizationUnitRepository = organizationUnitRepository;
this._patientRegisterGuideReportRepository = patientRegisterGuideReportRepository;
this._lisRequestReportRepository = lisRequestReportRepository;
this._checkRequestNoReportRepository = checkRequestNoReportRepository;
//this._checkRequestNoReportRepository = checkRequestNoReportRepository;
this._chargeReportRepository = chargeReportRepository;
this._sysParmValueManager = sysParmValueManager;
_registerCheckAsbitemRepository = registerCheckAsbitemRepository;
@ -366,9 +366,9 @@ namespace Shentun.Peis.PrintReports
await uow.CompleteAsync();
return entlist;
}
}
[HttpPost("api/app/PrintReport/GetLisRequestReportByLisRequestId")]
@ -471,7 +471,43 @@ namespace Shentun.Peis.PrintReports
[HttpPost("api/app/PrintReport/getpacsnoreport")]
public async Task<List<PacsNoReportDto>> GetPacsNoReportAsync(Guid PatientRegisterId)
{
return await _checkRequestNoReportRepository.GetPacsNoReportAsync(PatientRegisterId);
var query = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id into asbitemTemp
from asbitemHaveEmpty in asbitemTemp.DefaultIfEmpty()
join itemType in await _itemTypeRepository.GetQueryableAsync() on asbitemHaveEmpty.ItemTypeId equals itemType.Id into itemTypeTemp
from itemTypeHaveEmpty in itemTypeTemp.DefaultIfEmpty()
where (patientRegister.Id == PatientRegisterId && itemTypeHaveEmpty.IsCheckRequest == 'Y')
select new PacsNoReportDto
{
Age = patientRegister.Age,
AsbitemName = asbitemHaveEmpty.DisplayName,
CheckRequestNo = registerCheck.CheckRequestNo,
PatientName = patientRegister.PatientName,
PatientRegisterNo = patientRegister.PatientRegisterNo,
SexName = _cacheService.GetSexNameAsync(patientRegister.SexId).Result,
CustomerOrgName = _cacheService.GetTopCustomerOrgNameAsync(patientRegister.CustomerOrgId).Result,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(patientRegister.CustomerOrgId).Result
}).ToList();
var entList = query.GroupBy(g => g.CheckRequestNo).Select(s => new PacsNoReportDto
{
Age = s.FirstOrDefault().Age,
AsbitemName = string.Join(',', s.Select(s => s.AsbitemName)),
CheckRequestNo = s.FirstOrDefault().CheckRequestNo,
PatientName = s.FirstOrDefault().PatientName,
PatientRegisterNo = s.FirstOrDefault().PatientRegisterNo,
SexName = s.FirstOrDefault().SexName,
CustomerOrgName = s.FirstOrDefault().CustomerOrgName,
DepartmentName = s.FirstOrDefault().DepartmentName
}).ToList();
return entList;
}
/// <summary>
@ -722,13 +758,13 @@ namespace Shentun.Peis.PrintReports
// Summary = o.registerCheckSummaryHaveEmpty.Summary,
// DisplayOrder = o.registerCheckSummaryHaveEmpty.DisplayOrder
//}).OrderBy(o => o.DisplayOrder).Distinct().ToList();
medicalReportRegisterCheckDto.Summarys = registerCheckRows.Where(o=>o.registerCheckSummaryHaveEmpty!=null)
medicalReportRegisterCheckDto.Summarys = registerCheckRows.Where(o => o.registerCheckSummaryHaveEmpty != null)
.GroupBy(g => g.registerCheckSummaryHaveEmpty.Id)
.Select(o => new MedicalReportCheckAsbitemSummaryDto()
{
Summary = o.FirstOrDefault().registerCheckSummaryHaveEmpty.Summary,
DisplayOrder = o.FirstOrDefault().registerCheckSummaryHaveEmpty.DisplayOrder
}).OrderBy(o => o.DisplayOrder).Distinct().ToList();
{
Summary = o.FirstOrDefault().registerCheckSummaryHaveEmpty.Summary,
DisplayOrder = o.FirstOrDefault().registerCheckSummaryHaveEmpty.DisplayOrder
}).OrderBy(o => o.DisplayOrder).Distinct().ToList();
//图片
var registerCheckPictures = registerCheckRows.Where(o => o.registerCheckPictureHaveEmpty != null &&
o.registerCheckPictureHaveEmpty.IsPrint == 'Y')

20
src/Shentun.Peis.Domain/PrintReports/ICheckRequestNoReportRepository.cs

@ -1,20 +0,0 @@
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace Shentun.Peis.PrintReports
{
public interface ICheckRequestNoReportRepository : IRepository<RegisterCheck, Guid>
{
/// <summary>
/// Pacs条码数据
/// </summary>
/// <param name="PatientRegisterId"></param>
/// <returns></returns>
Task<List<PacsNoReportDto>> GetPacsNoReportAsync(Guid PatientRegisterId);
}
}

5
src/Shentun.Peis.Domain/PrintReports/PacsNoReportDto.cs

@ -41,6 +41,11 @@ namespace Shentun.Peis.PrintReports
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemShortName { get; set; }
/// <summary>
/// 单位名称
/// </summary>

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

@ -1,65 +0,0 @@
using Shentun.Peis.EntityFrameworkCore;
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace Shentun.Peis.PrintReports
{
public class CheckRequestNoReportRepository : EfCoreRepository<PeisDbContext, RegisterCheck, Guid>, ICheckRequestNoReportRepository
{
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
public CheckRequestNoReportRepository(
IRepository<CustomerOrg, Guid> customerOrgRepository,
IDbContextProvider<PeisDbContext> dbContextProvider
) : base(dbContextProvider)
{
this._customerOrgRepository = customerOrgRepository;
}
/// <summary>
/// 获取Pacs条码数据
/// </summary>
/// <param name="PatientRegisterId"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<List<PacsNoReportDto>> GetPacsNoReportAsync(Guid PatientRegisterId)
{
var dbContext = await GetDbContextAsync();
var customerOrgList = await _customerOrgRepository.GetListAsync();
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.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()
join e in dbContext.RegisterChecks on ac.RegisterCheckId equals e.Id into ee
from ae in ee.DefaultIfEmpty()
join f in dbContext.ItemTypes on ad.ItemTypeId equals f.Id into ff
from af in ff.DefaultIfEmpty()
where (a.Id == PatientRegisterId && af.IsCheckRequest == 'Y')
select new PacsNoReportDto
{
Age = a.Age,
AsbitemName = ad.DisplayName,
CheckRequestNo = ae.CheckRequestNo,
PatientName = a.PatientName,
PatientRegisterNo = a.PatientRegisterNo,
SexName = ab.DisplayName,
CustomerOrgName = EntityHelper.GetCustomerOrgParentNameNoSql(customerOrgList, a.CustomerOrgId),
DepartmentName = EntityHelper.GetCustomerOrgNameNoSql(customerOrgList, a.CustomerOrgId)
}).ToList();
return query;
}
}
}
Loading…
Cancel
Save