修改一版
parent
4cdd3c5206
commit
5a046da4d0
|
@ -663,6 +663,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
}
|
||||
|
||||
|
||||
public class GetSystemReadingQuestionPageDto
|
||||
{
|
||||
public List<GetSystemReadingQuestionOutDto> SinglePage { get; set; }
|
||||
|
||||
public List<GetSystemReadingQuestionOutDto> MultiPage { get; set; }
|
||||
|
||||
public List<GetSystemReadingQuestionOutDto> PublicPage { get; set; }
|
||||
}
|
||||
|
||||
public class GetTrialReadingQuestionPageDto
|
||||
{
|
||||
public List<GetTrialReadingQuestionOutDto> SinglePage { get; set; }
|
||||
|
@ -672,7 +681,238 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public List<GetTrialReadingQuestionOutDto> PublicPage{ get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class TableQuestionDataInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 问题ID
|
||||
/// </summary>
|
||||
public Guid ReadingQuestionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Type
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ParentId
|
||||
/// </summary>
|
||||
public Guid? ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///父问题触发值
|
||||
/// </summary>
|
||||
public string ParentTriggerValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题名称
|
||||
/// </summary>
|
||||
public string QuestionName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IsRequired
|
||||
/// </summary>
|
||||
public int IsRequired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序号
|
||||
/// </summary>
|
||||
public int ShowOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 值
|
||||
/// </summary>
|
||||
public string TypeValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用
|
||||
/// </summary>
|
||||
public bool IsEnable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建用户
|
||||
/// </summary>
|
||||
public Guid CreateUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 显示父问题
|
||||
/// </summary>
|
||||
public Guid? RelevanceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 显示父问题的值
|
||||
/// </summary>
|
||||
public string RelevanceValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示
|
||||
/// </summary>
|
||||
public int ShowQuestion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最大问题数
|
||||
/// </summary>
|
||||
public int? MaxRowCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据表名称
|
||||
/// </summary>
|
||||
public string DataTableName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据列
|
||||
/// </summary>
|
||||
public string DataTableColumn { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 关联父问题
|
||||
/// </summary>
|
||||
public Guid? DependParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否关联
|
||||
/// </summary>
|
||||
public IsDepend IsDepend { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表格问题类型
|
||||
/// </summary>
|
||||
public TableQuestionType? TableQuestionType { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 问题标识
|
||||
/// </summary>
|
||||
public QuestionMark? QuestionMark { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class GetSystemReadingQuestionOutDto
|
||||
{
|
||||
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 系统标准Id
|
||||
/// </summary>
|
||||
public Guid ReadingQuestionCriterionSystemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 父问题触发
|
||||
/// </summary>
|
||||
public string ParentTriggerValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题名称
|
||||
/// </summary>
|
||||
public string QuestionName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是必须
|
||||
/// </summary>
|
||||
public IsRequired IsRequired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int ShowOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 父问题ID
|
||||
/// </summary>
|
||||
public Guid? ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型值
|
||||
/// </summary>
|
||||
public string TypeValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用
|
||||
/// </summary>
|
||||
public bool IsEnable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是裁判问题
|
||||
/// </summary>
|
||||
public bool IsJudgeQuestion { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联ID
|
||||
/// </summary>
|
||||
public Guid? RelevanceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联Value
|
||||
/// </summary>
|
||||
public string RelevanceValue { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 分组
|
||||
/// </summary>
|
||||
public string GroupName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片数量
|
||||
/// </summary>
|
||||
public int ImageCount { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示
|
||||
/// </summary>
|
||||
public ShowQuestion ShowQuestion { get; set; } = ShowQuestion.Show;
|
||||
|
||||
/// <summary>
|
||||
/// 最大问题数
|
||||
/// </summary>
|
||||
public int? MaxQuestionCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 病灶类型
|
||||
/// </summary>
|
||||
public LesionType? LesionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题类型
|
||||
/// </summary>
|
||||
public QuestionType? QuestionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示在Dicom阅片中
|
||||
/// </summary>
|
||||
public bool IsShowInDicom { get; set; }
|
||||
|
||||
|
||||
|
||||
public List<TableQuestionDataInfo> TableQuestions { get; set; }
|
||||
|
||||
public List<GetSystemReadingQuestionOutDto> Childrens { get; set; }
|
||||
}
|
||||
|
||||
public class GetTrialReadingQuestionOutDto
|
||||
{
|
||||
|
@ -770,6 +1010,31 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
/// </summary>
|
||||
public ShowQuestion ShowQuestion { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 最大问题数
|
||||
/// </summary>
|
||||
public int? MaxQuestionCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 病灶类型
|
||||
/// </summary>
|
||||
public LesionType? LesionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题类型
|
||||
/// </summary>
|
||||
public QuestionType? QuestionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示在Dicom阅片中
|
||||
/// </summary>
|
||||
public bool IsShowInDicom { get; set; } = false;
|
||||
|
||||
public List<TableQuestionDataInfo> TableQuestions { get; set; }
|
||||
|
||||
public List<GetTrialReadingQuestionOutDto> Childrens { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IRepository<ReadingCriterionPage> _readingCriterionPageRepository;
|
||||
private readonly IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository;
|
||||
private readonly IRepository<ReadModule> _readModuleRepository;
|
||||
private readonly IRepository<ReadingTableQuestionSystem> _readingTableQuestionSystemRepository;
|
||||
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystemRepository;
|
||||
|
@ -64,6 +65,7 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<ReadingCriterionPage> readingCriterionPageRepository,
|
||||
IRepository<ReadingJudgeInfo> readingJudgeInfoRepository,
|
||||
IRepository<ReadModule> readModuleRepository,
|
||||
IRepository<ReadingTableQuestionSystem> readingTableQuestionSystemRepository,
|
||||
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
||||
IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystemRepository,
|
||||
|
@ -86,6 +88,7 @@ namespace IRaCIS.Application.Services
|
|||
this._readingCriterionPageRepository = readingCriterionPageRepository;
|
||||
this._readingJudgeInfoRepository = readingJudgeInfoRepository;
|
||||
this._readModuleRepository = readModuleRepository;
|
||||
this._readingTableQuestionSystemRepository = readingTableQuestionSystemRepository;
|
||||
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
||||
this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
|
||||
|
@ -864,36 +867,24 @@ namespace IRaCIS.Application.Services
|
|||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<GetTrialReadingQuestionPageDto> GetSystemReadingQuestion(GetSystemReadingQuestionInDto inDto)
|
||||
public async Task<GetSystemReadingQuestionPageDto> GetSystemReadingQuestion(GetSystemReadingQuestionInDto inDto)
|
||||
{
|
||||
var result = new GetTrialReadingQuestionPageDto();
|
||||
var query = from data in _readingQuestionSystem.Where(x => x.ReadingQuestionCriterionSystemId == inDto.Id)
|
||||
select new GetTrialReadingQuestionOutDto()
|
||||
{
|
||||
ReadingQuestionTrialId = data.Id,
|
||||
ParentTriggerValue = data.ParentTriggerValue,
|
||||
GroupName = data.GroupName,
|
||||
QuestionName = data.QuestionName,
|
||||
IsRequired = data.IsRequired,
|
||||
ShowOrder = data.ShowOrder,
|
||||
ParentId = data.ParentId,
|
||||
TypeValue = data.TypeValue,
|
||||
Answer = string.Empty,
|
||||
ShowQuestion=data.ShowQuestion,
|
||||
PageShowOrder = data.ShowOrder,
|
||||
Type=data.Type,
|
||||
};
|
||||
var result = new GetSystemReadingQuestionPageDto();
|
||||
var qusetionList =await _readingQuestionSystem.Where(x => x.ReadingQuestionCriterionSystemId == inDto.Id)
|
||||
.ProjectTo<GetSystemReadingQuestionOutDto>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
|
||||
var qusetionList = await query.OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
|
||||
var groupList = new List<GetTrialReadingQuestionOutDto>();
|
||||
var tableQuestionList =await _readingTableQuestionSystemRepository.Where(x => x.SystemCriterionId == inDto.Id)
|
||||
.ProjectTo<TableQuestionDataInfo>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
|
||||
qusetionList = qusetionList.Where(x => x.ReadingCriterionPageId == null).ToList();
|
||||
var groupList = new List<GetSystemReadingQuestionOutDto>();
|
||||
|
||||
qusetionList = qusetionList.Where(x => x.ParentId == null).ToList();
|
||||
|
||||
groupList = qusetionList.Where(x => x.Type == "group" || (x.ParentId == null && x.GroupName.IsNullOrEmpty())).ToList();
|
||||
groupList.ForEach(x =>
|
||||
{
|
||||
this.FindChildQuestion(x, qusetionList);
|
||||
this.FindSystemChildQuestion(x, qusetionList, tableQuestionList);
|
||||
});
|
||||
|
||||
groupList = groupList.Where(x => !(x.Type == "group" && x.Childrens.Count() == 0)).ToList();
|
||||
|
@ -901,47 +892,30 @@ namespace IRaCIS.Application.Services
|
|||
result.SinglePage = groupList;
|
||||
|
||||
|
||||
return (result);
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 获取阅片任务和答案
|
||||
/// <summary>
|
||||
/// 获取阅片任务和答案
|
||||
/// 获取系统
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private async Task<List<GetTrialReadingQuestionOutDto>> GetTaskAndAnswer(Guid visitTaskId)
|
||||
/// <param name="item"></param>
|
||||
/// <param name="questionlists"></param>
|
||||
/// <param name="tableQuestions"></param>
|
||||
public void FindSystemChildQuestion(GetSystemReadingQuestionOutDto item, List<GetSystemReadingQuestionOutDto> questionlists,List<TableQuestionDataInfo> tableQuestions)
|
||||
{
|
||||
var taskQuery = from questionAnswer in _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId)
|
||||
join trialQuestion in _readingQuestionTrialRepository.AsQueryable() on questionAnswer.ReadingQuestionTrialId equals trialQuestion.Id
|
||||
select new GetTrialReadingQuestionOutDto()
|
||||
{
|
||||
ReadingQuestionTrialId = trialQuestion.Id,
|
||||
ReadingQuestionCriterionTrialId = trialQuestion.ReadingQuestionCriterionTrialId,
|
||||
TrialId = trialQuestion.TrialId,
|
||||
Type = trialQuestion.Type,
|
||||
ParentTriggerValue = trialQuestion.ParentTriggerValue,
|
||||
GroupName = trialQuestion.GroupName,
|
||||
QuestionName = trialQuestion.QuestionName,
|
||||
IsRequired = trialQuestion.IsRequired,
|
||||
ShowOrder = trialQuestion.ShowOrder,
|
||||
ParentId = trialQuestion.ParentId,
|
||||
TypeValue = trialQuestion.TypeValue,
|
||||
Answer = questionAnswer.Answer
|
||||
};
|
||||
var qusetionList = await taskQuery.OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
List<GetTrialReadingQuestionOutDto> groupList = qusetionList.Where(x => x.ParentId == null).ToList();
|
||||
groupList.ForEach(x =>
|
||||
item.Childrens = questionlists.Where(x => x.ParentId == item.Id || (item.Type == "group" && x.Type != "group" && x.ParentId == null && x.GroupName == item.GroupName)).ToList();
|
||||
item.TableQuestions = tableQuestions.Where(x => x.ReadingQuestionId == item.Id).ToList();
|
||||
if (item.Childrens != null && item.Childrens.Count != 0)
|
||||
{
|
||||
this.FindChildQuestion(x, qusetionList);
|
||||
});
|
||||
|
||||
return groupList;
|
||||
item.Childrens.ForEach(x =>
|
||||
{
|
||||
this.FindSystemChildQuestion(x, questionlists, tableQuestions);
|
||||
});
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取阅片的受试者信息
|
||||
/// </summary>
|
||||
|
@ -1214,7 +1188,7 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 保存任务问题
|
||||
|
|
|
@ -51,6 +51,10 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
#region 阅片问题
|
||||
|
||||
CreateMap<ReadingQuestionSystem, GetSystemReadingQuestionOutDto>();
|
||||
|
||||
CreateMap<ReadingTableQuestionSystem, TableQuestionDataInfo>();
|
||||
|
||||
CreateMap<ReadingTableQuestionSystem, ReadingTableQuestionSystemView>()
|
||||
.ForMember(d => d.DependShowOrder, u => u.MapFrom(s => s.DependParentQuestion.ShowOrder));
|
||||
|
||||
|
|
Loading…
Reference in New Issue