修改一版
parent
e32c45d81d
commit
ee0526986f
|
@ -4241,6 +4241,14 @@
|
|||
IR影像阅片
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetNextTaskId(System.Nullable{System.Guid},System.Guid)">
|
||||
<summary>
|
||||
获取下一个阅片任务
|
||||
</summary>
|
||||
<param name="subjectId"></param>
|
||||
<param name="trialId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetReadingImageFile(IRaCIS.Core.Application.Service.Reading.Dto.GetReadingImgInDto)">
|
||||
<summary>
|
||||
获取阅片非Dicom文件
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
@ -15,10 +16,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public string FileName { get; set; }
|
||||
}
|
||||
|
||||
public class GetReadingTaskDto
|
||||
{
|
||||
public Guid VisistId { get; set; }
|
||||
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
public ReadingCategory ReadingCategory { get; set; }
|
||||
|
||||
public decimal VisitNum{ get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class GetReadingImgInDto
|
||||
{
|
||||
|
||||
public Guid VisitTaskId { get; set; }
|
||||
public Guid? SubjectId { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialId { get; set; }
|
||||
}
|
||||
|
||||
public class GetConfirmCriterionInDto
|
||||
|
|
|
@ -25,6 +25,7 @@ namespace IRaCIS.Application.Services
|
|||
private readonly IMapper mapper;
|
||||
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||
private readonly IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository;
|
||||
|
@ -33,6 +34,7 @@ namespace IRaCIS.Application.Services
|
|||
IMapper mapper,
|
||||
IRepository<NoneDicomStudy> noneDicomStudyRepository,
|
||||
IRepository<VisitTask> visitTaskRepository,
|
||||
IRepository<SubjectVisit> subjectVisitRepository,
|
||||
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
||||
IRepository<ReadingQuestionTrial> readingQuestionTrialRepository
|
||||
|
@ -41,9 +43,54 @@ namespace IRaCIS.Application.Services
|
|||
this.mapper = mapper;
|
||||
this._noneDicomStudyRepository = noneDicomStudyRepository;
|
||||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._subjectVisitRepository = subjectVisitRepository;
|
||||
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
||||
this._readingQuestionTrialRepository = readingQuestionTrialRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取下一个阅片任务
|
||||
/// </summary>
|
||||
/// <param name="subjectId"></param>
|
||||
/// <param name="trialId"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<GetReadingTaskDto> GetNextTaskId(Guid? subjectId,Guid trialId)
|
||||
{
|
||||
GetReadingTaskDto? task = new GetReadingTaskDto();
|
||||
if (subjectId != null)
|
||||
{
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.SubjectId == subjectId.Value).Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
|
||||
ReadingCategory = x.ReadingCategory,
|
||||
VisistId = x.ReadingCategory == ReadingCategory.Visit ? x.SourceSubjectVisitId.Value : x.ReadModule.SubjectVisitId,
|
||||
VisitNum = x.ReadingCategory == ReadingCategory.Visit ? x.SubjectVisit.VisitNum : x.ReadModule.VisitNum
|
||||
}).OrderBy(x => x.VisitNum).ThenBy(x => x.ReadingCategory).FirstOrDefaultAsync();
|
||||
task.SubjectId = subjectId.Value;
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned).Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
|
||||
ReadingCategory = x.ReadingCategory,
|
||||
VisistId = x.ReadingCategory == ReadingCategory.Visit ? x.SourceSubjectVisitId.Value : x.ReadModule.SubjectVisitId,
|
||||
VisitNum = x.ReadingCategory == ReadingCategory.Visit ? x.SubjectVisit.VisitNum : x.ReadModule.VisitNum
|
||||
}).FirstOrDefaultAsync();
|
||||
|
||||
task.SubjectId = await _subjectVisitRepository.Where(x => x.Id == task.VisistId).Select(x => x.SubjectId).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
return task;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -54,12 +101,20 @@ namespace IRaCIS.Application.Services
|
|||
[HttpPost]
|
||||
public async Task<List<GetReadingImgOutDto>> GetReadingImageFile(GetReadingImgInDto inDto)
|
||||
{
|
||||
Guid? subjectVisitId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.SourceSubjectVisitId).FirstOrDefaultAsync();
|
||||
if (subjectVisitId == null)
|
||||
var task=await GetNextTaskId(inDto.SubjectId, inDto.TrialId);
|
||||
List<Guid> visitIds = new List<Guid>();
|
||||
if (task.ReadingCategory == ReadingCategory.Visit)
|
||||
{
|
||||
throw new QueryBusinessObjectNotExistException($"数据异常,当前任务没有访视Id");
|
||||
visitIds.Add(task.VisistId);
|
||||
}
|
||||
List<GetReadingImgOutDto> imgList = await _noneDicomStudyRepository.Where(x => x.SubjectVisitId == subjectVisitId)
|
||||
else
|
||||
{
|
||||
// 阅片期取前面所有的图像
|
||||
visitIds.AddRange(await _subjectVisitRepository.Where(x => x.VisitNum <= task.VisitNum && x.SubjectId == task.SubjectId).Select(x => x.Id).ToListAsync());
|
||||
}
|
||||
|
||||
|
||||
List<GetReadingImgOutDto> imgList = await _noneDicomStudyRepository.Where(x => visitIds.Contains(x.SubjectVisitId))
|
||||
.SelectMany(x => x.NoneDicomFileList).Select(x => new GetReadingImgOutDto()
|
||||
{
|
||||
FileName = x.FileName,
|
||||
|
|
|
@ -60,9 +60,15 @@ namespace IRaCIS.Core.Domain.Models
|
|||
//任务来源访视Id 方便回更访视读片状态
|
||||
public Guid? SourceSubjectVisitId { get; set; }
|
||||
|
||||
[ForeignKey("SourceSubjectVisitId")]
|
||||
public SubjectVisit SubjectVisit { get; set; }
|
||||
|
||||
|
||||
public Guid? SouceReadModuleId { get; set; }
|
||||
|
||||
[ForeignKey("SouceReadModuleId")]
|
||||
public ReadModule ReadModule { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -172,6 +178,10 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public SubjectUser SujectArm { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//建议完成时间
|
||||
//public int SuggesteDays { get; set; }
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue