diff --git a/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerAsbitemDto.cs b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerAsbitemDto.cs
new file mode 100644
index 0000000..59b5737
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerAsbitemDto.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.QuestionAnswers
+{
+ public class CreateQuestionAnswerAsbitemDto
+ {
+ ///
+ /// 问卷答案ID
+ ///
+ public Guid QuestionAnswerId { get; set; }
+ ///
+ /// 组合项目集合
+ ///
+
+ public List Asbitems { get; set; } = new List();
+
+ }
+
+ public class CreateQuestionAnswerAsbitemDetail
+ {
+ ///
+ /// 组合项目ID
+ ///
+
+ public Guid AsbitemId { get; set; }
+ ///
+ /// 推荐组合项目级别 1-一级推荐,2-2级推荐,3-3级推荐
+ ///
+
+ public short AsbitemRecommendLevelId { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerRiskLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerRiskLevelDto.cs
new file mode 100644
index 0000000..f0f69fb
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerRiskLevelDto.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.QuestionAnswers
+{
+ public class CreateQuestionAnswerRiskLevelDto
+ {
+ ///
+ /// 问卷答案ID
+ ///
+ public Guid QuestionAnswerId { get; set; }
+
+ ///
+ /// 疾病风险级别集合
+ ///
+ public List DiseaseRiskLevelIds { get; set; } = new List();
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerAsbitemDto.cs b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerAsbitemDto.cs
new file mode 100644
index 0000000..8f4340c
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerAsbitemDto.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.QuestionAnswers
+{
+ public class QuestionAnswerAsbitemDto
+ {
+ ///
+ /// 问卷答案ID
+ ///
+ public Guid QuestionAnswerId { get; set; }
+ ///
+ /// 组合项目ID
+ ///
+ public Guid AsbitemId { get; set; }
+ ///
+ /// 组合项目名称
+ ///
+ public string AsbitemName { get; set; }
+
+ ///
+ /// 推荐组合项目级别 1-一级推荐,2-2级推荐,3-3级推荐
+ ///
+
+ public short AsbitemRecommendLevelId { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs
new file mode 100644
index 0000000..81c8a17
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.QuestionAnswers
+{
+ public class QuestionAnswerRiskLevelDto
+ {
+
+
+ ///
+ /// 问卷答案ID
+ ///
+ public Guid QuestionAnswerId { get; set; }
+
+ /// 疾病风险疾病ID
+ ///
+ public Guid DiseaseRiskLevelId { get; set; }
+
+ ///
+ /// 疾病风险名称
+ ///
+ public string DiseaseRiskLevelName { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs b/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
index 4b9ba5c..b2010e6 100644
--- a/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
+++ b/src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
@@ -60,7 +60,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters
private readonly IRepository _questionSubjectTypeRepository;
private readonly IRepository _diseaseRiskRepository;
private readonly IRepository _diseaseRiskLevelRepository;
- private readonly IRepository _diseaseRiskLevelAnswerRepository;
+ private readonly IRepository _diseaseRiskLevelAnswerRepository;
private readonly IRepository _diseaseRiskLevelAsbitemRepository;
public AppointPatientRegisterAppService(IRepository repository,
CacheService cacheService,
@@ -90,7 +90,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters
IRepository questionSubjectTypeRepository,
IRepository diseaseRiskRepository,
IRepository diseaseRiskLevelRepository,
- IRepository diseaseRiskLevelAnswerRepository,
+ IRepository diseaseRiskLevelAnswerRepository,
IRepository diseaseRiskLevelAsbitemRepository
)
diff --git a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
index d759e8d..fb3cb44 100644
--- a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
+++ b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
@@ -22,7 +22,7 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
{
private readonly IRepository _diseaseRiskLevelRepository;
- private readonly IRepository _diseaseRiskLevelAnswerRepository;
+ private readonly IRepository _diseaseRiskLevelAnswerRepository;
private readonly IRepository _diseaseRiskLevelAsbitemRepository;
private readonly IRepository _questionAnswerRepository;
private readonly IRepository _asbitemRepository;
@@ -33,7 +33,7 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
IRepository diseaseRiskLevelRepository,
DiseaseRiskLevelManager diseaseRiskLevelManager,
CacheService cacheService,
- IRepository diseaseRiskLevelAnswerRepository,
+ IRepository diseaseRiskLevelAnswerRepository,
IRepository questionAnswerRepository,
IRepository diseaseRiskLevelAsbitemRepository,
IRepository asbitemRepository)
@@ -164,61 +164,7 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
}
- ///
- /// 设置疾病风险级别对应的答案
- ///
- ///
- [HttpPost("api/app/DiseaseRiskLevel/CreateDiseaseRiskLevelAnswer")]
- public async Task CreateDiseaseRiskLevelAnswerAsync(CreateDiseaseRiskLevelAnswerDto input)
- {
- await _diseaseRiskLevelAnswerRepository.DeleteAsync(d => d.DiseaseRiskLevelId == input.DiseaseRiskLevelId,true);
- if (input.QuestionAnswerIds.Any())
- {
- foreach (var questionAnswerId in input.QuestionAnswerIds)
- {
- var isQuestionAnswer = await _diseaseRiskLevelAnswerRepository.FirstOrDefaultAsync(f => f.QuestionAnswerId == questionAnswerId && f.DiseaseRiskLevelId == input.DiseaseRiskLevelId);
- if (isQuestionAnswer == null)
- {
- await _diseaseRiskLevelAnswerRepository.InsertAsync(new DiseaseRiskLevelAnswer
- {
- DiseaseRiskLevelId = input.DiseaseRiskLevelId,
- QuestionAnswerId = questionAnswerId
- }, true);
- }
- }
- }
- }
-
- ///
- /// 根据疾病风险级别ID获取对应的答案
- ///
- ///
- ///
- [HttpPost("api/app/DiseaseRiskLevel/GetDiseaseRiskLevelAnswerByDiseaseRiskLevelId")]
- public async Task> GetDiseaseRiskLevelAnswerByDiseaseRiskLevelIdAsync(DiseaseRiskLevelIdInputDto input)
- {
- var query = from diseaseRiskLevelAnswer in await _diseaseRiskLevelAnswerRepository.GetQueryableAsync()
- join questionAnswer in await _questionAnswerRepository.GetQueryableAsync()
- on diseaseRiskLevelAnswer.QuestionAnswerId equals questionAnswer.QuestionAnswerId
- where diseaseRiskLevelAnswer.DiseaseRiskLevelId == input.DiseaseRiskLevelId
- orderby questionAnswer.DisplayOrder ascending
- select new
- {
- diseaseRiskLevelAnswer.DiseaseRiskLevelId,
- questionAnswer.QuestionAnswerId,
- questionAnswer.QuestionAnswerName
- };
-
- var entListDto = query.Select(s => new DiseaseRiskLevelAnswerDto
- {
- DiseaseRiskLevelId = s.DiseaseRiskLevelId,
- QuestionAnswerId = s.QuestionAnswerId,
- QuestionAnswerName = s.QuestionAnswerName
- }).ToList();
-
- return entListDto;
-
- }
+
///
diff --git a/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs b/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
index a9e5be9..0361aca 100644
--- a/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
+++ b/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
+using Shentun.WebPeis.DiseaseRiskLevels;
using Shentun.WebPeis.Models;
using Shentun.WebPeis.Questions;
using System;
@@ -22,17 +23,29 @@ namespace Shentun.WebPeis.QuestionAnswers
{
private readonly IRepository _questionAnswerRepository;
+ private readonly IRepository _questionAnswerAsbitemRepository;
+ private readonly IRepository _asbitemRepository;
+ private readonly IRepository _questionAnswerRiskLevelRepository;
+ private readonly IRepository _diseaseRiskLevelRepository;
private readonly QuestionAnswerManager _questionAnswerManager;
private readonly CacheService _cacheService;
public QuestionAnswerAppService(
CacheService cacheService,
IRepository questionAnswerRepository,
- QuestionAnswerManager questionAnswerManager)
+ QuestionAnswerManager questionAnswerManager,
+ IRepository questionAnswerAsbitemRepository,
+ IRepository asbitemRepository,
+ IRepository questionAnswerRiskLevelRepository,
+ IRepository diseaseRiskLevelRepository)
{
_cacheService = cacheService;
_questionAnswerRepository = questionAnswerRepository;
_questionAnswerManager = questionAnswerManager;
+ _questionAnswerAsbitemRepository = questionAnswerAsbitemRepository;
+ _asbitemRepository = asbitemRepository;
+ _questionAnswerRiskLevelRepository = questionAnswerRiskLevelRepository;
+ _diseaseRiskLevelRepository = diseaseRiskLevelRepository;
}
///
@@ -182,6 +195,120 @@ namespace Shentun.WebPeis.QuestionAnswers
await _questionAnswerManager.UpdateSortDragAsync(input);
}
+ ///
+ /// 设置答案对应的疾病风险级别
+ ///
+ ///
+ [HttpPost("api/app/QuestionAnswer/CreateQuestionAnswerRiskLevel")]
+ public async Task CreateQuestionAnswerRiskLevelAsync(CreateQuestionAnswerRiskLevelDto input)
+ {
+ await _questionAnswerRiskLevelRepository.DeleteAsync(d => d.QuestionAnswerId == input.QuestionAnswerId, true);
+ if (input.DiseaseRiskLevelIds.Any())
+ {
+ foreach (var diseaseRiskLevelId in input.DiseaseRiskLevelIds)
+ {
+ var isQuestionAnswer = await _questionAnswerRiskLevelRepository.FirstOrDefaultAsync(f => f.DiseaseRiskLevelId == diseaseRiskLevelId &&
+ f.QuestionAnswerId == input.QuestionAnswerId);
+ if (isQuestionAnswer == null)
+ {
+ await _questionAnswerRiskLevelRepository.InsertAsync(new QuestionAnswerRiskLevel
+ {
+ DiseaseRiskLevelId = diseaseRiskLevelId,
+ QuestionAnswerId = input.QuestionAnswerId
+ }, true);
+ }
+ }
+ }
+ }
+
+ ///
+ /// 根据答案ID获取疾病风险级别
+ ///
+ ///
+ ///
+ [HttpPost("api/app/QuestionAnswer/GetQuestionAnswerRiskLevelById")]
+ public async Task> GetQuestionAnswerRiskLevelByIdAsync(QuestionAnswerIdInputDto input)
+ {
+ var query = from questionAnswerRiskLevel in await _questionAnswerRiskLevelRepository.GetQueryableAsync()
+ join diseaseRiskLevel in await _diseaseRiskLevelRepository.GetQueryableAsync()
+ on questionAnswerRiskLevel.DiseaseRiskLevelId equals diseaseRiskLevel.DiseaseRiskLevelId
+ where questionAnswerRiskLevel.QuestionAnswerId == input.QuestionAnswerId
+ orderby diseaseRiskLevel.DisplayOrder ascending
+ select new
+ {
+ questionAnswerRiskLevel.QuestionAnswerId,
+ diseaseRiskLevel.DiseaseRiskLevelId,
+ diseaseRiskLevel.DiseaseRiskLevelName
+ };
+
+ var entListDto = query.Select(s => new QuestionAnswerRiskLevelDto
+ {
+ DiseaseRiskLevelId = s.DiseaseRiskLevelId,
+ QuestionAnswerId = s.QuestionAnswerId,
+ DiseaseRiskLevelName = s.DiseaseRiskLevelName
+ }).ToList();
+
+ return entListDto;
+
+ }
+
+ ///
+ /// 设置问卷答案推荐的组合项目
+ ///
+ ///
+ [HttpPost("api/app/QuestionAnswer/CreateQuestionAnswerAsbitem")]
+ public async Task CreateQuestionAnswerAsbitemAsync(CreateQuestionAnswerAsbitemDto input)
+ {
+ await _questionAnswerAsbitemRepository.DeleteAsync(d => d.QuestionAnswerId == input.QuestionAnswerId, true);
+ if (input.Asbitems.Any())
+ {
+ foreach (var item in input.Asbitems)
+ {
+ var isAsbitem = await _questionAnswerAsbitemRepository.FirstOrDefaultAsync(f => f.AsbitemId == item.AsbitemId && f.QuestionAnswerId == input.QuestionAnswerId);
+ if (isAsbitem == null)
+ {
+ await _questionAnswerAsbitemRepository.InsertAsync(new QuestionAnswerAsbitem
+ {
+ QuestionAnswerId = input.QuestionAnswerId,
+ AsbitemId = item.AsbitemId,
+ AsbitemRecommendLevelId = item.AsbitemRecommendLevelId
+ }, true);
+ }
+ }
+ }
+ }
+ ///
+ /// 根据问卷答案获取推荐的组合项目
+ ///
+ ///
+ ///
+ [HttpPost("api/app/QuestionAnswer/GetQuestionAnswerAsbitemById")]
+ public async Task> GetQuestionAnswerAsbitemByIdAsync(QuestionAnswerIdInputDto input)
+ {
+ var query = from questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync()
+ join asbitem in await _asbitemRepository.GetQueryableAsync()
+ on questionAnswerAsbitem.AsbitemId equals asbitem.AsbitemId
+ where questionAnswerAsbitem.QuestionAnswerId == input.QuestionAnswerId
+ orderby asbitem.DisplayOrder ascending
+ select new
+ {
+ questionAnswerAsbitem.QuestionAnswerId,
+ asbitem.AsbitemId,
+ asbitem.AsbitemName,
+ questionAnswerAsbitem.AsbitemRecommendLevelId
+ };
+
+ var entListDto = query.Select(s => new QuestionAnswerAsbitemDto
+ {
+ QuestionAnswerId = s.QuestionAnswerId,
+ AsbitemId = s.AsbitemId,
+ AsbitemName = s.AsbitemName,
+ AsbitemRecommendLevelId = s.AsbitemRecommendLevelId
+ }).ToList();
+
+ return entListDto;
+
+ }
///
/// 使用Code进行递归
diff --git a/src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs b/src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs
index 996e989..add24c7 100644
--- a/src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs
+++ b/src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs
@@ -33,7 +33,7 @@ namespace Shentun.WebPeis.QuestionRegisters
private readonly IRepository _questionSubjectTypeRepository;
private readonly IRepository _diseaseRiskRepository;
private readonly IRepository _diseaseRiskLevelRepository;
- private readonly IRepository _diseaseRiskLevelAnswerRepository;
+ private readonly IRepository _diseaseRiskLevelAnswerRepository;
private readonly IRepository _diseaseRiskLevelAsbitemRepository;
private readonly IRepository _asbitemRepository;
private readonly QuestionRegisterManager _questionRegisterManager;
@@ -49,7 +49,7 @@ namespace Shentun.WebPeis.QuestionRegisters
IRepository questionSubjectTypeRepository,
IRepository diseaseRiskRepository,
IRepository diseaseRiskLevelRepository,
- IRepository diseaseRiskLevelAnswerRepository,
+ IRepository diseaseRiskLevelAnswerRepository,
IRepository diseaseRiskLevelAsbitemRepository,
IRepository asbitemRepository,
SysParmValueManager sysParmValueManager)
diff --git a/src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs b/src/Shentun.WebPeis.Domain/Models/QuestionAnswerRiskLevel.cs
similarity index 84%
rename from src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs
rename to src/Shentun.WebPeis.Domain/Models/QuestionAnswerRiskLevel.cs
index 4e43403..5811175 100644
--- a/src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs
+++ b/src/Shentun.WebPeis.Domain/Models/QuestionAnswerRiskLevel.cs
@@ -9,9 +9,9 @@ using Volo.Abp.Domain.Entities;
namespace Shentun.WebPeis.Models
{
///
- /// 疾病风险级别对应的答案
+ /// 答案对应的疾病风险级别
///
- public class DiseaseRiskLevelAnswer : Entity, IHasConcurrencyStamp
+ public class QuestionAnswerRiskLevel : Entity, IHasConcurrencyStamp
{
//public DiseaseRiskLevelAnswer() { }
public Guid DiseaseRiskLevelId { get; set; }
diff --git a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/QuestionAnswerRiskLevelConfigure.cs
similarity index 51%
rename from src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs
rename to src/Shentun.WebPeis.EntityFrameworkCore/Configures/QuestionAnswerRiskLevelConfigure.cs
index f899a35..0581bd3 100644
--- a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs
+++ b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/QuestionAnswerRiskLevelConfigure.cs
@@ -9,13 +9,13 @@ using System.Threading.Tasks;
namespace Shentun.WebPeis.Configures
{
- public class DiseaseRiskLevelAnswerConfigure : IEntityTypeConfiguration
+ public class QuestionAnswerRiskLevelConfigure : IEntityTypeConfiguration
{
- public void Configure(EntityTypeBuilder entity)
+ public void Configure(EntityTypeBuilder entity)
{
- entity.HasKey(e => new { e.DiseaseRiskLevelId, e.QuestionAnswerId }).HasName("pk_disease_risk_level_answer");
+ entity.HasKey(e => new { e.DiseaseRiskLevelId, e.QuestionAnswerId }).HasName("pk_question_answer_risk_level");
- entity.ToTable("disease_risk_level_answer", tb => tb.HasComment("疾病风险对应的答案"));
+ entity.ToTable("question_answer_risk_level", tb => tb.HasComment("答案对应的疾病风险级别"));
}
}
}
diff --git a/src/Shentun.WebPeis.EntityFrameworkCore/EntityFrameworkCore/WebPeisDbContext.cs b/src/Shentun.WebPeis.EntityFrameworkCore/EntityFrameworkCore/WebPeisDbContext.cs
index 3a7aa97..3f1b789 100644
--- a/src/Shentun.WebPeis.EntityFrameworkCore/EntityFrameworkCore/WebPeisDbContext.cs
+++ b/src/Shentun.WebPeis.EntityFrameworkCore/EntityFrameworkCore/WebPeisDbContext.cs
@@ -152,7 +152,6 @@ public partial class WebPeisDbContext : AbpDbContext,
public virtual DbSet DiseaseRiskLevelAsbitems { get; set; }
- public virtual DbSet DiseaseRiskLevelAnswers { get; set; }
public virtual DbSet DiseaseRiskNormalLevels { get; set; }
@@ -191,8 +190,8 @@ public partial class WebPeisDbContext : AbpDbContext,
public virtual DbSet QuestionAnswers { get; set; }
public virtual DbSet QuestionAnswerAsbitems { get; set; }
-
+ public virtual DbSet QuestionAnswerRiskLevels { get; set; }
public virtual DbSet QuestionRegisters { get; set; }
public virtual DbSet QuestionRegisterAnswers { get; set; }