Browse Source

修改医生诊台右边列表的项目类别权限

bjmzak
wxd 1 year ago
parent
commit
626f711b4e
  1. 332
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  2. 3
      src/Shentun.Peis.Domain.Shared/Enums/PatientRegisterCompleteFlag.cs

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

@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using NPOI.POIFS.Properties;
using NPOI.Util;
@ -42,6 +43,7 @@ using Volo.Abp.Domain.Repositories;
using Volo.Abp.Guids;
using Volo.Abp.Identity;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Users;
namespace Shentun.Peis.PatientRegisters
{
@ -106,6 +108,9 @@ namespace Shentun.Peis.PatientRegisters
private readonly IRepository<PatientRegisterExter> _patientRegisterExterRepository;
private readonly PatientRegisterExterManager _patientRegisterExterManager;
private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
private readonly IConfiguration _configuration;
private readonly ICurrentUser _currentUser;
private readonly IRepository<UserItemType> _userItemTypeRepository;
public PatientRegisterAppService(
IRepository<PatientRegister, Guid> repository,
IRepository<Patient, Guid> patientRepository,
@ -152,7 +157,10 @@ namespace Shentun.Peis.PatientRegisters
SysParmValueManager sysParmValueManager,
IRepository<PatientRegisterExter> patientRegisterExterRepository,
PatientRegisterExterManager patientRegisterExterManager,
IRepository<LisRequest, Guid> lisRequestRepository)
IRepository<LisRequest, Guid> lisRequestRepository,
IConfiguration configuration,
ICurrentUser currentUser,
IRepository<UserItemType> userItemTypeRepository)
: base(repository)
{
this._repository = repository;
@ -201,6 +209,9 @@ namespace Shentun.Peis.PatientRegisters
_patientRegisterExterRepository = patientRegisterExterRepository;
_patientRegisterExterManager = patientRegisterExterManager;
_lisRequestRepository = lisRequestRepository;
_configuration = configuration;
_currentUser = currentUser;
_userItemTypeRepository = userItemTypeRepository;
}
/// <summary>
/// 获取通过主键
@ -503,7 +514,7 @@ namespace Shentun.Peis.PatientRegisters
int totalCount = entlist.Count();
entlist = entlist.OrderByDescending(o=>o.patientRegister.CompleteFlag).ThenBy(o => o.patientRegister.Id).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount);
entlist = entlist.OrderByDescending(o => o.patientRegister.CompleteFlag).ThenBy(o => o.patientRegister.Id).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount);
var entdto = entlist.Select(s => new PatientRegisterOrNoDto
@ -1084,6 +1095,252 @@ namespace Shentun.Peis.PatientRegisters
}
///// <summary>
///// 体检记录查询 医生诊台
///// </summary>
///// <param name="input"></param>
///// <returns></returns>
//[HttpPost("api/app/PatientRegister/GetDoctorPeisRecordList")]
//public async Task<PagedResultDto<PatientRegisterOrNoDto>> GetDoctorPeisRecordListAsync(DoctorPeisRecordListInputDto input)
//{
// var query = from a in await _repository.GetQueryableAsync()
// join b in await _patientRepository.GetQueryableAsync() on a.PatientId equals b.Id into bb
// from ab in bb.DefaultIfEmpty()
// join c in await _registerCheckRepository.GetQueryableAsync() on a.Id equals c.PatientRegisterId into cc
// from ac in cc.DefaultIfEmpty()
// join d in await _registerCheckAsbitemRepository.GetQueryableAsync() on ac.Id equals d.RegisterCheckId into dd
// from ad in dd.DefaultIfEmpty()
// join e in await _asbitemRepository.GetQueryableAsync() on ad.AsbitemId equals e.Id
// where e.IsCheck == 'Y'
// select new
// {
// a,
// ab,
// AsbitemId = ad != null ? ad.AsbitemId : Guid.Empty,
// RegisterCheckCompleteFlag = ac != null ? ac.CompleteFlag : '9',
// RegisterCheckIsAudit = ac != null ? ac.IsAudit : '9'
// };
// var sumquery = query;
// if (input.CustomerOrgs.Any())
// {
// var item = input.CustomerOrgs[0];
// if (item.CustomerOrgGroupId.Any())
// {
// sumquery = sumquery.Where(m => m.a.CustomerOrgGroupId != null && item.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value));
// }
// if (item.CustomerOrgRegisterId != null && item.CustomerOrgRegisterId != Guid.Empty)
// {
// sumquery = sumquery.Where(m => m.a.CustomerOrgRegisterId == item.CustomerOrgRegisterId);
// }
// if (item.CustomerOrgId != null)
// {
// var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item.CustomerOrgId.Value);
// sumquery = sumquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId));
// }
// if (!string.IsNullOrEmpty(item.StartDate) && !string.IsNullOrEmpty(item.EndDate))
// {
// if (item.DateType == '1')
// {
// sumquery = sumquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item.StartDate) &&
// m.a.CreationTime < Convert.ToDateTime(item.EndDate).AddDays(1));
// }
// else if (item.DateType == '2')
// {
// sumquery = sumquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate >= Convert.ToDateTime(item.StartDate) &&
// m.a.MedicalStartDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1));
// }
// else if (item.DateType == '3')
// {
// sumquery = sumquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item.StartDate) &&
// m.a.SummaryDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1));
// }
// }
// if (input.CustomerOrgs.Count > 1)
// {
// foreach (var item2 in input.CustomerOrgs)
// {
// if (input.CustomerOrgs.IndexOf(item2) > 0)
// {
// var newquery = query;
// if (item2.CustomerOrgGroupId.Any())
// {
// newquery = newquery.Where(m => m.a.CustomerOrgGroupId != null && item2.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value));
// }
// if (item2.CustomerOrgRegisterId != null && item2.CustomerOrgRegisterId != Guid.Empty)
// {
// newquery = newquery.Where(m => m.a.CustomerOrgRegisterId == item2.CustomerOrgRegisterId);
// }
// if (item2.CustomerOrgId != null)
// {
// var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item2.CustomerOrgId.Value);
// newquery = newquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId));
// }
// if (!string.IsNullOrEmpty(item2.StartDate) && !string.IsNullOrEmpty(item2.EndDate))
// {
// if (item2.DateType == '1')
// {
// newquery = newquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item2.StartDate) &&
// m.a.CreationTime < Convert.ToDateTime(item2.EndDate).AddDays(1));
// }
// else if (item2.DateType == '2')
// {
// newquery = newquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate.Value >= Convert.ToDateTime(item2.StartDate) &&
// m.a.MedicalStartDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1));
// }
// else if (item2.DateType == '3')
// {
// newquery = newquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item2.StartDate) &&
// m.a.SummaryDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1));
// }
// }
// sumquery = sumquery.Union(newquery);
// }
// }
// }
// }
// if (!string.IsNullOrEmpty(input.PatientName))
// {
// sumquery = sumquery.Where(m => m.a.PatientName != null && m.a.PatientName.Contains(input.PatientName));
// }
// if (input.SexId != null)
// {
// sumquery = sumquery.Where(m => m.a.SexId == input.SexId);
// }
// if (input.CompleteFlag != null)
// {
// sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag);
// }
// else
// {
// //直接过滤
// sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration);
// }
// if (input.IsAudit != null)
// {
// sumquery = sumquery.Where(m => m.a.IsAudit == input.IsAudit);
// }
// if (input.Asbitems.Any())
// {
// sumquery = sumquery.Where(m => input.Asbitems.Contains(m.AsbitemId));
// }
// //if (input.IsPicture == 'Y')
// //{
// // //查询有图数据
// // var query_picture = from a in await _registerCheckAsbitemRepository.GetQueryableAsync()
// // join b in await _registerCheckPictureRepository.GetQueryableAsync() on a.RegisterCheckId equals b.RegisterCheckId
// // select a.PatientRegisterId;
// // sumquery = sumquery.Where(m => query_picture.Contains(m.a.Id));
// //}
// if (input.AsbitemCompleteFlag != null)
// {
// sumquery = sumquery.Where(m => m.RegisterCheckCompleteFlag == input.AsbitemCompleteFlag);
// }
// if (input.AsbitemIsAudit != null)
// {
// sumquery = sumquery.Where(m => m.RegisterCheckIsAudit == input.AsbitemIsAudit);
// }
// var sumqueryGroup = sumquery.ToList().GroupBy(g => g.a.Id);
// int totalCount = sumqueryGroup.Count();
// var entlist = sumqueryGroup.OrderBy(o => o.Key).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).Select(s => new PatientRegisterOrNoDto
// {
// CreationTime = s.FirstOrDefault().a.CreationTime,
// CreatorId = s.FirstOrDefault().a.CreatorId,
// Id = s.FirstOrDefault().a.Id,
// LastModificationTime = s.FirstOrDefault().a.LastModificationTime,
// LastModifierId = s.FirstOrDefault().a.LastModifierId,
// ThirdInfo = s.FirstOrDefault().a.ThirdInfo,
// SummaryDoctorId = s.FirstOrDefault().a.SummaryDoctorId,
// SummaryDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.SummaryDate),
// SexId = s.FirstOrDefault().a.SexId,
// Age = s.FirstOrDefault().a.Age,
// AuditDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.AuditDate),
// AuditDoctorId = s.FirstOrDefault().a.AuditDoctorId,
// BirthDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.BirthDate),
// CompleteFlag = s.FirstOrDefault().a.CompleteFlag,
// CustomerOrgGroupId = s.FirstOrDefault().a.CustomerOrgGroupId,
// CustomerOrgId = s.FirstOrDefault().a.CustomerOrgId,
// CustomerOrgRegisterId = s.FirstOrDefault().a.CustomerOrgRegisterId,
// GuidePrintTimes = s.FirstOrDefault().a.GuidePrintTimes,
// InterposeMeasure = s.FirstOrDefault().a.InterposeMeasure,
// IsAudit = s.FirstOrDefault().a.IsAudit,
// IsLock = s.FirstOrDefault().a.IsLock,
// IsMedicalStart = s.FirstOrDefault().a.IsMedicalStart,
// IsNameHide = s.FirstOrDefault().a.IsNameHide,
// IsPhoneFollow = s.FirstOrDefault().a.IsPhoneFollow,
// IsRecoverGuide = s.FirstOrDefault().a.IsRecoverGuide,
// IsUpload = s.FirstOrDefault().a.IsUpload,
// IsVip = s.FirstOrDefault().a.IsVip,
// JobCardNo = s.FirstOrDefault().a.JobCardNo,
// JobPost = s.FirstOrDefault().a.JobPost,
// JobTitle = s.FirstOrDefault().a.JobTitle,
// MaritalStatusId = s.FirstOrDefault().a.MaritalStatusId,
// MedicalCardNo = s.FirstOrDefault().a.MedicalCardNo,
// MedicalConclusionId = s.FirstOrDefault().a.MedicalConclusionId,
// MedicalPackageId = s.FirstOrDefault().a.MedicalPackageId,
// MedicalStartDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.MedicalStartDate),
// MedicalTimes = s.FirstOrDefault().a.MedicalTimes,
// MedicalTypeId = s.FirstOrDefault().a.MedicalTypeId,
// MedicalCenterId = s.FirstOrDefault().a.MedicalCenterId,
// PatientId = s.FirstOrDefault().a.PatientId,
// PatientName = s.FirstOrDefault().a.PatientName,
// PatientRegisterNo = s.FirstOrDefault().a.PatientRegisterNo,
// PersonnelTypeId = s.FirstOrDefault().a.PersonnelTypeId,
// Photo = s.FirstOrDefault().a.Photo,
// Remark = s.FirstOrDefault().a.Remark,
// ReportPrintTimes = s.FirstOrDefault().a.ReportPrintTimes,
// Salesman = s.FirstOrDefault().a.Salesman,
// SexHormoneTermId = s.FirstOrDefault().a.SexHormoneTermId,
// CreatorName = "",
// LastModifierName = "",
// Address = s.FirstOrDefault().ab.Address, //档案表信息
// BirthPlaceId = s.FirstOrDefault().ab.BirthPlaceId,
// DisplayName = s.FirstOrDefault().ab.DisplayName,
// Email = s.FirstOrDefault().ab.Email,
// IdNo = s.FirstOrDefault().ab.IdNo,
// MobileTelephone = s.FirstOrDefault().ab.MobileTelephone,
// NationId = s.FirstOrDefault().ab.NationId,
// PatientNo = s.FirstOrDefault().ab.PatientNo,
// PatientPassword = s.FirstOrDefault().ab.PatientPassword,
// PostalCode = s.FirstOrDefault().ab.PostalCode,
// Telephone = s.FirstOrDefault().ab.Telephone,
// CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result,
// CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(s.FirstOrDefault().a.CustomerOrgId).Result.Id,
// CustomerOrgParentName = _cacheService.GetTopCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result
// }).ToList();
// return new PagedResultDto<PatientRegisterOrNoDto>(totalCount, entlist);
//}
/// <summary>
/// 体检记录查询 医生诊台
/// </summary>
@ -1250,11 +1507,45 @@ namespace Shentun.Peis.PatientRegisters
}
#region 增加项目类别权限
List<Guid> asbitemIds = new List<Guid>();
string AdminId = _configuration.GetValue<string>("AdminId");
if (_currentUser.Id.Value != Guid.Parse(AdminId))
{
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();
}
#endregion
var sumqueryGroup = sumquery.ToList().GroupBy(g => g.a.Id);
int totalCount = sumqueryGroup.Count();
var entlist = sumqueryGroup.OrderBy(o => o.Key).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).Select(s => new PatientRegisterOrNoDto
List<PatientRegisterOrNoDto> entlist = new List<PatientRegisterOrNoDto>();
foreach (var s in sumqueryGroup.OrderBy(o => o.Key))
{
bool IsDisplay = false;
if (_currentUser.Id.Value == Guid.Parse(AdminId))
{
IsDisplay = true;
}
else if (s.Where(m => asbitemIds.Contains(m.AsbitemId)).Count() > 0)
{
IsDisplay = true;
}
if (IsDisplay)
{
entlist.Add(new PatientRegisterOrNoDto
{
CreationTime = s.FirstOrDefault().a.CreationTime,
CreatorId = s.FirstOrDefault().a.CreatorId,
@ -1319,8 +1610,15 @@ namespace Shentun.Peis.PatientRegisters
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result,
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(s.FirstOrDefault().a.CustomerOrgId).Result.Id,
CustomerOrgParentName = _cacheService.GetTopCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result
});
}
}).ToList();
}
int totalCount = entlist.Count;
entlist = entlist.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).ToList();
return new PagedResultDto<PatientRegisterOrNoDto>(totalCount, entlist);
@ -1495,8 +1793,26 @@ namespace Shentun.Peis.PatientRegisters
foreach (var s in sumqueryGroup.OrderBy(o => o.Key))
{
if (input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck
|| s.Where(m => m.RegisterCheckCompleteFlag != RegisterCheckCompleteFlag.Checked).Count() == 0)
bool IsDisplay = false;
if (input.CompleteFlag == PatientRegisterCompleteFlag.ItemCheckUnSumCheck)
{
if (s.Where(m => m.RegisterCheckCompleteFlag != RegisterCheckCompleteFlag.Checked).Count() == 0
&& s.FirstOrDefault().a.CompleteFlag != PatientRegisterCompleteFlag.SumCheck)
{
IsDisplay = true;
}
else
{
IsDisplay = false;
}
}
else
{
IsDisplay = true;
}
if (IsDisplay)
{
entlist.Add(new PatientRegisterOrNoDto
{
@ -3135,7 +3451,7 @@ namespace Shentun.Peis.PatientRegisters
{
f.MedicalStartDate = DateTime.Now;
f.IsMedicalStart = 'Y';
if(f.PatientRegisterNo.StartsWith("P"))
if (f.PatientRegisterNo.StartsWith("P"))
{
f.PatientRegisterNo = _manager.CreatePatientRegisterNo(f.MedicalCenterId).Result;
}

3
src/Shentun.Peis.Domain.Shared/Enums/PatientRegisterCompleteFlag.cs

@ -31,6 +31,9 @@ namespace Shentun.Peis.Enums
[Description("已审核")]
public const char Audit = '4';
/// <summary>
/// 项目全部已检未总检
/// </summary>
[Description("项目全部已检未总检")]
public const char ItemCheckUnSumCheck = '5';
}

Loading…
Cancel
Save