国际化修改
parent
cb2aa0cfa4
commit
f04d20f57d
|
@ -212,11 +212,12 @@ namespace IRaCIS.Core.API.Controllers
|
|||
private readonly IRepository _repository;
|
||||
|
||||
private readonly IEasyCachingProvider _provider;
|
||||
|
||||
private readonly QCCommon _qCCommon;
|
||||
public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator, IEasyCachingProvider provider,
|
||||
|
||||
QCCommon qCCommon,
|
||||
IRepository repository)
|
||||
{
|
||||
_qCCommon = qCCommon;
|
||||
_provider = provider;
|
||||
_hostEnvironment = hostEnvironment;
|
||||
_mediator = mediator;
|
||||
|
@ -439,7 +440,7 @@ namespace IRaCIS.Core.API.Controllers
|
|||
|
||||
public async Task<IResponseOutput> UploadVisitClinicalData(Guid subjectVisitId)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
var sv = _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefault().IfNullThrowException();
|
||||
|
||||
await FileUploadAsync(async (fileName) =>
|
||||
|
@ -677,7 +678,7 @@ namespace IRaCIS.Core.API.Controllers
|
|||
[FromServices] IRepository<NoneDicomStudy> _noneDicomStudyRepository, [FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
||||
{
|
||||
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
|
||||
var sv = (await _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException();
|
||||
|
||||
|
|
|
@ -258,7 +258,7 @@
|
|||
"User_EmailDup": "A user with the same email already exists in this user type.",
|
||||
"User_NewOldPwdSame": "The new password is the same as the old one.",
|
||||
"User_OldPwdInvalid": "Failed to verify the old password. ",
|
||||
//UserService
|
||||
"User_LegalEmail": "Please input a legal email",
|
||||
"User_VerificationCodeError": "The verification code is wrong.",
|
||||
"User_VerificationCodeExpired": "The verification code has expired.",
|
||||
"User_CreateFailed": "Check the email address or contact maintainers. The email fails to be sent and the account cannot be created",
|
||||
|
@ -270,6 +270,7 @@
|
|||
"UserType_InUse": "User already exists in that user type, and it cannot be deleted.",
|
||||
|
||||
|
||||
|
||||
// ------------------------------------------------------------QC--------------------------------------------------------------------
|
||||
//QCCommon
|
||||
"QCCommon_CannotOperate": "CRC has submitted the image and it cannot be operated.",
|
||||
|
|
|
@ -241,7 +241,7 @@
|
|||
"User_EmailDup": "该用户类型中已存在具有相同邮箱的用户。",
|
||||
"User_NewOldPwdSame": "新密码与旧密码相同。",
|
||||
"User_OldPwdInvalid": "旧密码验证失败。",
|
||||
//UserService
|
||||
"User_LegalEmail": "请输入合法的电子邮件",
|
||||
"User_VerificationCodeError": "验证码错误。",
|
||||
"User_VerificationCodeExpired": "验证码已经过期。",
|
||||
"User_CreateFailed": "请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功",
|
||||
|
@ -252,6 +252,7 @@
|
|||
//UserTypeService
|
||||
"UserType_InUse": "该用户类型中已存在用户,不能删除。",
|
||||
|
||||
|
||||
// ------------------------------------------------------------QC--------------------------------------------------------------------
|
||||
//QCCommon
|
||||
"QCCommon_CannotOperate": "CRC 已提交影像,不能进行操作。",
|
||||
|
|
|
@ -27,7 +27,8 @@ namespace IRaCIS.Application.Services
|
|||
var exp = new EntityVerifyExp<Menu>()
|
||||
{
|
||||
VerifyExp = u => u.ParentId == menuAddOrUpdateModel.ParentId && u.MenuName == menuAddOrUpdateModel.MenuName,
|
||||
VerifyMsg = "该父节点下已经存在同名的子节点。"
|
||||
//---该父节点下已经存在同名的子节点。
|
||||
VerifyMsg = _localizer["Menu_ParentDupChild"]
|
||||
};
|
||||
|
||||
var menu = await _repository.InsertOrUpdateAsync<Menu, MenuCommand>(menuAddOrUpdateModel, true, exp);
|
||||
|
@ -91,7 +92,8 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (await menuRepository.AnyAsync(t => t.ParentId == menuId))
|
||||
{
|
||||
return ResponseOutput.NotOk("该节点存在子节点,请在删除子节点后,再删除该节点。");
|
||||
//---该节点存在子节点,请在删除子节点后,再删除该节点。
|
||||
return ResponseOutput.NotOk(_localizer["Menu_ChildExist"]);
|
||||
}
|
||||
|
||||
var success =await menuRepository.BatchDeleteNoTrackingAsync(u => u.Id == menuId);
|
||||
|
|
|
@ -49,7 +49,8 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => t.UserName == userName))
|
||||
{
|
||||
throw new BusinessValidationFailedException("用户名已经存在。");
|
||||
//---用户名已经存在。
|
||||
throw new BusinessValidationFailedException(_localizer["User_UsernameExist"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,7 +58,8 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.Phone == phone && t.UserTypeId == userTypeId)))
|
||||
{
|
||||
throw new BusinessValidationFailedException("该用户类型中已存在具有相同的电话的用户。");
|
||||
//---该用户类型中已存在具有相同的电话的用户。
|
||||
throw new BusinessValidationFailedException(_localizer["User_PhoneDup"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,7 +68,8 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.EMail == email && t.UserTypeId == userTypeId)))
|
||||
{
|
||||
throw new BusinessValidationFailedException("该用户类型中已存在具有相同邮箱的用户。");
|
||||
//---该用户类型中已存在具有相同邮箱的用户。
|
||||
throw new BusinessValidationFailedException(_localizer["User_EmailDup"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -79,7 +82,8 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
if (oldPwd != null && oldPwd == newPwd)
|
||||
{
|
||||
throw new BusinessValidationFailedException("新密码与旧密码相同。");
|
||||
//---新密码与旧密码相同。
|
||||
throw new BusinessValidationFailedException(_localizer["User_NewOldPwdSame"]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -87,12 +91,14 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
if (oldPwd != null && dbUser.Password != oldPwd)
|
||||
{
|
||||
throw new BusinessValidationFailedException("旧密码验证失败。");
|
||||
//---旧密码验证失败。
|
||||
throw new BusinessValidationFailedException(_localizer["User_OldPwdInvalid"]);
|
||||
}
|
||||
|
||||
if (dbUser.Password == newPwd)
|
||||
{
|
||||
throw new BusinessValidationFailedException("新密码与旧密码相同。");
|
||||
//---新密码与旧密码相同。
|
||||
throw new BusinessValidationFailedException(_localizer["User_NewOldPwdSame"]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -113,7 +119,8 @@ namespace IRaCIS.Application.Services
|
|||
//检查手机或者邮箱是否有效
|
||||
if (!Regex.IsMatch(email, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"))
|
||||
{
|
||||
return ResponseOutput.NotOk("Please input a legal email");
|
||||
//---Please input a legal email
|
||||
return ResponseOutput.NotOk(_localizer["User_LegalEmail"]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -140,7 +147,8 @@ namespace IRaCIS.Application.Services
|
|||
if (verificationRecord == null)
|
||||
{
|
||||
|
||||
return ResponseOutput.NotOk("验证码错误。");
|
||||
//---验证码错误。
|
||||
return ResponseOutput.NotOk(_localizer["User_VerificationCodeError"]);
|
||||
|
||||
}
|
||||
else
|
||||
|
@ -148,7 +156,8 @@ namespace IRaCIS.Application.Services
|
|||
//检查验证码是否失效
|
||||
if (verificationRecord.ExpirationTime < DateTime.Now)
|
||||
{
|
||||
return ResponseOutput.NotOk("验证码已经过期。");
|
||||
//---验证码已经过期。
|
||||
return ResponseOutput.NotOk(_localizer["User_VerificationCodeExpired"]);
|
||||
|
||||
}
|
||||
else //验证码正确 并且 没有超时
|
||||
|
@ -267,7 +276,8 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new BusinessValidationFailedException("请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功");
|
||||
//---请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功
|
||||
throw new BusinessValidationFailedException(_localizer["User_CreateFailed"]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -296,7 +306,8 @@ namespace IRaCIS.Application.Services
|
|||
if (!Regex.IsMatch(email, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"))
|
||||
{
|
||||
|
||||
return ResponseOutput.NotOk("请输入一个正确的邮箱。");
|
||||
//---请输入一个正确的邮箱。
|
||||
return ResponseOutput.NotOk(_localizer["User_InvalidEmail"]);
|
||||
|
||||
}
|
||||
|
||||
|
@ -305,7 +316,8 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
if (!exist)
|
||||
{
|
||||
return ResponseOutput.NotOk("邮箱错误。");
|
||||
//---邮箱错误。
|
||||
return ResponseOutput.NotOk(_localizer["User_EmailError"]);
|
||||
|
||||
}
|
||||
|
||||
|
@ -337,7 +349,8 @@ namespace IRaCIS.Application.Services
|
|||
if (verificationRecord == null)
|
||||
{
|
||||
|
||||
throw new BusinessValidationFailedException("验证码错误。");
|
||||
//---验证码错误。
|
||||
throw new BusinessValidationFailedException(_localizer["User_VerificationCodeError"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -345,7 +358,8 @@ namespace IRaCIS.Application.Services
|
|||
if (verificationRecord.ExpirationTime < DateTime.Now)
|
||||
{
|
||||
|
||||
throw new BusinessValidationFailedException("验证码已经过期。");
|
||||
//---验证码已经过期。
|
||||
throw new BusinessValidationFailedException(_localizer["User_VerificationCodeExpired"]);
|
||||
}
|
||||
else //验证码正确 并且 没有超时
|
||||
{
|
||||
|
@ -561,7 +575,8 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (await _userTrialRepository.AnyAsync(t => t.Id == userId))
|
||||
{
|
||||
return ResponseOutput.NotOk("该用户已经参加项目,不能够删除。");
|
||||
//---该用户已经参加项目,不能够删除。
|
||||
return ResponseOutput.NotOk(_localizer["User_InProject"]);
|
||||
}
|
||||
|
||||
var success = await _userRepository.BatchDeleteNoTrackingAsync(t => t.Id == userId);
|
||||
|
@ -625,7 +640,8 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
if (loginUser.Status == 0)
|
||||
{
|
||||
return ResponseOutput.NotOk("该用户已经被禁用。", new LoginReturnDTO());
|
||||
//---该用户已经被禁用。
|
||||
return ResponseOutput.NotOk(_localizer["User_Disabled"], new LoginReturnDTO());
|
||||
}
|
||||
|
||||
userLoginReturnModel.BasicInfo = loginUser;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//--------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------
|
||||
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||
// 生成时间 2021-11-03 09:38:11
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||
|
@ -79,7 +79,8 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
{
|
||||
if ( await _repository.AnyAsync<User>(t => t.UserTypeId == userTypeId))
|
||||
{
|
||||
return ResponseOutput.NotOk("该用户类型中已存在用户,不能删除");
|
||||
//---该用户类型中已存在用户,不能删除
|
||||
return ResponseOutput.NotOk(_localizer["UserType_InUse"]);
|
||||
}
|
||||
|
||||
var success = await userTypeServiceRepository.BatchDeleteNoTrackingAsync(t => t.Id == userTypeId);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//--------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------
|
||||
// 此代码由T4模板自动生成 byzhouhang 20210918
|
||||
// 生成时间 2021-11-22 11:29:44
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
||||
|
@ -19,15 +19,17 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
private readonly IRepository<PreviousSurgery> _previousSurgeryRepository;
|
||||
private readonly IRepository<PreviousPDF> _previousPdfRepository;
|
||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||||
private readonly QCCommon _qCCommon;
|
||||
|
||||
|
||||
public ClinicalDataService(IRepository<PreviousHistory> previousHistoryRepository,
|
||||
public ClinicalDataService(IRepository<PreviousHistory> previousHistoryRepository,
|
||||
IRepository<PreviousOther> previousOtherRepository,
|
||||
IRepository<PreviousSurgery> previousSurgeryRepository,
|
||||
IRepository<PreviousPDF> previousPDFRepository,
|
||||
IRepository<SubjectVisit> subjectVisitRepository
|
||||
IRepository<SubjectVisit> subjectVisitRepository,
|
||||
QCCommon qCCommon
|
||||
)
|
||||
{
|
||||
_qCCommon = qCCommon;
|
||||
_previousOtherRepository = previousOtherRepository;
|
||||
_previousHistoryRepository = previousHistoryRepository;
|
||||
_previousSurgeryRepository = previousSurgeryRepository;
|
||||
|
@ -96,7 +98,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpPost("{trialId:guid}")]
|
||||
public async Task<IResponseOutput<Guid>> AddOrUpdatePreviousHistory(PreviousHistoryAddOrEdit addOrEditPreviousHistory)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousHistory.SubjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousHistory.SubjectVisitId);
|
||||
|
||||
var entity = await _previousHistoryRepository.InsertOrUpdateAsync(addOrEditPreviousHistory, true);
|
||||
return ResponseOutput.Ok(entity.Id);
|
||||
|
@ -106,7 +108,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousHistoryId:guid}")]
|
||||
public async Task<IResponseOutput> DeletePreviousHistory(Guid previousHistoryId,Guid subjectVisitId)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _previousHistoryRepository.DeleteFromQueryAsync(t => t.Id == previousHistoryId,true);
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
@ -123,7 +125,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpPost("{trialId:guid}")]
|
||||
public async Task<IResponseOutput<Guid>> AddOrUpdatePreviousOther(PreviousOtherAddOrEdit addOrEditPreviousOther)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousOther.SubjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousOther.SubjectVisitId);
|
||||
var entity = await _previousOtherRepository.InsertOrUpdateAsync(addOrEditPreviousOther, true);
|
||||
return ResponseOutput.Ok(entity.Id);
|
||||
|
||||
|
@ -133,7 +135,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousOtherId:guid}")]
|
||||
public async Task<IResponseOutput> DeletePreviousOther(Guid previousOtherId, Guid subjectVisitId)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
|
||||
await _previousOtherRepository.DeleteFromQueryAsync(t => t.Id == previousOtherId,true);
|
||||
return ResponseOutput.Ok();
|
||||
|
@ -151,7 +153,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpPost("{trialId:guid}")]
|
||||
public async Task<IResponseOutput<Guid>> AddOrUpdatePreviousSurgery(PreviousSurgeryAddOrEdit addOrEditPreviousSurgery)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousSurgery.SubjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousSurgery.SubjectVisitId);
|
||||
var entity = await _previousSurgeryRepository.InsertOrUpdateAsync(addOrEditPreviousSurgery, true);
|
||||
return ResponseOutput.Ok(entity.Id);
|
||||
}
|
||||
|
@ -160,7 +162,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousSurgeryId:guid}")]
|
||||
public async Task<IResponseOutput> DeletePreviousSurgery(Guid previousSurgeryId, Guid subjectVisitId)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
var success = await _previousSurgeryRepository.DeleteFromQueryAsync(t => t.Id == previousSurgeryId,true);
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
@ -177,7 +179,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
public async Task<IResponseOutput> AddOrUpdatePreviousPDF(PreviousPDFAddOrEdit addOrEditPreviousPDF)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousPDF.SubjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousPDF.SubjectVisitId);
|
||||
var entity = await _previousPdfRepository.InsertOrUpdateAsync(addOrEditPreviousPDF, true);
|
||||
return ResponseOutput.Ok(entity.Id);
|
||||
|
||||
|
@ -186,7 +188,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousPDFId:guid}")]
|
||||
public async Task<IResponseOutput> DeletePreviousPDF(Guid previousPDFId, Guid subjectVisitId)
|
||||
{
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
|
||||
await _previousPdfRepository.DeleteFromQueryAsync(t => t.Id == previousPDFId,true);
|
||||
return ResponseOutput.Ok();
|
||||
|
|
|
@ -21,12 +21,14 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
|
||||
private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository;
|
||||
private readonly AsyncLock _mutex = new AsyncLock();
|
||||
private readonly QCCommon _qCCommon;
|
||||
|
||||
|
||||
public NoneDicomStudyService(IRepository<NoneDicomStudy> noneDicomStudyRepository,
|
||||
|
||||
QCCommon qCCommon,
|
||||
IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository)
|
||||
{
|
||||
_qCCommon = qCCommon;
|
||||
_noneDicomStudyRepository = noneDicomStudyRepository;
|
||||
|
||||
_noneDicomStudyFileRepository = noneDicomStudyFileRepository;
|
||||
|
@ -51,11 +53,11 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
|
||||
{
|
||||
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditNoneDicomStudy.SubjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditNoneDicomStudy.SubjectVisitId);
|
||||
|
||||
if (_repository.Where<Trial>(t => t.Id == addOrEditNoneDicomStudy.TrialId).Any(t => t.IsVerifyVisitImageDate==true))
|
||||
{
|
||||
await QCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate);
|
||||
await _qCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate);
|
||||
|
||||
}
|
||||
|
||||
|
@ -99,7 +101,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
//提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除
|
||||
|
||||
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
|
||||
await _noneDicomStudyRepository.DeleteFromQueryAsync(noneDicomStudyId);
|
||||
|
||||
|
@ -119,7 +121,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
public async Task<IResponseOutput> DeleteNoneDicomStudyFile(Guid noneDicomStudyFileId, Guid subjectVisitId)
|
||||
{
|
||||
//提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除
|
||||
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||
|
||||
var noneDicomStudyFile = await _noneDicomStudyFileRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyFileId);
|
||||
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using Microsoft.Extensions.Localization;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
public static class QCCommon
|
||||
public class QCCommon: BaseService
|
||||
{
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 验证CRC 是否已提交 已提交 就不允许进行任何操作,如果是IQC 那么还验证是否是当前任务领取人
|
||||
/// </summary>
|
||||
|
@ -14,7 +18,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// <param name="subjectVisitId"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="BusinessValidationFailedException"></exception>
|
||||
public static async Task VerifyIsCRCSubmmitAsync(IRepository _repository, IUserInfo _userInfo, Guid? subjectVisitId = null)
|
||||
public async Task VerifyIsCRCSubmmitAsync(IRepository _repository, IUserInfo _userInfo, Guid? subjectVisitId = null)
|
||||
{
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator)
|
||||
{
|
||||
|
@ -24,7 +28,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
if (await _repository.AnyAsync<SubjectVisit>(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted &&
|
||||
(!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))))
|
||||
{
|
||||
throw new BusinessValidationFailedException("CRC 已提交影像,不能进行操作。");
|
||||
//---CRC 已提交影像,不能进行操作。
|
||||
throw new BusinessValidationFailedException(_localizer["QCCommon_CannotOperate"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -40,22 +45,22 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
}
|
||||
|
||||
public static async Task VerifyIsCanQCAsync(IRepository _repository, IUserInfo _userInfo, SubjectVisit? subjectVisit = null, Guid? subjectVisitId = null)
|
||||
public async Task VerifyIsCanQCAsync(IRepository _repository, IUserInfo _userInfo, SubjectVisit? subjectVisit = null, Guid? subjectVisitId = null)
|
||||
{
|
||||
if (subjectVisitId != null)
|
||||
{
|
||||
subjectVisit = (await _repository.FirstOrDefaultAsync<SubjectVisit>(t => t.Id == subjectVisitId)).IfNullThrowException();
|
||||
}
|
||||
|
||||
if (subjectVisit!.CurrentActionUserId != _userInfo.Id)
|
||||
{
|
||||
throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
|
||||
//---您不是该质控任务当前领取人,没有操作权限!
|
||||
throw new BusinessValidationFailedException(_localizer["QCCommon_NoPermission"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static async Task VerifyStudyImageDataAsync(IRepository _repository, Guid subjectId, Guid subjectVisitId, DateTime imageDate)
|
||||
public async Task VerifyStudyImageDataAsync(IRepository _repository, Guid subjectId, Guid subjectVisitId, DateTime imageDate)
|
||||
{
|
||||
var visitList = await _repository.Where<SubjectVisit>(t => t.SubjectId == subjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync();
|
||||
|
||||
|
@ -68,7 +73,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
if (before != null && before > imageDate)
|
||||
{
|
||||
throw new BusinessValidationFailedException($"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
|
||||
//当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误
|
||||
throw new BusinessValidationFailedException(_localizer["QCCommon_CheckTimeEarly", imageDate.ToString("yyyy-MM-dd"), before?.ToString("yyyy-MM-dd")]);
|
||||
}
|
||||
|
||||
|
||||
|
@ -77,7 +83,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
if (after != null && after < imageDate)
|
||||
{
|
||||
throw new BusinessValidationFailedException($"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
|
||||
//$"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误"
|
||||
throw new BusinessValidationFailedException(_localizer["QCCommon_CheckTimeLate", imageDate.ToString("yyyy-MM-dd"), after?.ToString("yyyy-MM-dd")]);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
BIN
后端提示语.xlsx
BIN
后端提示语.xlsx
Binary file not shown.
Loading…
Reference in New Issue