|
|
|
@ -8,16 +8,19 @@ using Shentun.WebPeis.Models; |
|
|
|
using Shentun.WebPeis.OrganizationUnits; |
|
|
|
using Shentun.WebPeis.PatientRegisters; |
|
|
|
using Shentun.WebPeis.Persons; |
|
|
|
using Shentun.WebPeis.QuestionRegisters; |
|
|
|
using System; |
|
|
|
using System.Collections; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Security.Cryptography.X509Certificates; |
|
|
|
using System.Text; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Volo.Abp; |
|
|
|
using Volo.Abp.Application.Services; |
|
|
|
using Volo.Abp.Domain.Repositories; |
|
|
|
using Volo.Abp.Identity; |
|
|
|
using Volo.Abp.Uow; |
|
|
|
using static Volo.Abp.Identity.Settings.IdentitySettingNames; |
|
|
|
|
|
|
|
namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
@ -48,6 +51,17 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
private readonly IRepository<Patient> _patientRepository; |
|
|
|
private readonly IRepository<RegisterCheck> _registerCheckRepository; |
|
|
|
private readonly IRepository<RegisterCheckAsbitem> _registerCheckAsbitemRepository; |
|
|
|
|
|
|
|
private readonly IRepository<QuestionRegister> _questionRegisterRepository; |
|
|
|
private readonly IRepository<QuestionRegisterItem> _questionRegisterItemRepository; |
|
|
|
private readonly IRepository<QuestionRegisterAnswer> _questionRegisterAnswerRrepository; |
|
|
|
private readonly IRepository<Question> _questionRepository; |
|
|
|
private readonly IRepository<QuestionAnswer> _questionAnswerRepository; |
|
|
|
private readonly IRepository<QuestionSubjectType> _questionSubjectTypeRepository; |
|
|
|
private readonly IRepository<DiseaseRisk> _diseaseRiskRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevelAnswer> _diseaseRiskLevelAnswerRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevelAsbitem> _diseaseRiskLevelAsbitemRepository; |
|
|
|
public AppointPatientRegisterAppService(IRepository<AppointPatientRegister> repository, |
|
|
|
CacheService cacheService, |
|
|
|
IRepository<ItemType> itemTypeRepository, |
|
|
|
@ -66,7 +80,19 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
IRepository<PatientRegister> patientRegisterRepository, |
|
|
|
IRepository<Patient> patientRepository, |
|
|
|
IRepository<RegisterCheck> registerCheckRepository, |
|
|
|
IRepository<RegisterCheckAsbitem> registerCheckAsbitemRepository |
|
|
|
IRepository<RegisterCheckAsbitem> registerCheckAsbitemRepository, |
|
|
|
|
|
|
|
IRepository<QuestionRegister> questionRegisterRepository, |
|
|
|
IRepository<QuestionRegisterItem> questionRegisterItemRepository, |
|
|
|
IRepository<QuestionRegisterAnswer> questionRegisterAnswerRrepository, |
|
|
|
IRepository<Question> questionRepository, |
|
|
|
IRepository<QuestionAnswer> questionAnswerRepository, |
|
|
|
IRepository<QuestionSubjectType> questionSubjectTypeRepository, |
|
|
|
IRepository<DiseaseRisk> diseaseRiskRepository, |
|
|
|
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository, |
|
|
|
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository, |
|
|
|
IRepository<DiseaseRiskLevelAsbitem> diseaseRiskLevelAsbitemRepository |
|
|
|
|
|
|
|
) |
|
|
|
{ |
|
|
|
_repository = repository; |
|
|
|
@ -89,9 +115,21 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
_registerCheckAsbitemRepository = registerCheckAsbitemRepository; |
|
|
|
_registerCheckRepository = registerCheckRepository; |
|
|
|
|
|
|
|
_questionRegisterRepository = questionRegisterRepository; |
|
|
|
_questionRegisterItemRepository = questionRegisterItemRepository; |
|
|
|
_questionRegisterAnswerRrepository = questionRegisterAnswerRrepository; |
|
|
|
_questionRepository = questionRepository; |
|
|
|
_questionAnswerRepository = questionAnswerRepository; |
|
|
|
_questionSubjectTypeRepository = questionSubjectTypeRepository; |
|
|
|
_diseaseRiskRepository = diseaseRiskRepository; |
|
|
|
_diseaseRiskLevelRepository = diseaseRiskLevelRepository; |
|
|
|
_diseaseRiskLevelAnswerRepository = diseaseRiskLevelAnswerRepository; |
|
|
|
_diseaseRiskLevelAsbitemRepository = diseaseRiskLevelAsbitemRepository; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 预约,小程序使用
|
|
|
|
/// 创建预约,小程序使用
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
@ -226,7 +264,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
query = query.Where(o => o.user.PhoneNumber == input.MobilePhone); |
|
|
|
} |
|
|
|
|
|
|
|
if(input.CompleteFlag != null) |
|
|
|
if (input.CompleteFlag != null) |
|
|
|
{ |
|
|
|
query = query.Where(o => o.appointPatientRegister.CompleteFlag == input.CompleteFlag); |
|
|
|
} |
|
|
|
@ -361,7 +399,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
public async Task CancelAppointAsync(AppointPatientRegisterIdInputDto input) |
|
|
|
{ |
|
|
|
var appointPatientRegister = await _repository.GetAsync(o => o.AppointPatientRegisterId == input.AppointPatientRegisterId); |
|
|
|
if(appointPatientRegister.IsCharge == 'Y') |
|
|
|
if (appointPatientRegister.IsCharge == 'Y') |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("已收费不能取消"); |
|
|
|
} |
|
|
|
@ -478,8 +516,8 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
ChildCustomerOrgName = customerOrg.CustomerOrgName, |
|
|
|
CustomerOrgRegisterId = patientRegister.CustomerOrgRegisterId, |
|
|
|
CustomerOrgGroupId = patientRegister.CustomerOrgGroupId, |
|
|
|
CustomerOrgGroupName = haveCustomerOrgGroup == null?"": haveCustomerOrgGroup.CustomerOrgGroupName, |
|
|
|
Price = haveCustomerOrgGroup == null ? 0:haveCustomerOrgGroup.Price, |
|
|
|
CustomerOrgGroupName = haveCustomerOrgGroup == null ? "" : haveCustomerOrgGroup.CustomerOrgGroupName, |
|
|
|
Price = haveCustomerOrgGroup == null ? 0 : haveCustomerOrgGroup.Price, |
|
|
|
CanAddMoney = haveCustomerOrgGroup == null ? 0 : haveCustomerOrgGroup.CanAddMoney, |
|
|
|
}).FirstOrDefault(); |
|
|
|
if (patientRegisterDto == null) |
|
|
|
@ -493,7 +531,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
var appointPatientRegisters = await _repository.GetListAsync(o => o.PersonId == input.PersonId && |
|
|
|
o.AppointDate >= DateTime.Now.Date && o.CustomerOrgRegisterId == patientRegisterDto.CustomerOrgRegisterId |
|
|
|
&& o.CompleteFlag != AppointPatientRegisterCompleteFlag.CancelAppoint); |
|
|
|
if (appointPatientRegisters .Any()) |
|
|
|
if (appointPatientRegisters.Any()) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException("已有今天及之后的团检预约订单,必须先取消订单才能重新预约"); |
|
|
|
} |
|
|
|
@ -568,7 +606,282 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 获取推荐个人套餐按优先级
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/AppointPatientRegister/GetRecommendMedicalPackageByPersonAndRecommendId")] |
|
|
|
public async Task<RecommendMedicalPackageDto> GetRecommendMedicalPackageByPersonAndRecommendIdAsync(RecommendMedicalPackagePersonAndRecommendIdInputDto input) |
|
|
|
{ |
|
|
|
var person = await _personRepository.GetAsync(o => o.PersonId == input.PersonId); |
|
|
|
var medicalPackages = await _medicalPackageRepository.GetListAsync(o => o.IsActive == 'Y' && |
|
|
|
o.IsWebAppoint == 'Y' && o.IsBasicRecommend == 'Y' && |
|
|
|
(o.ForSexId == ForSexFlag.All || o.ForSexId == person.SexId)); |
|
|
|
if (person.MaritalStatusId == MaritalStatusFlag.UnMarried) |
|
|
|
{ |
|
|
|
//未婚
|
|
|
|
if (medicalPackages.Where(o => o.MaritalStatusId == MaritalStatusFlag.Married).Any()) |
|
|
|
{ |
|
|
|
medicalPackages = medicalPackages.Where(o => |
|
|
|
o.MaritalStatusId == MaritalStatusFlag.UnMarried).ToList(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
medicalPackages = medicalPackages.Where(o => o.MaritalStatusId == MaritalStatusFlag.All).ToList(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
else if (person.MaritalStatusId != MaritalStatusFlag.UnKnown) |
|
|
|
{ |
|
|
|
//已婚
|
|
|
|
if (medicalPackages.Where(o => o.MaritalStatusId == MaritalStatusFlag.Married).Any()) |
|
|
|
{ |
|
|
|
medicalPackages = medicalPackages.Where(o => o.MaritalStatusId == MaritalStatusFlag.Married).ToList(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
medicalPackages = medicalPackages.Where(o => o.MaritalStatusId == MaritalStatusFlag.All).ToList(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var medicalPackage = medicalPackages.FirstOrDefault(); |
|
|
|
if (medicalPackage == null) |
|
|
|
{ |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
var recommendMedicalPackageDto = new RecommendMedicalPackageDto() |
|
|
|
{ |
|
|
|
MedicalPackageId = medicalPackage.MedicalPackageId, |
|
|
|
MedicalPackageName = medicalPackage.MedicalPackageName, |
|
|
|
Price = medicalPackage.Price, |
|
|
|
SumPrice = medicalPackage.Price, |
|
|
|
DisplayOrder = medicalPackage.DisplayOrder |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var medicalPackageAsbitems = (from medicalPackageDetail in await _medicalPackageDetailRepository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on medicalPackageDetail.AsbitemId equals asbitem.AsbitemId |
|
|
|
join itemType in await _itemTypeRepository.GetQueryableAsync() |
|
|
|
on asbitem.ItemTypeId equals itemType.ItemTypeId |
|
|
|
where medicalPackageDetail.MedicalPackageId == medicalPackage.MedicalPackageId |
|
|
|
select new RecommendMedicalPackageAsbitem() |
|
|
|
{ |
|
|
|
AsbitemId = medicalPackageDetail.AsbitemId, |
|
|
|
AsbitemName = asbitem.AsbitemName, |
|
|
|
ShortName = asbitem.ShortName, |
|
|
|
Price = asbitem.Price, |
|
|
|
ClinicalMeaning = asbitem.ClinicalMeaning, |
|
|
|
Warn = asbitem.Warn, |
|
|
|
IsBelongMedicalPackage = 'Y', |
|
|
|
DisplayOrder = itemType.DisplayOrder * 100 + asbitem.DisplayOrder |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
recommendMedicalPackageDto.Asbitems.AddRange(medicalPackageAsbitems); |
|
|
|
|
|
|
|
var questionRegister = (await _repository.GetQueryableAsync()) |
|
|
|
.Where(o => o.PersonId == input.PersonId) |
|
|
|
.OrderByDescending(o => o.CreationTime) |
|
|
|
.FirstOrDefault(); |
|
|
|
|
|
|
|
if (questionRegister == null) |
|
|
|
{ |
|
|
|
return recommendMedicalPackageDto; |
|
|
|
} |
|
|
|
|
|
|
|
//----推荐组合项目
|
|
|
|
|
|
|
|
var personDiseaseRiskLevelDtos = await GetDiseaseRiskListByPersonIdAsync(input.PersonId); |
|
|
|
//去掉基本套餐中已经包含的组合项目
|
|
|
|
foreach (var personDiseaseRiskLevelDto in personDiseaseRiskLevelDtos) |
|
|
|
{ |
|
|
|
for (var i = 0; i< personDiseaseRiskLevelDto.Asbitems.Count; i++ ) |
|
|
|
{ |
|
|
|
var personDiseaseRiskLevelAsbitem = personDiseaseRiskLevelDto.Asbitems[i]; |
|
|
|
if (medicalPackageAsbitems.Where(o => o.AsbitemId == personDiseaseRiskLevelAsbitem.AsbitemId).Any()) |
|
|
|
{ |
|
|
|
personDiseaseRiskLevelDto.Asbitems.Remove(personDiseaseRiskLevelAsbitem); |
|
|
|
i --; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var personDiseaseRiskLevelResultDtos = new List<PersonDiseaseRiskLevelDto>(); |
|
|
|
foreach (var personDiseaseRiskLevelDto in personDiseaseRiskLevelDtos) |
|
|
|
{ |
|
|
|
if(personDiseaseRiskLevelDto.Asbitems.Where(o=>o.AsbitemRecommendLevelId == input.RecommendId).Count() > 0) |
|
|
|
{ |
|
|
|
//只有有推荐的项目才进入推荐风险项目列表
|
|
|
|
var personDiseaseRiskLevelResultDto = new PersonDiseaseRiskLevelDto() |
|
|
|
{ |
|
|
|
DiseaseRiskId = personDiseaseRiskLevelDto.DiseaseRiskId, |
|
|
|
DiseaseRiskName = personDiseaseRiskLevelDto.DiseaseRiskName, |
|
|
|
DisplayOrder = personDiseaseRiskLevelDto.DisplayOrder, |
|
|
|
DiseaseRiskLevelId = personDiseaseRiskLevelDto.DiseaseRiskLevelId, |
|
|
|
DiseaseRiskLevelName = personDiseaseRiskLevelDto.DiseaseRiskLevelName |
|
|
|
}; |
|
|
|
personDiseaseRiskLevelResultDto.Asbitems = |
|
|
|
personDiseaseRiskLevelDto.Asbitems.Where(o => o.AsbitemRecommendLevelId == input.RecommendId).ToList(); |
|
|
|
recommendMedicalPackageDto.SumPrice += personDiseaseRiskLevelResultDto.Asbitems.Sum(o => o.Price); |
|
|
|
personDiseaseRiskLevelResultDtos.Add(personDiseaseRiskLevelResultDto); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
recommendMedicalPackageDto.DiseaseRiskLevelAsbitems = personDiseaseRiskLevelResultDtos; |
|
|
|
return recommendMedicalPackageDto; |
|
|
|
|
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 获取推荐个人套餐列表
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/AppointPatientRegister/GetRecommendMedicalPackageListByPersonId")] |
|
|
|
public async Task<List<RecommendMedicalPackageDto>> GetRecommendMedicalPackageListByPersonIdAsync(PersonIdInputDto input) |
|
|
|
{ |
|
|
|
var recommendMedicalPackageDtos = new List<RecommendMedicalPackageDto>(); |
|
|
|
for (var i = 0; i < 3; i++) |
|
|
|
{ |
|
|
|
|
|
|
|
var recommendMedicalPackageDto = await GetRecommendMedicalPackageByPersonAndRecommendIdAsync(new RecommendMedicalPackagePersonAndRecommendIdInputDto() |
|
|
|
{ |
|
|
|
PersonId = input.PersonId, |
|
|
|
RecommendId = i + 1 |
|
|
|
}); |
|
|
|
if(i == 0) |
|
|
|
{ |
|
|
|
recommendMedicalPackageDto.MedicalPackageName = "推荐必查方案"; |
|
|
|
} |
|
|
|
else if(i == 1) |
|
|
|
{ |
|
|
|
recommendMedicalPackageDto.MedicalPackageName = "精准筛查方案"; |
|
|
|
} |
|
|
|
else if(i == 2) |
|
|
|
{ |
|
|
|
recommendMedicalPackageDto.MedicalPackageName = "深入检查方案"; |
|
|
|
} |
|
|
|
recommendMedicalPackageDtos.Add(recommendMedicalPackageDto); |
|
|
|
} |
|
|
|
return recommendMedicalPackageDtos; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 获取疾病风险和对应的组合项目列表
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private async Task<List<PersonDiseaseRiskLevelDto>> GetDiseaseRiskListByPersonIdAsync(Guid personId) |
|
|
|
{ |
|
|
|
var questionRegister = (await _questionRegisterRepository.GetQueryableAsync()) |
|
|
|
.Where(o => o.PersonId == personId) |
|
|
|
.OrderByDescending(o => o.CreationTime) |
|
|
|
.FirstOrDefault(); |
|
|
|
|
|
|
|
if (questionRegister == null) |
|
|
|
{ |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
var questionRegisterItems = (from questionRegisterItem in await _questionRegisterItemRepository.GetQueryableAsync() |
|
|
|
join questionRegisterAnswer in await _questionRegisterAnswerRrepository.GetQueryableAsync() |
|
|
|
on questionRegisterItem.QuestionRegisterItemId equals questionRegisterAnswer.QuestionRegisterItemId |
|
|
|
join questionAnswer in await _questionAnswerRepository.GetQueryableAsync() |
|
|
|
on questionRegisterAnswer.QuestionAnswerId equals questionAnswer.QuestionAnswerId |
|
|
|
join question in await _questionRepository.GetQueryableAsync() |
|
|
|
on questionRegisterItem.QuestionId equals question.QuestionId |
|
|
|
join questionSubjectType in await _questionSubjectTypeRepository.GetQueryableAsync() |
|
|
|
on question.QuestionSubjectTypeId equals questionSubjectType.QuestionSubjectTypeId |
|
|
|
where questionRegisterItem.QuestionRegisterId == questionRegister.QuestionRegisterId |
|
|
|
orderby questionSubjectType.DisplayOrder, question.DisplayOrder |
|
|
|
select new |
|
|
|
{ |
|
|
|
questionSubjectType, |
|
|
|
question, |
|
|
|
questionRegisterItem, |
|
|
|
questionRegisterAnswer, |
|
|
|
questionAnswer |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
var diseaseRisks = (from diseaseRisk in await _diseaseRiskRepository.GetQueryableAsync() |
|
|
|
join diseaseRiskLevel in await _diseaseRiskLevelRepository.GetQueryableAsync() |
|
|
|
on diseaseRisk.DiseaseRiskId equals diseaseRiskLevel.DiseaseRiskId into emptyDiseaseRiskLevel |
|
|
|
from haveDiseaseRiskLevel in emptyDiseaseRiskLevel.DefaultIfEmpty() |
|
|
|
join diseaseRiskLevelAnswer in await _diseaseRiskLevelAnswerRepository.GetQueryableAsync() |
|
|
|
on haveDiseaseRiskLevel.DiseaseRiskLevelId equals diseaseRiskLevelAnswer.DiseaseRiskLevelId into emptyDiseaseRiskLevelAnswer |
|
|
|
from haveDiseaseRiskLevelAnswer in emptyDiseaseRiskLevelAnswer.DefaultIfEmpty() |
|
|
|
orderby diseaseRisk.DisplayOrder |
|
|
|
select new |
|
|
|
{ |
|
|
|
diseaseRisk, |
|
|
|
haveDiseaseRiskLevel, |
|
|
|
haveDiseaseRiskLevelAnswer |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
var questionRegisterDiseaseRiskDtos = diseaseRisks.GroupBy(o => o.diseaseRisk) |
|
|
|
.Select(o => new PersonDiseaseRiskLevelDto() |
|
|
|
{ |
|
|
|
DiseaseRiskId = o.Key.DiseaseRiskId, |
|
|
|
DiseaseRiskName = o.Key.DiseaseRiskName, |
|
|
|
DisplayOrder = o.Key.DisplayOrder |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
foreach (var diseaseRisk in questionRegisterDiseaseRiskDtos) |
|
|
|
{ |
|
|
|
//疾病级别必须按优先级别排序,取顺序最高的作为最高风险级
|
|
|
|
var diseaseRiskLevels = diseaseRisks.Where(o => o.diseaseRisk.DiseaseRiskId == diseaseRisk.DiseaseRiskId |
|
|
|
&& o.haveDiseaseRiskLevel != null) |
|
|
|
.OrderByDescending(o => o.haveDiseaseRiskLevel == null ? 1 : o.haveDiseaseRiskLevel.DisplayOrder).ToList(); |
|
|
|
DiseaseRiskLevel matchDiseaseRiskLevel = null; |
|
|
|
foreach (var diseaseRiskLevel in diseaseRiskLevels) |
|
|
|
{ |
|
|
|
if (questionRegisterItems.Where(o => diseaseRiskLevel.haveDiseaseRiskLevelAnswer != null && |
|
|
|
o.questionRegisterAnswer.QuestionAnswerId == |
|
|
|
diseaseRiskLevel.haveDiseaseRiskLevelAnswer.QuestionAnswerId).Any()) |
|
|
|
{ |
|
|
|
if (diseaseRiskLevel.haveDiseaseRiskLevel != null) |
|
|
|
{ |
|
|
|
matchDiseaseRiskLevel = diseaseRiskLevel.haveDiseaseRiskLevel; |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (matchDiseaseRiskLevel == null) |
|
|
|
{ |
|
|
|
matchDiseaseRiskLevel = diseaseRiskLevels.LastOrDefault() == null ? null : diseaseRiskLevels.LastOrDefault().haveDiseaseRiskLevel; |
|
|
|
} |
|
|
|
if (matchDiseaseRiskLevel != null) |
|
|
|
{ |
|
|
|
diseaseRisk.DiseaseRiskLevelId = matchDiseaseRiskLevel.DiseaseRiskLevelId; |
|
|
|
diseaseRisk.DiseaseRiskLevelName = matchDiseaseRiskLevel.DiseaseRiskLevelName; |
|
|
|
|
|
|
|
var personDiseaseRiskLevelAsbitems = (from diseaseRiskLevelAsbitem in await _diseaseRiskLevelAsbitemRepository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on diseaseRiskLevelAsbitem.AsbitemId equals asbitem.AsbitemId |
|
|
|
where diseaseRiskLevelAsbitem.DiseaseRiskLevelId == diseaseRisk.DiseaseRiskLevelId |
|
|
|
orderby asbitem.DisplayOrder |
|
|
|
select new RecommendMedicalPackageAsbitem() |
|
|
|
{ |
|
|
|
AsbitemId = asbitem.AsbitemId, |
|
|
|
AsbitemName = asbitem.AsbitemName, |
|
|
|
ShortName = asbitem.ShortName, |
|
|
|
Price = asbitem.Price, |
|
|
|
ClinicalMeaning = asbitem.ClinicalMeaning, |
|
|
|
Warn = asbitem.Warn, |
|
|
|
DisplayOrder = asbitem.DisplayOrder, |
|
|
|
AsbitemRecommendLevelId = diseaseRiskLevelAsbitem.AsbitemRecommendLevelId |
|
|
|
}).ToList(); |
|
|
|
diseaseRisk.Asbitems.AddRange(personDiseaseRiskLevelAsbitems); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return questionRegisterDiseaseRiskDtos; |
|
|
|
} |
|
|
|
} |
|
|
|
} |