Browse Source

预约

master
DESKTOP-G961P6V\Zhh 1 year ago
parent
commit
5bbe79822d
  1. 34
      src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerAsbitemDto.cs
  2. 19
      src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/CreateQuestionAnswerRiskLevelDto.cs
  3. 28
      src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerAsbitemDto.cs
  4. 25
      src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs
  5. 4
      src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs
  6. 60
      src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs
  7. 129
      src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
  8. 4
      src/Shentun.WebPeis.Application/QuestionRegisters/QuestionRegisterAppService.cs
  9. 4
      src/Shentun.WebPeis.Domain/Models/QuestionAnswerRiskLevel.cs
  10. 8
      src/Shentun.WebPeis.EntityFrameworkCore/Configures/QuestionAnswerRiskLevelConfigure.cs
  11. 3
      src/Shentun.WebPeis.EntityFrameworkCore/EntityFrameworkCore/WebPeisDbContext.cs

34
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
{
/// <summary>
/// 问卷答案ID
/// </summary>
public Guid QuestionAnswerId { get; set; }
/// <summary>
/// 组合项目集合
/// </summary>
public List<CreateQuestionAnswerAsbitemDetail> Asbitems { get; set; } = new List<CreateQuestionAnswerAsbitemDetail>();
}
public class CreateQuestionAnswerAsbitemDetail
{
/// <summary>
/// 组合项目ID
/// </summary>
public Guid AsbitemId { get; set; }
/// <summary>
/// 推荐组合项目级别 1-一级推荐,2-2级推荐,3-3级推荐
/// </summary>
public short AsbitemRecommendLevelId { get; set; }
}
}

19
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
{
/// <summary>
/// 问卷答案ID
/// </summary>
public Guid QuestionAnswerId { get; set; }
/// <summary>
/// 疾病风险级别集合
/// </summary>
public List<Guid> DiseaseRiskLevelIds { get; set; } = new List<Guid>();
}
}

28
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
{
/// <summary>
/// 问卷答案ID
/// </summary>
public Guid QuestionAnswerId { get; set; }
/// <summary>
/// 组合项目ID
/// </summary>
public Guid AsbitemId { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set; }
/// <summary>
/// 推荐组合项目级别 1-一级推荐,2-2级推荐,3-3级推荐
/// </summary>
public short AsbitemRecommendLevelId { get; set; }
}
}

25
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
{
/// <summary>
/// 问卷答案ID
/// </summary>
public Guid QuestionAnswerId { get; set; }
/// 疾病风险疾病ID
/// </summary>
public Guid DiseaseRiskLevelId { get; set; }
/// <summary>
/// 疾病风险名称
/// </summary>
public string DiseaseRiskLevelName { get; set; }
}
}

4
src/Shentun.WebPeis.Application/AppointPatientRegisters/AppointPatientRegisterAppService.cs

@ -60,7 +60,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters
private readonly IRepository<QuestionSubjectType> _questionSubjectTypeRepository;
private readonly IRepository<DiseaseRisk> _diseaseRiskRepository;
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository;
private readonly IRepository<DiseaseRiskLevelAnswer> _diseaseRiskLevelAnswerRepository;
private readonly IRepository<QuestionAnswerRiskLevel> _diseaseRiskLevelAnswerRepository;
private readonly IRepository<DiseaseRiskLevelAsbitem> _diseaseRiskLevelAsbitemRepository;
public AppointPatientRegisterAppService(IRepository<AppointPatientRegister> repository,
CacheService cacheService,
@ -90,7 +90,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters
IRepository<QuestionSubjectType> questionSubjectTypeRepository,
IRepository<DiseaseRisk> diseaseRiskRepository,
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository,
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository,
IRepository<QuestionAnswerRiskLevel> diseaseRiskLevelAnswerRepository,
IRepository<DiseaseRiskLevelAsbitem> diseaseRiskLevelAsbitemRepository
)

60
src/Shentun.WebPeis.Application/DiseaseRiskLevels/DiseaseRiskLevelAppService.cs

@ -22,7 +22,7 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
{
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository;
private readonly IRepository<DiseaseRiskLevelAnswer> _diseaseRiskLevelAnswerRepository;
private readonly IRepository<QuestionAnswerRiskLevel> _diseaseRiskLevelAnswerRepository;
private readonly IRepository<DiseaseRiskLevelAsbitem> _diseaseRiskLevelAsbitemRepository;
private readonly IRepository<QuestionAnswer> _questionAnswerRepository;
private readonly IRepository<Asbitem> _asbitemRepository;
@ -33,7 +33,7 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository,
DiseaseRiskLevelManager diseaseRiskLevelManager,
CacheService cacheService,
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository,
IRepository<QuestionAnswerRiskLevel> diseaseRiskLevelAnswerRepository,
IRepository<QuestionAnswer> questionAnswerRepository,
IRepository<DiseaseRiskLevelAsbitem> diseaseRiskLevelAsbitemRepository,
IRepository<Asbitem> asbitemRepository)
@ -164,61 +164,7 @@ namespace Shentun.WebPeis.DiseaseRiskLevels
}
/// <summary>
/// 设置疾病风险级别对应的答案
/// </summary>
/// <returns></returns>
[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);
}
}
}
}
/// <summary>
/// 根据疾病风险级别ID获取对应的答案
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/DiseaseRiskLevel/GetDiseaseRiskLevelAnswerByDiseaseRiskLevelId")]
public async Task<List<DiseaseRiskLevelAnswerDto>> 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;
}
/// <summary>

129
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<QuestionAnswer> _questionAnswerRepository;
private readonly IRepository<QuestionAnswerAsbitem> _questionAnswerAsbitemRepository;
private readonly IRepository<Asbitem> _asbitemRepository;
private readonly IRepository<QuestionAnswerRiskLevel> _questionAnswerRiskLevelRepository;
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository;
private readonly QuestionAnswerManager _questionAnswerManager;
private readonly CacheService _cacheService;
public QuestionAnswerAppService(
CacheService cacheService,
IRepository<QuestionAnswer> questionAnswerRepository,
QuestionAnswerManager questionAnswerManager)
QuestionAnswerManager questionAnswerManager,
IRepository<QuestionAnswerAsbitem> questionAnswerAsbitemRepository,
IRepository<Asbitem> asbitemRepository,
IRepository<QuestionAnswerRiskLevel> questionAnswerRiskLevelRepository,
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository)
{
_cacheService = cacheService;
_questionAnswerRepository = questionAnswerRepository;
_questionAnswerManager = questionAnswerManager;
_questionAnswerAsbitemRepository = questionAnswerAsbitemRepository;
_asbitemRepository = asbitemRepository;
_questionAnswerRiskLevelRepository = questionAnswerRiskLevelRepository;
_diseaseRiskLevelRepository = diseaseRiskLevelRepository;
}
/// <summary>
@ -182,6 +195,120 @@ namespace Shentun.WebPeis.QuestionAnswers
await _questionAnswerManager.UpdateSortDragAsync(input);
}
/// <summary>
/// 设置答案对应的疾病风险级别
/// </summary>
/// <returns></returns>
[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);
}
}
}
}
/// <summary>
/// 根据答案ID获取疾病风险级别
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/QuestionAnswer/GetQuestionAnswerRiskLevelById")]
public async Task<List<QuestionAnswerRiskLevelDto>> 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;
}
/// <summary>
/// 设置问卷答案推荐的组合项目
/// </summary>
/// <returns></returns>
[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);
}
}
}
}
/// <summary>
/// 根据问卷答案获取推荐的组合项目
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/QuestionAnswer/GetQuestionAnswerAsbitemById")]
public async Task<List<QuestionAnswerAsbitemDto>> 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;
}
/// <summary>
/// 使用Code进行递归

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

@ -33,7 +33,7 @@ namespace Shentun.WebPeis.QuestionRegisters
private readonly IRepository<QuestionSubjectType> _questionSubjectTypeRepository;
private readonly IRepository<DiseaseRisk> _diseaseRiskRepository;
private readonly IRepository<DiseaseRiskLevel> _diseaseRiskLevelRepository;
private readonly IRepository<DiseaseRiskLevelAnswer> _diseaseRiskLevelAnswerRepository;
private readonly IRepository<QuestionAnswerRiskLevel> _diseaseRiskLevelAnswerRepository;
private readonly IRepository<DiseaseRiskLevelAsbitem> _diseaseRiskLevelAsbitemRepository;
private readonly IRepository<Asbitem> _asbitemRepository;
private readonly QuestionRegisterManager _questionRegisterManager;
@ -49,7 +49,7 @@ namespace Shentun.WebPeis.QuestionRegisters
IRepository<QuestionSubjectType> questionSubjectTypeRepository,
IRepository<DiseaseRisk> diseaseRiskRepository,
IRepository<DiseaseRiskLevel> diseaseRiskLevelRepository,
IRepository<DiseaseRiskLevelAnswer> diseaseRiskLevelAnswerRepository,
IRepository<QuestionAnswerRiskLevel> diseaseRiskLevelAnswerRepository,
IRepository<DiseaseRiskLevelAsbitem> diseaseRiskLevelAsbitemRepository,
IRepository<Asbitem> asbitemRepository,
SysParmValueManager sysParmValueManager)

4
src/Shentun.WebPeis.Domain/Models/DiseaseRiskLevelAnswer.cs → src/Shentun.WebPeis.Domain/Models/QuestionAnswerRiskLevel.cs

@ -9,9 +9,9 @@ using Volo.Abp.Domain.Entities;
namespace Shentun.WebPeis.Models
{
/// <summary>
/// 疾病风险级别对应的答案
/// 答案对应的疾病风险级别
/// </summary>
public class DiseaseRiskLevelAnswer : Entity, IHasConcurrencyStamp
public class QuestionAnswerRiskLevel : Entity, IHasConcurrencyStamp
{
//public DiseaseRiskLevelAnswer() { }
public Guid DiseaseRiskLevelId { get; set; }

8
src/Shentun.WebPeis.EntityFrameworkCore/Configures/DiseaseRiskLevelAnswerConfigure.cs → src/Shentun.WebPeis.EntityFrameworkCore/Configures/QuestionAnswerRiskLevelConfigure.cs

@ -9,13 +9,13 @@ using System.Threading.Tasks;
namespace Shentun.WebPeis.Configures
{
public class DiseaseRiskLevelAnswerConfigure : IEntityTypeConfiguration<DiseaseRiskLevelAnswer>
public class QuestionAnswerRiskLevelConfigure : IEntityTypeConfiguration<QuestionAnswerRiskLevel>
{
public void Configure(EntityTypeBuilder<DiseaseRiskLevelAnswer> entity)
public void Configure(EntityTypeBuilder<QuestionAnswerRiskLevel> 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("答案对应的疾病风险级别"));
}
}
}

3
src/Shentun.WebPeis.EntityFrameworkCore/EntityFrameworkCore/WebPeisDbContext.cs

@ -152,7 +152,6 @@ public partial class WebPeisDbContext : AbpDbContext<WebPeisDbContext>,
public virtual DbSet<DiseaseRiskLevelAsbitem> DiseaseRiskLevelAsbitems { get; set; }
public virtual DbSet<DiseaseRiskLevelAnswer> DiseaseRiskLevelAnswers { get; set; }
public virtual DbSet<DiseaseRiskNormalLevel> DiseaseRiskNormalLevels { get; set; }
@ -191,8 +190,8 @@ public partial class WebPeisDbContext : AbpDbContext<WebPeisDbContext>,
public virtual DbSet<QuestionAnswer> QuestionAnswers { get; set; }
public virtual DbSet<QuestionAnswerAsbitem> QuestionAnswerAsbitems { get; set; }
public virtual DbSet<QuestionAnswerRiskLevel> QuestionAnswerRiskLevels { get; set; }
public virtual DbSet<QuestionRegister> QuestionRegisters { get; set; }
public virtual DbSet<QuestionRegisterAnswer> QuestionRegisterAnswers { get; set; }

Loading…
Cancel
Save