S-85
parent
4d307bc6fa
commit
e57617c305
|
@ -146,6 +146,13 @@
|
|||
<param name="opt"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.CRCConfirmClinical(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Service.Reading.Dto.CRCConfirmClinicalInDto})">
|
||||
<summary>
|
||||
CRC确认临床数据
|
||||
</summary>
|
||||
<param name="opt"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.CRCCancelConfirmClinical(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Service.Reading.Dto.CRCCancelConfirmClinicalInDto})">
|
||||
<summary>
|
||||
CRC撤销临床数据
|
||||
|
|
|
@ -1167,8 +1167,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
}
|
||||
|
||||
//基线 且配置了临床数据
|
||||
if (trialConfig.ClinicalInformationTransmissionEnum != 0 /*&& dbSubjectVisit.IsBaseLine*//*&&dbSubjectVisit.ClinicalDataSignUserId==null*/)
|
||||
{
|
||||
//if (trialConfig.ClinicalInformationTransmissionEnum != 0 /*&& dbSubjectVisit.IsBaseLine*//*&&dbSubjectVisit.ClinicalDataSignUserId==null*/)
|
||||
//{
|
||||
|
||||
|
||||
////找到需要确认的PDF 临床数据 如果没有CRC 没有上传 那么就添加一条没有文件的记录
|
||||
|
@ -1231,7 +1231,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
//}
|
||||
|
||||
//return ResponseOutput.NotOk("没有签名临床数据,不允许提交");
|
||||
}
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -225,6 +225,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
var clinicalData= _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC&&x.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.SubjectVisit)
|
||||
.Where(x=>!x.IsSign)
|
||||
.WhereIf(inDto.SubjectId!=null,x=>x.SubjectId==inDto.SubjectId)
|
||||
.Where(x=> x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Subject)
|
||||
.Include(x=>x.ClinicalDataTrialSet).Select(x=>new GetCRCSubjectClinicalOutDto() {
|
||||
SubjectId=x.SubjectId,
|
||||
SubjectCode=x.Subject.Code,
|
||||
|
@ -526,7 +528,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
.WhereIf(inDto.IsPMConfirm != null, x => x.IsPMConfirm == inDto.IsPMConfirm)
|
||||
.WhereIf(inDto.TrialReadingCriterionId != null, x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId)
|
||||
.WhereIf(inDto.SubjectId != null, x => x.SubjectId == inDto.SubjectId)
|
||||
.Select(x => new GetCRCConfirmListOutDto()
|
||||
.WhereIf(inDto.StartTime != null, x => x.SubjectVisit.LatestScanDate >= inDto.StartTime)
|
||||
.WhereIf(inDto.EndTime != null, x => x.SubjectVisit.LatestScanDate <= inDto.EndTime)
|
||||
.Select(x => new GetCRCConfirmListOutDto()
|
||||
{
|
||||
|
||||
SubjectId = x.SubjectId,
|
||||
|
@ -806,8 +810,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
await _readModuleCriterionFromRepository.AddRangeAsync(needAddList);
|
||||
|
||||
await _readModuleCriterionFromRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok(true);
|
||||
await _iReadingClinicalDataService.DealVisiTaskClinicalDataSignedAsync(inDto.TrialId, inDto.SubjectId, inDto.ReadModuleId, false, readModule.TrialReadingCriterionId);
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -862,8 +866,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
//await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x=>x.ReadModuleId== presentData.ReadModuleId);
|
||||
|
||||
await _readModuleCriterionFromRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok(true);
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -228,10 +228,15 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateTrialClinicalQuestion(TrialClinicalQuestionDto inDto)
|
||||
{
|
||||
if (await _trialClinicalQuestionRepository.AnyAsync(x =>x.TrialClinicalId==inDto.TrialClinicalId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
if (inDto.IsVerify)
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
if (await _trialClinicalQuestionRepository.AnyAsync(x => x.TrialClinicalId == inDto.TrialClinicalId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
}
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
|
||||
|
||||
if (await _trialClinicalQuestionRepository.AnyAsync(x => x.TrialClinicalId == inDto.TrialClinicalId && x.Id != inDto.Id && x.ShowOrder == inDto.ShowOrder))
|
||||
{
|
||||
|
@ -322,10 +327,15 @@ namespace IRaCIS.Core.Application.Service
|
|||
public async Task<IResponseOutput> AddOrUpdateSystemClinicalQuestion(SystemClinicalQuestionDto inDto)
|
||||
{
|
||||
|
||||
if (await _systemClinicalQuestionRepository.AnyAsync(x => x.SystemClinicalId == inDto.SystemClinicalId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
if (inDto.IsVerify)
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
if (await _systemClinicalQuestionRepository.AnyAsync(x => x.SystemClinicalId == inDto.SystemClinicalId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
}
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
|
||||
|
||||
if (await _systemClinicalQuestionRepository.AnyAsync(x => x.SystemClinicalId == inDto.SystemClinicalId && x.Id != inDto.Id && x.ShowOrder == inDto.ShowOrder))
|
||||
{
|
||||
|
@ -416,9 +426,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateSystemClinicalTableQuestion(SystemClinicalTableQuestionDto inDto)
|
||||
{
|
||||
if (await _systemClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
if (inDto.IsVerify)
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
if (await _systemClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
}
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
|
||||
if (await _systemClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.ShowOrder == inDto.ShowOrder))
|
||||
|
@ -476,9 +490,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateTrialClinicalTableQuestion(TrialClinicalTableQuestionDto inDto)
|
||||
{
|
||||
if (await _trialClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
if (inDto.IsVerify)
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
if (await _trialClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.QuestionName == inDto.QuestionName))
|
||||
{
|
||||
return ResponseOutput.NotOk(_localizer["ClinicalQuestion_Repeat"]);
|
||||
}
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
|
||||
if (await _trialClinicalTableQuestionRepository.AnyAsync(x => x.QuestionId == inDto.QuestionId && x.Id != inDto.Id && x.ShowOrder == inDto.ShowOrder))
|
||||
|
|
|
@ -400,6 +400,13 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialId && t.SubjectId == subjectId && t.TrialReadingCriterionId == trialReadingCritrialId && t.SouceReadModuleId == readingId, u => new VisitTask()
|
||||
{
|
||||
IsClinicalDataSign = false
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public class GetCRCSubjectClinicalInDto:PageInput
|
||||
{
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid? SubjectId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
@ -145,7 +147,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public Guid? SubjectId { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
public DateTime? StartTime { get; set; }
|
||||
public DateTime? EndTime { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid? ReadModuleId { get; set; }
|
||||
}
|
||||
|
|
|
@ -156,6 +156,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
/// </summary>
|
||||
public Guid? Id { get; set; }
|
||||
|
||||
|
||||
public bool IsVerify { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 问题名称
|
||||
/// </summary>
|
||||
|
@ -365,6 +368,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public Guid? Id { get; set; }
|
||||
|
||||
public bool IsVerify { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 问题名称
|
||||
/// </summary>
|
||||
|
|
|
@ -440,11 +440,50 @@ namespace IRaCIS.Core.Application
|
|||
ExperimentName = t.ExperimentName,
|
||||
TrialCode = t.TrialCode,
|
||||
UrgentCount = t.SubjectVisitList.Where(u => u.IsBaseLine && u.SubmitState != SubmitStateEnum.Submitted && u.IsUrgent).Count(),
|
||||
ToBeDealedCount = t.ReadingClinicalDataList.Where(x=>!x.IsSign&& x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.SubjectVisit).Count(),
|
||||
ToBeDealedCount = t.ReadingClinicalDataList.Where(x=>!x.IsSign&& x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.SubjectVisit&& x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Subject).Count(),
|
||||
ToBeVisitCount= t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count(),
|
||||
ToAllCount= t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC ).Count(),
|
||||
ReadModuleCount =t.ReadModuleList.Where(x=>!x.IsPMConfirm).Count(),
|
||||
}).Where(x=>x.ToAllCount > 0);
|
||||
}).Where(x=>x.ToBeDealedCount > 0);
|
||||
|
||||
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(ImageClinicalDataToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);
|
||||
|
||||
var toBeDealedCount = _subjectVisitRepository
|
||||
//.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id) && t.Trial.clinicalDataTrialSets.Any(t => t.ClinicalDataLevel == ClinicalLevel.Subject && t.IsConfirm))
|
||||
.Where(u => u.IsBaseLine && u.SubmitState != SubmitStateEnum.Submitted).Count();
|
||||
|
||||
return ResponseOutput.Ok(result, new { TotalToBeDealedCount = toBeDealedCount });
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 临床数据 --CRC 待确认
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <param name="_subjectVisitRepository"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput<PageOutput<ImageClinicalDataToBeDoneDto>>> GetImageClinicalDataToBeConfirmList(ImageClinicalDataToBeDoneQuery inQuery,
|
||||
[FromServices] IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
[FromServices] IRepository<Trial> _trialRepository)
|
||||
{
|
||||
|
||||
var query = _trialRepository
|
||||
.Where(t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id))
|
||||
//.Where(t => t.clinicalDataTrialSets.Any(t => t.ClinicalDataLevel == ClinicalLevel.Subject && t.IsConfirm))
|
||||
.Select(t => new ImageClinicalDataToBeDoneDto()
|
||||
{
|
||||
TrialId = t.Id,
|
||||
ResearchProgramNo = t.ResearchProgramNo,
|
||||
ExperimentName = t.ExperimentName,
|
||||
TrialCode = t.TrialCode,
|
||||
UrgentCount = t.SubjectVisitList.Where(u => u.IsBaseLine && u.SubmitState != SubmitStateEnum.Submitted && u.IsUrgent).Count(),
|
||||
ToBeDealedCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.SubjectVisit && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Subject).Count(),
|
||||
ToBeVisitCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count(),
|
||||
ToAllCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC).Count(),
|
||||
ReadModuleCount = t.ReadModuleList.Where(x => !x.IsPMConfirm).Count(),
|
||||
}).Where(x => x.ReadModuleCount > 0);
|
||||
|
||||
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(ImageClinicalDataToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);
|
||||
|
||||
|
|
Loading…
Reference in New Issue