From 3ac49795529ecdce77b8ff008546c1401c90da4c Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Fri, 1 Jul 2022 15:30:46 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.API/IRaCIS.Core.API.xml | 7 +
.../IRaCIS.Core.Application.xml | 34 +++-
.../Reading/Dto/ReadingClinicalDataDto.cs | 2 +
.../Reading/Dto/ReadingMedicalReviewDto.cs | 37 +++++
.../Reading/Dto/ReadingQuestionViewModel.cs | 4 +-
.../Interface/IReadingClinicalDataService.cs | 2 +
.../Reading/ReadingClinicalDataService.cs | 155 ++++++++++--------
.../Reading/ReadingImageTaskService.cs | 95 ++++-------
.../Reading/ReadingMedicalReviewService.cs | 50 +++++-
.../Service/Reading/ReadingQuestionService.cs | 8 +-
.../Service/Reading/_MapConfig.cs | 4 +-
11 files changed, 243 insertions(+), 155 deletions(-)
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 88e1c7688..cae7df970 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -90,6 +90,13 @@
+
+
+ 确认项目医学审核问题
+
+
+
+
提交阅片问题
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 5ea2722d2..8e3ed0c73 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1439,6 +1439,21 @@
答案
+
+
+ 任务名称
+
+
+
+
+ 盲态名称
+
+
+
+
+ 评估结果
+
+
项目ID
@@ -2134,6 +2149,18 @@
是否是系统数据
+
+
+ 阅片医学审核
+
+
+
+
+ 获取
+
+
+
+
医学审核问题
@@ -4868,13 +4895,6 @@
-
-
- 触发裁判任务(老)
-
-
-
-
添加裁判任务
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index 26d8cb406..8643d47c9 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -290,6 +290,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
}
+
+
public class GetReadingClinicalDataListOutDto
{
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
index ebf5058d4..ff8409445 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
@@ -17,4 +17,41 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid TaskMedicalReviewId { get; set; }
}
+
+ public class GetMedicalReviewReadingTaskOutDto
+ {
+ //阅片类型
+ public ReadingMethod ReadingType { get; set; }
+
+
+ public bool IsReadingTaskViewInOrder { get; set; }
+
+ public List TaskList { get; set; } = new List();
+
+ public List OtherDoctorTaskList { get; set; } = new List();
+ }
+
+ public class TaskInfo
+ {
+ public Guid Id { get; set; }
+
+ ///
+ /// 任务名称
+ ///
+
+ public string TaskName { get; set; }
+
+ ///
+ /// 盲态名称
+ ///
+ public string TaskBlindName { get; set; }
+
+ ///
+ /// 评估结果
+ ///
+ public string EvaluationResult { get; set; }
+
+ public ReadingCategory ReadingCategory { get; set; }
+ }
+
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
index a13375691..5511dbb77 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
@@ -175,7 +175,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string ParentQuestionName { get; set; }
- public int ParentQuestionShowOrder { get; set; }
+ public int? ParentQuestionShowOrder { get; set; }
///
/// 是否是裁判问题
@@ -237,7 +237,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string ParentQuestionName { get; set; }
- public int ParentQuestionShowOrder { get; set; }
+ public int? ParentQuestionShowOrder { get; set; }
///
diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs
index 903f1cc1a..84ff697f2 100644
--- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs
@@ -16,5 +16,7 @@ namespace IRaCIS.Core.Application.Contracts
Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto);
Task ReadClinicalDataSign(ReadingClinicalDataSignIndto inDto);
+
+ Task> GetClinicalDataList(GetReadingOrTaskClinicalDataListInDto inDto);
}
}
\ No newline at end of file
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index aa3c5ff28..4561c2842 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -45,7 +45,7 @@ namespace IRaCIS.Application.Services
IRepository previousSurgeryRepository,
IRepository subjectRepository,
IRepository readModuleRepository,
- IRepository readingClinicalDataPDFRepository,
+ IRepository readingClinicalDataPDFRepository,
IRepository visitTaskRepository)
{
this._readingClinicalDataRepository = readingClinicalDataRepository;
@@ -71,12 +71,12 @@ namespace IRaCIS.Application.Services
public async Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
{
var existsQuery = _readingClinicalDataRepository
- .WhereIf(indto.Id != null,x=>x.Id!=indto.Id)
- .Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId&&x.ReadingId==indto.ReadingId);
+ .WhereIf(indto.Id != null, x => x.Id != indto.Id)
+ .Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId && x.ReadingId == indto.ReadingId);
if (await existsQuery.AnyAsync())
{
- return ResponseOutput.NotOk("存在同类型的临床数据");
+ return ResponseOutput.NotOk("存在同类型的临床数据");
}
var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException();
if (indto.Id == null)
@@ -85,13 +85,13 @@ namespace IRaCIS.Application.Services
entity.ReadingClinicalDataPDFList = indto.AddFileList.Select(x => new ReadingClinicalDataPDF()
{
TrialId = entity.TrialId,
- SubjectId= indto.SubjectId,
- FileName=x.FileName,
- Path=x.Path,
- ClinicalDataTrialSetId=indto.ClinicalDataTrialSetId,
- IsVisit= indto.IsVisit,
- ClinicalDataLevel= clinicalDataTrialSet.ClinicalDataLevel,
- ReadingId=indto.ReadingId
+ SubjectId = indto.SubjectId,
+ FileName = x.FileName,
+ Path = x.Path,
+ ClinicalDataTrialSetId = indto.ClinicalDataTrialSetId,
+ IsVisit = indto.IsVisit,
+ ClinicalDataLevel = clinicalDataTrialSet.ClinicalDataLevel,
+ ReadingId = indto.ReadingId
}).ToList();
await _readingClinicalDataRepository.AddAsync(entity, true);
var success = await _readingClinicalDataRepository.SaveChangesAsync();
@@ -113,14 +113,14 @@ namespace IRaCIS.Application.Services
IsVisit = indto.IsVisit,
ClinicalDataLevel = clinicalDataTrialSet.ClinicalDataLevel,
ReadingId = indto.ReadingId,
- ReadingClinicalDataId= entity.Id,
+ ReadingClinicalDataId = entity.Id,
}).ToList();
await _readingClinicalDataPDFRepository.AddRangeAsync(addFileList);
var success = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id);
}
-
+
}
///
@@ -133,24 +133,24 @@ namespace IRaCIS.Application.Services
{
await this.AddCRCClinicalData(inDto);
- List cRCClinicalDataList = await _readingClinicalDataRepository.Where(x =>x.ReadingId==inDto.SubjectVisitId)
- .Where(x=> x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Read && x.ClinicalDataTrialSet.IsConfirm)
+ List cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
+ .Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Read && x.ClinicalDataTrialSet.IsConfirm)
.Select(x => new GetCRCClinicalDataOutDto()
{
- Id=x.Id,
+ Id = x.Id,
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
- ClinicalUploadType=x.ClinicalDataTrialSet.ClinicalUploadType,
+ ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
- FileName=x.ClinicalDataTrialSet.FileName,
- UploadRole=x.ClinicalDataTrialSet.UploadRole,
- Path=x.ClinicalDataTrialSet.Path,
- }).ToListAsync() ;
+ FileName = x.ClinicalDataTrialSet.FileName,
+ UploadRole = x.ClinicalDataTrialSet.UploadRole,
+ Path = x.ClinicalDataTrialSet.Path,
+ }).ToListAsync();
List clinicalData = (await this.GetReadingClinicalDataList(new GetReadingClinicalDataListIndto()
{
SubjectId = inDto.SubjectId,
ReadingId = inDto.SubjectVisitId,
- TrialId=inDto.TrialId,
+ TrialId = inDto.TrialId,
})).Item1;
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
@@ -159,7 +159,7 @@ namespace IRaCIS.Application.Services
foreach (var item in cRCClinicalDataList)
{
- item.PDFFileList = clinicalData.Where(y => y.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).SelectMany(x=>x.FileList).ToList();
+ item.PDFFileList = clinicalData.Where(y => y.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).SelectMany(x => x.FileList).ToList();
item.ClinicalTableData = new ClinicalDataTable()
{
PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
@@ -175,7 +175,7 @@ namespace IRaCIS.Application.Services
/// 添加CRC数据类型
///
///
- private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto)
+ private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto)
{
var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.ClinicalDataLevel != ClinicalLevel.Read && x.IsConfirm).Select(x => x.Id).ToListAsync();
@@ -217,7 +217,7 @@ namespace IRaCIS.Application.Services
[HttpDelete("{id:guid}")]
public async Task DeleteReadingClinicalData(Guid id)
{
-
+
await _readingClinicalDataRepository.DeleteFromQueryAsync(x => x.Id == id, true);
return ResponseOutput.Result(true);
}
@@ -238,31 +238,31 @@ namespace IRaCIS.Application.Services
(int)UserTypeEnum.IndependentReviewer,
};
-
+
if (userTypes.Contains(_userInfo.UserTypeEnumInt))
{
inDto.UploadRole = UploadRole.PM;
}
-
-
-
+
+
+
var usedIdsQuery = _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.ReadingId && x.Id != inDto.ReadingClinicalDataId).Select(x => x.ClinicalDataTrialSetId);
- List clinicalList = await _clinicalDataTrialSetRepository.Where(x=>x.TrialId==inDto.TrialId&&x.IsConfirm)
- .WhereIf(inDto.UploadRole!=null,x=>x.UploadRole==inDto.UploadRole)
- .Where(x=> !usedIdsQuery.Contains(x.Id))
- .WhereIf(inDto.IsVisit&&inDto.IsBaseLine,x=>x.ClinicalDataLevel == ClinicalLevel.Subject||x.ClinicalDataLevel== ClinicalLevel.SubjectVisit)
- .WhereIf(inDto.IsVisit&&! inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
+ List clinicalList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm)
+ .WhereIf(inDto.UploadRole != null, x => x.UploadRole == inDto.UploadRole)
+ .Where(x => !usedIdsQuery.Contains(x.Id))
+ .WhereIf(inDto.IsVisit && inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
+ .WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
.WhereIf(!inDto.IsVisit, x => x.ClinicalDataLevel == ClinicalLevel.Read)
.Select(x => new GetTrialClinicalDataSelectOutDto()
- {
- ClinicalDataLevel = x.ClinicalDataLevel,
- ClinicalDataSetName = x.ClinicalDataSetName,
- ClinicalUploadType = x.ClinicalUploadType,
- FileName=x.FileName,
- Path=x.Path,
- Id = x.Id
- }).ToListAsync() ;
+ {
+ ClinicalDataLevel = x.ClinicalDataLevel,
+ ClinicalDataSetName = x.ClinicalDataSetName,
+ ClinicalUploadType = x.ClinicalUploadType,
+ FileName = x.FileName,
+ Path = x.Path,
+ Id = x.Id
+ }).ToListAsync();
return clinicalList;
}
@@ -279,7 +279,7 @@ namespace IRaCIS.Application.Services
IsSign = true
});
- var result =await _readingClinicalDataRepository.SaveChangesAsync();
+ var result = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Result(result);
}
@@ -290,7 +290,7 @@ namespace IRaCIS.Application.Services
///
///
[HttpPost]
- public async Task<(List,object)> GetReadingOrTaskClinicalDataList(GetReadingOrTaskClinicalDataListInDto inDto)
+ public async Task<(List, object)> GetReadingOrTaskClinicalDataList(GetReadingOrTaskClinicalDataListInDto inDto)
{
var readingNameOrTaskBlindName = string.Empty;
if (inDto.ReadingId == null)
@@ -310,33 +310,7 @@ namespace IRaCIS.Application.Services
}
}
- var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
- .WhereIf(inDto.ReadingClinicalDataId!=null,x=>x.Id== inDto.ReadingClinicalDataId)
- .Where(x => x.ReadingId == inDto.ReadingId||(x.SubjectId==inDto.SubjectId&&x.ClinicalDataTrialSet.ClinicalDataLevel==ClinicalLevel.Subject))
- .Select(x => new GetReadingClinicalDataListOutDto()
- {
- ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
- SubjectId = x.SubjectId,
- ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
- ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
- IsSign = x.IsSign,
- ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
- Id = x.Id,
- UploadRole = x.ClinicalDataTrialSet.UploadRole,
- IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
- FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
- {
- Id = y.Id,
- FileName = y.FileName,
- Path = y.Path,
- CreateTime = y.CreateTime,
- }).ToList()
- });
-
-
- var result = await resultQuery.ToListAsync();
- result = result.Where(x => !(x.ClinicalUploadType == ClinicalUploadType.PDF && x.FileList.Count() == 0)).ToList();
-
+ var result = await GetClinicalDataList(inDto);
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
@@ -359,6 +333,45 @@ namespace IRaCIS.Application.Services
});
}
+ [NonDynamicMethod]
+ public async Task> GetClinicalDataList(GetReadingOrTaskClinicalDataListInDto inDto)
+ {
+
+ if (inDto.ReadingId == null)
+ {
+ var visitTask = await _visitTaskRepository.FirstOrDefaultAsync(x => x.Id == inDto.VisitTaskId);
+ inDto.ReadingId = visitTask.SouceReadModuleId ?? visitTask.SourceSubjectVisitId;
+ }
+
+ var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
+ .WhereIf(inDto.ReadingClinicalDataId != null, x => x.Id == inDto.ReadingClinicalDataId)
+ .Where(x => x.ReadingId == inDto.ReadingId || (x.SubjectId == inDto.SubjectId && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject))
+ .Select(x => new GetReadingClinicalDataListOutDto()
+ {
+ ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
+ SubjectId = x.SubjectId,
+ ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
+ ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
+ IsSign = x.IsSign,
+ ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
+ Id = x.Id,
+ UploadRole = x.ClinicalDataTrialSet.UploadRole,
+ IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
+ FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path,
+ CreateTime = y.CreateTime,
+ }).ToList()
+ });
+
+
+ var result = await resultQuery.ToListAsync();
+ result = result.Where(x => !(x.ClinicalUploadType == ClinicalUploadType.PDF && x.FileList.Count() == 0)).ToList();
+ return result;
+ }
+
///
/// 获取阅片临床数据列表
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
index 2edf69cde..d0d34513f 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
@@ -31,6 +31,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository _visitTaskRepository;
private readonly IRepository _trialRepository;
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
+ private readonly IReadingClinicalDataService _readingClinicalDataService;
private readonly IRepository _subjectVisitRepository;
private readonly IRepository _subjectRepository;
private readonly IRepository _readingJudgeInfoRepository;
@@ -46,6 +47,7 @@ namespace IRaCIS.Application.Services
IRepository visitTaskRepository,
IRepository TrialRepository,
IVisitTaskHelpeService visitTaskHelpeService,
+ IReadingClinicalDataService readingClinicalDataService,
IRepository subjectVisitRepository,
IRepository subjectRepository,
IRepository readingJudgeInfoRepository,
@@ -60,6 +62,7 @@ namespace IRaCIS.Application.Services
this._visitTaskRepository = visitTaskRepository;
this._trialRepository = TrialRepository;
this._visitTaskHelpeService = visitTaskHelpeService;
+ this._readingClinicalDataService = readingClinicalDataService;
this._subjectVisitRepository = subjectVisitRepository;
this._subjectRepository = subjectRepository;
this._readingJudgeInfoRepository = readingJudgeInfoRepository;
@@ -148,6 +151,11 @@ namespace IRaCIS.Application.Services
throw new BusinessValidationFailedException("任务都已经完成");
}
}
+
+ if (task.SubjectCode.IsNullOrEmpty())
+ {
+ task.SubjectCode = await _subjectRepository.Where(x => x.Id == task.SubjectId).Select(x => x.Code).FirstOrDefaultAsync();
+ }
return task;
@@ -183,7 +191,27 @@ namespace IRaCIS.Application.Services
{
x.IsReadingShowPreviousResults,
x.IsReadingShowSubjectInfo,
+ x.ClinicalInformationTransmissionEnum,
}).FirstOrDefaultAsync();
+
+ #region 临床数据
+
+ #endregion
+ bool isExistsClinicalData = false;
+ if (trialInfo.ClinicalInformationTransmissionEnum == 1)
+ {
+ isExistsClinicalData = (await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto()
+ {
+
+ SubjectId = task.SubjectId,
+ TrialId = inDto.TrialId,
+ VisitTaskId = task.VisitTaskId,
+ })).Count() > 0;
+ }
+
+
+
+
return (result, new {
VisitTaskId= task.VisitTaskId,
SubjectId=task.SubjectId,
@@ -192,6 +220,7 @@ namespace IRaCIS.Application.Services
TaskBlindName=task.TaskBlindName,
IsReadingShowPreviousResults = trialInfo.IsReadingShowPreviousResults,
IsReadingShowSubjectInfo=trialInfo.IsReadingShowSubjectInfo,
+ IsExistsClinicalData= isExistsClinicalData,
});
}
@@ -686,72 +715,6 @@ namespace IRaCIS.Application.Services
}
}
- ///
- /// 触发裁判任务(老)
- ///
- ///
- ///
- private async Task TriggerJudgeQuestionOld(Guid visitTaskId)
- {
- var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstOrDefaultAsync();
- var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync();
- if (visitTaskids.Count == 2)
- {
- var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x=> visitTaskids.Contains(x.VisitTaskId))
- join question in _readingQuestionTrialRepository.Where(x=>x.IsJudgeQuestion) on new { ReadingQuestionTrialId= questionAnswet.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId= question.Id }
- select new TaskAnswerDto()
- {
- Answer= questionAnswet.Answer,
- AnswerGroup= question.AnswerGroup,
- QuestionId= question.Id,
- VisitTaskId= questionAnswet.VisitTaskId,
- };
- var questionAnswerlist =await query.ToListAsync();
- List groupTasks = questionAnswerlist.GroupBy(x => new { x.QuestionId, x.AnswerGroup }).Select(x => new GroupTaskAnswerDto
- {
- QuestionId = x.Key.QuestionId,
- AnswerGroup = x.Key.AnswerGroup,
- TaskAnswerList = x.ToList(),
- }).ToList();
- var verificationResults = true;
- foreach (var item in groupTasks)
- {
- if (item.TaskAnswerList.Count() != 2|| item.AnswerGroup==string.Empty)
- {
- verificationResults = false;
- break;
- }
- else
- {
- var item1= item.TaskAnswerList[0];
- var item2= item.TaskAnswerList[1];
- if (item1.Answer != item2.Answer)
- {
- var answerGroup = JsonConvert.DeserializeObject>(item.AnswerGroup).Select(x => new AnswerGroup()
- {
- GroupId = NewId.NextGuid(),
- GroupValue = x
- }).ToList();
- var itemAnswerGroupsitem1 = answerGroup.Where(x => x.GroupValue.Contains($"|{item1.Answer}|"));
- var itemAnswerGroupsitem2 = answerGroup.Where(x => x.GroupValue.Contains($"|{item2.Answer}|"));
- var unionList = itemAnswerGroupsitem1.Intersect(itemAnswerGroupsitem2).ToList();
- if (unionList.Count < 1)
- {
- verificationResults = false;
- break;
- }
- }
- }
- }
-
- if (!verificationResults)
- {
- await this.SaveJudgeTask(new SaveJudgeTaskDto() {
- VisitTaskIds= visitTaskids,
- });
- }
- }
- }
///
/// 添加裁判任务
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs
index 2476fd74d..1e65c8118 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs
@@ -7,6 +7,7 @@ using IRaCIS.Core.Infra.EFCore.Common;
using MassTransit;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Application.Service.Reading.Dto;
+using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Core.Application.Service
{
@@ -19,16 +20,19 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository _readingMedicineTrialQuestionRepository;
private readonly IRepository _trialRepository;
+ private readonly IRepository _visitTaskRepository;
private readonly IRepository _readingMedicineSystemQuestionRepository;
public ReadingMedicalReviewService(
IRepository readingMedicineTrialQuestionRepository,
IRepository trialRepository,
+ IRepository visitTaskRepository,
IRepository readingMedicineSystemQuestionRepository
)
{
this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository;
this._trialRepository = trialRepository;
+ this._visitTaskRepository = visitTaskRepository;
this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository;
}
@@ -37,10 +41,50 @@ namespace IRaCIS.Core.Application.Service
///
///
///
- public async Task GetMedicalReviewReadingTask(GetMedicalReviewReadingTaskInDto inDto)
+ public async Task GetMedicalReviewReadingTask(GetMedicalReviewReadingTaskInDto inDto)
{
-
- }
+ var medicalReviewInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new GetMedicalReviewReadingTaskOutDto()
+ {
+ ReadingType=x.ReadingType,
+ IsReadingTaskViewInOrder=x.IsReadingTaskViewInOrder
+ }).FirstOrDefaultAsync();
+
+ var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TrialId).FirstOrDefaultAsync();
+
+
+ // 单审有序
+ if (medicalReviewInfo.IsReadingTaskViewInOrder)
+ {
+ switch (medicalReviewInfo.ReadingType)
+ {
+ //case ReadingMethod.Single:
+ // await GetOrderTaskInfo();
+ // break;
+ //case ReadingMethod.Double:
+ // await GetOrderTaskInfo();
+ // break;
+ }
+ }
+
+
+ //// 有序任务列表
+ //async Task GetOrderTaskInfo()
+ //{
+ // medicalReviewInfo.TaskList = await _visitTaskRepository.Where(x => x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId
+ // && x.DoctorUserId == taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree
+ // ).OrderBy(x => x.VisitTaskNum).Select(x => new TaskInfo()
+ // {
+ // Id = x.Id,
+ // ReadingCategory = x.ReadingCategory,
+ // TaskBlindName = x.TaskBlindName,
+ // TaskName = x.TaskName
+ // }).ToListAsync();
+ //}
+
+
+ return medicalReviewInfo;
+
+ }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs
index 1231abd3f..66b868d8e 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs
@@ -89,8 +89,8 @@ namespace IRaCIS.Application.Services
.WhereIf(!inDto.CriterionName.IsNullOrEmpty(), x => x.CriterionName.Contains(inDto.CriterionName))
.ProjectTo(_mapper.ConfigurationProvider)
.Where(x=>x.IsEnable);
- return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField.IsNullOrEmpty() ? nameof(ReadingQuestionCriterionSystemView.ShowOrder) : inDto.SortField,
- inDto.Asc);
+ return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField.IsNullOrEmpty() ? nameof(ReadingQuestionCriterionSystemView.ShowOrder) : inDto.SortField,
+ inDto.Asc);
}
@@ -369,7 +369,7 @@ namespace IRaCIS.Application.Services
.WhereIf(!inDto.QuestionName.IsNullOrEmpty(), x => x.QuestionName.Contains(inDto.QuestionName))
.WhereIf(!inDto.Type.IsNullOrEmpty(), x => x.Type.Contains(inDto.Type))
.ProjectTo(_mapper.ConfigurationProvider);
- return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField.IsNullOrEmpty() ? nameof(ReadingQuestionSystemView.ShowOrder) : inDto.SortField,
+ return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, "GroupName ASC,ShowOrder",
inDto.Asc);
}
@@ -678,7 +678,7 @@ namespace IRaCIS.Application.Services
.WhereIf(!inDto.QuestionName.IsNullOrEmpty(), x => x.QuestionName.Contains(inDto.QuestionName))
.WhereIf(!inDto.Type.IsNullOrEmpty(), x => x.Type.Contains(inDto.Type))
.ProjectTo(_mapper.ConfigurationProvider);
- return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField.IsNullOrEmpty() ? nameof(ReadingQuestionTrialView.ShowOrder) : inDto.SortField,
+ return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, "GroupName ASC,ShowOrder",
inDto.Asc);
}
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index 68b4908a6..05311fa55 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -60,7 +60,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
CreateMap()
.ForMember(d => d.ParentQuestionName, u => u.MapFrom(s => s.ParentReadingQuestionSystem==null?string.Empty: s.ParentReadingQuestionSystem.QuestionName))
- .ForMember(d => d.ParentQuestionShowOrder, u => u.MapFrom(s => s.ParentReadingQuestionSystem == null ? 0 : s.ParentReadingQuestionSystem.ShowOrder));
+ .ForMember(d => d.ParentQuestionShowOrder, u => u.MapFrom(s => s.ParentReadingQuestionSystem.ShowOrder));
CreateMap();
@@ -71,7 +71,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
CreateMap()
.ForMember(d => d.ParentQuestionName, u => u.MapFrom(s => s.ParentReadingQuestionTrial == null ? string.Empty : s.ParentReadingQuestionTrial.QuestionName))
- .ForMember(d => d.ParentQuestionShowOrder, u => u.MapFrom(s => s.ParentReadingQuestionTrial == null ? 0 : s.ParentReadingQuestionTrial.ShowOrder));
+ .ForMember(d => d.ParentQuestionShowOrder, u => u.MapFrom(s => s.ParentReadingQuestionTrial.ShowOrder));
#endregion
#region IR阅片