Uat_Study
he 2022-10-10 15:59:09 +08:00
parent e92579781d
commit c05644ecfb
9 changed files with 108 additions and 33 deletions

View File

@ -1704,6 +1704,16 @@
序号标记
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingReportDto.ValueType">
<summary>
数值类型
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingReportDto.Unit">
<summary>
单位
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VistTaskTableQuestionRowInfo.OrderMark">
<summary>
序号标记
@ -2334,6 +2344,16 @@
问题标识
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialReadingQuestionOutDto.ValueType">
<summary>
数值类型
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialReadingQuestionOutDto.Unit">
<summary>
单位
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.IRConfirmMedicalReviewInDto.DoctorUserIdeaEnum">
<summary>
阅片人是否认同
@ -6011,9 +6031,9 @@
项目问题集合
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.SetOncologySetInDto.TrialId">
<member name="P:IRaCIS.Core.Application.Contracts.SetOncologySetInDto.TrialReadingCriterionId">
<summary>
项目ID
项目标准ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.SetOncologySetInDto.EvaluationResult">
@ -6056,7 +6076,7 @@
修约小数点
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.SetCriterionReadingInfoInDto.TrialCriterionId">
<member name="P:IRaCIS.Core.Application.Contracts.SetCriterionReadingInfoInDto.TrialReadingCriterionId">
<summary>
项目标准ID
</summary>
@ -6685,6 +6705,12 @@
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.GetTrialConfirmCriterionList(IRaCIS.Core.Application.Contracts.GetTrialConfirmCriterionListInDto)">
<summary>
获取项目已经确认的标准
</summary>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.TrialReadingInfoSign(IRaCIS.Core.Application.Contracts.TrialReadingInfoSignInDto)">
<summary>
阅片信息签名
@ -6692,7 +6718,7 @@
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.GetTrialReadingInfo(IRaCIS.Core.Application.Contracts.GetTrialReadingInfoInDto)">
<member name="M:IRaCIS.Core.Application.TrialConfigService.GetCriterionReadingInfo(IRaCIS.Core.Application.Contracts.GetTrialReadingInfoInDto)">
<summary>
获取项目阅片信息
</summary>

View File

@ -162,7 +162,7 @@ namespace IRaCIS.Core.Application.ViewModel
public class SynchronizeSystemOrganToTrialInDto
{
public Guid TrialCriterionId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
@ -177,7 +177,9 @@ namespace IRaCIS.Core.Application.ViewModel
}
public class GetTrialOrganListInDto
{
public Guid TrialReadingCriterionId { get; set; }
public Guid? TrialReadingCriterionId { get; set; }
public Guid? VisitTaskId { get; set; }
public OrganType? OrganType { get; set; }

View File

@ -311,13 +311,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class SynchronizeCriterionInDto
{
[NotDefault]
public Guid TrialCriterionId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
}
public class VerifyeCriterionNeedSynchronizeInDto
{
[NotDefault]
public Guid TrialId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
}
public class GetTrialJudgyInfoInDto
{

View File

@ -24,6 +24,7 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<OrganInfo> _organInfoRepository;
private readonly IRepository<Dictionary> _dictionaryRepository;
private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<OrganTrialInfo> _organTrialInfoRepository;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial;
private readonly IRepository<CriterionNidus> _criterionNidusRepository;
@ -31,7 +32,7 @@ namespace IRaCIS.Core.Application.Service
public OrganInfoService(
IRepository<OrganInfo> organInfoRepository,
IRepository<Dictionary> dictionaryRepository,
IRepository<VisitTask> visitTaskRepository,
IRepository<OrganTrialInfo> organTrialInfoRepository,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
IRepository<CriterionNidus> criterionNidusRepository
@ -39,6 +40,7 @@ namespace IRaCIS.Core.Application.Service
{
_organInfoRepository = organInfoRepository;
this._dictionaryRepository = dictionaryRepository;
this._visitTaskRepository = visitTaskRepository;
this._organTrialInfoRepository = organTrialInfoRepository;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
this._criterionNidusRepository = criterionNidusRepository;
@ -233,6 +235,12 @@ namespace IRaCIS.Core.Application.Service
List<OrganType> organs = new List<OrganType>();
if (inDto.TrialReadingCriterionId == null)
{
inDto.TrialReadingCriterionId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.TrialReadingCriterionId).FirstOrDefaultAsync();
}
if (inDto.LesionType != null)
{
var criterion = await _readingQuestionCriterionTrial.Where(x => x.Id==inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
@ -310,7 +318,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<IResponseOutput> SynchronizeSystemOrganToTrial(SynchronizeSystemOrganToTrialInDto inDto)
{
// 选中的标准进行修改
var readingQuestionCriterionTrial = await _readingQuestionCriterionTrial.Where(x => x.Id==inDto.TrialCriterionId).FirstOrDefaultAsync();
var readingQuestionCriterionTrial = await _readingQuestionCriterionTrial.Where(x => x.Id==inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
if (readingQuestionCriterionTrial != null)
{

View File

@ -921,11 +921,8 @@ namespace IRaCIS.Application.Services
throw new BusinessValidationFailedException("当前任务不是肿瘤学任务");
}
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == taskInfo.TrialId && x.IsConfirm).FirstOrDefaultAsync();
if (trialCriterion == null)
{
throw new BusinessValidationFailedException("请先确认一个项目标准。");
}
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id== taskInfo.TrialReadingCriterionId).FirstOrDefaultAsync();
GetOncologyReadingInfoOutDto result = new GetOncologyReadingInfoOutDto() {
TrialEvaluationResult = trialCriterion.EvaluationResult,
@ -2336,8 +2333,52 @@ namespace IRaCIS.Application.Services
// 修改编号
//var taskinfo
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
// 获取标准表格外层问题
var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId && x.LesionType != null && x.ReadingTableQuestionTrialList.Any(x => x.QuestionMark == QuestionMark.AutoId))
.SelectMany(x => x.ReadingTableQuestionTrialList).Where(x => x.QuestionMark == QuestionMark.AutoId).Select(x => new
{
x.ReadingQuestionId,
TableQuestionId=x.Id,
}).ToListAsync();
var questionIds = questionList.Select(x => x.ReadingQuestionId).ToList();
var questionMarkList = await _readingQuestionTrialRepository.Where(x => questionIds.Contains(x.Id)).Select(x => new
{
QuestionId=x.Id,
x.OrderMark,
}).ToListAsync();
var rowInfo = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && questionIds.Contains(x.QuestionId)).ToListAsync();
List<ReadingTableQuestionAnswer> questionAnswerList = new List< ReadingTableQuestionAnswer >();
foreach (var item in questionList)
{
await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.QuestionId == item.ReadingQuestionId
&& x.TableQuestionId == item.TableQuestionId && x.VisitTaskId == inDto.VisitTaskId);
var orderMark= questionMarkList.Where(x=>x.QuestionId==item.ReadingQuestionId).Select(x=>x.OrderMark).FirstOrDefault();
foreach (var row in rowInfo.Where(x=>x.QuestionId== item.ReadingQuestionId))
{
questionAnswerList.Add(new ReadingTableQuestionAnswer() {
Answer= orderMark+row.RowIndex.GetLesionMark(),
Id=NewId.NextGuid(),
QuestionId= item.ReadingQuestionId,
RowId= row.Id,
RowIndex=row.RowIndex,
TableQuestionId=item.TableQuestionId,
TrialId= taskInfo.TrialId,
VisitTaskId= taskInfo.Id,
});
}
}
await _readingTableQuestionAnswerRepository.AddRangeAsync(questionAnswerList);
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
await this.SubmitTaskChangeState(inDto.VisitTaskId);
return ResponseOutput.Ok(true);

View File

@ -447,7 +447,7 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task<NeedSynchronize> VerifyeCriterionNeedSynchronize(VerifyeCriterionNeedSynchronizeInDto inDto)
{
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm).FirstOrDefaultAsync();
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id==inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
if (trialCriterion == null)
{
return NeedSynchronize.NotNeed;
@ -504,7 +504,7 @@ namespace IRaCIS.Application.Services
/// <returns></returns>
public async Task SynchronizeCriterion(SynchronizeCriterionInDto inDto)
{
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id==inDto.TrialCriterionId).AsNoTracking().FirstOrDefaultAsync();
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id==inDto.TrialReadingCriterionId).AsNoTracking().FirstOrDefaultAsync();
if (trialCriterion != null)
{

View File

@ -148,10 +148,7 @@ namespace IRaCIS.Core.Application
{
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
if (trialCriterion == null)
{
throw new BusinessValidationFailedException("请先确认一个项目标准。");
}
return new GetOncologySetOutDto
{
@ -193,10 +190,7 @@ namespace IRaCIS.Core.Application
public async Task<(List<TrialJudgeQuestion>,object)> GetTrialReadingJudgeList(GetTrialReadingInfoInDto inDto)
{
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
if (trialCriterion == null)
{
throw new BusinessValidationFailedException("请先确认一个项目标准。");
}
var judgeQuestionList= await _readingQuestionTrialRepository
.WhereIf(trialCriterion.FormType==FormType.SinglePage,x=>x.ReadingCriterionPageId==null)
.WhereIf(trialCriterion.FormType == FormType.MultiplePage, x => x.ReadingCriterionPageId != null)
@ -257,7 +251,7 @@ namespace IRaCIS.Core.Application
// 同步器官
await _iOrganInfoService.SynchronizeSystemOrganToTrial(new SynchronizeSystemOrganToTrialInDto()
{
TrialCriterionId = inDto.TrialReadingCriterionId,
TrialReadingCriterionId = inDto.TrialReadingCriterionId,
SystemCriterionId = trialCriterion.ReadingQuestionCriterionSystemId
});
@ -265,7 +259,7 @@ namespace IRaCIS.Core.Application
await iReadingQuestionService.SynchronizeCriterion(new SynchronizeCriterionInDto()
{
TrialCriterionId = inDto.TrialReadingCriterionId,
TrialReadingCriterionId = inDto.TrialReadingCriterionId,
});
}
@ -539,10 +533,7 @@ namespace IRaCIS.Core.Application
return ResponseOutput.NotOk("该项目当前状态不是初始化,不允许进行该操作。");
}
if (trialConfig.TrialCriterionIds.Count() > 1)
{
throw new BusinessValidationFailedException("项目最多可选择一个标准。");
}
var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync();

View File

@ -200,6 +200,9 @@ namespace IRaCIS.Core.Domain.Models
public ReadingQuestionCriterionTrial ReadingQuestionCriterionTrial { get; set; }
public List<ReadingTableQuestionTrial> ReadingTableQuestionTrialList { get; set; }
}

View File

@ -156,6 +156,10 @@ namespace IRaCIS.Core.Domain.Models
[ForeignKey("DependParentId")]
public ReadingTableQuestionTrial DependParentQuestion { get; set; }
[JsonIgnore]
[ForeignKey("ReadingQuestionId")]
public ReadingQuestionTrial ReadingQuestionTrial { get; set; }
}