diff --git a/src/Shentun.WebPeis.Application.Contracts/Asbitems/BasicAsbitemDto.cs b/src/Shentun.WebPeis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
new file mode 100644
index 0000000..c5ea968
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/Asbitems/BasicAsbitemDto.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.Asbitems
+{
+ public class BasicAsbitemDto
+ {
+ ///
+ /// 编号
+ ///
+ public Guid AsbitemId { get; set; }
+
+ ///
+ /// 名称
+ ///
+ public string AsbitemName { get; set; } = null!;
+
+ ///
+ /// 简称
+ ///
+ public string? ShortName { get; set; }
+ public string SimpleCode { get; set; }
+
+
+ public int DisplayOrder { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelAnswerDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelAnswerDto.cs
new file mode 100644
index 0000000..412caa2
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelAnswerDto.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.DiseaseRiskLevels
+{
+ public class CreateDiseaseRiskLevelAnswerDto
+ {
+ ///
+ /// 疾病风险级别ID
+ ///
+ public Guid DiseaseRiskLevelId { get; set; }
+
+ ///
+ /// 问卷答案ID 集合
+ ///
+ public List QuestionAnswerIds { get; set; } = new List();
+
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelAsbitemDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelAsbitemDto.cs
new file mode 100644
index 0000000..2ee311c
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/CreateDiseaseRiskLevelAsbitemDto.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.DiseaseRiskLevels
+{
+ public class CreateDiseaseRiskLevelAsbitemDto
+ {
+ ///
+ /// 疾病风险级别ID
+ ///
+ public Guid DiseaseRiskLevelId { get; set; }
+
+ public List Details { get; set; } = new List();
+
+ }
+
+ public class CreateDiseaseRiskLevelAsbitemDetail
+ {
+ ///
+ /// 组合项目ID
+ ///
+
+ public Guid AsbitemId { get; set; }
+ ///
+ /// 推荐组合项目级别 1-一级推荐,2-2级推荐,3-3级推荐
+ ///
+
+ public short AsbitemRecommendLevelId { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelAnswerDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelAnswerDto.cs
new file mode 100644
index 0000000..fef45cf
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelAnswerDto.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.DiseaseRiskLevels
+{
+ public class DiseaseRiskLevelAnswerDto
+ {
+
+ ///
+ /// 疾病风险疾病ID
+ ///
+ public Guid DiseaseRiskLevelId { get; set; }
+
+ ///
+ /// 问卷答案ID
+ ///
+ public Guid QuestionAnswerId { get; set; }
+
+ ///
+ /// 问卷答案名称
+ ///
+ public string QuestionAnswerName { get; set; }
+ }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelAsbitemDto.cs b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelAsbitemDto.cs
new file mode 100644
index 0000000..88762f3
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/DiseaseRiskLevels/DiseaseRiskLevelAsbitemDto.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.DiseaseRiskLevels
+{
+ public class DiseaseRiskLevelAsbitemDto
+ {
+ ///
+ /// 疾病风险级别ID
+ ///
+ public Guid DiseaseRiskLevelId { get; set; }
+ ///
+ /// 组合项目ID
+ ///
+ public Guid AsbitemId { get; set; }
+ ///
+ /// 组合项目名称
+ ///
+ public string AsbitemName { get; set; }
+
+
+
+ }
+}
diff --git a/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs b/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
index 230fe75..5599e01 100644
--- a/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
+++ b/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
@@ -61,7 +61,7 @@ namespace Shentun.WebPeis.Asbitems
DiseaseScreeningTypeId = CheckTypeFlag.Radiology.ToString(),DiseaseScreeningTypeName = "放射",DisplayOrder = 4*1000}
};
- var diseaseScreeningTypes = (await _diseaseScreeningTypeRepository.GetListAsync()).OrderBy(o=>o.DisplayOrder).ToList();
+ var diseaseScreeningTypes = (await _diseaseScreeningTypeRepository.GetListAsync()).OrderBy(o => o.DisplayOrder).ToList();
diseaseScreeningTypes.ForEach(o =>
{
diseaseScreeningTypeAsbitemDtos.Add(new DiseaseScreeningTypeAsbitemDto()
@@ -76,7 +76,7 @@ namespace Shentun.WebPeis.Asbitems
var diseaseScreeningTypeAsbitems = new List();
foreach (var asbitem in asbitems)
{
- var diseaseScreeningTypeAsbitem = new DiseaseScreeningTypeAsbitem()
+ var diseaseScreeningTypeAsbitem = new DiseaseScreeningTypeAsbitem()
{
AsbitemId = asbitem.AsbitemId,
AsbitemName = asbitem.AsbitemName,
@@ -99,7 +99,7 @@ namespace Shentun.WebPeis.Asbitems
itemType = itemTypes.Where(o => o.PathCode == itemType.PathCode.Substring(0, 5)).Single();
asbitem.ItemTypeId = itemType.ItemTypeId;
}
- if(string.IsNullOrWhiteSpace(diseaseScreeningTypeAsbitem.DiseaseScreeningTypeId))
+ if (string.IsNullOrWhiteSpace(diseaseScreeningTypeAsbitem.DiseaseScreeningTypeId))
{
diseaseScreeningTypeAsbitem.DiseaseScreeningTypeId = itemType.CheckTypeFlag.ToString();
}
@@ -107,14 +107,37 @@ namespace Shentun.WebPeis.Asbitems
}
//设置检查类别对应的组合项目
- foreach(var diseaseScreeningTypeAsbitemDto in diseaseScreeningTypeAsbitemDtos)
+ foreach (var diseaseScreeningTypeAsbitemDto in diseaseScreeningTypeAsbitemDtos)
{
- diseaseScreeningTypeAsbitemDto.Asbitems = diseaseScreeningTypeAsbitems.Where(o=>
+ diseaseScreeningTypeAsbitemDto.Asbitems = diseaseScreeningTypeAsbitems.Where(o =>
o.DiseaseScreeningTypeId == diseaseScreeningTypeAsbitemDto.DiseaseScreeningTypeId).ToList();
}
return diseaseScreeningTypeAsbitemDtos;
}
+ ///
+ /// 获取组合项目列表
+ ///
+ ///
+ [HttpPost("api/app/Asbitem/GetBasicList")]
+ public async Task> GetBasicListAsync()
+ {
+
+ var query = await _repository.GetQueryableAsync();
+
+
+ var entdto = query.Select(s => new BasicAsbitemDto
+ {
+ AsbitemId = s.AsbitemId,
+ AsbitemName = s.AsbitemName,
+ DisplayOrder = s.DisplayOrder,
+ ShortName = s.ShortName,
+ SimpleCode = s.SimpleCode
+ }).OrderBy(o => o.DisplayOrder).ToList();
+
+ return entdto;
+ }
+
}
}
diff --git a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
index 4ce6720..fe5bc3c 100644
--- a/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
+++ b/src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
@@ -17,21 +17,33 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
///
[ApiExplorerSettings(GroupName = "Work")]
[Authorize]
- public class DiseaseRiskLevelAppService:ApplicationService
+ public class DiseaseRiskLevelAppService : ApplicationService
{
private readonly IRepository _diseaseRiskLevelRepository;
+ private readonly IRepository _diseaseRiskLevelAnswerRepository;
+ private readonly IRepository _diseaseRiskLevelAsbitemRepository;
+ private readonly IRepository _questionAnswerRepository;
+ private readonly IRepository _asbitemRepository;
private readonly DiseaseRiskLevelManager _diseaseRiskLevelManager;
private readonly CacheService _cacheService;
public DiseaseRiskLevelAppService(
IRepository diseaseRiskLevelRepository,
DiseaseRiskLevelManager diseaseRiskLevelManager,
- CacheService cacheService)
+ CacheService cacheService,
+ IRepository diseaseRiskLevelAnswerRepository,
+ IRepository questionAnswerRepository,
+ IRepository diseaseRiskLevelAsbitemRepository,
+ IRepository asbitemRepository)
{
_diseaseRiskLevelRepository = diseaseRiskLevelRepository;
_diseaseRiskLevelManager = diseaseRiskLevelManager;
_cacheService = cacheService;
+ _diseaseRiskLevelAnswerRepository = diseaseRiskLevelAnswerRepository;
+ _questionAnswerRepository = questionAnswerRepository;
+ _diseaseRiskLevelAsbitemRepository = diseaseRiskLevelAsbitemRepository;
+ _asbitemRepository = asbitemRepository;
}
@@ -70,6 +82,9 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
return dto;
}
+
+
+
///
/// 删除
///
@@ -81,6 +96,121 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
await _diseaseRiskLevelManager.CheckAndDeleteAsync(input.DiseaseRiskLevelId);
}
+
+ ///
+ /// 设置疾病风险级别对应的答案
+ ///
+ ///
+ [HttpPost("api/app/DiseaseRiskLevel/CreateDiseaseRiskLevelAnswer")]
+ public async Task CreateDiseaseRiskLevelAnswerAsync(CreateDiseaseRiskLevelAnswerDto input)
+ {
+ await _diseaseRiskLevelAnswerRepository.DeleteAsync(d => d.DiseaseRiskLevelId == input.DiseaseRiskLevelId);
+ 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
+ });
+ }
+ }
+ }
+ }
+
+ ///
+ /// 根据疾病风险级别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;
+
+ }
+
+
+ ///
+ /// 设置疾病风险级别推荐的组合项目
+ ///
+ ///
+ [HttpPost("api/app/DiseaseRiskLevel/CreateDiseaseRiskLevelAsbitem")]
+ public async Task CreateDiseaseRiskLevelAsbitemAsync(CreateDiseaseRiskLevelAsbitemDto input)
+ {
+ await _diseaseRiskLevelAsbitemRepository.DeleteAsync(d => d.DiseaseRiskLevelId == input.DiseaseRiskLevelId);
+ if (input.Details.Any())
+ {
+ foreach (var item in input.Details)
+ {
+ var isAsbitem = await _diseaseRiskLevelAsbitemRepository.FirstOrDefaultAsync(f => f.AsbitemId == item.AsbitemId && f.DiseaseRiskLevelId == input.DiseaseRiskLevelId);
+ if (isAsbitem == null)
+ {
+ await _diseaseRiskLevelAsbitemRepository.InsertAsync(new DiseaseRiskLevelAsbitem
+ {
+ DiseaseRiskLevelId = input.DiseaseRiskLevelId,
+ AsbitemId = item.AsbitemId,
+ AsbitemRecommendLevelId = item.AsbitemRecommendLevelId
+ });
+ }
+ }
+ }
+ }
+
+ ///
+ /// 根据疾病风险级别ID获取推荐的组合项目
+ ///
+ ///
+ ///
+ [HttpPost("api/app/DiseaseRiskLevel/GetDiseaseRiskLevelAsbitemByDiseaseRiskLevelId")]
+ public async Task> GetDiseaseRiskLevelAsbitemByDiseaseRiskLevelIdAsync(DiseaseRiskLevelIdInputDto input)
+ {
+ var query = from diseaseRiskLevelAsbitem in await _diseaseRiskLevelAsbitemRepository.GetQueryableAsync()
+ join asbitem in await _asbitemRepository.GetQueryableAsync()
+ on diseaseRiskLevelAsbitem.AsbitemId equals asbitem.AsbitemId
+ where diseaseRiskLevelAsbitem.DiseaseRiskLevelId == input.DiseaseRiskLevelId
+ orderby asbitem.DisplayOrder ascending
+ select new
+ {
+ diseaseRiskLevelAsbitem.DiseaseRiskLevelId,
+ asbitem.AsbitemId,
+ asbitem.AsbitemName
+ };
+
+ var entListDto = query.Select(s => new DiseaseRiskLevelAsbitemDto
+ {
+ DiseaseRiskLevelId = s.DiseaseRiskLevelId,
+ AsbitemId = s.AsbitemId,
+ AsbitemName = s.AsbitemName
+ }).ToList();
+
+ return entListDto;
+
+ }
+
///
/// 修改排序 置顶,置底
///
diff --git a/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs b/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
index ed6c53e..a9e5be9 100644
--- a/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
+++ b/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
@@ -35,39 +35,44 @@ namespace Shentun.WebPeis.QuestionAnswers
_questionAnswerManager = questionAnswerManager;
}
- /////
- ///// 获取列表
- /////
- /////
- //[HttpPost("api/app/QuestionAnswer/GetList")]
- //public async Task> GetListAsync()
- //{
- // var entlist = await _questionRepository.GetQueryableAsync();
-
- // var entdto = entlist.Select(s => new QuestionDto
- // {
- // CreationTime = s.CreationTime,
- // CreatorId = s.CreatorId,
- // DisplayOrder = s.DisplayOrder,
- // LastModificationTime = s.LastModificationTime,
- // LastModifierId = s.LastModifierId,
- // SimpleCode = s.SimpleCode,
- // QuestionTypeId = s.QuestionTypeId,
- // QuestionSubjectTypeId = s.QuestionSubjectTypeId,
- // QuestionName = s.QuestionName,
- // QuestionId = s.QuestionId,
- // PathCode = s.PathCode,
- // ParentId = s.ParentId,
- // IsActive = s.IsActive,
- // AnswerType = s.AnswerType,
- // CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
- // LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
- // }).OrderBy(o => o.DisplayOrder).ToList();
-
- // return entdto;
-
-
- //}
+ ///
+ /// 获取问卷答案列表 疾病风险级别设置对应答案时用
+ ///
+ ///
+ [HttpPost("api/app/QuestionAnswer/GetList")]
+ public async Task> GetListAsync()
+ {
+ var entlist = await _questionAnswerRepository.GetQueryableAsync();
+
+ var entdto = entlist.Select(s => new QuestionAnswerDto
+ {
+ CreationTime = s.CreationTime,
+ CreatorId = s.CreatorId,
+ DisplayOrder = s.DisplayOrder,
+ LastModificationTime = s.LastModificationTime,
+ LastModifierId = s.LastModifierId,
+ SimpleCode = s.SimpleCode,
+ Aliases = s.Aliases,
+ QuestionAnswerName = s.QuestionAnswerName,
+ AnswerResultType = s.AnswerResultType,
+ QuestionAnswerId = s.QuestionAnswerId,
+ ChildAnswerTitle = s.ChildAnswerTitle,
+ ChildAnswerType = s.ChildAnswerType,
+ HealthGuidance = s.HealthGuidance,
+ IsNone = s.IsNone,
+ Overview = s.Overview,
+ Reason = s.Reason,
+ QuestionId = s.QuestionId,
+ PathCode = s.PathCode,
+ ParentId = s.ParentId,
+ CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result,
+ LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result
+ }).OrderBy(o => o.DisplayOrder).ToList();
+
+ return entdto;
+
+
+ }
///
diff --git a/src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs b/src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs
new file mode 100644
index 0000000..7bd4b5b
--- /dev/null
+++ b/src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.Domain.Entities.Auditing;
+using Volo.Abp.Domain.Entities;
+
+namespace Shentun.WebPeis.Models
+{
+ ///
+ /// 疾病风险级别对应的答案
+ ///
+ public class DiseaseRiskLevelAnswer : Entity, IHasConcurrencyStamp
+ {
+ public Guid DiseaseRiskLevelId { get; set; }
+
+ public Guid QuestionAnswerId { get; set; }
+
+ public string ConcurrencyStamp { get; set; }
+
+ public override object?[] GetKeys()
+ {
+ return [DiseaseRiskLevelId, QuestionAnswerId];
+ }
+ }
+}
diff --git a/src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs
new file mode 100644
index 0000000..d8880ed
--- /dev/null
+++ b/src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs
@@ -0,0 +1,21 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using Shentun.WebPeis.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Shentun.WebPeis.Configures
+{
+ internal class DiseaseRiskLevelAnswerConfigure : IEntityTypeConfiguration
+ {
+ public void Configure(EntityTypeBuilder entity)
+ {
+ entity.HasKey(e => new { e.DiseaseRiskLevelId, e.QuestionAnswerId }).HasName("pk_disease_risk_level_answer");
+
+ entity.ToTable("medical_package_detail", tb => tb.HasComment("疾病风险对应的答案"));
+ }
+ }
+}