修改一版

Uat_Study
he 2022-08-11 17:24:04 +08:00
parent e0913805d4
commit 7bd240eb5b
4 changed files with 81 additions and 3 deletions

View File

@ -54,6 +54,12 @@ namespace IRaCIS.Core.Application.ViewModel
/// 任务类型 /// 任务类型
/// </summary> /// </summary>
public ReadingCategory ReadingCategory { get; set; } public ReadingCategory ReadingCategory { get; set; }
/// <summary>
/// 排序
/// </summary>
public int? ParentShowOrder { get; set; }
} }
///<summary>ReadingMedicineSystemQuestionQuery 列表查询参数模型</summary> ///<summary>ReadingMedicineSystemQuestionQuery 列表查询参数模型</summary>
@ -95,6 +101,11 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid Id { get; set; } public Guid Id { get; set; }
} }
public class TrialDataFromSystem : ReadingMedicineTrialQuestion
{
public Guid SystemQuestionId { get; set; }
}
public class AddTrialDataFromSystemInDto public class AddTrialDataFromSystemInDto
{ {
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
@ -123,6 +134,21 @@ namespace IRaCIS.Core.Application.ViewModel
public ReadingCategory ReadingCategory { get; set; } public ReadingCategory ReadingCategory { get; set; }
} }
public class GetReadingMedicineSystemOtherQuestionInDto
{
public Guid? Id { get; set; }
public int? ShowOrder { get; set; }
/// <summary>
/// 任务类型
/// </summary>
public ReadingCategory? ReadingCategory { get; set; }
}
/// <summary> /// <summary>
/// 获取项目的其他问题 /// 获取项目的其他问题
/// </summary> /// </summary>

View File

@ -52,6 +52,35 @@ namespace IRaCIS.Core.Application.Service
return await query.ToListAsync(); return await query.ToListAsync();
} }
/// <summary>
/// 获取系统的其他医学审核问题
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<List<GetReadingMedicineTrialOtherQuestionOutDto>> GetReadingMedicineSystemOtherQuestion(GetReadingMedicineSystemOtherQuestionInDto inDto)
{
var types = new List<string>()
{
"select","radio"
};
var questionList = await _readingMedicineSystemQuestionRepository
.Where(x => types.Contains(x.Type))
.WhereIf(inDto.Id != null, x => x.Id != inDto.Id && x.ParentId != inDto.Id)
.WhereIf(inDto.ShowOrder != null, x => x.ShowOrder < inDto.ShowOrder)
.WhereIf(inDto.ReadingCategory != null, x => x.ReadingCategory == inDto.ReadingCategory)
.Select(x => new GetReadingMedicineTrialOtherQuestionOutDto()
{
Id = x.Id,
QuestionName = x.QuestionName,
TypeValue = x.TypeValue,
ReadingCategory = x.ReadingCategory,
}).ToListAsync();
return questionList;
}
/// <summary> /// <summary>
/// 新增或修改系统医学审核问题 /// 新增或修改系统医学审核问题
/// </summary> /// </summary>
@ -218,7 +247,7 @@ namespace IRaCIS.Core.Application.Service
var maxOrder = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId).OrderByDescending(x => x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync(); var maxOrder = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId).OrderByDescending(x => x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync();
var needList= systemList.Select(x => new ReadingMedicineTrialQuestion() var needList= systemList.Select(x => new TrialDataFromSystem()
{ {
Id = NewId.NextGuid(), Id = NewId.NextGuid(),
ShowOrder = x.ShowOrder, ShowOrder = x.ShowOrder,
@ -226,6 +255,8 @@ namespace IRaCIS.Core.Application.Service
IsRequired = x.IsRequired, IsRequired = x.IsRequired,
QuestionName = x.QuestionName, QuestionName = x.QuestionName,
Type = x.Type, Type = x.Type,
ParentId=x.ParentId,
SystemQuestionId=x.Id,
ReadingCategory=x.ReadingCategory, ReadingCategory=x.ReadingCategory,
TypeValue = x.TypeValue, TypeValue = x.TypeValue,
TrialId=inDto.TrialId, TrialId=inDto.TrialId,
@ -235,6 +266,20 @@ namespace IRaCIS.Core.Application.Service
x.ShowOrder = maxOrder++; x.ShowOrder = maxOrder++;
}); });
foreach (var item in needList.Where(x => x.ParentId != null))
{
var parent = needList.Where(x => x.SystemQuestionId == item.ParentId).FirstOrDefault();
if (parent == null)
{
item.ParentId = null;
item.ParentTriggerValue = String.Empty;
}
else
{
item.ParentId = parent.Id;
}
}
await _readingMedicineTrialQuestionRepository.AddRangeAsync(needList); await _readingMedicineTrialQuestionRepository.AddRangeAsync(needList);
var result = await _readingMedicineTrialQuestionRepository.SaveChangesAsync(); var result = await _readingMedicineTrialQuestionRepository.SaveChangesAsync();
return ResponseOutput.Result(result); return ResponseOutput.Result(result);

View File

@ -101,7 +101,11 @@ namespace IRaCIS.Core.Application.Service
#region 医学审核 #region 医学审核
CreateMap<ReadingMedicineSystemQuestionAddOrEdit, ReadingMedicineSystemQuestion>(); CreateMap<ReadingMedicineSystemQuestionAddOrEdit, ReadingMedicineSystemQuestion>();
CreateMap<ReadingMedicineSystemQuestion, ReadingMedicineSystemQuestionView>(); CreateMap<ReadingMedicineSystemQuestion, ReadingMedicineSystemQuestionView>()
.ForMember(x => x.ParentShowOrder, y => y.MapFrom(n => n.ParentQuestion.ShowOrder));
CreateMap<TrialDataFromSystem, ReadingMedicineTrialQuestion>();
CreateMap<ReadingMedicineTrialQuestionAddOrEdit, ReadingMedicineTrialQuestion>(); CreateMap<ReadingMedicineTrialQuestionAddOrEdit, ReadingMedicineTrialQuestion>();
CreateMap<ReadingMedicineTrialQuestion, ReadingMedicineTrialQuestionView>() CreateMap<ReadingMedicineTrialQuestion, ReadingMedicineTrialQuestionView>()

View File

@ -81,5 +81,8 @@ namespace IRaCIS.Core.Domain.Models
/// </summary> /// </summary>
public ReadingCategory ReadingCategory { get; set; } public ReadingCategory ReadingCategory { get; set; }
[ForeignKey("ParentId")]
public ReadingMedicineTrialQuestion ParentQuestion { get; set; }
} }
} }