Browse Source

pacs

master
wxd 1 year ago
parent
commit
4112c44f0d
  1. 52
      src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdDto.cs
  2. 17
      src/Shentun.Peis.Application.Contracts/PacsBusiness/GetRegisterCheckPictureByPatientRegisterIdInputDto.cs
  3. 49
      src/Shentun.Peis.Application/PacsBusiness/PacsBusinessAppService.cs

52
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
{
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// registerCheck表ID
/// </summary>
public Guid RegisterCheckId { get; set; }
/// <summary>
/// 条码号
/// </summary>
public string CheckRequestNo { get; set; }
/// <summary>
/// 图片名
/// </summary>
public string PictureFilename { get; set; }
/// <summary>
/// 图片文件类型 0-仪器图片,1-报告文件,默认是0
/// </summary>
public char PictureFileType { get; set; }
/// <summary>
/// 本地资源路径
/// </summary>
public string LocalPathName { get; set; }
public int DisplayOrder { get; set; }
}
}

17
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
{
/// <summary>
/// 检查类型 0-普通检查 1-检验 2-特检 3-放射
/// </summary>
public char CheckTypeFlag { get; set; } = '3';
}
}

49
src/Shentun.Peis.Application/PacsBusiness/PacsBusinessAppService.cs

@ -57,7 +57,8 @@ namespace Shentun.Peis.PacsBusiness
private readonly ICurrentUser _currentUser;
private readonly IRepository<UserItemType> _userItemTypeRepository;
private readonly IRepository<DicomFileDetail, Guid> _dicomFileDetailRepository;
private readonly ILogger<PacsBusinessAppService> _logger;
private readonly ILogger<PacsBusinessAppService> _logger;
private readonly IRepository<ItemType, Guid> _itemTypeRepository;
public PacsBusinessAppService(
IConfiguration configuration,
IRepository<RegisterCheck, Guid> registerCheckRepository,
@ -76,7 +77,8 @@ namespace Shentun.Peis.PacsBusiness
ICurrentUser currentUser,
IRepository<UserItemType> userItemTypeRepository,
IRepository<DicomFileDetail, Guid> dicomFileDetailRepository,
ILogger<PacsBusinessAppService> logger)
ILogger<PacsBusinessAppService> logger,
IRepository<ItemType, Guid> 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;
}
/// <summary>
/// 查询人员的检查图片
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PacsBusiness/GetRegisterCheckPictureByPatientRegisterId")]
public async Task<List<GetRegisterCheckPictureByPatientRegisterIdDto>> 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;
}
/// <summary>
/// 删除体检dicom服务数据,并清理dicom服务记录
/// </summary>
@ -578,6 +621,6 @@ namespace Shentun.Peis.PacsBusiness
}
}
}
}
Loading…
Cancel
Save