From 42d051cdaedf41deefa8e6a21788113be4b023cf Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Tue, 14 May 2024 21:15:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E4=B8=AApacs=E6=9D=A1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PrintReports/PacsNoReportInputDto.cs | 13 +++ .../PrintReports/PrintReportAppService.cs | 80 +++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 src/Shentun.Peis.Application.Contracts/PrintReports/PacsNoReportInputDto.cs diff --git a/src/Shentun.Peis.Application.Contracts/PrintReports/PacsNoReportInputDto.cs b/src/Shentun.Peis.Application.Contracts/PrintReports/PacsNoReportInputDto.cs new file mode 100644 index 0000000..8b90308 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/PrintReports/PacsNoReportInputDto.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.PrintReports +{ + public class PacsNoReportInputDto + { + public Guid PatientRegisterId { get; set; } + + public List CheckRequestNos { get; set; } + } +} diff --git a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs index 0d1f6e2..547c43f 100644 --- a/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs +++ b/src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs @@ -542,6 +542,86 @@ namespace Shentun.Peis.PrintReports } + /// + /// 打印Pacs条码数据 单个条码打印 + /// + /// + /// + [HttpPost("api/app/PrintReport/GetPacsNoReportByCheckRequestNo")] + public async Task> GetPacsNoReportByCheckRequestNoAsync(PacsNoReportInputDto input) + { + List pacsNoReportDtos = new List(); + + + if (input.CheckRequestNos.Count > 0) + { + 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 == input.PatientRegisterId + && !string.IsNullOrEmpty(registerCheck.CheckRequestNo) + && asbitemHaveEmpty.BarcodeMode != '2' + ) + select new + { + Age = patientRegister.Age, + AsbitemName = asbitemHaveEmpty.DisplayName, + CheckRequestNo = registerCheck.CheckRequestNo, + PatientName = patientRegister.PatientName, + PatientRegisterNo = patientRegister.PatientRegisterNo, + SexName = _cacheService.GetSexNameAsync(patientRegister.SexId).Result, + IsCheckRequest = itemTypeHaveEmpty != null ? itemTypeHaveEmpty.IsCheckRequest : 'N', + BarcodeMode = asbitemHaveEmpty != null ? asbitemHaveEmpty.BarcodeMode : '0' + }).ToList(); + + + + var queryGroup = query.GroupBy(g => g.CheckRequestNo); + + + foreach (var s in queryGroup) + { + if (s.Where(m => m.BarcodeMode == '0' && m.IsCheckRequest == 'Y').Count() > 0) + { + pacsNoReportDtos.Add(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 = "", + DepartmentName = "" + }); + } + else if (s.Where(m => m.BarcodeMode == '1').Count() > 0) + { + pacsNoReportDtos.Add(new PacsNoReportDto + { + Age = s.FirstOrDefault().Age, + AsbitemName = string.Join(',', s.Select(s => s.AsbitemName)), + CheckRequestNo = s.FirstOrDefault().PatientRegisterNo, + PatientName = s.FirstOrDefault().PatientName, + PatientRegisterNo = s.FirstOrDefault().PatientRegisterNo, + SexName = s.FirstOrDefault().SexName, + CustomerOrgName = "", + DepartmentName = "" + }); + } + } + + pacsNoReportDtos = pacsNoReportDtos.Where(m => input.CheckRequestNos.Contains(m.CheckRequestNo)).ToList(); + } + return pacsNoReportDtos; + + } + + ///// ///// 打印Pacs条码数据 /////