Browse Source

预约

master
DESKTOP-G961P6V\Zhh 1 year ago
parent
commit
64caf06abc
  1. 35
      src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs
  2. 19
      test/Shentun.WebPeis.Application.Tests/QuestionRegisterAppServiceTest.cs

35
src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs

@ -359,21 +359,46 @@ namespace Shentun.WebPeis.QuestionRegisters
.Select(o => new QuestionRegisterDiseaseRiskDto()
{
DiseaseRiskId = o.Key.DiseaseRiskId,
DiseaseRiskLevelName = o.Key.DiseaseRiskName,
DiseaseRiskName = o.Key.DiseaseRiskName,
DisplayOrder = o.Key.DisplayOrder
}).ToList();
foreach (var diseaseRisk in questionRegisterDiseaseRiskDtos)
{
var diseaseRiskLevels = diseaseRisks.Where(o=>o.diseaseRisk.DiseaseRiskId == diseaseRisk.DiseaseRiskId)
.OrderBy(o=>o.haveDiseaseRiskLevel.DisplayOrder).ToList();
//疾病级别必须按优先级别排序,取顺序最高的作为最高风险级
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)
{
var cnt = questionRegisterItems.Where(o => o.questionRegisterAnswer.QuestionAnswerId ==
diseaseRiskLevel.haveDiseaseRiskLevelAnswer.QuestionAnswerId).Count();
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.DiseaseRiskLevelName = "低危";
}
else
{
diseaseRisk.DiseaseRiskLevelName = matchDiseaseRiskLevel.DiseaseRiskLevelName;
}
}
return questionRegisterDiseaseRiskDtos;
}

19
test/Shentun.WebPeis.Application.Tests/QuestionRegisterAppServiceTest.cs

@ -119,5 +119,24 @@ namespace Shentun.WebPeis
await unitOfWork.CompleteAsync();
}
}
[Fact]
public async Task GetDiseaseRiskListByPersonIdAsync()
{
using (var unitOfWork = _unitOfWorkManager.Begin(isTransactional: true))
{
var entity = await _appService.GetDiseaseRiskListByPersonIdAsync(new PersonIdInputDto()
{
PersonId = new Guid("3a12d72c-19d9-e8b2-71f6-cf283103e191") // 3a12d7fa-63f1-d549-c2f8-01123e5b7a8a
});
foreach (var item in entity)
{
_output.WriteLine(item.DiseaseRiskName + item.DiseaseRiskLevelName);
}
await unitOfWork.CompleteAsync();
}
}
}
}
Loading…
Cancel
Save