DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
40705eb8d7
  1. 13
      src/Shentun.Peis.Application.Contracts/PrintReports/PacsNoReportInputDto.cs
  2. 80
      src/Shentun.Peis.Application/PrintReports/PrintReportAppService.cs

13
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<string> CheckRequestNos { get; set; }
}
}

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

@ -542,6 +542,86 @@ namespace Shentun.Peis.PrintReports
} }
/// <summary>
/// 打印Pacs条码数据 单个条码打印
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PrintReport/GetPacsNoReportByCheckRequestNo")]
public async Task<List<PacsNoReportDto>> GetPacsNoReportByCheckRequestNoAsync(PacsNoReportInputDto input)
{
List<PacsNoReportDto> pacsNoReportDtos = new List<PacsNoReportDto>();
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;
}
///// <summary> ///// <summary>
///// 打印Pacs条码数据 ///// 打印Pacs条码数据
///// </summary> ///// </summary>

Loading…
Cancel
Save