Uat_Study
he 2023-02-28 09:38:17 +08:00
parent 9ed80154af
commit efbe1d3511
3 changed files with 43 additions and 8 deletions

View File

@ -90,6 +90,12 @@ namespace IRaCIS.Application.Contracts
public Guid? TrialReadingCriterionId { get; set; }
}
public class GetTrialCriterionDictionaryListInDto
{
[NotDefault]
public Guid TrialCriterionId { get; set; }
}
public class GetCriterionDictionaryListInDto
{
[NotDefault]

View File

@ -21,7 +21,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository<Doctor> _doctorRepository;
private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<SystemCriterionDictionaryCode> _systemCriterionDictionaryCodeRepository;
private readonly IRepository<TrialCriterionDictionaryCode> _trialCriterionDictionaryCode;
private readonly IRepository<TrialCriterionDictionaryCode> _trialCriterionDictionaryCodeRepository;
private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystem;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial;
@ -31,7 +31,7 @@ namespace IRaCIS.Application.Services
IRepository<Doctor> doctorRepository, IRepository<Trial> trialRepository,
IRepository<SystemCriterionDictionaryCode> systemCriterionDictionaryCodeRepository,
IRepository<TrialCriterionDictionaryCode> trialCriterionDictionaryCode,
IRepository<TrialCriterionDictionaryCode> trialCriterionDictionaryCodeRepository,
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystem,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
@ -46,7 +46,7 @@ namespace IRaCIS.Application.Services
_doctorRepository = doctorRepository;
_trialRepository = trialRepository;
this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository;
this._trialCriterionDictionaryCode = trialCriterionDictionaryCode;
this._trialCriterionDictionaryCodeRepository = trialCriterionDictionaryCodeRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._readingQuestionCriterionSystem = readingQuestionCriterionSystem;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
@ -270,6 +270,36 @@ namespace IRaCIS.Application.Services
return dictionaryList;
}
/// <summary>
/// 获取标准字典
/// </summary>
/// <returns></returns>
public async Task<List<GetCriterionDictionaryListOutDto>> GetTrialCriterionDictionaryList(GetTrialCriterionDictionaryListInDto inDto)
{
var criterionCodes = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.TrialCriterionId).ToListAsync();
var parentCodes = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialCriterionId).Select(x => x.ParentCode).ToListAsync();
var codes = criterionCodes.Select(x => x.Code).ToList();
var dictionaryList = await _dicRepository.Where(x => codes.Contains(x.Code) && x.ParentId == null)
.OrderBy(x => x.ShowOrder).Select(x => new GetCriterionDictionaryListOutDto()
{
Code = x.Code,
ShowOrder = x.ShowOrder,
Description = x.Description
}).ToListAsync();
dictionaryList.ForEach(x => {
x.Count = parentCodes.Count(y => y == x.Code);
x.Id = criterionCodes.Where(y => y.Code == x.Code).Select(x => x.Id).FirstOrDefault();
});
return dictionaryList;
}
/// <summary>
/// 获取标准指定字典
/// </summary>
@ -299,7 +329,7 @@ namespace IRaCIS.Application.Services
}
else
{
selectCode = await _trialCriterionDictionaryCode.Where(x => x.TrialCriterionId == inDto.ReadingCriterionId).Select(x => x.Code).ToListAsync();
selectCode = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.ReadingCriterionId).Select(x => x.Code).ToListAsync();
}
@ -367,7 +397,7 @@ namespace IRaCIS.Application.Services
}
else
{
List<string> selectCode = await _trialCriterionDictionaryCode.Where(x => x.TrialCriterionId == inDto.TrialReadingCriterionId).Select(x => x.Code).ToListAsync();
List<string> selectCode = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.TrialReadingCriterionId).Select(x => x.Code).ToListAsync();
var criterionCode = await _dicRepository.Where(x => x.ConfigDictionary.Code == "Reading_eCRF_Criterion").Select(x => x.Code).ToListAsync();

View File

@ -1727,10 +1727,9 @@ namespace IRaCIS.Application.Services
var readingQuestionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId
&& (x.IsJudgeQuestion || (x.IsRequired == IsRequired.Required && x.ShowQuestion == ShowQuestion.Show))
)
.WhereIf(!criterion.IseCRFShowInDicomReading,x=>x.IsShowInDicom).ToListAsync();
).WhereIf(!criterion.IseCRFShowInDicomReading,x=>x.IsShowInDicom).ToListAsync();
var answerQuestionIds = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).Select(x => x.ReadingQuestionTrialId).ToListAsync();
var answerQuestionIds = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId&&x.Answer!=string.Empty).Select(x => x.ReadingQuestionTrialId).ToListAsync();
readingQuestionList = readingQuestionList.Where(x => !answerQuestionIds.Contains(x.Id)).ToList();