阅片模块
parent
6899540fe6
commit
bf804f4cc9
|
@ -8293,7 +8293,7 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetReadModuleList(IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto)">
|
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetReadModuleList(IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取读片模块
|
获取读片模块 //加了标准参数
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetReadModule(IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleSingleIndto)">
|
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetReadModule(IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleSingleIndto)">
|
||||||
|
@ -8305,7 +8305,7 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetSubjectReadVisitList(IRaCIS.Core.Application.Service.Reading.Dto.GetSubjectReadVisitsInDto)">
|
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetSubjectReadVisitList(IRaCIS.Core.Application.Service.Reading.Dto.GetSubjectReadVisitsInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
添加阅片的时候 获取访视
|
添加阅片的时候 获取访视 //标准参数必传
|
||||||
</summary>
|
</summary>
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -38,6 +39,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Guid? TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetSubjectReadVisitsOutDto
|
public class GetSubjectReadVisitsOutDto
|
||||||
|
@ -61,6 +66,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
/// 受试者ID
|
/// 受试者ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid SubjectId { get; set; }
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ReadModuleAddDto
|
public class ReadModuleAddDto
|
||||||
|
@ -96,6 +104,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
/// 阅片配置的类型
|
/// 阅片配置的类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ReadingSetType ReadingSetType { get; set; }
|
public ReadingSetType ReadingSetType { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
[NotDefault]
|
[NotDefault]
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
public Guid TrialReadingCriterionId { get; set; }
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -64,7 +64,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取读片模块
|
/// 获取读片模块 //加了标准参数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<(PageOutput<GetReadModuleDtoOut>,object)> GetReadModuleList(GetReadModuleDto dto)
|
public async Task<(PageOutput<GetReadModuleDtoOut>,object)> GetReadModuleList(GetReadModuleDto dto)
|
||||||
|
@ -79,7 +79,9 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(dto.SubjectCode != null && dto.SubjectCode != string.Empty, x => x.SubjectCode == dto.SubjectCode)
|
.WhereIf(dto.SubjectCode != null && dto.SubjectCode != string.Empty, x => x.SubjectCode == dto.SubjectCode)
|
||||||
.WhereIf(dto.ModuleType != null, x => x.ModuleType == dto.ModuleType)
|
.WhereIf(dto.ModuleType != null, x => x.ModuleType == dto.ModuleType)
|
||||||
.WhereIf(dto.ReadingStatus != null, x => x.ReadingStatus == dto.ReadingStatus)
|
.WhereIf(dto.ReadingStatus != null, x => x.ReadingStatus == dto.ReadingStatus)
|
||||||
.WhereIf(dto.Name != null, x => x.Name.Contains(dto.Name!)).OrderBy(x => x.SiteCode);
|
.WhereIf(dto.Name != null, x => x.Name.Contains(dto.Name!)).OrderBy(x => x.SiteCode)
|
||||||
|
|
||||||
|
.WhereIf(dto.TrialReadingCriterionId != null, x => x.TrialReadingCriterionId== dto.TrialReadingCriterionId);
|
||||||
|
|
||||||
var subjectIds = await subjectQuery.OrderBy(dto.SortField).Select(x => x.SubjectId).Distinct().Skip((dto.PageIndex - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
var subjectIds = await subjectQuery.OrderBy(dto.SortField).Select(x => x.SubjectId).Distinct().Skip((dto.PageIndex - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
|
||||||
|
|
||||||
|
@ -192,19 +194,22 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 添加阅片的时候 获取访视
|
/// 添加阅片的时候 获取访视 //标准参数必传
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<GetSubjectReadVisitsOutDto>> GetSubjectReadVisitList(GetSubjectReadVisitsInDto inDto)
|
public async Task<List<GetSubjectReadVisitsOutDto>> GetSubjectReadVisitList(GetSubjectReadVisitsInDto inDto)
|
||||||
{
|
{
|
||||||
var maxReadVisit = await _readModuleRepository.Where(x => x.SubjectId == inDto.SubjectId&&x.ReadingSetType==inDto.ReadingSetType).OrderByDescending(x=>x.VisitNum).FirstOrDefaultAsync();
|
//增加标准
|
||||||
|
var maxReadVisit = await _readModuleRepository.Where(x => x.SubjectId == inDto.SubjectId&&x.ReadingSetType==inDto.ReadingSetType && x.TrialReadingCriterionId==inDto.TrialReadingCriterionId).OrderByDescending(x=>x.VisitNum).FirstOrDefaultAsync();
|
||||||
|
|
||||||
var maxReadVisitNum= maxReadVisit==null?-1:maxReadVisit.VisitNum;
|
var maxReadVisitNum= maxReadVisit==null?-1:maxReadVisit.VisitNum;
|
||||||
var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == inDto.SubjectId && x.LatestScanDate != null&&!x.IsLostVisit);
|
var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == inDto.SubjectId && x.LatestScanDate != null&&!x.IsLostVisit);
|
||||||
var finalVisitNum = await visitQuery.Where(x => x.IsFinalVisit).Select(x => x.VisitNum).FirstOrDefaultAsync();
|
var finalVisitNum = await visitQuery.Where(x => x.IsFinalVisit).Select(x => x.VisitNum).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
//增加标准
|
||||||
|
var readModulequery = _readModuleRepository.AsQueryable().Where(x=>x.TrialReadingCriterionId == inDto.TrialReadingCriterionId);
|
||||||
|
|
||||||
var readModulequery = _readModuleRepository.AsQueryable();
|
|
||||||
var resultlist= await visitQuery.WhereIf(finalVisitNum != null&& finalVisitNum!=0, x => x.VisitNum <= finalVisitNum)
|
var resultlist= await visitQuery.WhereIf(finalVisitNum != null&& finalVisitNum!=0, x => x.VisitNum <= finalVisitNum)
|
||||||
.WhereIf(inDto.ReadingSetType== ReadingSetType.TumorReading, x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.ReadingSetType == ReadingSetType.ImageReading).Count() > 0)
|
.WhereIf(inDto.ReadingSetType== ReadingSetType.TumorReading, x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.ReadingSetType == ReadingSetType.ImageReading).Count() > 0)
|
||||||
.Where(x=>x.VisitNum> maxReadVisitNum)
|
.Where(x=>x.VisitNum> maxReadVisitNum)
|
||||||
|
@ -250,6 +255,9 @@ namespace IRaCIS.Application.Services
|
||||||
VisitNum = visit.VisitNum,
|
VisitNum = visit.VisitNum,
|
||||||
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
ReadingStatus = ReadingStatusEnum.TaskAllocate,
|
||||||
|
|
||||||
|
//增加标准
|
||||||
|
TrialReadingCriterionId = dto.TrialReadingCriterionId,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
await _readModuleRepository.AddAsync(readModuleData);
|
await _readModuleRepository.AddAsync(readModuleData);
|
||||||
|
@ -258,8 +266,9 @@ namespace IRaCIS.Application.Services
|
||||||
switch (readModuleData.ModuleType)
|
switch (readModuleData.ModuleType)
|
||||||
{
|
{
|
||||||
case ModuleTypeEnum.Global:
|
case ModuleTypeEnum.Global:
|
||||||
|
//增加标准
|
||||||
var taskListInfo = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == readModuleData.SubjectVisitId&&x.TaskState==TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned
|
var taskListInfo = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == readModuleData.SubjectVisitId&&x.TaskState==TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned
|
||||||
&&!x.IsAnalysisCreate
|
&&!x.IsAnalysisCreate && x.TrialReadingCriterionId==dto.TrialReadingCriterionId
|
||||||
|
|
||||||
).ToListAsync();
|
).ToListAsync();
|
||||||
foreach (var taskInfo in taskListInfo)
|
foreach (var taskInfo in taskListInfo)
|
||||||
|
@ -287,8 +296,9 @@ namespace IRaCIS.Application.Services
|
||||||
case ModuleTypeEnum.Oncology:
|
case ModuleTypeEnum.Oncology:
|
||||||
|
|
||||||
var trialInfo = await _trialRepository.Where(x => x.Id == visit.TrialId).FirstNotNullAsync();
|
var trialInfo = await _trialRepository.Where(x => x.Id == visit.TrialId).FirstNotNullAsync();
|
||||||
|
//增加标准
|
||||||
|
var globalModule = await _readModuleRepository.Where(x => x.SubjectId == readModuleData.SubjectId && x.SubjectVisitId == readModuleData.SubjectVisitId&& x.ModuleType == ModuleTypeEnum.Global && x.TrialReadingCriterionId == dto.TrialReadingCriterionId).FirstOrDefaultAsync();
|
||||||
|
|
||||||
var globalModule = await _readModuleRepository.Where(x => x.SubjectId == readModuleData.SubjectId && x.SubjectVisitId == readModuleData.SubjectVisitId&& x.ModuleType == ModuleTypeEnum.Global).FirstOrDefaultAsync();
|
|
||||||
if (globalModule != null)
|
if (globalModule != null)
|
||||||
{
|
{
|
||||||
var globalTaskInfoList = await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalModule.Id && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned&&!x.IsAnalysisCreate).ToListAsync();
|
var globalTaskInfoList = await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalModule.Id && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned&&!x.IsAnalysisCreate).ToListAsync();
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid SubjectId { get; set; }
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
public Guid? TrialReadingCriterionId { get; set; }
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 模块类型
|
/// 模块类型
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
public Guid? TrialReadingCriterionId { get; set; }
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 阅片期名称
|
/// 阅片期名称
|
||||||
|
|
|
@ -145,5 +145,10 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// 是否是基线
|
/// 是否是基线
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsBaseLine { get; set; } = false;
|
public bool IsBaseLine { get; set; } = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Guid TrialReadingCriterionId { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue