|
|
|
@ -1,14 +1,19 @@ |
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using NPOI.SS.Formula.Functions; |
|
|
|
using Org.BouncyCastle.Math.EC.Rfc7748; |
|
|
|
using Shentun.WebPeis.AppointPatientRegisters; |
|
|
|
using Shentun.WebPeis.DiseaseRiskLevels; |
|
|
|
using Shentun.WebPeis.Enums; |
|
|
|
using Shentun.WebPeis.Models; |
|
|
|
using Shentun.WebPeis.Persons; |
|
|
|
using Shentun.WebPeis.SysParmValues; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
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; |
|
|
|
@ -29,8 +34,11 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
private readonly IRepository<DiseaseRisk> _diseaseRiskRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevelAnswer> _diseaseRiskLevelAnswerRepository; |
|
|
|
private readonly IRepository<DiseaseRiskLevelAsbitem> _diseaseRiskLevelAsbitemRepository; |
|
|
|
private readonly IRepository<Asbitem> _asbitemRepository; |
|
|
|
private readonly QuestionRegisterManager _questionRegisterManager; |
|
|
|
private readonly IUnitOfWorkManager _unitOfWorkManager; |
|
|
|
private readonly SysParmValueManager _sysParmValueManager; |
|
|
|
public QuestionRegisterAppService(IRepository<QuestionRegister> repository, |
|
|
|
IRepository<QuestionRegisterItem> questionRegisterItemRepository, |
|
|
|
IRepository<QuestionRegisterAnswer> questionRegisterAnswerRrepository, |
|
|
|
@ -41,7 +49,10 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
IRepository<QuestionSubjectType> questionSubjectTypeRepository, |
|
|
|
IRepository<DiseaseRisk> diseaseRiskRepository, |
|
|
|
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository, |
|
|
|
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository) |
|
|
|
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository, |
|
|
|
IRepository<DiseaseRiskLevelAsbitem> diseaseRiskLevelAsbitemRepository, |
|
|
|
IRepository<Asbitem> asbitemRepository, |
|
|
|
SysParmValueManager sysParmValueManager) |
|
|
|
{ |
|
|
|
_repository = repository; |
|
|
|
_questionRegisterItemRepository = questionRegisterItemRepository; |
|
|
|
@ -54,6 +65,9 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
_diseaseRiskRepository = diseaseRiskRepository; |
|
|
|
_diseaseRiskLevelRepository = diseaseRiskLevelRepository; |
|
|
|
_diseaseRiskLevelAnswerRepository = diseaseRiskLevelAnswerRepository; |
|
|
|
_diseaseRiskLevelAsbitemRepository = diseaseRiskLevelAsbitemRepository; |
|
|
|
_asbitemRepository = asbitemRepository; |
|
|
|
_sysParmValueManager = sysParmValueManager; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -130,7 +144,7 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// 获取生育计划、危险因素、疾病等列表
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
@ -183,6 +197,12 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
if (questionRegisterItems.Where(o => |
|
|
|
(o.questionAnswer.PathCode.StartsWith(questionRegisterItem.questionAnswer.PathCode + ".") && |
|
|
|
questionRegisterItem.questionAnswer.PathCode.Length == 5)).Any()) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
string answer; |
|
|
|
if (questionRegisterItem.questionAnswer.AnswerResultType == AnswerResultTypeFlag.Choice) |
|
|
|
{ |
|
|
|
@ -215,12 +235,12 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// 获取问卷结果列表
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/QuestionRegister/GetQuestionRegisterListByPersonId")] |
|
|
|
public async Task<List<QuestionRegisterItemResultDto>> GetQuestionRegisterListByPersonIdAsync(PersonIdInputDto input) |
|
|
|
public async Task<List<QuestionRegisterItemResultDto>> GetQuestionRegisterListByPersonIdAsync(PersonAppointInputDto input) |
|
|
|
{ |
|
|
|
var questionRegister = (await _repository.GetQueryableAsync()) |
|
|
|
.Where(o => o.PersonId == input.PersonId) |
|
|
|
@ -264,6 +284,13 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
.OrderBy(o => o.questionAnswer.DisplayOrder).ToList(); |
|
|
|
foreach (var questionRegisterItem in questionAnswers) |
|
|
|
{ |
|
|
|
if (questionRegisterItems.Where(o => |
|
|
|
(o.questionAnswer.PathCode.StartsWith(questionRegisterItem.questionAnswer.PathCode + ".") && |
|
|
|
questionRegisterItem.questionAnswer.PathCode.Length == 5)).Any()) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
string answer; |
|
|
|
if (questionRegisterItem.questionAnswer.AnswerResultType == AnswerResultTypeFlag.Choice) |
|
|
|
{ |
|
|
|
@ -296,12 +323,12 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// 获取疾病风险列表
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/QuestionRegister/GetDiseaseRiskListByPersonId")] |
|
|
|
public async Task<List<QuestionRegisterDiseaseRiskDto>> GetDiseaseRiskListByPersonIdAsync(PersonIdInputDto input) |
|
|
|
public async Task<List<QuestionRegisterDiseaseRiskDto>> GetDiseaseRiskListByPersonIdAsync(PersonAppointInputDto input) |
|
|
|
{ |
|
|
|
var questionRegister = (await _repository.GetQueryableAsync()) |
|
|
|
.Where(o => o.PersonId == input.PersonId) |
|
|
|
@ -312,7 +339,7 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
{ |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
//获取人员登记问卷
|
|
|
|
var questionRegisterItems = (from questionRegisterItem in await _questionRegisterItemRepository.GetQueryableAsync() |
|
|
|
join questionRegisterAnswer in await _questionRegisterAnswerRrepository.GetQueryableAsync() |
|
|
|
on questionRegisterItem.QuestionRegisterItemId equals questionRegisterAnswer.QuestionRegisterItemId |
|
|
|
@ -332,7 +359,7 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
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 |
|
|
|
@ -359,27 +386,28 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
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(); |
|
|
|
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 && |
|
|
|
if (questionRegisterItems.Where(o => diseaseRiskLevel.haveDiseaseRiskLevelAnswer != null && |
|
|
|
o.questionRegisterAnswer.QuestionAnswerId == |
|
|
|
diseaseRiskLevel.haveDiseaseRiskLevelAnswer.QuestionAnswerId).Any()) |
|
|
|
{ |
|
|
|
if(diseaseRiskLevel.haveDiseaseRiskLevel != null) |
|
|
|
if (diseaseRiskLevel.haveDiseaseRiskLevel != null) |
|
|
|
{ |
|
|
|
matchDiseaseRiskLevel = diseaseRiskLevel.haveDiseaseRiskLevel; |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if(matchDiseaseRiskLevel == null) |
|
|
|
if (matchDiseaseRiskLevel == null) |
|
|
|
{ |
|
|
|
matchDiseaseRiskLevel = diseaseRiskLevels.LastOrDefault()==null?null: diseaseRiskLevels.LastOrDefault().haveDiseaseRiskLevel; |
|
|
|
//因为是倒叙排序,所以最后一个疾病风险就是最低级别疾病风险
|
|
|
|
matchDiseaseRiskLevel = diseaseRiskLevels.LastOrDefault() == null ? null : diseaseRiskLevels.LastOrDefault().haveDiseaseRiskLevel; |
|
|
|
} |
|
|
|
if (matchDiseaseRiskLevel == null) |
|
|
|
{ |
|
|
|
@ -390,14 +418,135 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
diseaseRisk.DiseaseRiskLevelId = matchDiseaseRiskLevel.DiseaseRiskLevelId; |
|
|
|
diseaseRisk.DiseaseRiskLevelName = matchDiseaseRiskLevel.DiseaseRiskLevelName; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return questionRegisterDiseaseRiskDtos; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 获取人员单个疾病风险明细
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("api/app/QuestionRegister/GetDiseaseRiskByPersonDiseaseRiskId")] |
|
|
|
public async Task<QuestionRegisterDiseaseRiskSingleDto> GetDiseaseRiskByPersonDiseaseRiskIdAsync(PersonDiseaseRiskIdInputDto input) |
|
|
|
{ |
|
|
|
if (input == null) { throw new UserFriendlyException("input参数不能为空"); } |
|
|
|
|
|
|
|
var diseaseRisk = await _diseaseRiskRepository.GetAsync(o => o.DiseaseRiskId == input.DiseaseRiskId); |
|
|
|
var diseaseRiskLevels = (await _diseaseRiskLevelRepository.GetListAsync(o => o.DiseaseRiskId == input.DiseaseRiskId)) |
|
|
|
.OrderBy(o => o.DisplayOrder); |
|
|
|
|
|
|
|
//获取人员疾病风险列表
|
|
|
|
var diseaseRiskList = await GetDiseaseRiskListByPersonIdAsync(new PersonAppointInputDto() { PersonId = input.PersonId }); |
|
|
|
var personDiseaseRisk = diseaseRiskList.Where(o => o.DiseaseRiskId == input.DiseaseRiskId).First(); |
|
|
|
var diseaseRiskLevel = diseaseRiskLevels.Where(o => o.DiseaseRiskLevelId == personDiseaseRisk.DiseaseRiskLevelId).FirstOrDefault(); |
|
|
|
var asbitems = (from diseaseRiskLevelAsbitem in await _diseaseRiskLevelAsbitemRepository.GetQueryableAsync() |
|
|
|
join asbitem in await _asbitemRepository.GetQueryableAsync() |
|
|
|
on diseaseRiskLevelAsbitem.AsbitemId equals asbitem.AsbitemId |
|
|
|
where diseaseRiskLevelAsbitem.DiseaseRiskLevelId == diseaseRiskLevel.DiseaseRiskLevelId |
|
|
|
orderby asbitem.DisplayOrder |
|
|
|
select asbitem).ToList(); |
|
|
|
|
|
|
|
var questionRegisterDiseaseRiskSingleDto = new QuestionRegisterDiseaseRiskSingleDto() |
|
|
|
{ |
|
|
|
DiseaseRiskId = diseaseRisk.DiseaseRiskId, |
|
|
|
DiseaseRiskName = diseaseRisk.DiseaseRiskName, |
|
|
|
DiseaseRiskLevelId = personDiseaseRisk.DiseaseRiskLevelId, |
|
|
|
DiseaseRiskLevelName = personDiseaseRisk.DiseaseRiskLevelName, |
|
|
|
Explain = diseaseRiskLevel.Explain, |
|
|
|
Suggestion = diseaseRiskLevel.Suggestion, |
|
|
|
DiseaseRiskLevels = diseaseRiskLevels.Select(o => new DiseaseRiskLevelDto() |
|
|
|
{ |
|
|
|
DiseaseRiskLevelId = o.DiseaseRiskLevelId, |
|
|
|
DiseaseRiskLevelName = o.DiseaseRiskLevelName, |
|
|
|
DisplayOrder = o.DisplayOrder, |
|
|
|
}).ToList(), |
|
|
|
Asbitems = asbitems.Select(o => new QuestionRegisterDiseaseRiskAsbitem() |
|
|
|
{ |
|
|
|
AsbitemId = o.AsbitemId, |
|
|
|
AsbitemName = o.AsbitemName, |
|
|
|
DisplayOrder = o.DisplayOrder |
|
|
|
}).ToList() |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var questionRegister = (await _repository.GetQueryableAsync()) |
|
|
|
.Where(o => o.PersonId == input.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 |
|
|
|
join diseaseRiskLevelAnswer in await _diseaseRiskLevelAnswerRepository.GetQueryableAsync() |
|
|
|
on questionAnswer.QuestionAnswerId equals diseaseRiskLevelAnswer.QuestionAnswerId |
|
|
|
where questionRegisterItem.QuestionRegisterId == questionRegister.QuestionRegisterId && |
|
|
|
diseaseRiskLevelAnswer.DiseaseRiskLevelId == diseaseRiskLevel.DiseaseRiskLevelId && |
|
|
|
questionAnswer.IsNone == 'N' |
|
|
|
orderby questionSubjectType.DisplayOrder |
|
|
|
select new |
|
|
|
{ |
|
|
|
questionSubjectType, |
|
|
|
questionRegisterItem, |
|
|
|
questionRegisterAnswer, |
|
|
|
questionAnswer |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
foreach (var questionRegisterItem in questionRegisterItems) |
|
|
|
{ |
|
|
|
if (questionRegisterItems.Where(o => |
|
|
|
(o.questionAnswer.PathCode.StartsWith(questionRegisterItem.questionAnswer.PathCode + ".") && |
|
|
|
questionRegisterItem.questionAnswer.PathCode.Length == 5)).Any()) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
string answer; |
|
|
|
if (questionRegisterItem.questionAnswer.AnswerResultType == AnswerResultTypeFlag.Choice) |
|
|
|
{ |
|
|
|
if (string.IsNullOrWhiteSpace(questionRegisterItem.questionAnswer.Aliases)) |
|
|
|
{ |
|
|
|
answer = questionRegisterItem.questionAnswer.QuestionAnswerName; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
answer = questionRegisterItem.questionAnswer.Aliases; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
answer = questionRegisterItem.questionRegisterAnswer.Content; |
|
|
|
} |
|
|
|
if (string.IsNullOrWhiteSpace(answer)) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
questionRegisterDiseaseRiskSingleDto.Answers.Add(new QuestionRegisterItemResultAnswer() |
|
|
|
{ |
|
|
|
Answer = answer, |
|
|
|
DisplayOrder = questionRegisterItem.questionAnswer.DisplayOrder, |
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return questionRegisterDiseaseRiskSingleDto; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
///
|
|
|
|
/// 创建问卷
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
@ -464,7 +613,7 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 更新
|
|
|
|
/// 更新问卷
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
@ -552,9 +701,14 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
} |
|
|
|
await _repository.UpdateAsync(questionRegister); |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 获取问卷所有题目
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="input"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private async Task<QuestionRegisterDto> GetBasicDataAsync(PersonIdInputDto input) |
|
|
|
{ |
|
|
|
var questions = (await _questionRepository.GetListAsync(o => o.IsActive == 'Y')).OrderBy(o=>o.DisplayOrder); |
|
|
|
var questions = (await _questionRepository.GetListAsync(o => o.IsActive == 'Y')).OrderBy(o => o.DisplayOrder); |
|
|
|
|
|
|
|
var questionAnswers = await _questionAnswerRepository.GetListAsync(); |
|
|
|
var questionRegisterDto = new QuestionRegisterDto() |
|
|
|
@ -579,7 +733,7 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
}; |
|
|
|
//一级答案
|
|
|
|
var firstLevelQuestionAnswers = questionAnswers.Where(o => o.QuestionId == question.QuestionId && |
|
|
|
o.PathCode.Length == 5).OrderBy(o=>o.DisplayOrder).ToList(); |
|
|
|
o.PathCode.Length == 5).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
foreach (var questionAnswer in firstLevelQuestionAnswers) |
|
|
|
{ |
|
|
|
var questionRegisterAnswer = new QuestionRegisterAnswerDto() |
|
|
|
@ -599,8 +753,8 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
|
|
|
|
}; |
|
|
|
//二级答案
|
|
|
|
var childQuestionAnswers = questionAnswers.Where(o => |
|
|
|
o.ParentId == questionAnswer.QuestionAnswerId).OrderBy(o=>o.DisplayOrder).ToList(); |
|
|
|
var childQuestionAnswers = questionAnswers.Where(o => |
|
|
|
o.ParentId == questionAnswer.QuestionAnswerId).OrderBy(o => o.DisplayOrder).ToList(); |
|
|
|
foreach (var ChilduestionAnswer in childQuestionAnswers) |
|
|
|
{ |
|
|
|
var childQuestionRegisterAnswer = new QuestionRegisterAnswerDto() |
|
|
|
@ -630,140 +784,33 @@ namespace Shentun.WebPeis.QuestionRegisters |
|
|
|
|
|
|
|
return questionRegisterDto; |
|
|
|
} |
|
|
|
private async Task GetTest(PersonIdInputDto input) |
|
|
|
{ |
|
|
|
var questionRegisterDto = new QuestionRegisterDto() |
|
|
|
{ |
|
|
|
QuestionRegisterId = Guid.NewGuid(), |
|
|
|
PersonId = input.PersonId, |
|
|
|
}; |
|
|
|
//
|
|
|
|
var questionRegisterItemDto = new QuestionRegisterItemDto() |
|
|
|
{ |
|
|
|
QuestionId = Guid.NewGuid(), |
|
|
|
QuestionName = "你最近3-6个月是否有生育计划", |
|
|
|
AnswerType = AnswerTypeFlag.SingleChoice, |
|
|
|
DisplayOrder = 1 |
|
|
|
}; |
|
|
|
questionRegisterDto.QuestionRegisterItems.Add(questionRegisterItemDto); |
|
|
|
|
|
|
|
var questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "无", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
|
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "有", |
|
|
|
DisplayOrder = 2, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
//
|
|
|
|
questionRegisterItemDto = new QuestionRegisterItemDto() |
|
|
|
{ |
|
|
|
QuestionId = Guid.NewGuid(), |
|
|
|
QuestionName = "您的父亲、母亲、兄弟、姐妹、目前或曾经是否有以下明确诊断的病?", |
|
|
|
AnswerType = AnswerTypeFlag.MultipleChoice, |
|
|
|
DisplayOrder = 2 |
|
|
|
}; |
|
|
|
questionRegisterDto.QuestionRegisterItems.Add(questionRegisterItemDto); |
|
|
|
|
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "恶性肿瘤", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "心脏病", |
|
|
|
DisplayOrder = 2, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
|
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "脑血管病", |
|
|
|
DisplayOrder = 3, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
|
|
|
|
//
|
|
|
|
questionRegisterItemDto = new QuestionRegisterItemDto() |
|
|
|
{ |
|
|
|
QuestionId = Guid.NewGuid(), |
|
|
|
QuestionName = "您目前或曾经是否有以下明确诊断的疾病", |
|
|
|
AnswerType = AnswerTypeFlag.MultipleChoice, |
|
|
|
DisplayOrder = 3 |
|
|
|
}; |
|
|
|
questionRegisterDto.QuestionRegisterItems.Add(questionRegisterItemDto); |
|
|
|
|
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "头部疾病", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '0', |
|
|
|
ChildAnswerType = AnswerTypeFlag.MultipleChoice, |
|
|
|
|
|
|
|
}; |
|
|
|
questionRegisterAnswerDto.Childs.Add(new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "脑中风", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '0', |
|
|
|
}); |
|
|
|
questionRegisterAnswerDto.Childs.Add(new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "抑郁症", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '0', |
|
|
|
}); |
|
|
|
questionRegisterAnswerDto.Childs.Add(new QuestionRegisterAnswerDto() |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "癫痫", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '0', |
|
|
|
}); |
|
|
|
questionRegisterAnswerDto.Childs.Add(new QuestionRegisterAnswerDto() |
|
|
|
/// <summary>
|
|
|
|
/// 是否超重
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="height"></param>
|
|
|
|
/// <param name="weight"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private async Task<bool> IsOverweight(decimal? height, decimal? weight) |
|
|
|
{ |
|
|
|
if (height == null || weight == null || height <= 0 || weight <= 0) |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "其它", |
|
|
|
DisplayOrder = 1, |
|
|
|
AnswerResultType = '1', |
|
|
|
}); |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
var tzzs = (weight / ((height / 100) * (height / 100))); |
|
|
|
var sysTzzsStr = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "question_overweight"); |
|
|
|
decimal sysTzzs; |
|
|
|
if (!decimal.TryParse(sysTzzsStr, out sysTzzs)) |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "甲状腺疾病", |
|
|
|
DisplayOrder = 2, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
|
|
|
|
questionRegisterAnswerDto = new QuestionRegisterAnswerDto() |
|
|
|
sysTzzs = (decimal)24.5; |
|
|
|
} |
|
|
|
if (tzzs >= sysTzzs) |
|
|
|
{ |
|
|
|
QuestionAnswerId = Guid.NewGuid(), |
|
|
|
QuestionAnswerName = "肺部疾病", |
|
|
|
DisplayOrder = 3, |
|
|
|
AnswerResultType = '0' |
|
|
|
}; |
|
|
|
questionRegisterItemDto.QuestionRegisterAnswers.Add(questionRegisterAnswerDto); |
|
|
|
return true; |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |