Test.EIImageViewer
parent
0389b95200
commit
b9e0c3369d
|
@ -117,6 +117,9 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
{
|
||||
[NotDefault]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
}
|
||||
|
||||
public class TrialQuestion
|
||||
|
|
|
@ -255,7 +255,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public class SetTrialJudgyInfoInDto : GetTrialJudgyInfoOutDto
|
||||
{
|
||||
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
}
|
||||
|
||||
public class GetTrialJudgyInfoOutDto
|
||||
|
@ -323,6 +323,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
{
|
||||
[NotDefault]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
||||
private readonly IRepository<ReadModuleView> _readModuleViewRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||
private readonly IRepository<DicomInstance> _dicomInstanceRepository;
|
||||
private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository;
|
||||
private readonly IRepository<ReadingPeriodSet> _readingPeriodSetRepository;
|
||||
|
@ -41,6 +42,7 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<VisitTask> visitTaskRepository,
|
||||
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
|
||||
IRepository<ReadModuleView> readModuleViewRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
||||
IRepository<DicomInstance> dicomInstanceRepository,
|
||||
IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository,
|
||||
IRepository<ReadingPeriodSet> readingPeriodSetRepository,
|
||||
|
@ -56,6 +58,7 @@ namespace IRaCIS.Application.Services
|
|||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
||||
this._readModuleViewRepository = readModuleViewRepository;
|
||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
||||
this._dicomInstanceRepository = dicomInstanceRepository;
|
||||
this._noneDicomStudyFileRepository = noneDicomStudyFileRepository;
|
||||
this._readingPeriodSetRepository = readingPeriodSetRepository;
|
||||
|
@ -107,17 +110,24 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
maxcount = maxcount < x.Data.Count ? x.Data.Count : maxcount;
|
||||
});
|
||||
var trialinfo = await _trialRepository.Where(x => x.Id == dto.TrialId).FirstNotNullAsync();
|
||||
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == dto.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.IsReadingTaskViewInOrder,
|
||||
x.IsOncologyReading,
|
||||
x.IsGlobalReading,
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
return (pageOutput, new
|
||||
{
|
||||
MaxLength = maxcount,
|
||||
IsReadingTaskViewInOrder=trialinfo.IsReadingTaskViewInOrder,
|
||||
IsClinicalReading = trialinfo.IsClinicalReading,
|
||||
IsReadingTaskViewInOrder= criterionInfo.IsReadingTaskViewInOrder,
|
||||
IsClinicalReading = criterionInfo.IsOncologyReading,
|
||||
OnlyExistsMedicalHistory = !(await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == dto.TrialId && x.ClinicalDataSetName != "既往局部治疗史" && x.IsConfirm)),
|
||||
IsExistsSubjectClinicalData= await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == dto.TrialId&&x.ClinicalDataLevel== ClinicalLevel.Subject && x.IsConfirm),
|
||||
IsExistsVisitClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == dto.TrialId && x.ClinicalDataLevel == ClinicalLevel.SubjectVisit && x.IsConfirm),
|
||||
IsExistsReadingClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == dto.TrialId && x.ClinicalDataLevel == ClinicalLevel.ImageRead && x.IsConfirm),
|
||||
IsGlobalReading= trialinfo.IsGlobalReading,
|
||||
IsGlobalReading= criterionInfo.IsGlobalReading,
|
||||
|
||||
}) ;
|
||||
|
||||
|
@ -295,7 +305,14 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
case ModuleTypeEnum.Oncology:
|
||||
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == visit.TrialId).FirstNotNullAsync();
|
||||
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == dto.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.ReadingType,
|
||||
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
|
||||
//增加标准
|
||||
var globalModule = await _readModuleRepository.Where(x => x.SubjectId == readModuleData.SubjectId && x.SubjectVisitId == readModuleData.SubjectVisitId&& x.ModuleType == ModuleTypeEnum.Global && x.TrialReadingCriterionId == dto.TrialReadingCriterionId).FirstOrDefaultAsync();
|
||||
|
||||
|
@ -303,7 +320,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
var globalTaskInfoList = await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalModule.Id && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned&&!x.IsAnalysisCreate).ToListAsync();
|
||||
|
||||
if (globalTaskInfoList.Count() > 0 && globalTaskInfoList.Count == (int)trialInfo.ReadingType)
|
||||
if (globalTaskInfoList.Count() > 0 && globalTaskInfoList.Count == (int)criterionInfo.ReadingType)
|
||||
{
|
||||
var isAdd = false;
|
||||
if (globalTaskInfoList[0].JudgeVisitTaskId == null)
|
||||
|
|
|
@ -1778,15 +1778,16 @@ namespace IRaCIS.Application.Services
|
|||
var visitTask = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstOrDefaultAsync();
|
||||
var subjectCode = await _subjectRepository.Where(x => x.Id == visitTask.SubjectId).Select(x => x.Code).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == visitTask.TrialId).Select(x => new
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTask.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.IsReadingShowPreviousResults,
|
||||
x.IsReadingShowSubjectInfo,
|
||||
x.IsReadingShowSubjectInfo
|
||||
}).FirstOrDefaultAsync();
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == visitTask.TrialId).Select(x => new
|
||||
{
|
||||
x.ClinicalInformationTransmissionEnum,
|
||||
}).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
return new GetReadingSubjectInfoOutDto()
|
||||
{
|
||||
VisitTaskId = visitTask.Id,
|
||||
|
@ -1794,8 +1795,8 @@ namespace IRaCIS.Application.Services
|
|||
SubjectCode = visitTask.BlindSubjectCode.IsNullOrEmpty() ? subjectCode : visitTask.BlindSubjectCode,
|
||||
ReadingCategory = visitTask.ReadingCategory,
|
||||
TaskBlindName = visitTask.TaskBlindName,
|
||||
IsReadingShowPreviousResults = trialInfo.IsReadingShowPreviousResults,
|
||||
IsReadingShowSubjectInfo = trialInfo.IsReadingShowSubjectInfo,
|
||||
IsReadingShowPreviousResults = criterionInfo.IsReadingShowPreviousResults,
|
||||
IsReadingShowSubjectInfo = criterionInfo.IsReadingShowSubjectInfo,
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -2558,7 +2559,7 @@ namespace IRaCIS.Application.Services
|
|||
&& x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.JudgeVisitTaskId).FirstOrDefaultAsync();
|
||||
|
||||
// 获取系统配置
|
||||
var readingType = await _trialRepository.Where(x => x.Id == readModuleInfo.TrialId).Select(x => x.ReadingType).FirstOrDefaultAsync();
|
||||
var readingType = await _readingQuestionCriterionTrialRepository.Where(x=>x.Id== readModuleInfo.TrialReadingCriterionId).Select(x=>x.ReadingType).FirstOrDefaultAsync();
|
||||
|
||||
// 判断阅片是否完成
|
||||
if (judgeVisitTaskId == null && (await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalreadModuleId && x.TaskState == TaskState.Effect && x.ReadingCategory == ReadingCategory.Global
|
||||
|
@ -2643,15 +2644,17 @@ namespace IRaCIS.Application.Services
|
|||
&& x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync();
|
||||
}
|
||||
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == visitTask.TrialId).Select(x=> new {
|
||||
x.IsArbitrationReading,
|
||||
x.ArbitrationRule
|
||||
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTask.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.IsArbitrationReading,
|
||||
x.ArbitrationRule
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
var noteEqual = false;
|
||||
|
||||
// 判断项目是否设置了裁判
|
||||
if (trialInfo.IsArbitrationReading ?? false)
|
||||
if (criterionInfo.IsArbitrationReading)
|
||||
{
|
||||
// 判断数量是否为2 是否仲裁
|
||||
if (visitTaskids.Count == 2)
|
||||
|
@ -2813,7 +2816,7 @@ namespace IRaCIS.Application.Services
|
|||
else
|
||||
{
|
||||
|
||||
if ((visitTask.SourceSubjectVisitId != null && trialInfo.ArbitrationRule == ArbitrationRule.Visit) || (visitTask.SouceReadModuleId != null && trialInfo.ArbitrationRule == ArbitrationRule.Reading))
|
||||
if ((visitTask.SourceSubjectVisitId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Visit) || (visitTask.SouceReadModuleId != null && criterionInfo.ArbitrationRule == ArbitrationRule.Reading))
|
||||
{
|
||||
await this.SaveJudgeTask(new SaveJudgeTaskDto()
|
||||
{
|
||||
|
|
|
@ -27,6 +27,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
private readonly IVisitTaskService _visitTaskService;
|
||||
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
|
||||
private readonly IRepository<ReadingMedicalReviewDialog> _readingMedicalReviewDialogRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial;
|
||||
private readonly IRepository<ReadingMedicineQuestionAnswer> _readingMedicineQuestionAnswerRepository;
|
||||
private readonly IRepository<ReadingMedicineSystemQuestion> _readingMedicineSystemQuestionRepository;
|
||||
|
||||
|
@ -38,6 +39,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
IVisitTaskService visitTaskService,
|
||||
IRepository<TaskMedicalReview> taskMedicalReviewRepository,
|
||||
IRepository<ReadingMedicalReviewDialog> readingMedicalReviewDialogRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
|
||||
IRepository<ReadingMedicineQuestionAnswer> readingMedicineQuestionAnswerRepository,
|
||||
IRepository<ReadingMedicineSystemQuestion> readingMedicineSystemQuestionRepository
|
||||
)
|
||||
|
@ -49,6 +51,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
this._visitTaskService = visitTaskService;
|
||||
this._taskMedicalReviewRepository = taskMedicalReviewRepository;
|
||||
this._readingMedicalReviewDialogRepository = readingMedicalReviewDialogRepository;
|
||||
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
|
||||
this._readingMedicineQuestionAnswerRepository = readingMedicineQuestionAnswerRepository;
|
||||
this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository;
|
||||
}
|
||||
|
@ -61,15 +64,19 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpPost]
|
||||
public async Task<GetMedicalReviewReadingTaskOutDto> GetMedicalReviewReadingTask(GetMedicalReviewReadingTaskInDto inDto)
|
||||
{
|
||||
var medicalReviewInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new GetMedicalReviewReadingTaskOutDto()
|
||||
MedicalReviewInfo reviewInfo= await _taskMedicalReviewRepository.Where(x => x.Id == inDto.TaskMedicalReviewId)
|
||||
.ProjectTo<MedicalReviewInfo>(_mapper.ConfigurationProvider).FirstNotNullAsync();
|
||||
|
||||
var visitTaskfInfo = await _visitTaskRepository.Where(x => x.Id == reviewInfo.VisitTaskId).FirstNotNullAsync();
|
||||
|
||||
var medicalReviewInfo = await _readingQuestionCriterionTrial.Where(x => x.Id == visitTaskfInfo.TrialReadingCriterionId).Select(x => new GetMedicalReviewReadingTaskOutDto()
|
||||
{
|
||||
ReadingType=x.ReadingType,
|
||||
IsReadingTaskViewInOrder=x.IsReadingTaskViewInOrder,
|
||||
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
medicalReviewInfo.MedicalReviewInfo = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.TaskMedicalReviewId)
|
||||
.ProjectTo<MedicalReviewInfo>(_mapper.ConfigurationProvider).FirstNotNullAsync();
|
||||
medicalReviewInfo.MedicalReviewInfo = reviewInfo;
|
||||
|
||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == medicalReviewInfo.MedicalReviewInfo.VisitTaskId).FirstNotNullAsync();
|
||||
|
||||
|
|
|
@ -19,16 +19,19 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
|
||||
private readonly IRepository<ReadingMedicineTrialQuestion> _readingMedicineTrialQuestionRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
private readonly IRepository<ReadingMedicineSystemQuestion> _readingMedicineSystemQuestionRepository;
|
||||
|
||||
public ReadingMedicineQuestionService(
|
||||
IRepository<ReadingMedicineTrialQuestion> readingMedicineTrialQuestionRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
|
||||
IRepository<Trial> trialRepository,
|
||||
IRepository<ReadingMedicineSystemQuestion> readingMedicineSystemQuestionRepository
|
||||
)
|
||||
{
|
||||
this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository;
|
||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrial;
|
||||
this._trialRepository = trialRepository;
|
||||
this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository;
|
||||
}
|
||||
|
@ -312,7 +315,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// <exception cref="BusinessValidationFailedException"></exception>
|
||||
public async Task<IResponseOutput> VerifyReadingMedicineQuestion(ConfirmReadingMedicineQuestionInDto inDto)
|
||||
{
|
||||
var readingMedicineQuestionList = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId)
|
||||
var readingMedicineQuestionList = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId&&x.TrialReadingCriterionId==inDto.TrialReadingCriterionId)
|
||||
.Select(x => new TrialQuestion()
|
||||
{
|
||||
Id = x.Id,
|
||||
|
@ -336,20 +339,28 @@ namespace IRaCIS.Core.Application.Service
|
|||
throw new BusinessValidationFailedException("父问题的显示序号要比子问题的显示序号小,请确认。");
|
||||
}
|
||||
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.IsGlobalReading,
|
||||
x.IsOncologyReading,
|
||||
x.IsArbitrationReading,
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).FirstNotNullAsync();
|
||||
|
||||
|
||||
if (trialInfo.IsGlobalReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Global))
|
||||
|
||||
|
||||
if (criterionInfo.IsGlobalReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Global))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前项目启用了全局阅片,但未配置全局医学审核问题");
|
||||
}
|
||||
|
||||
if ((trialInfo.IsArbitrationReading ?? false) && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Judge))
|
||||
if (criterionInfo.IsArbitrationReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Judge))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前项目启用了仲裁阅片,但未配置仲裁医学审核问题");
|
||||
}
|
||||
|
||||
if (trialInfo.IsClinicalReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Oncology))
|
||||
if (criterionInfo.IsOncologyReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Oncology))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前项目启用了肿瘤学阅片,但未配置肿瘤学医学审核问题");
|
||||
}
|
||||
|
@ -364,7 +375,14 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// <returns></returns>
|
||||
public async Task<IResponseOutput> ConfirmReadingMedicineQuestion(ConfirmReadingMedicineQuestionInDto inDto)
|
||||
{
|
||||
var readingMedicineQuestionList = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId)
|
||||
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.IsGlobalReading,
|
||||
x.IsOncologyReading,
|
||||
x.IsArbitrationReading,
|
||||
}).FirstNotNullAsync();
|
||||
var readingMedicineQuestionList = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId&&x.TrialReadingCriterionId==inDto.TrialReadingCriterionId)
|
||||
.Select(x => new TrialQuestion()
|
||||
{
|
||||
Id = x.Id,
|
||||
|
@ -391,17 +409,17 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).FirstNotNullAsync();
|
||||
|
||||
if (trialInfo.IsGlobalReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Global))
|
||||
if (criterionInfo.IsGlobalReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Global))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前项目启用了全局阅片,但未配置全局医学审核问题");
|
||||
}
|
||||
|
||||
if ((trialInfo.IsArbitrationReading ?? false) && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Judge))
|
||||
if (criterionInfo.IsArbitrationReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Judge))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前项目启用了仲裁阅片,但未配置仲裁医学审核问题");
|
||||
}
|
||||
|
||||
if (trialInfo.IsClinicalReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Oncology))
|
||||
if (criterionInfo.IsOncologyReading && !readingMedicineQuestionList.Any(x => x.ReadingCategory == ReadingCategory.Oncology))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前项目启用了肿瘤学阅片,但未配置肿瘤学医学审核问题");
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IRepository<VisitStage> _visitStageRepository;
|
||||
private readonly IRepository<Trial> _trialRepository;
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||
private readonly IRepository<ReadingPeriodPlan> _readingPeriodPlanRepository;
|
||||
private readonly IRepository<Site> _siteSetRepository;
|
||||
|
@ -42,6 +43,7 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<VisitStage> visitStageRepository,
|
||||
IRepository<Trial> trialRepository,
|
||||
IRepository<VisitTask> visitTaskRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
||||
IVisitTaskHelpeService visitTaskHelpeService,
|
||||
IRepository<ReadingPeriodPlan> readingPeriodPlanRepository,
|
||||
IRepository<Site> SiteSetRepository,
|
||||
|
@ -54,6 +56,7 @@ namespace IRaCIS.Application.Services
|
|||
this._visitStageRepository = visitStageRepository;
|
||||
this._trialRepository = trialRepository;
|
||||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
||||
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||
this._readingPeriodPlanRepository = readingPeriodPlanRepository;
|
||||
_siteSetRepository = SiteSetRepository;
|
||||
|
@ -391,7 +394,13 @@ namespace IRaCIS.Application.Services
|
|||
case ReadingSetType.TumorReading:
|
||||
|
||||
|
||||
var trialInfo = await _trialRepository.Where(x => x.Id == readingPeriodSet.TrialId).FirstNotNullAsync();
|
||||
|
||||
|
||||
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == readingPeriodSet.TrialReadingCriterionId).Select(x => new
|
||||
{
|
||||
x.ReadingType,
|
||||
|
||||
}).FirstNotNullAsync();
|
||||
|
||||
//增加标准
|
||||
var globalModuleIds = await _readModuleRepository.Where(x => x.TrialReadingCriterionId == readingPeriodSet.TrialReadingCriterionId && subjectVisitIds.Contains(x.SubjectVisitId) && x.ModuleType == ModuleTypeEnum.Global).Select(x => x.Id).ToListAsync();
|
||||
|
@ -410,7 +419,7 @@ namespace IRaCIS.Application.Services
|
|||
foreach (var item in globalTaskInfo)
|
||||
{
|
||||
|
||||
if (item.Count == (int)trialInfo.ReadingType)
|
||||
if (item.Count == (int)criterionInfo.ReadingType)
|
||||
{
|
||||
//没有裁判 或者有裁判,并且裁判任务做完了
|
||||
if (item.JudgeTaskId == null || item.JudgeTaskResultId != null)
|
||||
|
|
|
@ -418,7 +418,7 @@ namespace IRaCIS.Application.Services
|
|||
public async Task<IResponseOutput> SetTrialJudgyInfo(SetTrialJudgyInfoInDto inDto)
|
||||
{
|
||||
|
||||
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm).FirstOrDefaultAsync();
|
||||
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId&&x.Id== inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
|
||||
|
||||
var judgeCount = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == trialCriterion.Id && x.IsJudgeQuestion)
|
||||
.WhereIf(trialCriterion.FormType == FormType.SinglePage, x => x.ReadingCriterionPageId == null)
|
||||
|
@ -428,7 +428,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
throw new BusinessValidationFailedException("无裁判问题却有仲裁对象,操作失败");
|
||||
}
|
||||
await _trialRepository.UpdatePartialFromQueryAsync(inDto.TrialId, x => new Trial()
|
||||
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial()
|
||||
{
|
||||
ArbitrationRule = inDto.ArbitrationRule,
|
||||
//IsArbitrationReading = inDto.IsArbitrationReading,
|
||||
|
@ -636,9 +636,9 @@ namespace IRaCIS.Application.Services
|
|||
[HttpPost]
|
||||
public async Task<GetTrialJudgyInfoOutDto> GetTrialJudgyInfo(GetTrialJudgyInfoInDto inDto)
|
||||
{
|
||||
GetTrialJudgyInfoOutDto result = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new GetTrialJudgyInfoOutDto
|
||||
GetTrialJudgyInfoOutDto result = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => new GetTrialJudgyInfoOutDto
|
||||
{
|
||||
TrialId = x.Id,
|
||||
TrialId = x.TrialId,
|
||||
IsReadingTaskViewInOrder = x.IsReadingTaskViewInOrder,
|
||||
ArbitrationRule = x.ArbitrationRule,
|
||||
IsArbitrationReading = x.IsArbitrationReading
|
||||
|
|
|
@ -553,15 +553,15 @@ namespace IRaCIS.Core.Application
|
|||
|
||||
_mapper.Map(trialConfig, trialInfo);
|
||||
|
||||
if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
|
||||
{
|
||||
trialInfo.ArbitrationRule = ArbitrationRule.Reading;
|
||||
}
|
||||
//if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
|
||||
//{
|
||||
// trialInfo.ArbitrationRule = ArbitrationRule.Reading;
|
||||
//}
|
||||
|
||||
if (!trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
|
||||
{
|
||||
trialInfo.ArbitrationRule = ArbitrationRule.Visit;
|
||||
}
|
||||
//if (!trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
|
||||
//{
|
||||
// trialInfo.ArbitrationRule = ArbitrationRule.Visit;
|
||||
//}
|
||||
trialInfo.UpdateTime = DateTime.Now;
|
||||
|
||||
// 修改临床数据
|
||||
|
|
|
@ -100,15 +100,18 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
var trialId = subjectVisit.TrialId;
|
||||
var subjectVisitId= subjectVisit.Id;
|
||||
// 是否全局阅片
|
||||
|
||||
|
||||
|
||||
var trial = await _repository.Where<Trial>(x => x.Id == trialId).FirstNotNullAsync();
|
||||
|
||||
var criterionList = await _repository.Where<ReadingQuestionCriterionTrial>(x => x.TrialId == trialId && x.IsConfirm && x.IsGlobalReading && x.IsReadingTaskViewInOrder).ToListAsync();
|
||||
|
||||
if (trial.IsGlobalReading&&trial.IsReadingTaskViewInOrder)
|
||||
foreach (var item in criterionList)
|
||||
{
|
||||
ReadingPeriodSet? readingPeriodSet = await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal&&x.TrialReadingCriterionId==item.Id);
|
||||
|
||||
ReadingPeriodSet? readingPeriodSet =await _readingPeriodSetRepository.FirstOrDefaultNoTrackingAsync(x => x.TrialId == trialId && x.IsGlobal);
|
||||
|
||||
if (readingPeriodSet==null)
|
||||
if (readingPeriodSet == null)
|
||||
{
|
||||
readingPeriodSet = new ReadingPeriodSet()
|
||||
{
|
||||
|
@ -120,6 +123,7 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
TrialId = trialId,
|
||||
EffectOfTime = DateTime.Now,
|
||||
IsGlobal = true,
|
||||
TrialReadingCriterionId=item.Id,
|
||||
};
|
||||
|
||||
await _readingPeriodSetRepository.AddAsync(readingPeriodSet);
|
||||
|
@ -133,8 +137,8 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
});
|
||||
|
||||
|
||||
await _readModuleRepository.DeleteFromQueryAsync(x => x.ReadingSetType == ReadingSetType.ImageReading && x.SubjectVisitId == subjectVisitId, true);
|
||||
|
||||
await _readModuleRepository.DeleteFromQueryAsync(x => x.ReadingSetType == ReadingSetType.ImageReading&&x.TrialReadingCriterionId==item.Id && x.SubjectVisitId == subjectVisitId, true);
|
||||
|
||||
await _readModuleRepository.AddAsync(new ReadModule()
|
||||
{
|
||||
ReadingPeriodSetId = readingPeriodSet.Id,
|
||||
|
@ -147,11 +151,15 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
ModuleType = ModuleTypeEnum.Global,
|
||||
TrialId = subjectVisit.TrialId,
|
||||
VisitNum = subjectVisit.VisitNum,
|
||||
TrialReadingCriterionId=item.Id,
|
||||
});
|
||||
|
||||
|
||||
await _readModuleRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
}
|
||||
await _readModuleRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,12 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// </summary>
|
||||
public ReadingCategory ReadingCategory { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
/// <summary>
|
||||
/// 项目标准
|
||||
/// </summary>
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[ForeignKey("ParentId")]
|
||||
public ReadingMedicineTrialQuestion ParentQuestion { get; set; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue