From 4112c44f0dfcca03db3f022bf61f9d37b0635762 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Thu, 31 Oct 2024 09:26:54 +0800 Subject: [PATCH] pacs --- ...isterCheckPictureByPatientRegisterIdDto.cs | 52 +++++++++++++++++++ ...CheckPictureByPatientRegisterIdInputDto.cs | 17 ++++++ .../PacsBusiness/PacsBusinessAppService.cs | 49 +++++++++++++++-- 3 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdDto.cs create mode 100644 src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdInputDto.cs diff --git a/src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdDto.cs b/src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdDto.cs new file mode 100644 index 0000000..414042f --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdDto.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace Shentun.Peis.PacsBusiness +{ + public class GetRegisterCheckPictureByPatientRegisterIdDto + { + /// + /// 姓名 + /// + public string PatientName { get; set; } + + /// + /// 项目名称 + /// + public string AsbitemName { get; set; } + + /// + /// registerCheck表ID + /// + public Guid RegisterCheckId { get; set; } + + + /// + /// 条码号 + /// + public string CheckRequestNo { get; set; } + + + /// + /// 图片名 + /// + public string PictureFilename { get; set; } + + + /// + /// 图片文件类型 0-仪器图片,1-报告文件,默认是0 + /// + public char PictureFileType { get; set; } + + /// + /// 本地资源路径 + /// + public string LocalPathName { get; set; } + + + public int DisplayOrder { get; set; } + } +} diff --git a/src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdInputDto.cs b/src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdInputDto.cs new file mode 100644 index 0000000..3a1e5b5 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdInputDto.cs @@ -0,0 +1,17 @@ +using Shentun.Peis.PatientRegisters; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; + +namespace Shentun.Peis.PacsBusiness +{ + public class GetRegisterCheckPictureByPatientRegisterIdInputDto : PatientRegisterIdInputDto + { + + /// + /// 检查类型 0-普通检查 1-检验 2-特检 3-放射 + /// + public char CheckTypeFlag { get; set; } = '3'; + } +} diff --git a/src/Shentun.Peis.Application/PacsBusiness/PacsBusinessAppService.cs b/src/Shentun.Peis.Application/PacsBusiness/PacsBusinessAppService.cs index 6e5c8ef..188e721 100644 --- a/src/Shentun.Peis.Application/PacsBusiness/PacsBusinessAppService.cs +++ b/src/Shentun.Peis.Application/PacsBusiness/PacsBusinessAppService.cs @@ -57,7 +57,8 @@ namespace Shentun.Peis.PacsBusiness private readonly ICurrentUser _currentUser; private readonly IRepository _userItemTypeRepository; private readonly IRepository _dicomFileDetailRepository; - private readonly ILogger _logger; + private readonly ILogger _logger; + private readonly IRepository _itemTypeRepository; public PacsBusinessAppService( IConfiguration configuration, IRepository registerCheckRepository, @@ -76,7 +77,8 @@ namespace Shentun.Peis.PacsBusiness ICurrentUser currentUser, IRepository userItemTypeRepository, IRepository dicomFileDetailRepository, - ILogger logger) + ILogger logger, + IRepository itemTypeRepository) { _configuration = configuration; _registerCheckRepository = registerCheckRepository; @@ -96,6 +98,7 @@ namespace Shentun.Peis.PacsBusiness _userItemTypeRepository = userItemTypeRepository; _dicomFileDetailRepository = dicomFileDetailRepository; _logger = logger; + _itemTypeRepository = itemTypeRepository; } @@ -534,6 +537,46 @@ namespace Shentun.Peis.PacsBusiness return entListDto; } + /// + /// 查询人员的检查图片 + /// + /// + /// + [HttpPost("api/app/PacsBusiness/GetRegisterCheckPictureByPatientRegisterId")] + public async Task> GetRegisterCheckPictureByPatientRegisterIdAsync(GetRegisterCheckPictureByPatientRegisterIdInputDto input) + { + var query = (from registerCheckPicture in await _registerCheckPictureRepository.GetQueryableAsync() + join registerCheck in await _registerCheckRepository.GetQueryableAsync() on registerCheckPicture.RegisterCheckId equals registerCheck.Id + join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on registerCheck.PatientRegisterId equals patientRegister.Id + join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId + join asbitem in await _asbitemRepository.GetQueryableAsync() on registerCheckAsbitem.AsbitemId equals asbitem.Id + join itemType in await _itemTypeRepository.GetQueryableAsync() on asbitem.ItemTypeId equals itemType.Id + where patientRegister.Id == input.PatientRegisterId && itemType.CheckTypeFlag == input.CheckTypeFlag + select new + { + registerCheckPicture, + patientName = patientRegister.PatientName, + asbitemName = asbitem.DisplayName, + checkRequestNo = registerCheck.CheckRequestNo + }).ToList(); + + var registerCheckPictureGroup = query.GroupBy(g => g.registerCheckPicture); + + var entListDto = registerCheckPictureGroup.Select(s => new GetRegisterCheckPictureByPatientRegisterIdDto + { + AsbitemName = string.Join(",", s.Select(rs => rs.asbitemName).ToList()), + DisplayOrder = s.Key.DisplayOrder, + CheckRequestNo = s.FirstOrDefault().checkRequestNo, + LocalPathName = s.Key.LocalPathName, + PictureFilename = s.Key.PictureFilename, + PictureFileType = s.Key.PictureFileType, + PatientName = s.FirstOrDefault().patientName, + RegisterCheckId = s.Key.RegisterCheckId + }).ToList(); + + return entListDto; + } + /// /// 删除体检dicom服务数据,并清理dicom服务记录 /// @@ -578,6 +621,6 @@ namespace Shentun.Peis.PacsBusiness } } - + } }