代码修改

Uat_Study
he 2023-04-24 11:27:50 +08:00
parent eac6fe52a6
commit 62a1200cf3
12 changed files with 152 additions and 87 deletions

View File

@ -22,6 +22,8 @@ namespace IRaCIS.Application.Services
private readonly IRepository<Trial> _trialRepository; private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<SystemCriterionDictionaryCode> _systemCriterionDictionaryCodeRepository; private readonly IRepository<SystemCriterionDictionaryCode> _systemCriterionDictionaryCodeRepository;
private readonly IRepository<TrialCriterionDictionaryCode> _trialCriterionDictionaryCodeRepository; private readonly IRepository<TrialCriterionDictionaryCode> _trialCriterionDictionaryCodeRepository;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository; private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystem; private readonly IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystem;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial; private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial;
@ -32,6 +34,7 @@ namespace IRaCIS.Application.Services
IRepository<SystemCriterionDictionaryCode> systemCriterionDictionaryCodeRepository, IRepository<SystemCriterionDictionaryCode> systemCriterionDictionaryCodeRepository,
IRepository<TrialCriterionDictionaryCode> trialCriterionDictionaryCodeRepository, IRepository<TrialCriterionDictionaryCode> trialCriterionDictionaryCodeRepository,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository, IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystem, IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystem,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial, IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
@ -47,6 +50,7 @@ namespace IRaCIS.Application.Services
_trialRepository = trialRepository; _trialRepository = trialRepository;
this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository; this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository;
this._trialCriterionDictionaryCodeRepository = trialCriterionDictionaryCodeRepository; this._trialCriterionDictionaryCodeRepository = trialCriterionDictionaryCodeRepository;
this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository; this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._readingQuestionCriterionSystem = readingQuestionCriterionSystem; this._readingQuestionCriterionSystem = readingQuestionCriterionSystem;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial; this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
@ -179,6 +183,13 @@ namespace IRaCIS.Application.Services
//return ResponseOutput.NotOk(_localizer["Dictionary_DictionaryDeletion"]); //return ResponseOutput.NotOk(_localizer["Dictionary_DictionaryDeletion"]);
} }
if (await _readingTrialCriterionDictionaryRepository.AnyAsync(x => x.DictionaryId == id))
{
await _readingTrialCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(t => t.DictionaryId == id);
//---当前字典在标准中被引用,不允许删除!
//return ResponseOutput.NotOk(_localizer["Dictionary_DictionaryDeletion"]);
}
if (await _dicRepository.AnyAsync(t => t.ParentId == id)) if (await _dicRepository.AnyAsync(t => t.ParentId == id))
{ {
//---有子项数据,不允许直接删除! //---有子项数据,不允许直接删除!
@ -201,12 +212,6 @@ namespace IRaCIS.Application.Services
return ResponseOutput.NotOk(_localizer["Dictionary_ProjectReference"]); return ResponseOutput.NotOk(_localizer["Dictionary_ProjectReference"]);
} }
if (await _readingCriterionDictionaryRepository.AnyAsync(x => x.DictionaryId == id))
{
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(t => t.DictionaryId == id);
//---当前条目已经在阅片标准中被引用。
//return ResponseOutput.NotOk(_localizer["Dictionary_StandardReference"]);
}
var success = await _dicRepository.BatchDeleteNoTrackingAsync(t => t.Id == id); var success = await _dicRepository.BatchDeleteNoTrackingAsync(t => t.Id == id);
return ResponseOutput.Result(success); return ResponseOutput.Result(success);
@ -293,7 +298,7 @@ namespace IRaCIS.Application.Services
{ {
var criterionCodes = await _trialCriterionDictionaryCodeRepository.Where(x => x.TrialCriterionId == inDto.TrialCriterionId).ToListAsync(); 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 parentCodes = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialCriterionId).Select(x => x.ParentCode).ToListAsync();
var codes = criterionCodes.Select(x => x.Code).ToList(); var codes = criterionCodes.Select(x => x.Code).ToList();
@ -337,15 +342,48 @@ namespace IRaCIS.Application.Services
else else
{ {
List<string> selectCode = new List<string>(); List<string> selectCode = new List<string>();
List<BasicDicSelect> criterionDictionList = new List<BasicDicSelect>();
var isSystemCriterion = await _readingQuestionCriterionSystem.AnyAsync(x => x.Id == inDto.ReadingCriterionId); var isSystemCriterion = await _readingQuestionCriterionSystem.AnyAsync(x => x.Id == inDto.ReadingCriterionId);
if (isSystemCriterion) if (isSystemCriterion)
{ {
selectCode = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.ReadingCriterionId).Select(x => x.Code).ToListAsync(); selectCode = await _systemCriterionDictionaryCodeRepository.Where(x => x.SystemCriterionId == inDto.ReadingCriterionId).Select(x => x.Code).ToListAsync();
criterionDictionList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.ReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ParentChildCodeEnum = x.Dictionary.Parent.ChildCodeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
Id = x.DictionaryId,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
} }
else else
{ {
selectCode = await _trialCriterionDictionaryCodeRepository.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();
criterionDictionList = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.ReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ParentChildCodeEnum = x.Dictionary.Parent.ChildCodeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
Id = x.DictionaryId,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
} }
@ -361,21 +399,7 @@ namespace IRaCIS.Application.Services
} }
var criterionDictionList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.ReadingCriterionId).Select(x => new BasicDicSelect()
{
ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code,
DataTypeEnum = x.Dictionary.DataTypeEnum,
ParentChildCodeEnum = x.Dictionary.Parent.ChildCodeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
Id = x.DictionaryId,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
}).ToListAsync();
criterionDictionList = criterionDictionList.Where(x => selectCode.Contains(x.ParentCode)).ToList(); criterionDictionList = criterionDictionList.Where(x => selectCode.Contains(x.ParentCode)).ToList();
@ -438,7 +462,7 @@ namespace IRaCIS.Application.Services
var criterionDictionList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId).Select(x => new BasicDicSelect() var criterionDictionList = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId).Select(x => new BasicDicSelect()
{ {
ChildGroup = x.Dictionary.ChildGroup, ChildGroup = x.Dictionary.ChildGroup,
Code = x.Dictionary.Code, Code = x.Dictionary.Code,

View File

@ -156,8 +156,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetAssessTypeInDto public class GetAssessTypeInDto
{ {
[NotDefault]
public Guid CriterionId { get; set; } public Guid? SystemCriterionId { get; set; }
public Guid? TrialCriterionId { get; set; }
public string ParentCode { get; set; } = string.Empty; public string ParentCode { get; set; } = string.Empty;
} }

View File

@ -20,6 +20,7 @@ namespace IRaCIS.Core.Application.Service.RC
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswer; private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswer;
private readonly IRepository<ReadingCriterionPage> _readingCriterionPageRepository; private readonly IRepository<ReadingCriterionPage> _readingCriterionPageRepository;
private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository; private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IRepository<VisitTask> _visitTaskRepository; private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<SystemCriterionDictionaryCode> _systemCriterionDictionaryCodeRepository; private readonly IRepository<SystemCriterionDictionaryCode> _systemCriterionDictionaryCodeRepository;
private readonly IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository; private readonly IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository;
@ -32,6 +33,7 @@ namespace IRaCIS.Core.Application.Service.RC
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository, IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
IRepository<ReadingQuestionTrial> readingQuestionTrialRepository, IRepository<ReadingQuestionTrial> readingQuestionTrialRepository,
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository, IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
IRepository<VisitTask> visitTaskRepository, IRepository<VisitTask> visitTaskRepository,
IRepository<SystemCriterionDictionaryCode> systemCriterionDictionaryCodeRepository, IRepository<SystemCriterionDictionaryCode> systemCriterionDictionaryCodeRepository,
IRepository<ReadingTableQuestionTrial> readingTableQuestionTrialRepository, IRepository<ReadingTableQuestionTrial> readingTableQuestionTrialRepository,
@ -46,6 +48,7 @@ namespace IRaCIS.Core.Application.Service.RC
this._readingTableQuestionTrialRepository = readingTableQuestionTrialRepository; this._readingTableQuestionTrialRepository = readingTableQuestionTrialRepository;
this._readingCriterionPageRepository = readingCriterionPageRepository; this._readingCriterionPageRepository = readingCriterionPageRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository; this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository;
this._visitTaskRepository = visitTaskRepository; this._visitTaskRepository = visitTaskRepository;
this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository; this._systemCriterionDictionaryCodeRepository = systemCriterionDictionaryCodeRepository;
this._readingTableQuestionAnswerRepository = readingTableQuestionAnswerRepository; this._readingTableQuestionAnswerRepository = readingTableQuestionAnswerRepository;
@ -568,11 +571,23 @@ namespace IRaCIS.Core.Application.Service.RC
[HttpPost] [HttpPost]
public async Task<List<CriterionDictionaryInfo>> GetAssessType(GetAssessTypeInDto inDto) public async Task<List<CriterionDictionaryInfo>> GetAssessType(GetAssessTypeInDto inDto)
{ {
List<CriterionDictionaryInfo> result = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.CriterionId
if (inDto.SystemCriterionId != null)
{
return await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.SystemCriterionId
) )
.WhereIf(!inDto.ParentCode.IsNullOrEmpty(), x => x.ParentCode ==inDto.ParentCode) .WhereIf(!inDto.ParentCode.IsNullOrEmpty(), x => x.ParentCode == inDto.ParentCode)
.ProjectTo<CriterionDictionaryInfo>(_mapper.ConfigurationProvider).OrderBy(x => x.ParentCode).ThenBy(x => x.ShowOrder).ToListAsync(); .ProjectTo<CriterionDictionaryInfo>(_mapper.ConfigurationProvider).OrderBy(x => x.ParentCode).ThenBy(x => x.ShowOrder).ToListAsync();
return result; }
else
{
return await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.SystemCriterionId
)
.WhereIf(!inDto.ParentCode.IsNullOrEmpty(), x => x.ParentCode == inDto.ParentCode)
.ProjectTo<CriterionDictionaryInfo>(_mapper.ConfigurationProvider).OrderBy(x => x.ParentCode).ThenBy(x => x.ShowOrder).ToListAsync();
}
} }

View File

@ -435,7 +435,7 @@ namespace IRaCIS.Application.Services
var subjectVisitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); var subjectVisitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync();
var isBaseLine = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Select(x => x.IsBaseLine).FirstOrDefaultAsync(); var isBaseLine = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Select(x => x.IsBaseLine).FirstOrDefaultAsync();
List<CriterionDictionaryInfo> assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId List<CriterionDictionaryInfo> assessTypeList = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId
&& x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess
) )
//.WhereIf(isBaseLine,x=>x.IsBaseLineUse) //.WhereIf(isBaseLine,x=>x.IsBaseLineUse)

View File

@ -43,6 +43,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository<DicomInstance> _dicomInstanceRepository; private readonly IRepository<DicomInstance> _dicomInstanceRepository;
private readonly IRepository<OrganInfo> _organInfoRepository; private readonly IRepository<OrganInfo> _organInfoRepository;
private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository; private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository; private readonly IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository;
private readonly IRepository<ReadingTableAnswerRowInfo> _readingTableAnswerRowInfoRepository; private readonly IRepository<ReadingTableAnswerRowInfo> _readingTableAnswerRowInfoRepository;
private readonly IRepository<ReadingTableQuestionSystem> _readingTableQuestionSystemRepository; private readonly IRepository<ReadingTableQuestionSystem> _readingTableQuestionSystemRepository;
@ -80,6 +81,7 @@ namespace IRaCIS.Application.Services
IRepository<OrganInfo> organInfoRepository, IRepository<OrganInfo> organInfoRepository,
IMemoryCache cache, IMemoryCache cache,
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository, IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
IRepository<TumorAssessment_RECIST1Point1> tumorAssessmentRepository, IRepository<TumorAssessment_RECIST1Point1> tumorAssessmentRepository,
IRepository<ReadingTableAnswerRowInfo> readingTableAnswerRowInfoRepository, IRepository<ReadingTableAnswerRowInfo> readingTableAnswerRowInfoRepository,
IRepository<ReadingTableQuestionSystem> readingTableQuestionSystemRepository, IRepository<ReadingTableQuestionSystem> readingTableQuestionSystemRepository,
@ -120,6 +122,8 @@ namespace IRaCIS.Application.Services
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository; this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository;
this._readingQuestionSystem = ReadingQuestionSystem; this._readingQuestionSystem = ReadingQuestionSystem;
this._noneDicomStudyFileSystem = noneDicomStudyFileSystem; this._noneDicomStudyFileSystem = noneDicomStudyFileSystem;
this._readingQuestionTrialRepository = readingQuestionTrialRepository; this._readingQuestionTrialRepository = readingQuestionTrialRepository;

View File

@ -145,7 +145,7 @@ namespace IRaCIS.Application.Services
result.OncologyVisits = oncologyVisits; result.OncologyVisits = oncologyVisits;
List<CriterionDictionaryInfo> assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId List<CriterionDictionaryInfo> assessTypeList = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId
&& x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess
) )
.Select(x => new CriterionDictionaryInfo() .Select(x => new CriterionDictionaryInfo()

View File

@ -39,6 +39,15 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.Value, u => u.MapFrom(s => s.Dictionary.Value)) .ForMember(d => d.Value, u => u.MapFrom(s => s.Dictionary.Value))
.ForMember(d => d.ValueCN, u => u.MapFrom(s => s.Dictionary.ValueCN)); .ForMember(d => d.ValueCN, u => u.MapFrom(s => s.Dictionary.ValueCN));
CreateMap<ReadingTrialCriterionDictionary, CriterionDictionaryInfo>()
.ForMember(d => d.ChildGroup, u => u.MapFrom(s => s.Dictionary.ChildGroup))
.ForMember(d => d.Code, u => u.MapFrom(s => s.Dictionary.Code))
.ForMember(d => d.Description, u => u.MapFrom(s => s.Dictionary.Description))
.ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.Dictionary.ShowOrder))
.ForMember(d => d.ParentCode, u => u.MapFrom(s => s.Dictionary.Parent.Code))
.ForMember(d => d.Value, u => u.MapFrom(s => s.Dictionary.Value))
.ForMember(d => d.ValueCN, u => u.MapFrom(s => s.Dictionary.ValueCN));
//CreateMap<ReadingClinicalDataView, GetReadingClinicalDataListOutDto>(); //CreateMap<ReadingClinicalDataView, GetReadingClinicalDataListOutDto>();

View File

@ -38,6 +38,7 @@ namespace IRaCIS.Core.Application
private readonly IOrganInfoService _iOrganInfoService; private readonly IOrganInfoService _iOrganInfoService;
private readonly IRepository<TaskAllocationRule> _taskAllocationRuleRepository; private readonly IRepository<TaskAllocationRule> _taskAllocationRuleRepository;
private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository; private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IReadingQuestionService iReadingQuestionService; private readonly IReadingQuestionService iReadingQuestionService;
private readonly IRepository<TrialCriterionAdditionalAssessmentType> _trialCriterionAdditionalAssessmentTypeRepository; private readonly IRepository<TrialCriterionAdditionalAssessmentType> _trialCriterionAdditionalAssessmentTypeRepository;
@ -60,6 +61,7 @@ namespace IRaCIS.Core.Application
IRepository<ReadingCriterionPage> readingCriterionPageRepository, IRepository<ReadingCriterionPage> readingCriterionPageRepository,
IRepository<TaskAllocationRule> taskAllocationRuleRepository, IRepository<TaskAllocationRule> taskAllocationRuleRepository,
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository, IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
IReadingQuestionService iReadingQuestionService, IReadingQuestionService iReadingQuestionService,
IEasyCachingProvider provider, IEasyCachingProvider provider,
IOrganInfoService iOrganInfoService, IOrganInfoService iOrganInfoService,
@ -76,6 +78,7 @@ namespace IRaCIS.Core.Application
_trialRepository = trialRepository; _trialRepository = trialRepository;
_taskAllocationRuleRepository = taskAllocationRuleRepository; _taskAllocationRuleRepository = taskAllocationRuleRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository; this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository;
this.iReadingQuestionService = iReadingQuestionService; this.iReadingQuestionService = iReadingQuestionService;
this._trialQCQuestionRepository = trialQCQuestionRepository; this._trialQCQuestionRepository = trialQCQuestionRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
@ -226,7 +229,7 @@ namespace IRaCIS.Core.Application
await _trialCriterionDictionaryCode.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == trialCriterion.Id); await _trialCriterionDictionaryCode.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == trialCriterion.Id);
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id); await _readingTrialCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id);
var criterionDictionaryCodeList = await _systemCriterionDictionaryCode.Where(x => x.SystemCriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) var criterionDictionaryCodeList = await _systemCriterionDictionaryCode.Where(x => x.SystemCriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value)
.Select(x => new TrialCriterionDictionaryCode() .Select(x => new TrialCriterionDictionaryCode()
@ -242,15 +245,19 @@ namespace IRaCIS.Core.Application
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value) var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value)
.Select(x=>new ReadingTrialCriterionDictionary() {
Id = NewId.NextGuid(),
CriterionId = inDto.TrialReadingCriterionId,
CrterionDictionaryGroup=x.CrterionDictionaryGroup,
IsBaseLineUse=x.IsBaseLineUse,
IsFollowVisitUse=x.IsFollowVisitUse,
DictionaryId=x.DictionaryId,
ParentCode=x.ParentCode,
})
.ToListAsync(); .ToListAsync();
criterionDictionaryList.ForEach(x =>
{ await _readingTrialCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
x.Id = NewId.NextGuid();
x.Dictionary = null;
x.IsSystemCriterion = false;
x.CriterionId = inDto.TrialReadingCriterionId;
});
await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
await _trialCriterionDictionaryCode.AddRangeAsync(criterionDictionaryCodeList); await _trialCriterionDictionaryCode.AddRangeAsync(criterionDictionaryCodeList);
#endregion #endregion
@ -309,14 +316,13 @@ namespace IRaCIS.Core.Application
// IsGlobalReading = inDto.IsGlobalReading // IsGlobalReading = inDto.IsGlobalReading
//}); //});
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess); await _readingTrialCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess);
await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessList.Select(x => new ReadingCriterionDictionary await _readingTrialCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessList.Select(x => new ReadingTrialCriterionDictionary
{ {
CriterionId = inDto.TrialReadingCriterionId, CriterionId = inDto.TrialReadingCriterionId,
DictionaryId = x.DictionaryId, DictionaryId = x.DictionaryId,
IsBaseLineUse = x.IsBaseLineUse, IsBaseLineUse = x.IsBaseLineUse,
IsFollowVisitUse = x.IsFollowVisitUse, IsFollowVisitUse = x.IsFollowVisitUse,
IsSystemCriterion = false,
ParentCode = ReadingCommon.CriterionDictionary.GlobalAssess ParentCode = ReadingCommon.CriterionDictionary.GlobalAssess
})); }));
@ -340,7 +346,7 @@ namespace IRaCIS.Core.Application
IsGlobalReading = trialCriterion.IsGlobalReading, IsGlobalReading = trialCriterion.IsGlobalReading,
IsSystemCriterion = trialCriterion.ReadingQuestionCriterionSystemId != null, IsSystemCriterion = trialCriterion.ReadingQuestionCriterionSystemId != null,
IsSign = trialCriterion.IsSigned, IsSign = trialCriterion.IsSigned,
GlobalAssessTypes = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId GlobalAssessTypes = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId
&& x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess && x.ParentCode == ReadingCommon.CriterionDictionary.GlobalAssess
) )
.Select(x => new CriterionDictionaryInfo() .Select(x => new CriterionDictionaryInfo()
@ -374,7 +380,7 @@ namespace IRaCIS.Core.Application
return new GetOncologySetOutDto return new GetOncologySetOutDto
{ {
EvaluationReason = trialCriterion.EvaluationReason.IsNullOrEmpty() ? ReadingCommon.EvaluationReason : trialCriterion.EvaluationReason, EvaluationReason = trialCriterion.EvaluationReason.IsNullOrEmpty() ? ReadingCommon.EvaluationReason : trialCriterion.EvaluationReason,
OncologyAssessIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess).Select(x => x.DictionaryId).ToListAsync(), OncologyAssessIds = await _readingTrialCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess).Select(x => x.DictionaryId).ToListAsync(),
IsSystemCriterion = trialCriterion.ReadingQuestionCriterionSystemId != null, IsSystemCriterion = trialCriterion.ReadingQuestionCriterionSystemId != null,
IsSign = trialCriterion.IsSigned, IsSign = trialCriterion.IsSigned,
}; };
@ -399,13 +405,12 @@ namespace IRaCIS.Core.Application
}); });
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess); await _readingTrialCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.CriterionDictionary.OncologyAssess);
await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.OncologyAssessIds.Select(x => new ReadingCriterionDictionary await _readingTrialCriterionDictionaryRepository.AddRangeAsync(inDto.OncologyAssessIds.Select(x => new ReadingTrialCriterionDictionary
{ {
CriterionId = inDto.TrialReadingCriterionId, CriterionId = inDto.TrialReadingCriterionId,
DictionaryId = x, DictionaryId = x,
IsSystemCriterion = false,
ParentCode = ReadingCommon.CriterionDictionary.OncologyAssess ParentCode = ReadingCommon.CriterionDictionary.OncologyAssess
})); }));

View File

@ -409,7 +409,7 @@ namespace IRaCIS.Application.Services
await _repository.BatchDeleteAsync<CriterionNidus>(o => o.TrialReadingCriterion.TrialId == trialId) || await _repository.BatchDeleteAsync<CriterionNidus>(o => o.TrialReadingCriterion.TrialId == trialId) ||
await _repository.BatchDeleteAsync<ReadingCriterionDictionary>(o => o.TrialReadingCriterion.TrialId == trialId) ||
await _repository.BatchDeleteAsync<DataInspection>(o => o.TrialId == trialId) || await _repository.BatchDeleteAsync<DataInspection>(o => o.TrialId == trialId) ||

View File

@ -63,9 +63,7 @@ namespace IRaCIS.Core.Domain.Models
[ForeignKey("DictionaryId")] [ForeignKey("DictionaryId")]
public Dictionary Dictionary { get; set; } public Dictionary Dictionary { get; set; }
[ForeignKey("CriterionId")]
[JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
} }

View File

@ -16,13 +16,6 @@ namespace IRaCIS.Core.Domain.Models
public class ReadingTrialCriterionDictionary : Entity, IAuditAdd public class ReadingTrialCriterionDictionary : Entity, IAuditAdd
{ {
/// <summary>
/// Id
/// </summary>
[Key]
[Required]
public Guid Id { get; set; }
/// <summary> /// <summary>
/// CriterionId /// CriterionId
/// </summary> /// </summary>
@ -69,7 +62,15 @@ namespace IRaCIS.Core.Domain.Models
/// CrterionDictionaryGroup /// CrterionDictionaryGroup
/// </summary> /// </summary>
[Required] [Required]
public int CrterionDictionaryGroup { get; set; } public CrterionDictionaryGroup CrterionDictionaryGroup { get; set; }
[JsonIgnore]
[ForeignKey("DictionaryId")]
public Dictionary Dictionary { get; set; }
[ForeignKey("CriterionId")]
[JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
} }

View File

@ -1015,8 +1015,15 @@ INSERT INTO ReadingTaskRelation(Id, TaskId, RelevanceTaskId, RelevanceType, Crea
SELECT NEWID(), TaskId, RelevanceTaskId, 2,ReadingTaskRelation.CreateTime ,ReadingTaskRelation.CreateUserId FROM ReadingTaskRelation inner join VisitTask on VisitTask.Id=ReadingTaskRelation.TaskId WHERE RelevanceType = 1 and ReadingCategory=1 SELECT NEWID(), TaskId, RelevanceTaskId, 2,ReadingTaskRelation.CreateTime ,ReadingTaskRelation.CreateUserId FROM ReadingTaskRelation inner join VisitTask on VisitTask.Id=ReadingTaskRelation.TaskId WHERE RelevanceType = 1 and ReadingCategory=1
-----------------------------------------2023-04-24----------------------------------- -----------------------------------------2023-04-24-----------------------------------
--CriterionNidusTrial -- 维护CriterionNidusTrial 数
INSERT INTO CriterionNidusTrial (Id, CriterionId, CreateTime, CreateUserId, LesionType, OrganType) INSERT INTO CriterionNidusTrial (Id, CriterionId, CreateTime, CreateUserId, LesionType, OrganType)
SELECT NEWID(), CriterionId, GETDATE(), '00000000-0000-0000-0000-000000000000', LesionType, OrganType SELECT NEWID(), CriterionId, GETDATE(), '00000000-0000-0000-0000-000000000000', LesionType, OrganType
FROM CriterionNidus FROM CriterionNidus
WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM CriterionNidusTrial ) and IsSystemCriterion=0 WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM CriterionNidusTrial ) and IsSystemCriterion=0
-- 维护ReadingTrialCriterionDictionary 数据
INSERT INTO ReadingTrialCriterionDictionary (Id, CriterionId, DictionaryId, CreateTime, CreateUserId, ParentCode, IsBaseLineUse, IsFollowVisitUse, CrterionDictionaryGroup)
SELECT NEWID(), RC.CriterionId, RC.DictionaryId, GETDATE(), '00000000-0000-0000-0000-000000000000', RC.ParentCode, RC.IsBaseLineUse, RC.IsFollowVisitUse, RC.CrterionDictionaryGroup
FROM ReadingCriterionDictionary RC
WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM ReadingTrialCriterionDictionary ) and IsSystemCriterion=0