|
|
|
@ -19,6 +19,7 @@ using System.Text; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Volo.Abp; |
|
|
|
using Volo.Abp.Application.Services; |
|
|
|
using Volo.Abp.Domain.Entities; |
|
|
|
using Volo.Abp.Domain.Repositories; |
|
|
|
using Volo.Abp.Identity; |
|
|
|
using Volo.Abp.Uow; |
|
|
|
@ -715,8 +716,8 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
|
|
|
|
|
|
|
|
//----推荐组合项目
|
|
|
|
|
|
|
|
var personDiseaseRiskLevelDtos = await GetDiseaseRiskListByPersonIdAsync(input.PersonId); |
|
|
|
var personDiseaseRiskLeveWithForbidlCheckDto = await GetDiseaseRiskListByPersonIdAsync(input.PersonId, input.RecommendId); |
|
|
|
var personDiseaseRiskLevelDtos = personDiseaseRiskLeveWithForbidlCheckDto.DiseaseRiskLevelWithAsbitems; |
|
|
|
//去掉基本套餐中已经包含的组合项目
|
|
|
|
foreach (var personDiseaseRiskLevelDto in personDiseaseRiskLevelDtos) |
|
|
|
{ |
|
|
|
@ -753,6 +754,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
|
|
|
|
} |
|
|
|
recommendMedicalPackageDto.DiseaseRiskLevelAsbitems = personDiseaseRiskLevelResultDtos; |
|
|
|
recommendMedicalPackageDto.ForbidlCheckAsbitems = personDiseaseRiskLeveWithForbidlCheckDto.ForbidlCheckAsbitems; |
|
|
|
return recommendMedicalPackageDto; |
|
|
|
|
|
|
|
} |
|
|
|
@ -845,8 +847,8 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
} |
|
|
|
|
|
|
|
//----推荐组合项目
|
|
|
|
|
|
|
|
var personDiseaseRiskLevelDtos = await GetDiseaseRiskListByPersonIdAsync(input.PersonId, input.RecommendId); |
|
|
|
var personDiseaseRiskLeveWithForbidlCheckDto = await GetDiseaseRiskListByPersonIdAsync(input.PersonId, input.RecommendId); |
|
|
|
var personDiseaseRiskLevelDtos = personDiseaseRiskLeveWithForbidlCheckDto.DiseaseRiskLevelWithAsbitems; |
|
|
|
//var pregnancyAsbitems = await _asbitemRepository.GetListAsync(o =>
|
|
|
|
//o.ForPregnantFlag == ForPregnantFlag.PreparePregnancy || o.ForPregnantFlag == ForPregnantFlag.Pregnancy);
|
|
|
|
//去掉基本套餐已经包含的组合项目和和怀孕禁止检查的项目
|
|
|
|
@ -886,6 +888,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
|
|
|
|
} |
|
|
|
recommendMedicalPackageDto.DiseaseRiskLevelAsbitems = personDiseaseRiskLevelResultDtos; |
|
|
|
recommendMedicalPackageDto.ForbidlCheckAsbitems = personDiseaseRiskLeveWithForbidlCheckDto.ForbidlCheckAsbitems; |
|
|
|
return recommendMedicalPackageDto; |
|
|
|
|
|
|
|
} |
|
|
|
@ -927,7 +930,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private async Task<List<PersonDiseaseRiskLevelDto>> GetDiseaseRiskListByPersonIdAsync(Guid personId, int recommendId = 1) |
|
|
|
private async Task<PersonDiseaseRiskLeveWithForbidlCheckDto> GetDiseaseRiskListByPersonIdAsync(Guid personId, int recommendId ) |
|
|
|
{ |
|
|
|
var questionRegister = (await _questionRegisterRepository.GetQueryableAsync()) |
|
|
|
.Where(o => o.PersonId == personId) |
|
|
|
@ -967,7 +970,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
asbitem, |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取所有疾病风险基础字典
|
|
|
|
var diseaseRisks = (from diseaseRisk in await _diseaseRiskRepository.GetQueryableAsync() |
|
|
|
join diseaseRiskLevel in await _diseaseRiskLevelRepository.GetQueryableAsync() |
|
|
|
@ -1007,6 +1010,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
Price = o.asbitem.Price, |
|
|
|
ClinicalMeaning = o.asbitem.ClinicalMeaning, |
|
|
|
Warn = o.asbitem.Warn, |
|
|
|
ForPregnantFlag = o.asbitem.ForPregnantFlag, |
|
|
|
DisplayOrder = o.asbitem.DisplayOrder, |
|
|
|
AsbitemRecommendLevelId = o.questionAnswerAsbitem.AsbitemRecommendLevelId |
|
|
|
} |
|
|
|
@ -1058,21 +1062,22 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
} |
|
|
|
overweightQuestionAnswer = await _questionAnswerRepository.GetAsync(o => o.QuestionAnswerId == questionAnswerOverweightCode); |
|
|
|
|
|
|
|
var questionAnswerAsbitems = (from questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on questionAnswerAsbitem.AsbitemId equals asbitem.AsbitemId |
|
|
|
where questionAnswerAsbitem.QuestionAnswerId == overweightQuestionAnswer.QuestionAnswerId |
|
|
|
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 = questionAnswerAsbitem.AsbitemRecommendLevelId |
|
|
|
}).ToList(); |
|
|
|
var questionAnswerAsbitems = (from questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on questionAnswerAsbitem.AsbitemId equals asbitem.AsbitemId |
|
|
|
where questionAnswerAsbitem.QuestionAnswerId == overweightQuestionAnswer.QuestionAnswerId |
|
|
|
select new RecommendMedicalPackageAsbitem() |
|
|
|
{ |
|
|
|
AsbitemId = asbitem.AsbitemId, |
|
|
|
AsbitemName = asbitem.AsbitemName, |
|
|
|
ShortName = asbitem.ShortName, |
|
|
|
Price = asbitem.Price, |
|
|
|
ClinicalMeaning = asbitem.ClinicalMeaning, |
|
|
|
Warn = asbitem.Warn, |
|
|
|
ForPregnantFlag = asbitem.ForPregnantFlag, |
|
|
|
DisplayOrder = asbitem.DisplayOrder, |
|
|
|
AsbitemRecommendLevelId = questionAnswerAsbitem.AsbitemRecommendLevelId |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
var personDiseaseRiskLevelDto = new PersonDiseaseRiskLevelDto() |
|
|
|
{ |
|
|
|
@ -1087,6 +1092,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
personDiseaseRiskLevels.Add(personDiseaseRiskLevelDto); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//合并同一个疾病风险中的不同组合项目,将低级别风险中的组合项目合并到高风险级别中
|
|
|
|
personDiseaseRiskLevels = personDiseaseRiskLevels.OrderBy(o => o.DisplayOrder).ThenByDescending(o => o.DiseaseRiskLevelDisplayOrder).ToList(); |
|
|
|
for (var i = 0; i < personDiseaseRiskLevels.Count; i++) |
|
|
|
@ -1126,8 +1132,43 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//var newPersonDiseaseRiskLevelDtos = new List<PersonDiseaseRiskLevelDto>();
|
|
|
|
//去掉备孕、怀孕禁检组合项目
|
|
|
|
var personDiseaseRiskLeveWithForbidlCheckDto = new PersonDiseaseRiskLeveWithForbidlCheckDto(); |
|
|
|
var person = await _personRepository.GetAsync(o => o.PersonId == personId); |
|
|
|
foreach (var personDiseaseRiskLevel in personDiseaseRiskLevels) |
|
|
|
{ |
|
|
|
for (var i = 0; i < personDiseaseRiskLevel.Asbitems.Count; i++) |
|
|
|
{ |
|
|
|
if (person.PregnantFlag == PregnantFlag.PreparePregnancy && personDiseaseRiskLevel.Asbitems[i].ForPregnantFlag == ForPregnantFlag.PreparePregnancy) |
|
|
|
{ |
|
|
|
personDiseaseRiskLevel.Asbitems.Remove(personDiseaseRiskLevel.Asbitems[i]); |
|
|
|
personDiseaseRiskLeveWithForbidlCheckDto.ForbidlCheckAsbitems.Add(personDiseaseRiskLevel.Asbitems[i]); |
|
|
|
i--; |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
if (person.PregnantFlag == PregnantFlag.Pregnancy && |
|
|
|
(personDiseaseRiskLevel.Asbitems[i].ForPregnantFlag == ForPregnantFlag.PreparePregnancy || personDiseaseRiskLevel.Asbitems[i].ForPregnantFlag == ForPregnantFlag.Pregnancy)) |
|
|
|
{ |
|
|
|
personDiseaseRiskLevel.Asbitems.Remove(personDiseaseRiskLevel.Asbitems[i]); |
|
|
|
personDiseaseRiskLeveWithForbidlCheckDto.ForbidlCheckAsbitems.Add(personDiseaseRiskLevel.Asbitems[i]); |
|
|
|
i--; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//删除没有组合项目的疾病风险
|
|
|
|
for (var i = 0; i < personDiseaseRiskLevels.Count; i++) |
|
|
|
{ |
|
|
|
if (!personDiseaseRiskLevels[i].Asbitems.Any()) |
|
|
|
{ |
|
|
|
personDiseaseRiskLevels.Remove(personDiseaseRiskLevels[i]); |
|
|
|
i--; |
|
|
|
} |
|
|
|
} |
|
|
|
//获取有共同组合项目的风险级别
|
|
|
|
var newPersonDiseaseRiskLevelDtos = new List<PersonDiseaseRiskLevelDto>(); |
|
|
|
foreach (var personDiseaseRiskLevel in personDiseaseRiskLevels) |
|
|
|
{ |
|
|
|
|
|
|
|
@ -1148,7 +1189,8 @@ namespace Shentun.WebPeis.AppointPatientRegisters |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return personDiseaseRiskLevels; |
|
|
|
personDiseaseRiskLeveWithForbidlCheckDto.DiseaseRiskLevelWithAsbitems = personDiseaseRiskLevels; |
|
|
|
return personDiseaseRiskLeveWithForbidlCheckDto; |
|
|
|
|
|
|
|
/* |
|
|
|
var questionRegisterDiseaseRiskDtos = diseaseRisks.GroupBy(o => o.diseaseRisk) |
|
|
|
|