Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
commit
a86448a5c1
|
@ -4,7 +4,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
{
|
{
|
||||||
public interface IStudyService
|
public interface IStudyService
|
||||||
{
|
{
|
||||||
IResponseOutput<List<RelationStudyDTO>> GetAllRelationStudyList(Guid subjectVisitId);
|
IResponseOutput<List<RelationStudyDTO>> GetAllRelationStudyList(Guid subjectVisitId,bool? isReading);
|
||||||
Task<PageOutput<UnionStudyViewModel>> GetDicomAndNoneDicomStudyList(StudyQuery studyQuery);
|
Task<PageOutput<UnionStudyViewModel>> GetDicomAndNoneDicomStudyList(StudyQuery studyQuery);
|
||||||
Task<PageOutput<UnionStudyMonitorModel>> GetDicomAndNoneDicomStudyMonitorList(StudyQuery studyQuery);
|
Task<PageOutput<UnionStudyMonitorModel>> GetDicomAndNoneDicomStudyMonitorList(StudyQuery studyQuery);
|
||||||
(List<string> SeriesInstanceUid, List<string> SopInstanceUid) GetHasUploadSeriesAndInstance(Guid studyId);
|
(List<string> SeriesInstanceUid, List<string> SopInstanceUid) GetHasUploadSeriesAndInstance(Guid studyId);
|
||||||
|
|
|
@ -579,7 +579,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("{subjectVisitId:guid}")]
|
[HttpGet("{subjectVisitId:guid}")]
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public IResponseOutput<List<RelationStudyDTO>> GetAllRelationStudyList(Guid subjectVisitId)
|
public IResponseOutput<List<RelationStudyDTO>> GetAllRelationStudyList(Guid subjectVisitId,bool? isReading)
|
||||||
{
|
{
|
||||||
#region 废弃
|
#region 废弃
|
||||||
//var studylist = _studyRepository.Where(u => u.SubjectVisitId == subjectVisitId && u.IsDeleted == false).Select(t => new { StudyId = t.Id, t.SubjectId, t.TrialId }).ToList();
|
//var studylist = _studyRepository.Where(u => u.SubjectVisitId == subjectVisitId && u.IsDeleted == false).Select(t => new { StudyId = t.Id, t.SubjectId, t.TrialId }).ToList();
|
||||||
|
@ -607,10 +607,18 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
|
|
||||||
var studyInfo = _dicomStudyRepository.Where(u => u.SubjectVisitId == subjectVisitId).Select(t => new { t.SubjectId, t.TrialId }).FirstOrDefault().IfNullThrowException();
|
var studyInfo = _dicomStudyRepository.Where(u => u.SubjectVisitId == subjectVisitId).Select(t => new { t.SubjectId, t.TrialId }).FirstOrDefault().IfNullThrowException();
|
||||||
|
|
||||||
var query = _dicomStudyRepository.Where(t => t.SubjectVisitId != subjectVisitId && t.TrialId == studyInfo.TrialId && t.SubjectId == studyInfo.SubjectId)
|
var list = _dicomStudyRepository.Where(t => t.SubjectVisitId != subjectVisitId && t.TrialId == studyInfo.TrialId && t.SubjectId == studyInfo.SubjectId)
|
||||||
.ProjectTo<RelationStudyDTO>(_mapper.ConfigurationProvider).ToList();
|
.Select(t=> new RelationStudyDTO()
|
||||||
|
{
|
||||||
|
StudyId = t.Id,
|
||||||
|
StudyCode = t.StudyCode,
|
||||||
|
VisitName = t.SubjectVisit.VisitName,
|
||||||
|
Modalities = t.Modalities,
|
||||||
|
Description = t.Description,
|
||||||
|
SeriesCount = t.SeriesList.Where(t=> isReading==true? t.IsReading==true:true).Count()
|
||||||
|
}) .ToList();
|
||||||
|
|
||||||
var list = query.OrderBy(u => u.VisitName).ThenBy(s => s.StudyCode).ToList();
|
list = list.Where(t=>t.SeriesCount>0).OrderBy(u => u.VisitName).ThenBy(s => s.StudyCode).ToList();
|
||||||
|
|
||||||
return ResponseOutput.Ok(list);
|
return ResponseOutput.Ok(list);
|
||||||
}
|
}
|
||||||
|
|
|
@ -865,6 +865,16 @@ namespace IRaCIS.Core.Application
|
||||||
}
|
}
|
||||||
else if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirmUpdate).ToString())
|
else if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirmUpdate).ToString())
|
||||||
{
|
{
|
||||||
|
var trialConfirmTime = _trialRepository.Where(t => t.Id == signConfirmDTO.TrialId).Select(t => t.QCQuestionConfirmedTime).FirstOrDefault();
|
||||||
|
|
||||||
|
if (trialConfirmTime != null)
|
||||||
|
{
|
||||||
|
//删除复审中间临时数据
|
||||||
|
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.SecondReviewState == SecondReviewState.WaitAudit
|
||||||
|
&& t.CurrentQCEnum == CurrentQC.SecondReview && t.UpdateTime > trialConfirmTime);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
await _trialRepository.UpdatePartialFromQueryAsync(t => t.Id == signConfirmDTO.TrialId, u => new Trial() { QCQuestionConfirmedTime = null, QCQuestionConfirmedUserId = null, IsQCQuestionConfirmed = false });
|
await _trialRepository.UpdatePartialFromQueryAsync(t => t.Id == signConfirmDTO.TrialId, u => new Trial() { QCQuestionConfirmedTime = null, QCQuestionConfirmedUserId = null, IsQCQuestionConfirmed = false });
|
||||||
}
|
}
|
||||||
else if (signConfirmDTO.SignCode == ((int)SignEnum.SecondReviewConfirm).ToString())
|
else if (signConfirmDTO.SignCode == ((int)SignEnum.SecondReviewConfirm).ToString())
|
||||||
|
@ -873,9 +883,16 @@ namespace IRaCIS.Core.Application
|
||||||
|
|
||||||
if (trialConfirmTime != null)
|
if (trialConfirmTime != null)
|
||||||
{
|
{
|
||||||
//删除复审中间临时数据
|
//删除复审中间临时数据--没重置,一直点生成复核任务
|
||||||
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.SecondReviewState == SecondReviewState.WaitAudit
|
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.SecondReviewState == SecondReviewState.WaitAudit
|
||||||
&& t.CurrentQCEnum == CurrentQC.SecondReview && t.UpdateTime> trialConfirmTime);
|
&& t.CurrentQCEnum == CurrentQC.SecondReview && t.UpdateTime > trialConfirmTime);
|
||||||
|
|
||||||
|
//删除质控中 临时保存的问题答案 (因为添加那里只会新增 和全部更新,如果不处理,那么有新增,也有更新,稽查那里也会有问题)
|
||||||
|
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.AuditState == AuditStateEnum.InPrimaryQC
|
||||||
|
&& t.CurrentQCEnum == CurrentQC.First);
|
||||||
|
|
||||||
|
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.AuditState == AuditStateEnum.InSecondaryQC
|
||||||
|
&& t.CurrentQCEnum == CurrentQC.Second);
|
||||||
|
|
||||||
//重复二次复核签名
|
//重复二次复核签名
|
||||||
await _subjectVisitRepository.UpdatePartialFromQueryAsync(t => t.TrialId == signConfirmDTO.TrialId && t.AuditState == AuditStateEnum.QCPassed
|
await _subjectVisitRepository.UpdatePartialFromQueryAsync(t => t.TrialId == signConfirmDTO.TrialId && t.AuditState == AuditStateEnum.QCPassed
|
||||||
|
@ -924,7 +941,6 @@ namespace IRaCIS.Core.Application
|
||||||
//---影像质控审核问题已被其他人员确认,不允许再次确认。
|
//---影像质控审核问题已被其他人员确认,不允许再次确认。
|
||||||
throw new BusinessValidationFailedException(_localizer["TrialConfig_AuditQuestionConfirmed"]);
|
throw new BusinessValidationFailedException(_localizer["TrialConfig_AuditQuestionConfirmed"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
//不记录这个稽查,不关注问题上的确认标记
|
//不记录这个稽查,不关注问题上的确认标记
|
||||||
await _trialQCQuestionRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == signConfirmDTO.TrialId, x => new TrialQCQuestion
|
await _trialQCQuestionRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == signConfirmDTO.TrialId, x => new TrialQCQuestion
|
||||||
{
|
{
|
||||||
|
|
|
@ -120,7 +120,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
foreach (var user in userList)
|
foreach (var user in userList)
|
||||||
{
|
{
|
||||||
var lastLoginRegion = _userLogRepository.Where(t => t.ActionIdentityUserId == user.Id && (t.OptType == UserOptType.Login || t.OptType == UserOptType.LoginLockedAccount)).OrderByDescending(t => t.CreateTime).Select(t => t.IPRegion).FirstOrDefault()??string.Empty;
|
var lastLoginRegion = _userLogRepository.Where(t => t.ActionIdentityUserId == user.Id && (t.OptType == UserOptType.Login || t.OptType == UserOptType.LoginLockedAccount)).OrderByDescending(t => t.CreateTime).Select(t => t.IPRegion).FirstOrDefault() ?? string.Empty;
|
||||||
|
|
||||||
await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == user.Id, u => new Domain.Models.IdentityUser() { LastLoginIP = lastLoginRegion, UpdateUserId = user.UpdateUserId });
|
await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == user.Id, u => new Domain.Models.IdentityUser() { LastLoginIP = lastLoginRegion, UpdateUserId = user.UpdateUserId });
|
||||||
}
|
}
|
||||||
|
@ -385,6 +385,32 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[AllowAnonymous]
|
||||||
|
public async Task<IResponseOutput> DealDicomFileSize([FromServices] IOSSService _oSSService, [FromServices] IRepository<DicomInstance> _dicomInstanceRepository)
|
||||||
|
{
|
||||||
|
var instanceList = _dicomInstanceRepository.Where(t => t.TrialId == Guid.Parse("01000000-AC13-0242-3AE4-08DC9B0495C6"))
|
||||||
|
.Where(t => t.FileSize == 0 || t.FileSize == null)
|
||||||
|
.Select(t => new { t.Path, t.Id }).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var item in instanceList)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var fileSize = await _oSSService.GetObjectSizeAsync(item.Path);
|
||||||
|
await _dicomInstanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new DicomInstance() { FileSize = fileSize });
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine(item.Path + " : " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 非dicom 临床数据
|
/// 非dicom 临床数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -411,7 +437,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine(item.Path+" : " + ex.Message);
|
Console.WriteLine(item.Path + " : " + ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2060,6 +2060,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
extraIdentification = "/DeleteNoneDicomFileZero";
|
extraIdentification = "/DeleteNoneDicomFileZero";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_userInfo.RequestUrl== "QCOperation/addCheckChallengeReply" || _userInfo.RequestUrl == "QCOperation/UploadVisitCheckExcel")
|
||||||
|
{
|
||||||
if (entity.CheckChallengeState == CheckChanllengeTypeEnum.CRCWaitPMReply || entity.CheckChallengeState == CheckChanllengeTypeEnum.PMWaitCRCReply)
|
if (entity.CheckChallengeState == CheckChanllengeTypeEnum.CRCWaitPMReply || entity.CheckChallengeState == CheckChanllengeTypeEnum.PMWaitCRCReply)
|
||||||
{
|
{
|
||||||
//发送对话 修改质疑状态 不需要区分接口
|
//发送对话 修改质疑状态 不需要区分接口
|
||||||
|
@ -2067,6 +2069,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
|
|
||||||
extraIdentification = "/ModifyCheckChallengeState";
|
extraIdentification = "/ModifyCheckChallengeState";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (entity.SubmitState == SubmitStateEnum.ToSubmit)
|
if (entity.SubmitState == SubmitStateEnum.ToSubmit)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue