Browse Source

单位显示模式,词条加项目类别权限

master
wxd 1 year ago
parent
commit
1cc1166e95
  1. 14
      src/Shentun.Peis.Application.Contracts/BigtextResultTypes/BigtextResultTypeListInputDto.cs
  2. 5
      src/Shentun.Peis.Application.Contracts/RegisterCheckItems/RegisterCheckItemOrItemOrItemResultTemplateDto.cs
  3. 10
      src/Shentun.Peis.Application/BigtextResultTypes/BigtextResultTypeAppService.cs
  4. 20
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  5. 3
      src/Shentun.Peis.Application/RegisterCheckItems/RegisterCheckItemAppService.cs
  6. 60
      src/Shentun.Peis.Domain/CacheService.cs

14
src/Shentun.Peis.Application.Contracts/BigtextResultTypes/BigtextResultTypeListInputDto.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.BigtextResultTypes
{
public class BigtextResultTypeListInputDto
{
/// <summary>
/// 项目类别ID
/// </summary>
public string ItemTypeId { get; set; }
}
}

5
src/Shentun.Peis.Application.Contracts/RegisterCheckItems/RegisterCheckItemOrItemOrItemResultTemplateDto.cs

@ -153,5 +153,10 @@ namespace Shentun.Peis.RegisterCheckItems
/// 输入结果校验公式
/// </summary>
public string InputCheck { get; set; }
/// <summary>
/// 项目类别ID
/// </summary>
public Guid ItemTypeId { get; set; }
}
}

10
src/Shentun.Peis.Application/BigtextResultTypes/BigtextResultTypeAppService.cs

@ -56,16 +56,20 @@ namespace Shentun.Peis.BigtextResultTypes
return entityDto;
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="input">可根据项目类别ID筛选</param>
/// <returns></returns>
[HttpPost("api/app/BigtextResultType/GetList")]
public async Task<List<BigtextResultTypeDto>> GetListAsync()
public async Task<List<BigtextResultTypeDto>> GetListAsync(BigtextResultTypeListInputDto input)
{
var query = await _bigtextResultTypeRepository.GetListAsync();
var query = await _bigtextResultTypeRepository.GetQueryableAsync();
if (!string.IsNullOrWhiteSpace(input.ItemTypeId))
{
query = query.Where(m => m.ItemTypeId == Guid.Parse(input.ItemTypeId));
}
var entListDto = query.Select(s => new BigtextResultTypeDto
{

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

@ -829,27 +829,27 @@ namespace Shentun.Peis.PatientRegisters
JobPost = ent.JobPost,
JobTitle = ent.JobTitle,
MaritalStatusId = ent.MaritalStatusId,
MaritalStatusName = _cacheService.GetMaritalStatusNameAsync(ent.MaritalStatusId).Result,
MaritalStatusName = _cacheService.GetMaritalStatusNameAsync(ent.MaritalStatusId).GetAwaiter().GetResult(),
MedicalCardNo = ent.MedicalCardNo,
MedicalConclusionId = ent.MedicalConclusionId,
MedicalPackageId = ent.MedicalPackageId,
MedicalStartDate = DataHelper.ConversionDateToString(ent.MedicalStartDate),
MedicalTimes = ent.MedicalTimes,
MedicalTypeId = ent.MedicalTypeId,
MedicalTypeName = _cacheService.GetMedicalTypeNameAsync(ent.MedicalTypeId).Result,
MedicalTypeName = _cacheService.GetMedicalTypeNameAsync(ent.MedicalTypeId).GetAwaiter().GetResult(),
MedicalCenterId = ent.MedicalCenterId,
PatientId = ent.PatientId,
PatientName = ent.PatientName,
PatientRegisterNo = ent.PatientRegisterNo,
PersonnelTypeId = ent.PersonnelTypeId,
PersonnelTypeName = _cacheService.GetPersonnelTypeNameAsync(ent.PersonnelTypeId).Result,
PersonnelTypeName = _cacheService.GetPersonnelTypeNameAsync(ent.PersonnelTypeId).GetAwaiter().GetResult(),
Remark = ent.Remark,
ReportPrintTimes = ent.ReportPrintTimes,
Salesman = ent.Salesman,
SexHormoneTermId = ent.SexHormoneTermId,
Photo = ent.Photo,
CreatorName = _cacheService.GetSurnameAsync(ent.CreatorId).Result,
LastModifierName = _cacheService.GetSurnameAsync(ent.LastModifierId).Result,
CreatorName = _cacheService.GetSurnameAsync(ent.CreatorId).GetAwaiter().GetResult(),
LastModifierName = _cacheService.GetSurnameAsync(ent.LastModifierId).GetAwaiter().GetResult(),
Address = ent.Patient.Address, //档案表信息
BirthPlaceId = ent.Patient.BirthPlaceId,
DisplayName = ent.Patient.DisplayName,
@ -857,14 +857,14 @@ namespace Shentun.Peis.PatientRegisters
IdNo = ent.Patient.IdNo,
MobileTelephone = ent.Patient.MobileTelephone,
NationId = ent.Patient.NationId,
NationName = _cacheService.GetNationNameAsync(ent.Patient.NationId).Result,
NationName = _cacheService.GetNationNameAsync(ent.Patient.NationId).GetAwaiter().GetResult(),
PatientNo = ent.Patient.PatientNo,
PostalCode = ent.Patient.PostalCode,
Telephone = ent.Patient.Telephone,
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(ent.CustomerOrgId).Result,
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).Result.Id,
CustomerOrgParentName = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).Result.DisplayName,
IsPatientOccupationalDisease = _patientOccupationalDiseaseManager.GetPatientRegisterIsOccupationalDisease(ent.Id).Result
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(ent.CustomerOrgId).GetAwaiter().GetResult(),
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).GetAwaiter().GetResult().Id,
CustomerOrgParentName = _cacheService.GetTopCustomerOrgAsync(ent.CustomerOrgId).GetAwaiter().GetResult().DisplayName,
IsPatientOccupationalDisease = _patientOccupationalDiseaseManager.GetPatientRegisterIsOccupationalDisease(ent.Id).GetAwaiter().GetResult()
};
return entdto;
}

3
src/Shentun.Peis.Application/RegisterCheckItems/RegisterCheckItemAppService.cs

@ -187,7 +187,8 @@ namespace Shentun.Peis.RegisterCheckItems
IsCriticalValueAudit = s.IsCriticalValueAudit,
IsCriticalValuePhoneComplete = s.IsCriticalValuePhoneComplete,
IsCriticalValueSmsComplete = s.IsCriticalValueSmsComplete,
IsReview = s.IsReview
IsReview = s.IsReview,
ItemTypeId = s.Item.ItemTypeId
}).ToList();
return entdto;

60
src/Shentun.Peis.Domain/CacheService.cs

@ -51,6 +51,9 @@ namespace Shentun.Peis
private readonly SysParmValueManager _sysParmValueManager;
private readonly IDistributedCache<string, string> _customerOrgDisplayModeCache;
public CacheService(
IDistributedCache<IdentityUser, Guid> userCache,
IMemoryCache customerOrgCache,
@ -77,7 +80,8 @@ namespace Shentun.Peis
IDistributedCache<string, Guid> customerOrgTopNameCache,
IDistributedCache<SampleType, Guid> sampleTypeCache,
IRepository<SampleType, Guid> sampleTypeRepository,
SysParmValueManager sysParmValueManager)
SysParmValueManager sysParmValueManager,
IDistributedCache<string, string> customerOrgDisplayModeCache)
{
_userCache = userCache;
_userRepository = userRepository;
@ -115,6 +119,7 @@ namespace Shentun.Peis
_sampleTypeCache = sampleTypeCache;
_sampleTypeRepository = sampleTypeRepository;
_sysParmValueManager = sysParmValueManager;
_customerOrgDisplayModeCache = customerOrgDisplayModeCache;
}
private async Task<IdentityUser> GetUserAsync(Guid id)
@ -353,9 +358,23 @@ namespace Shentun.Peis
/// 获取一级单位
/// </summary>
/// <param name="id"></param>
/// <param name="customerOrgDisplayMode">单位显示模式 0-显示一级单位 1-显示上一级单位</param>
/// <returns></returns>
public async Task<CustomerOrg> GetTopCustomerOrgAsync(Guid id)
{
#region 获取单位显示模式 存缓存
string customerOrgDisplayMode = _customerOrgDisplayModeCache.Get("customer_org_display_mode");
if (string.IsNullOrWhiteSpace(customerOrgDisplayMode))
{
customerOrgDisplayMode = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "customer_org_display_mode");
if (string.IsNullOrWhiteSpace(customerOrgDisplayMode))
{
customerOrgDisplayMode = "0";
}
_customerOrgDisplayModeCache.Set("customer_org_display_mode", customerOrgDisplayMode);
}
#endregion
var entity = (CustomerOrg)_customerOrgCache.Get(id);
if (entity == null)
{
@ -365,7 +384,21 @@ namespace Shentun.Peis
if (entity.ParentId != null && entity.ParentId != Guid.Empty)
{
entity = await GetTopCustomerOrgAsync((Guid)entity.ParentId);
Guid parentId = (Guid)entity.ParentId;
if (customerOrgDisplayMode == "0")
{
entity = await GetTopCustomerOrgAsync(parentId);
}
else
{
entity = (CustomerOrg)_customerOrgCache.Get(parentId);
if (entity == null)
{
entity = await _customerOrgRepository.GetAsync(o => o.Id == parentId);
_customerOrgCache.Set(parentId, entity);
}
}
}
return entity;
}
@ -478,6 +511,19 @@ namespace Shentun.Peis
/// <returns></returns>
private async Task<string> GetTopCustomerOrgNameInCustomerOrgIdAsync(Guid id)
{
#region 获取单位显示模式 存缓存
string customerOrgDisplayMode = _customerOrgDisplayModeCache.Get("customer_org_display_mode");
if (string.IsNullOrWhiteSpace(customerOrgDisplayMode))
{
customerOrgDisplayMode = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "customer_org_display_mode");
if (string.IsNullOrWhiteSpace(customerOrgDisplayMode))
{
customerOrgDisplayMode = "0";
}
_customerOrgDisplayModeCache.Set("customer_org_display_mode", customerOrgDisplayMode);
}
#endregion
var entity = (CustomerOrg)_customerOrgCache.Get(id);
if (entity == null)
{
@ -495,8 +541,14 @@ namespace Shentun.Peis
return entity.DisplayName;
}
entity = await _customerOrgRepository.GetAsync(o => o.PathCode == entity.PathCode.Substring(0, 5));
if (customerOrgDisplayMode == "0")
{
entity = await _customerOrgRepository.GetAsync(o => o.PathCode == entity.PathCode.Substring(0, 5));
}
else
{
entity = await _customerOrgRepository.GetAsync(o => o.Id == entity.ParentId);
}
return entity.DisplayName;
}

Loading…
Cancel
Save