diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs index 52b9aae..66117b3 100644 --- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs +++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs @@ -64,7 +64,7 @@ namespace Shentun.Peis.PrintReports private readonly IRepository _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 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> 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; + } /// @@ -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') diff --git a/src/Shentun.Peis.Domain/PrintReports/ICheckRequestNoReportRepository.cs b/src/Shentun.Peis.Domain/PrintReports/ICheckRequestNoReportRepository.cs deleted file mode 100644 index 36779d3..0000000 --- a/src/Shentun.Peis.Domain/PrintReports/ICheckRequestNoReportRepository.cs +++ /dev/null @@ -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 - { - /// - /// Pacs条码数据 - /// - /// - /// - Task> GetPacsNoReportAsync(Guid PatientRegisterId); - } -} diff --git a/src/Shentun.Peis.Domain/PrintReports/PacsNoReportDto.cs b/src/Shentun.Peis.Domain/PrintReports/PacsNoReportDto.cs index 387c995..ca03a76 100644 --- a/src/Shentun.Peis.Domain/PrintReports/PacsNoReportDto.cs +++ b/src/Shentun.Peis.Domain/PrintReports/PacsNoReportDto.cs @@ -41,6 +41,11 @@ namespace Shentun.Peis.PrintReports /// public string AsbitemName { get; set; } + /// + /// 组合项目名称 + /// + public string AsbitemShortName { get; set; } + /// /// 单位名称 /// diff --git a/src/Shentun.Peis.EntityFrameworkCore/PrintReports/CheckRequestNoReportRepository.cs b/src/Shentun.Peis.EntityFrameworkCore/PrintReports/CheckRequestNoReportRepository.cs deleted file mode 100644 index 7c7d574..0000000 --- a/src/Shentun.Peis.EntityFrameworkCore/PrintReports/CheckRequestNoReportRepository.cs +++ /dev/null @@ -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, ICheckRequestNoReportRepository - { - private readonly IRepository _customerOrgRepository; - - public CheckRequestNoReportRepository( - IRepository customerOrgRepository, - IDbContextProvider dbContextProvider - ) : base(dbContextProvider) - { - this._customerOrgRepository = customerOrgRepository; - } - - /// - /// 获取Pacs条码数据 - /// - /// - /// - /// - public async Task> 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; - } - } -}