修改一版
parent
e32c45d81d
commit
ee0526986f
|
@ -4241,6 +4241,14 @@
|
||||||
IR影像阅片
|
IR影像阅片
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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)">
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetReadingImageFile(IRaCIS.Core.Application.Service.Reading.Dto.GetReadingImgInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取阅片非Dicom文件
|
获取阅片非Dicom文件
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
@ -15,10 +16,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public string FileName { get; set; }
|
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 class GetReadingImgInDto
|
||||||
{
|
{
|
||||||
|
|
||||||
public Guid VisitTaskId { get; set; }
|
public Guid? SubjectId { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetConfirmCriterionInDto
|
public class GetConfirmCriterionInDto
|
||||||
|
|
|
@ -25,6 +25,7 @@ namespace IRaCIS.Application.Services
|
||||||
private readonly IMapper mapper;
|
private readonly IMapper mapper;
|
||||||
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
|
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
|
||||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||||
|
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||||
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
||||||
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
|
||||||
private readonly IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository;
|
private readonly IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository;
|
||||||
|
@ -33,6 +34,7 @@ namespace IRaCIS.Application.Services
|
||||||
IMapper mapper,
|
IMapper mapper,
|
||||||
IRepository<NoneDicomStudy> noneDicomStudyRepository,
|
IRepository<NoneDicomStudy> noneDicomStudyRepository,
|
||||||
IRepository<VisitTask> visitTaskRepository,
|
IRepository<VisitTask> visitTaskRepository,
|
||||||
|
IRepository<SubjectVisit> subjectVisitRepository,
|
||||||
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
|
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
|
||||||
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
|
||||||
IRepository<ReadingQuestionTrial> readingQuestionTrialRepository
|
IRepository<ReadingQuestionTrial> readingQuestionTrialRepository
|
||||||
|
@ -41,9 +43,54 @@ namespace IRaCIS.Application.Services
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
this._noneDicomStudyRepository = noneDicomStudyRepository;
|
this._noneDicomStudyRepository = noneDicomStudyRepository;
|
||||||
this._visitTaskRepository = visitTaskRepository;
|
this._visitTaskRepository = visitTaskRepository;
|
||||||
|
this._subjectVisitRepository = subjectVisitRepository;
|
||||||
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
||||||
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
|
||||||
this._readingQuestionTrialRepository = readingQuestionTrialRepository;
|
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>
|
/// <summary>
|
||||||
|
@ -54,12 +101,20 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<List<GetReadingImgOutDto>> GetReadingImageFile(GetReadingImgInDto inDto)
|
public async Task<List<GetReadingImgOutDto>> GetReadingImageFile(GetReadingImgInDto inDto)
|
||||||
{
|
{
|
||||||
Guid? subjectVisitId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.SourceSubjectVisitId).FirstOrDefaultAsync();
|
var task=await GetNextTaskId(inDto.SubjectId, inDto.TrialId);
|
||||||
if (subjectVisitId == null)
|
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()
|
.SelectMany(x => x.NoneDicomFileList).Select(x => new GetReadingImgOutDto()
|
||||||
{
|
{
|
||||||
FileName = x.FileName,
|
FileName = x.FileName,
|
||||||
|
|
|
@ -60,9 +60,15 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
//任务来源访视Id 方便回更访视读片状态
|
//任务来源访视Id 方便回更访视读片状态
|
||||||
public Guid? SourceSubjectVisitId { get; set; }
|
public Guid? SourceSubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey("SourceSubjectVisitId")]
|
||||||
|
public SubjectVisit SubjectVisit { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public Guid? SouceReadModuleId { get; set; }
|
public Guid? SouceReadModuleId { get; set; }
|
||||||
|
|
||||||
|
[ForeignKey("SouceReadModuleId")]
|
||||||
|
public ReadModule ReadModule { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -172,6 +178,10 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
public SubjectUser SujectArm { get; set; }
|
public SubjectUser SujectArm { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//建议完成时间
|
//建议完成时间
|
||||||
//public int SuggesteDays { get; set; }
|
//public int SuggesteDays { get; set; }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue