This commit is contained in:
he
2023-09-21 16:34:03 +08:00
parent ceda3f8427
commit d644e150ec
6 changed files with 190 additions and 30 deletions
@@ -465,6 +465,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid VisitTaskId { get; set; }
public List<ChangeDicomReadingQuestionAnswerDto> Answers { get; set; }
public List<QuestionMarkInfo> QuestionMarkInfoList { get; set; } = new List<QuestionMarkInfo>();
}
@@ -707,6 +710,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetReadingQuestionAndAnswerOutDto: GetReadingTableQuestionOutDto
{
public List<QuestionMarkInfo> QuestionMarkInfoList { get; set; }
public bool IsBaseLineTask { get; set; }
public decimal TaskNum { get; set; }
@@ -981,6 +986,52 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid? QuestionId { get; set; }
}
public class QuestionMarkInfo
{
/// <summary>
/// 问题Id
/// </summary>
public Guid QuestionId { get; set; }
/// <summary>
/// InstanceId
/// </summary>
public Guid InstanceId { get; set; }
/// <summary>
/// SeriesId
/// </summary>
public Guid SeriesId { get; set; }
/// <summary>
/// StudyId
/// </summary>
public Guid StudyId { get; set; }
/// <summary>
/// MarkTool
/// </summary>
public string MarkTool { get; set; } = string.Empty;
/// <summary>
/// PicturePath
/// </summary>
public string PicturePath { get; set; } = string.Empty;
/// <summary>
/// NumberOfFrames
/// </summary>
public int? NumberOfFrames { get; set; }
/// <summary>
/// MeasureData
/// </summary>
public string MeasureData { get; set; } = string.Empty;
}
public class GetReadingQuestionAndAnswerInDto
{
@@ -46,6 +46,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository<TrialDocument> _trialDocumentRepository;
private readonly IRepository<User> _userRepository;
private readonly IRepository<ReadingCustomTag> _readingCustomTagRepository;
private readonly IRepository<ReadingTaskQuestionMark> _readingTaskQuestionMarkRepository;
private readonly IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository;
@@ -86,6 +87,7 @@ namespace IRaCIS.Application.Services
IRepository<TrialDocument> trialDocumentRepository,
IRepository<User> userRepository,
IRepository<ReadingCustomTag> readingCustomTagRepository,
IRepository<ReadingTaskQuestionMark> readingTaskQuestionMarkRepository,
IMemoryCache cache,
IRepository<ReadingSystemCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
@@ -124,6 +126,7 @@ namespace IRaCIS.Application.Services
this._trialDocumentRepository = trialDocumentRepository;
this._userRepository = userRepository;
this._readingCustomTagRepository = readingCustomTagRepository;
this._readingTaskQuestionMarkRepository = readingTaskQuestionMarkRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._tumorAssessmentRepository = tumorAssessmentRepository;
this._readingTableAnswerRowInfoRepository = readingTableAnswerRowInfoRepository;
@@ -898,7 +901,8 @@ namespace IRaCIS.Application.Services
result.PublicPage = questionPage.PublicPage;
result.BlindName = visitTaskInfo.TaskBlindName;
result.TaskNum = visitTaskInfo.VisitTaskNum;
result.QuestionMarkInfoList=await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ProjectTo<QuestionMarkInfo>(_mapper.ConfigurationProvider)
.ToListAsync();
return (result, new
{
readingTaskState = visitTaskInfo.ReadingTaskState,
@@ -1530,6 +1534,25 @@ namespace IRaCIS.Application.Services
}).ToList();
await _readingTaskQuestionAnswerRepository.AddRangeAsync(needAddAnswer);
await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId);
List<ReadingTaskQuestionMark> markList = inDto.QuestionMarkInfoList.Select(x => new ReadingTaskQuestionMark
{
Id = NewId.NextGuid(),
VisitTaskId = inDto.VisitTaskId,
InstanceId = x.InstanceId,
MarkTool = x.MarkTool,
NumberOfFrames = x.NumberOfFrames,
PicturePath = x.PicturePath,
MeasureData = x.PicturePath,
QuestionId = x.QuestionId,
SeriesId = x.SeriesId,
StudyId = x.StudyId,
});
await _readingTaskQuestionAnswerRepository.SaveChangesAsync();
return ResponseOutput.Ok(true);
}
@@ -94,16 +94,16 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.Value, u => u.MapFrom(s => s.Dictionary.Value))
.ForMember(d => d.ValueCN, u => u.MapFrom(s => s.Dictionary.ValueCN));
CreateMap<ReadingTaskQuestionMark, QuestionMarkInfo>();
//CreateMap<ReadingClinicalDataView, GetReadingClinicalDataListOutDto>();
// CreateMap<ReadingClinicalData, GetReadingClinicalDataListOutDto>()
//.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel))
//.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName))
//.ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType));
//.ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count()));
//CreateMap<ReadingClinicalDataView, GetReadingClinicalDataListOutDto>();
// CreateMap<ReadingClinicalData, GetReadingClinicalDataListOutDto>()
//.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel))
//.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName))
//.ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType));
//.ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count()));
CreateMap<ReadingClinicalDataPDF, GetReadingClinicalDataPDFListOutDto>();
CreateMap<ReadingClinicalDataPDF, GetReadingClinicalDataPDFListOutDto>();
//.ForMember(d => d.SiteNames, u => u.MapFrom(s => s.ReadingPeriodSites.SelectMany(x => x.Site.SiteName).ToList()));