Browse Source

修改0502

bjmzak
wxd 2 years ago
parent
commit
a99220c955
  1. 19
      src/Shentun.Peis.Application.Contracts/Asbitems/SimpleAsbitemWithDetailsDto.cs
  2. 9
      src/Shentun.Peis.Application.Contracts/RegisterCheckPictures/UploadRegisterCheckPictureManyDto.cs
  3. 57
      src/Shentun.Peis.Application.Contracts/RegisterChecks/RegisterCheckWithAsbitemsDto.cs
  4. 35
      src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs
  5. 10
      src/Shentun.Peis.Application/Diagnosises/DiagnosisAppService.cs
  6. 2
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  7. 11
      src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs
  8. 99
      src/Shentun.Peis.Application/RegisterChecks/RegisterCheckAppService.cs
  9. 25
      src/Shentun.Peis.Domain/ImageHelper.cs

19
src/Shentun.Peis.Application.Contracts/Asbitems/SimpleAsbitemWithDetailsDto.cs

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Asbitems
{
public class SimpleAsbitemWithDetailsDto
{
/// <summary>
/// 组合项目ID
/// </summary>
public Guid AsbitemId { get; set; }
/// <summary>
/// 项目名称
/// </summary>
public string ItemName { get; set; }
}
}

9
src/Shentun.Peis.Application.Contracts/RegisterCheckPictures/UploadRegisterCheckPictureManyDto.cs

@ -24,7 +24,7 @@ namespace Shentun.Peis.RegisterCheckPictures
/// <summary>
/// 图片base64
/// </summary>
public List<string> PictureBaseStrs { get; set; }
public List<UploadRegisterCheckPictureManyPictureBaseStrsDto> PictureBaseStrs { get; set; } = new List<UploadRegisterCheckPictureManyPictureBaseStrsDto>() { };
///// <summary>
@ -33,4 +33,11 @@ namespace Shentun.Peis.RegisterCheckPictures
//public List<IFormFile> PictureBaseStrs2 { get; set; }
}
public class UploadRegisterCheckPictureManyPictureBaseStrsDto
{
public string FileName { get; set; }
public string PictureBaseStr { get; set; }
}
}

57
src/Shentun.Peis.Application.Contracts/RegisterChecks/RegisterCheckWithAsbitemsDto.cs

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.RegisterChecks
{
public class RegisterCheckWithAsbitemsDto
{
public Guid Id { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 是否收费
/// </summary>
public char? IsCharge { get; set; }
/// <summary>
/// 检查单号
/// </summary>
public string? CheckRequestNo { get; set; }
/// <summary>
/// 是否锁住
/// </summary>
public char IsLock { get; set; }
/// <summary>
/// 完成标志 0(为未检), 1(已检), 2(弃检)
/// </summary>
public char CompleteFlag { get; set; }
/// <summary>
/// 检查医生ID
/// </summary>
public string? CheckDoctorId { get; set; }
/// <summary>
/// 检查日期
/// </summary>
public string? CheckDate { get; set; }
/// <summary>
/// 是审核
/// </summary>
public char IsAudit { get; set; }
/// <summary>
/// 审核医生ID
/// </summary>
public Guid? AuditorUserId { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditTime { get; set; }
}
}

35
src/Shentun.Peis.Application/Asbitems/AsbitemAppService.cs

@ -32,16 +32,22 @@ namespace Shentun.Peis.Asbitems
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly IDistributedCache<Asbitem, Guid> _asbitemCache;
private readonly AsbitemManager _manager;
private readonly IRepository<Item, Guid> _itemRepository;
private readonly IRepository<AsbitemDetail> _asbitemDetailRepository;
public AsbitemAppService(
IRepository<Asbitem, Guid> repository,
IRepository<IdentityUser, Guid> userRepository,
AsbitemManager manager,
IDistributedCache<Asbitem, Guid> asbitemCache)
IDistributedCache<Asbitem, Guid> asbitemCache,
IRepository<Item, Guid> itemRepository,
IRepository<AsbitemDetail> asbitemDetailRepository)
: base(repository)
{
_userRepository = userRepository;
_manager = manager;
_asbitemCache = asbitemCache;
_itemRepository = itemRepository;
_asbitemDetailRepository = asbitemDetailRepository;
}
/// <summary>
/// 获取通过主键
@ -68,7 +74,7 @@ namespace Shentun.Peis.Asbitems
return await base.GetListAsync(input);
}
/// <summary>
/// 获取列表 整合多条件查询 项目类别、名字、拼音简码、是否只显示启用的数据(默认显示全部)
@ -245,5 +251,30 @@ namespace Shentun.Peis.Asbitems
/// <summary>
/// 查询组合项目的子项目名称列表 登记页面用
/// </summary>
/// <returns></returns>
[HttpPost("api/app/Asbitem/GetSimpleAsbitemWithDetails")]
public async Task<List<SimpleAsbitemWithDetailsDto>> GetSimpleAsbitemWithDetailsAsync()
{
var query = from asbtiem in await Repository.GetQueryableAsync()
join asbitemDetail in await _asbitemDetailRepository.GetQueryableAsync() on asbtiem.Id equals asbitemDetail.AsbitemId
join item in await _itemRepository.GetQueryableAsync() on asbitemDetail.ItemId equals item.Id
orderby asbtiem.DisplayOrder, item.DisplayOrder ascending
select new
{
AsbitemId = asbtiem.Id,
ItemName = item.DisplayName
};
var result = query.Select(s => new SimpleAsbitemWithDetailsDto
{
AsbitemId = s.AsbitemId,
ItemName = s.ItemName
}).ToList();
return result;
}
}
}

10
src/Shentun.Peis.Application/Diagnosises/DiagnosisAppService.cs

@ -217,14 +217,8 @@ namespace Shentun.Peis.Diagnosises
a.IsSummaryTemplate,
a.DisplayOrder
},
ab = new
{
ab.SuggestionType,
ab.DisplayOrder,
ab.DiagnosisId,
ab.SuggestionContent
},
};
ab
};
var entlist = query.GroupBy(g => g.a.Id).Select(s => new SimpleDiagnosisWithSuggestionsDto
{

2
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -1273,7 +1273,7 @@ namespace Shentun.Peis.PatientRegisters
{
//_logger.LogInformation(input.Photo);
string imgurl = $"UpLoad/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{input.PatientRegisterId}";
string imgurl = $"photo/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{input.PatientRegisterId}";
var isupload = ImageHelper.Base64StrToImage(input.Photo, imgurl);
if (!string.IsNullOrEmpty(isupload))
return isupload;

11
src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs

@ -161,7 +161,7 @@ namespace Shentun.Peis.RegisterCheckPictures
throw new UserFriendlyException("体检人员不存在");
}
string PicName = DateTime.Now.ToString("yyyyMMddHHmmss") + rd.Next(1000, 9999);
// string PicName = DateTime.Now.ToString("yyyyMMddHHmmss") + rd.Next(1000, 9999);
List<RegisterCheckPicture> entlist_insert = new List<RegisterCheckPicture>();
@ -170,10 +170,13 @@ namespace Shentun.Peis.RegisterCheckPictures
foreach (var item in input.PictureBaseStrs)
{
string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath(AbsolutePath, item,
//string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath(AbsolutePath, item,
// PatientRegisterId,
// input.RegisterCheckId.ToString(),
// PicName + "_" + (input.PictureBaseStrs.IndexOf(item) + 1));
string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath(AbsolutePath, item.FileName, item.PictureBaseStr,
PatientRegisterId,
input.RegisterCheckId.ToString(),
PicName + "_" + (input.PictureBaseStrs.IndexOf(item) + 1));
input.RegisterCheckId.ToString());
if (string.IsNullOrEmpty(PictureUrl))
{

99
src/Shentun.Peis.Application/RegisterChecks/RegisterCheckAppService.cs

@ -1,7 +1,9 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Shentun.Peis.Enums;
using Shentun.Peis.MenuInfos;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.RegisterCheckItems;
@ -9,6 +11,7 @@ using Shentun.Peis.RegisterCheckSummarys;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
@ -42,6 +45,10 @@ namespace Shentun.Peis.RegisterChecks
private readonly RegisterCheckItemManager _registerCheckItemManager;
private readonly CacheService _cacheService;
private readonly IGuidGenerator _guidGenerator;
private readonly IConfiguration _configuration;
private readonly ICurrentUser _currentUser;
private readonly IRepository<UserItemType> _userItemTypeRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository;
public RegisterCheckAppService(IRepository<RegisterCheck, Guid> registerCheckRepository,
IRepository<RegisterCheckItem> registerCheckItemRepository,
@ -53,19 +60,27 @@ namespace Shentun.Peis.RegisterChecks
RegisterCheckManager registerCheckManager,
RegisterCheckItemManager registerCheckItemManager,
CacheService cacheService,
IGuidGenerator guidGenerator)
IGuidGenerator guidGenerator,
IConfiguration configuration,
ICurrentUser currentUser,
IRepository<UserItemType> userItemTypeRepository,
IRepository<Asbitem, Guid> asbitemRepository)
{
this._registerCheckRepository = registerCheckRepository;
this._userRepository = userRepository;
this._registerCheckManager = registerCheckManager;
this._patientRegisterRepository = patientRegisterRepository;
this._referenceRangeRepository = referenceRangeRepository;
_registerCheckRepository = registerCheckRepository;
_userRepository = userRepository;
_registerCheckManager = registerCheckManager;
_patientRegisterRepository = patientRegisterRepository;
_referenceRangeRepository = referenceRangeRepository;
_registerCheckItemRepository = registerCheckItemRepository;
_registerCheckSummaryRepository = registerCheckSummaryRepository;
_registerCheckSuggestionRepository = registerCheckSuggestionRepository;
this._registerCheckItemManager = registerCheckItemManager;
_registerCheckItemManager = registerCheckItemManager;
_cacheService = cacheService;
_guidGenerator = guidGenerator;
_configuration = configuration;
_currentUser = currentUser;
_userItemTypeRepository = userItemTypeRepository;
_asbitemRepository = asbitemRepository;
}
/// <summary>
@ -122,11 +137,11 @@ namespace Shentun.Peis.RegisterChecks
var entlist = (await _registerCheckRepository.GetDbSetAsync())
.Include(x => x.RegisterCheckAsbitems)
.ThenInclude(x => x.Asbitem).ThenInclude(x=>x.ItemType)
.ThenInclude(x => x.Asbitem).ThenInclude(x => x.ItemType)
.Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(PatientRegisterId)).ToList();
//排序
entlist = entlist.OrderBy(o=>o.RegisterCheckAsbitems.Max(o=>o.Asbitem.ItemType.DisplayOrder)).ToList()
.OrderBy(o=>o.RegisterCheckAsbitems.Max(o=>o.Asbitem.DisplayOrder)).ToList();
entlist = entlist.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.ItemType.DisplayOrder)).ToList()
.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.DisplayOrder)).ToList();
var userList = await _userRepository.GetListAsync();
var entdto = entlist.Select(s => new RegisterCheckOrAsbitemNameOrIsChargeDto
@ -163,6 +178,68 @@ namespace Shentun.Peis.RegisterChecks
return entdto;
}
/// <summary>
/// 获取登记check表数据(附带组合项目名称跟是否收费) 医生诊台左边列表 只有一个收费就显示收费 增加项目类别权限控制
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/RegisterCheck/GetRegisterCheckWithAsbitems")]
public async Task<List<RegisterCheckWithAsbitemsDto>> GetRegisterCheckWithAsbitemsAsync(PatientRegisterIdInputDto input)
{
var entlist = (await _registerCheckRepository.GetQueryableAsync())
.Include(x => x.RegisterCheckAsbitems)
.ThenInclude(x => x.Asbitem).ThenInclude(x => x.ItemType)
.Where(m => m.RegisterCheckAsbitems.Select(s => s.PatientRegisterId).Contains(input.PatientRegisterId));
#region 增加项目类别权限
string AdminId = _configuration.GetValue<string>("AdminId");
if (_currentUser.Id.Value != Guid.Parse(AdminId))
{
var asbitemIds = (from userItemType in await _userItemTypeRepository.GetQueryableAsync()
join asbitem in await _asbitemRepository.GetQueryableAsync() on userItemType.ItemTypeId equals asbitem.ItemTypeId
where userItemType.UserId == _currentUser.Id.Value
select asbitem.Id).ToList();
if (asbitemIds.Any())
{
entlist = entlist.Where(m => asbitemIds.Contains(m.RegisterCheckAsbitems.FirstOrDefault().Id));
}
else
{
return new List<RegisterCheckWithAsbitemsDto>();
}
}
#endregion
//排序
entlist = entlist.OrderBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.ItemType.DisplayOrder))
.ThenBy(o => o.RegisterCheckAsbitems.Max(o => o.Asbitem.DisplayOrder));
var entdto = entlist.ToList().Select(s => new RegisterCheckWithAsbitemsDto
{
AsbitemName = string.Join(",", s.RegisterCheckAsbitems.Select(rs => rs.Asbitem.DisplayName).ToList()),
AuditorUserId = s.AuditorUserId,
AuditTime = s.AuditTime,
CheckDate = DataHelper.ConversionDateToString(s.CheckDate),
CheckDoctorId = s.CheckDoctorId,
CheckRequestNo = s.CheckRequestNo,
CompleteFlag = s.CompleteFlag,
Id = s.Id,
IsAudit = s.IsAudit,
IsCharge = s.RegisterCheckAsbitems.Where(m => m.IsCharge == 'Y').Count() > 0 ? 'Y' : 'N',
IsLock = s.IsLock,
}).ToList();
return entdto;
}
[HttpPost("api/app/registercheck/UpdateCheckResult")]
public async Task UpdateCheckResult(UpdateCheckResultDto input)
{
@ -200,7 +277,7 @@ namespace Shentun.Peis.RegisterChecks
//修改小结
var deleteRegisterCheckSummarys = await _registerCheckSummaryRepository.GetListAsync(o => o.RegisterCheckId == input.RegisterCheckId);
await _registerCheckSummaryRepository.DeleteManyAsync(deleteRegisterCheckSummarys);
for(var i = 0; i < input.Summarys.Count; i++)
for (var i = 0; i < input.Summarys.Count; i++)
{
var registerCheckSummary = new RegisterCheckSummary(_guidGenerator.Create())
{

25
src/Shentun.Peis.Domain/ImageHelper.cs

@ -114,8 +114,8 @@ namespace Shentun.Peis
MemoryStream ms = new MemoryStream(photo);
Bitmap bitmap = new Bitmap(ms);
ms.Close();
if (bitmap != null)
{
string ImageSuffix = "";
@ -184,17 +184,18 @@ namespace Shentun.Peis
/// 将Base64字符串转换为图片并保存到服务器
/// </summary>
/// <param name="AbsolutePath">物理路径</param>
/// <param name="fileName">图片名</param>
/// <param name="base64Str"></param>
/// <param name="PatientRegisterId">登记ID 作为目录</param>
/// <param name="RegisterCheckId">检查ID 作为目录</param>
/// <param name="ImageName">图片名</param>
/// <returns></returns>
public static string Base64StrToImageInAbsolutePath(string AbsolutePath, string base64Str, string PatientRegisterId, string RegisterCheckId, string ImageName)
public static string Base64StrToImageInAbsolutePath(string AbsolutePath, string fileName, string base64Str, string PatientRegisterId, string RegisterCheckId)
{
var ret = "";
try
{
base64Str = base64Str.Substring(base64Str.IndexOf(",") + 1);
string savePath = "";
@ -221,20 +222,19 @@ namespace Shentun.Peis
ImageSuffix = ".jpg";
}
savePath = AbsolutePath + "\\" + PatientRegisterId + "\\" + RegisterCheckId + "\\" + ImageName + ImageSuffix;
hostPath = "/CheckPictureImg/" + PatientRegisterId + "/" + RegisterCheckId + "/" + ImageName + ImageSuffix;
string savaDirectory = $"{AbsolutePath}\\pacs\\{DateTime.Now.Year}\\{DateTime.Now.Month}\\{DateTime.Now.Day}\\{PatientRegisterId}\\{RegisterCheckId}";
savePath = $"{savaDirectory}\\{fileName + ImageSuffix}";
hostPath = $"/CheckPictureImg/pacs/{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}/{PatientRegisterId}/{RegisterCheckId}/{fileName + ImageSuffix}";
if (!Directory.Exists(AbsolutePath + "\\" + PatientRegisterId))
{
Directory.CreateDirectory(AbsolutePath + "\\" + PatientRegisterId);
}
if (!Directory.Exists(AbsolutePath + "\\" + PatientRegisterId + "\\" + RegisterCheckId))
if (!Directory.Exists(savaDirectory))
{
Directory.CreateDirectory(AbsolutePath + "\\" + PatientRegisterId + "\\" + RegisterCheckId);
Directory.CreateDirectory(savaDirectory);
}
//图片后缀格式
var suffix = savePath.Substring(savePath.LastIndexOf('.') + 1, savePath.Length - savePath.LastIndexOf('.') - 1).ToLower();
var suffixName = suffix == "png" ? ImageFormat.Png :
@ -273,6 +273,7 @@ namespace Shentun.Peis
}
/// <summary>

Loading…
Cancel
Save