diff --git a/IRaCIS.Core.API/Controllers/ExtraController.cs b/IRaCIS.Core.API/Controllers/ExtraController.cs
index 3722593db..5685f2b87 100644
--- a/IRaCIS.Core.API/Controllers/ExtraController.cs
+++ b/IRaCIS.Core.API/Controllers/ExtraController.cs
@@ -25,6 +25,7 @@ using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Sts.Model.V20150401;
using Microsoft.AspNetCore.Hosting;
+using MassTransit;
namespace IRaCIS.Api.Controllers
{
@@ -144,16 +145,16 @@ namespace IRaCIS.Api.Controllers
.Build();
-
IClientProfile profile = DefaultProfile.GetProfile("cn-shanghai", configuration["AliyunOSS:accessKeyId"], configuration["AliyunOSS:accessKeySecret"]);
DefaultAcsClient client = new DefaultAcsClient(profile);
+
// 创建一个STS请求
AssumeRoleRequest request = new AssumeRoleRequest
{
RoleArn = "acs:ram::1899121822495495:role/oss-upload", // 角色ARN,需要替换为你的角色ARN
- RoleSessionName = "session-name", // 角色会话名称,可自定义
- DurationSeconds = 3600, // 令牌有效期(单位:秒),这里设置为1小时
+ RoleSessionName = $"session-name-{NewId.NextGuid()}", // 角色会话名称,可自定义
+ DurationSeconds = 900, // 令牌有效期(单位:秒),这里设置为1小时
};
diff --git a/IRaCIS.Core.API/appsettings.Prod_Study.json b/IRaCIS.Core.API/appsettings.Prod_Study.json
new file mode 100644
index 000000000..b04f38c44
--- /dev/null
+++ b/IRaCIS.Core.API/appsettings.Prod_Study.json
@@ -0,0 +1,48 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ },
+ "AliyunOSS": {
+ "regionId": "cn-shanghai",
+ "region": "oss-cn-shanghai",
+ "endpoint": "https://oss-cn-shanghai.aliyuncs.com",
+ "accessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ",
+ "accessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio",
+ "bucketName": "zy-sir-store",
+ "viewEndpoint": "https://zy-sir-cache.oss-cn-shanghai.aliyuncs.com"
+ },
+
+ "ConnectionStrings": {
+ "RemoteNew": "Server=47.117.165.18,1434;Database=Prod_Study;User ID=sa;Password=WHxckj@2019;TrustServerCertificate=true",
+ "Hangfire": "Server=47.117.165.18,1434;Database=Prod_Study.hangfire;User ID=sa;Password=WHxckj@2019;TrustServerCertificate=true"
+ },
+
+ "BasicSystemConfig": {
+
+ "OpenUserComplexPassword": false,
+
+ "OpenSignDocumentBeforeWork": false,
+
+ "OpenTrialRelationDelete": true,
+
+ "OpenLoginLimit": false,
+ "LoginMaxFailCount": 5,
+
+ "LoginFailLockMinutes": 30
+
+ },
+
+ "SystemEmailSendConfig": {
+ "Port": 465,
+ "Host": "smtp.qiye.aliyun.com",
+ "FromEmail": "study@extimaging.com",
+ "FromName": "study.extimaging",
+ "AuthorizationCode": "zhanying123",
+ "SiteUrl": "https://study.extimaging.com/login"
+ }
+
+}
diff --git a/IRaCIS.Core.API/appsettings.Uat_Study.json b/IRaCIS.Core.API/appsettings.Uat_Study.json
index 9b7808af7..d8e06127f 100644
--- a/IRaCIS.Core.API/appsettings.Uat_Study.json
+++ b/IRaCIS.Core.API/appsettings.Uat_Study.json
@@ -16,8 +16,8 @@
"viewEndpoint": "https://zy-sir-uat-store.oss-cn-shanghai.aliyuncs.com"
},
"ConnectionStrings": {
- "RemoteNew": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Uat.Study;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true",
- "Hangfire": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Uat.Study.hangfire;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"
+ "RemoteNew": "Server=47.117.164.182,1434;Database=Uat.Study;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
+ "Hangfire": "Server=47.117.164.182,1434;Database=Uat.Study.hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
},
"BasicSystemConfig": {
diff --git a/IRaCIS.Core.API/appsettings.json b/IRaCIS.Core.API/appsettings.json
index b363c8ad5..a773c1174 100644
--- a/IRaCIS.Core.API/appsettings.json
+++ b/IRaCIS.Core.API/appsettings.json
@@ -5,6 +5,7 @@
"Audience": "ZhiZhun",
"TokenExpireDays": "7"
},
+ //ip
"IpRateLimiting": {
"EnableEndpointRateLimiting": true,
"StackBlockedRequests": false,
diff --git a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs
index 555e3aa35..38ab75156 100644
--- a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs
+++ b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs
@@ -58,10 +58,14 @@ namespace IRaCIS.Core.Application.Filter
// 后期列举出具体的类型,其他任何用户类型,都不允许操作
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA)
{
- //---对不起,您的账户没有操作权限。
- context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["TrialResource_NoAccessPermission"]));
+ if (!_userInfo.RequestUrl.Contains("TrialDocument/userConfirm"))
+ {
+ //---对不起,您的账户没有操作权限。
+ context.Result = new JsonResult(ResponseOutput.NotOk(_localizer["TrialResource_NoAccessPermission"]));
- return;
+ return;
+
+ }
}
#endregion
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 587a426ad..81d47f5b6 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -10884,20 +10884,6 @@
-
-
- 获取附加评估选项列表
-
-
-
-
-
-
- 保存附加评估设置 (自动添加 或者删除附加评估问题)
-
-
-
-
获取签名文本
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
index d94c9f5ad..7ec04337f 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
@@ -479,9 +479,17 @@ namespace IRaCIS.Core.Application.ViewModel
}
- public class PIAuditDialogListView : PIAuditTaskCommand
+ public class PIAuditDialogListView
{
+ public Guid VisitTaskId { get; set; }
+ public string NotAgreeReason { get; set; }
+ public string PIAuditNote { get; set; } = string.Empty;
+
+ public List PIAuditImagePathList { get; set; }
+
+ public PIAuditState? PIAuditState { get; set; }
+
public string ReplyContent { get; set; } = string.Empty;
public bool? IsEnrollment { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index 0c11cc06d..7eb28540c 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -275,6 +275,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
//发送对话
var addDialig = _mapper.Map(incommand);
+ addDialig.PIAuditState = incommand.PIAuditState;
+
addDialig.PIAuditImagePath = visitTask.PIAuditImagePath;
await _PIAuditRepository.AddAsync(addDialig);
diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
index dc05bd84b..fa4e39cf7 100644
--- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
@@ -251,7 +251,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap()
.ForMember(o => o.CreateUserName, t => t.MapFrom(u => u.CreateUser.UserName))
.ForMember(o => o.UserTypeEnum, t => t.MapFrom(u => u.CreateUser.UserTypeEnum))
- .ForMember(o => o.PIAuditState, t => t.MapFrom(u => u.VisitTask.PIAuditState))
+ //.ForMember(o => o.PIAuditState, t => t.MapFrom(u => u.VisitTask.PIAuditState))
;
diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs
index 79465b686..bb89f92f1 100644
--- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs
+++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs
@@ -103,7 +103,7 @@ namespace IRaCIS.Core.Application.Service
return (topicStr, htmlBodyStr, isEn_us, null);
};
- await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc);
+ await SendTrialEmailAsync(taskInfo.TrialId, businessScenarioEnum, topicAndHtmlFunc, taskInfo.SiteId);
}
else
{
diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
index 64556463d..620998555 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
@@ -27,7 +27,6 @@ namespace IRaCIS.Core.Application.Services
private readonly IRepository _trialRepository;
private readonly IRepository _systemDocConfirmedUserRepository;
private readonly IRepository _systemDocumentRepository;
- private readonly IRepository _trialCriterionAdditionalAssessmentTypeRepository;
private readonly IRepository _readingQuestionCriterionTrialRepository;
@@ -35,7 +34,6 @@ namespace IRaCIS.Core.Application.Services
IRepository trialDocUserTypeConfirmedUserRepository,
IRepository trialRepository,
IRepository systemDocConfirmedUserRepository,
- IRepository trialCriterionAdditionalAssessmentTypeRepository,
IRepository readingQuestionCriterionTrialRepository
, IRepository systemDocumentRepository)
{
@@ -45,7 +43,6 @@ namespace IRaCIS.Core.Application.Services
this._systemDocConfirmedUserRepository = systemDocConfirmedUserRepository;
_systemDocumentRepository = systemDocumentRepository;
_readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
- _trialCriterionAdditionalAssessmentTypeRepository = trialCriterionAdditionalAssessmentTypeRepository;
}
///
@@ -227,13 +224,11 @@ namespace IRaCIS.Core.Application.Services
var trialTaskConfig = _trialRepository.Where(t => t.Id == querySystemDocument.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- //var trialCriterionAdditionalAssessmentTypeList = _trialCriterionAdditionalAssessmentTypeRepository
- // .Where(t => t.TrialReadingCriterion.TrialId == trialId && t.IsSelected == true && t.TrialReadingCriterion.IsSigned).Select(t=>new { t.CriterionType,t.AdditionalAssessmentType}).ToList();
var isManualGenerateTask= _readingQuestionCriterionTrialRepository.Where(t=>t.TrialId==trialId && t.IsSigned && t.IsAutoCreate==false).Any();
- var isAdditionalAssessment = _readingQuestionCriterionTrialRepository.Where(t => t.TrialId == trialId && t.IsSigned && t.IsAdditionalAssessment == true
- &&t.TrialCriterionAdditionalAssessmentTypeList.Any(c=>/*c.AdditionalAssessmentType==Domain.Share.Reading.AdditionalAssessmentType.BrainMetastasis &&*/ c.IsSelected==true)).Any();
+
+ var isAdditionalAssessment =false;
var isAllOnlySRReading = _readingQuestionCriterionTrialRepository.Where(t => t.TrialId == trialId && t.IsSigned).All(t => t.ReadingDivisionEnum == ReadingDivisionEnum.OnlySR);
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/ImageShareService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/ImageShareService.cs
index e84fb9df6..ab21ac4fd 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/ImageShareService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/ImageShareService.cs
@@ -5,25 +5,27 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using IRaCIS.Core.Application.Auth;
+using EasyCaching.Core;
namespace IRaCIS.Core.Application.Services
{
[AllowAnonymous, ApiExplorerSettings(GroupName = "Image")]
public class ImageShareService : BaseService, IImageShareService
{
-
+ private readonly IEasyCachingProvider _provider;
private readonly IRepository _imageShareRepository;
private readonly IRepository _studyRepository;
private readonly IConfiguration _configuration;
private readonly ITokenService _tokenService;
- public ImageShareService(IRepository imageShareRepository, IRepository studyRepository, IConfiguration configuration, ITokenService tokenService)
+ public ImageShareService(IRepository imageShareRepository, IRepository studyRepository, IConfiguration configuration, ITokenService tokenService, IEasyCachingProvider provider)
{
_imageShareRepository = imageShareRepository;
_studyRepository = studyRepository;
_configuration = configuration;
_tokenService = tokenService;
+ _provider = provider;
}
[HttpPost]
@@ -110,6 +112,7 @@ namespace IRaCIS.Core.Application.Services
return ResponseOutput.NotOk(_localizer["ISS_ShareExpiration"]);
}
+ var vitrualUserId = Guid.NewGuid();
var resource = new ResourceInfo()
{
StudyId = imageShare.StudyId,
@@ -127,7 +130,7 @@ namespace IRaCIS.Core.Application.Services
}))
};
-
+ await _provider.SetAsync(vitrualUserId.ToString(), resource.Token, TimeSpan.FromDays(7));
return ResponseOutput.Ok(resource);
}
diff --git a/IRaCIS.Core.Application/Service/Institution/SiteService.cs b/IRaCIS.Core.Application/Service/Institution/SiteService.cs
index 3ccc8139f..137d4ffd0 100644
--- a/IRaCIS.Core.Application/Service/Institution/SiteService.cs
+++ b/IRaCIS.Core.Application/Service/Institution/SiteService.cs
@@ -27,7 +27,7 @@ namespace IRaCIS.Application.Services
{
var siteQueryable = _siteRepository
- .WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName))
+ .WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName)||t.SiteNameCN.Contains(searchModel.SiteName))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.AliasName), t => t.AliasName.Contains(searchModel.AliasName))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.City), t => t.City.Contains(searchModel.City))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.Country), t => t.Country.Contains(searchModel.Country))
diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
index 85c7f3f49..0e905e2f8 100644
--- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
@@ -1968,6 +1968,18 @@ namespace IRaCIS.Core.Application.Image.QA
//已确认临床数据完整性
dbSubjectVisit.IsConfirmedClinicalData = true;
+
+ await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(x =>
+
+ (x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit) &&
+
+
+ x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == dbSubjectVisit.Id && x.IsSign == false, x => new ReadingClinicalData()
+ {
+ IsSign = true,
+ ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned
+ });
+
//var signSuccess = await _repository.BatchUpdateAsync(t => t.Id == cRCReuploadFinishedCommand.SignId, u => new TrialSign() { IsCompleted = true });
}
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
index d65654bf4..bd20071e1 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
@@ -148,6 +148,7 @@ namespace IRaCIS.Application.Services
var fileCount = await _readingClinicalDataPDFRepository.Where(t => t.ReadingClinicalDataId == indto.Id).CountAsync();
entity.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveUploaded;
+ entity.IsSign = false;
entity.FileCount = fileCount;
var success = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id);
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 60cc90cc6..a787d8d4f 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -3,6 +3,7 @@ using MassTransit;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -2276,6 +2277,42 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
//public List TableQuestions { get; set; }
public List Childrens { get; set; }
+
+ [NotMapped]
+ public List RelevanceValueList
+ {
+ get
+ {
+ try
+ {
+ return this.RelevanceValue.Split(',').ToList();
+ }
+ catch (Exception)
+ {
+
+ return new List();
+ }
+ }
+
+ }
+
+ [NotMapped]
+ public List ParentTriggerValueList
+ {
+ get
+ {
+ try
+ {
+ return this.ParentTriggerValue.Split(',').ToList();
+ }
+ catch (Exception)
+ {
+
+ return new List();
+ }
+ }
+
+ }
}
public class GetTrialReadingQuestionOutDto
diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
index eeb90d390..0984a186b 100644
--- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
+++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
@@ -503,7 +503,7 @@ namespace IRaCIS.Core.Application.Contracts
.WhereIf(surveyQueryDTO.UpdateTimeBegin != null, t => t.UpdateTime >= surveyQueryDTO.UpdateTimeBegin)
.WhereIf(surveyQueryDTO.UpdateTimeEnd != null, t => t.UpdateTime <= surveyQueryDTO.UpdateTimeEnd)
- .ProjectTo(_mapper.ConfigurationProvider);
+ .ProjectTo(_mapper.ConfigurationProvider,new { isEn_Us =_userInfo.IsEn_Us});
return await trialSiteSurveyQueryable.ToPagedListAsync(surveyQueryDTO.PageIndex, surveyQueryDTO.PageSize, surveyQueryDTO.SortField, surveyQueryDTO.Asc);
}
diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs b/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs
index ea2453623..1ad12fa3a 100644
--- a/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs
@@ -12,6 +12,7 @@ namespace IRaCIS.Core.Application.AutoMapper
{
public SiteSurveyConfig()
{
+ var isEn_Us = false;
//编辑
CreateMap().ReverseMap();
@@ -47,12 +48,12 @@ namespace IRaCIS.Core.Application.AutoMapper
CreateMap()
.ForMember(d => d.TrialSiteAliasName, u => u.MapFrom(s => s.TrialSite.TrialSiteAliasName))
- .ForMember(d => d.SiteName, u => u.MapFrom(s => s.Site.SiteName))
+ .ForMember(d => d.SiteName, u => u.MapFrom(s => isEn_Us? s.Site.SiteName:s.Site.SiteNameCN))
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode));
CreateMap();
- var isEn_Us = false;
+
CreateMap()
.ForMember(d => d.UserType, u => u.MapFrom(s => s.UserTypeRole.UserTypeShortName))
.ForMember(d => d.UserTypeEnum, u => u.MapFrom(s => s.UserTypeRole.UserTypeEnum));
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index cebb72bfa..a912aff0a 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -518,7 +518,7 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsAutoCreate { get; set; }
- public List TrialCriterionAdditionalAssessmentTypeList { get; set; } = new List();
+
public int ReadingDivisionEnum { get; set; }
@@ -986,7 +986,6 @@ namespace IRaCIS.Core.Application.Contracts
///
public bool IsUrgent { get; set; } = false;
- public List TrialCriterionAdditionalAssessmentTypeList { get; set; }=new List();
public ReadingDivisionEnum ReadingDivisionEnum { get; set; }
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs
index 4d6f03f16..f7597e0ad 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs
@@ -115,8 +115,9 @@ namespace IRaCIS.Core.Application.Contracts.DTO
public string SiteCode { get; set; } = String.Empty;
public string City { get; set; } = String.Empty;
public string Country { get; set; } = String.Empty;
- public Guid? HospitalId { get; set; }
+ public Guid? HospitalId { get; set; }
+ public string Address { get; set; } = String.Empty;
public string HospitalName { get; set; } = String.Empty;
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index 3b2e23a57..039a80267 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -40,7 +40,6 @@ namespace IRaCIS.Core.Application
private readonly IRepository _readingCriterionDictionaryRepository;
private readonly IRepository _readingTrialCriterionDictionaryRepository;
private readonly IReadingQuestionService iReadingQuestionService;
- private readonly IRepository _trialCriterionAdditionalAssessmentTypeRepository;
private readonly IRepository _readingTaskQuestionAnswer;
@@ -65,7 +64,6 @@ namespace IRaCIS.Core.Application
IReadingQuestionService iReadingQuestionService,
IEasyCachingProvider provider,
IOrganInfoService iOrganInfoService,
- IRepository trialCriterionAdditionalAssessmentTypeRepository,
IRepository visitTaskRepository,
IRepository readingTableQuestionTrialRepository,
IRepository readingTableQuestionAnswerRepository,
@@ -74,7 +72,6 @@ namespace IRaCIS.Core.Application
)
{
- _trialCriterionAdditionalAssessmentTypeRepository = trialCriterionAdditionalAssessmentTypeRepository;
_trialRepository = trialRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
@@ -188,7 +185,6 @@ namespace IRaCIS.Core.Application
trialInfo.ReadingTool = ReadingTool.Dicom;
}
- trialInfo.TrialCriterionAdditionalAssessmentTypeList = await _trialCriterionAdditionalAssessmentTypeRepository.Where(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId).ToListAsync();
return trialInfo;
@@ -212,23 +208,7 @@ namespace IRaCIS.Core.Application
if (trialCriterion.SynchronizeOriginalTime == null)
{
- //同步附加评估类型
- if (!await _trialCriterionAdditionalAssessmentTypeRepository.AnyAsync(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
- {
- AdditionalAssessment additional = new AdditionalAssessment();
- var addList = additional.GetSystemDefeaultAdditionalAssessmentList(trialCriterion.CriterionType);
-
- foreach (var addItem in addList)
- {
- await _trialCriterionAdditionalAssessmentTypeRepository.AddAsync(new TrialCriterionAdditionalAssessmentType()
- {
- CriterionType = trialCriterion.CriterionType,
- TrialReadingCriterionId = inDto.TrialReadingCriterionId,
- AdditionalAssessmentType = addItem.AdditionalAssessmentType
- });
- }
- }
@@ -604,72 +584,7 @@ namespace IRaCIS.Core.Application
});
- //判断是否存在附加评估
- if (inDto.IsAdditionalAssessment)
- {
- #region 存在,就将标准对应的附加评估选项加进去--废弃 修改到同步标准的地方去了,不管存在附加评估与否,都增加附加评估类型
- //if (!await _trialCriterionAdditionalAssessmentTypeRepository.AnyAsync(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
- //{
- // AdditionalAssessment additional = new AdditionalAssessment();
- // var addList = additional.GetSystemDefeaultAdditionalAssessmentList(inDto.CriterionType);
- // foreach (var addItem in addList)
- // {
- // await _trialCriterionAdditionalAssessmentTypeRepository.AddAsync(new TrialCriterionAdditionalAssessmentType()
- // {
- // CriterionType = inDto.CriterionType,
- // TrialReadingCriterionId = inDto.TrialReadingCriterionId,
- // AdditionalAssessmentType = addItem.AdditionalAssessmentType
- // });
- // }
- //}
- #endregion
-
-
- if (inDto.TrialCriterionAdditionalAssessmentTypeList.All(t => t.IsSelected != true))
- {
- //---选择了附加评估,必须勾选附加评估类型
- throw new BusinessValidationFailedException(_localizer["TrialConfig_AddEvalReq"]);
- }
-
- var trialId = _readingQuestionTrialRepository.Where(t => t.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).Select(t => t.TrialId).FirstOrDefault();
-
-
- if (inDto.TrialCriterionAdditionalAssessmentTypeList.Count != 0)
- {
- foreach (var updateItem in inDto.TrialCriterionAdditionalAssessmentTypeList)
- {
- if (updateItem.IsSelected == true)
- {
- //添加默认问题
- AdditionalAssessment additional = new AdditionalAssessment();
- var addTypeList = additional.GetSystemDefeaultAdditionalAssessmentList(updateItem.CriterionType, updateItem.AdditionalAssessmentType);
-
- if (!await _readingQuestionTrialRepository.AsQueryable().IgnoreQueryFilters().AnyAsync(t => t.ReadingQuestionCriterionTrialId == updateItem.TrialReadingCriterionId && t.IsAdditional == true))
- {
- foreach (var addType in addTypeList)
- {
- foreach (var question in addType.AdditionalQuestionList)
- {
- question.ReadingQuestionCriterionTrialId = updateItem.TrialReadingCriterionId;
- question.TrialId = trialId;
-
- await _readingQuestionTrialRepository.AddAsync(question);
- }
- }
- }
- }
-
- await _trialCriterionAdditionalAssessmentTypeRepository.UpdatePartialFromQueryAsync(updateItem.Id, t => new TrialCriterionAdditionalAssessmentType() { IsSelected = updateItem.IsSelected });
- }
- }
-
- }
- else
- {
- //删除附加问题
- await _readingQuestionTrialRepository.BatchDeleteNoTrackingAsync(t => t.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId && t.IsAdditional == true);
- }
var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
@@ -677,67 +592,9 @@ namespace IRaCIS.Core.Application
return ResponseOutput.Ok(result);
}
- ///
- /// 获取附加评估选项列表
- ///
- ///
- ///
- [Obsolete]
- public async Task> GetTrialCriterionAdditionalAssessmentOptionList(Guid trialReadingCriterionId)
- {
- return await _trialCriterionAdditionalAssessmentTypeRepository.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).ToListAsync();
- }
- ///
- /// 保存附加评估设置 (自动添加 或者删除附加评估问题)
- ///
- ///
- ///
- [Obsolete]
- public async Task SetTrialCriterionAdditionalAssessment(List updateList)
- {
- if (updateList.Count == 0)
- {
- return ResponseOutput.Ok();
- }
-
- var trialId = _readingQuestionTrialRepository.Where(t => t.ReadingQuestionCriterionTrialId == updateList.First().TrialReadingCriterionId).Select(t => t.TrialId).FirstOrDefault();
-
- foreach (var updateItem in updateList)
- {
- if (updateItem.IsSelected == true)
- {
- //添加默认问题
- AdditionalAssessment additional = new AdditionalAssessment();
- var addTypeList = additional.GetSystemDefeaultAdditionalAssessmentList(updateItem.CriterionType, updateItem.AdditionalAssessmentType);
-
- foreach (var addType in addTypeList)
- {
- foreach (var question in addType.AdditionalQuestionList)
- {
- question.ReadingQuestionCriterionTrialId = updateItem.TrialReadingCriterionId;
- question.TrialId = trialId;
-
- await _readingQuestionTrialRepository.AddAsync(question);
- }
- }
- }
- else
- {
- //删除附加问题
-
- await _readingQuestionTrialRepository.BatchDeleteNoTrackingAsync(t => t.ReadingQuestionCriterionTrialId == updateItem.TrialReadingCriterionId && t.IsAdditional == true);
- }
-
- await _trialCriterionAdditionalAssessmentTypeRepository.UpdatePartialFromQueryAsync(updateItem.Id, t => new TrialCriterionAdditionalAssessmentType() { IsSelected = updateItem.IsSelected });
- }
-
-
- await _readingQuestionTrialRepository.SaveChangesAsync();
- return ResponseOutput.Ok();
- }
///
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs
index 6fad583bd..27338466c 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs
@@ -286,8 +286,16 @@ namespace IRaCIS.Application.Services
await _repository.BatchDeleteAsync(o => o.SubjectVisit.TrialId == trialId);
await _repository.BatchDeleteAsync(o => o.TrialId == trialId);
+
+ await _repository.BatchDeleteAsync(o => o.ClinicalForm.TrialId == trialId);
+ await _repository.BatchDeleteAsync(o => o.ClinicalForm.TrialId == trialId);
+ await _repository.BatchDeleteAsync(o => o.TrialId == trialId);
+
await _repository.BatchDeleteAsync(o => o.TrialId == trialId);
await _repository.BatchDeleteAsync(o => o.TrialReadingCriterion.TrialId == trialId);
+
+ await _repository.BatchDeleteAsync(o => o.TrialReadingCriterion.TrialId == trialId);
+
await _repository.BatchDeleteAsync(o => o.TrialId == trialId);
await _repository.BatchDeleteAsync(t => t.TrialId == trialId);
await _repository.BatchDeleteAsync(t => t.TrialId == trialId);
@@ -374,8 +382,7 @@ namespace IRaCIS.Application.Services
await _repository.BatchDeleteAsync(t => t.TrialId == trialId);
await _repository.BatchDeleteAsync(t => t.TrialId == trialId);
-
-
+
await _repository.BatchDeleteAsync(t => t.TrialId == trialId);
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs
index 9145bcad1..e3dc9b5c9 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs
@@ -194,7 +194,7 @@ namespace IRaCIS.Core.Application.Services
var siteQueryable = _siteRepository.AsQueryable(true)
- .WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName))
+ .WhereIf(!string.IsNullOrWhiteSpace(searchModel.SiteName), t => t.SiteName.Contains(searchModel.SiteName)|| t.SiteNameCN.Contains(searchModel.SiteName))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.AliasName), t => t.AliasName.Contains(searchModel.AliasName))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.City), t => t.City.Contains(searchModel.City))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.Country), t => t.Country.Contains(searchModel.Country))
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
index c3cbf70e9..ed95fb96a 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
@@ -106,12 +106,11 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.TrialId, u => u.MapFrom(s => trialId))
.ForMember(d => d.IsSelect, u => u.MapFrom(t => t.UserTrials.Any(t => t.TrialId == trialId)));
-
+ var isEn_Us = false;
CreateMap()
.ForMember(d => d.HospitalName, u => u.MapFrom(s => s.Hospital.HospitalName));
//trial site 选择列表 subjectVisit pannel 模式添加的时候
- var isEn_Us = false;
CreateMap()
.ForMember(d => d.IsSelect, u => u.MapFrom(s => s.TrialSiteList.Any(k => k.TrialId == trialId)))
diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
index 74158eeb2..f1702dd28 100644
--- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
@@ -419,12 +419,20 @@ namespace IRaCIS.Core.Application.Services
item.InstanceCount = item.InstanceList.Count();
+ item.Description = "Key Series";
+
+ var modalityList = await _repository.Where(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
+ ThenBy(s => s.SeriesTime).Select(x => x.Modality).Distinct().ToListAsync(); ;
+ item.Modality = string.Join(",", modalityList);
thisVisitTaskStudy.SeriesList.Add(item);
thisVisitTaskStudy.SeriesCount = thisVisitTaskStudy.SeriesList.Count();
}
+
+
+
result.Add(thisVisitTaskStudy);
}
diff --git a/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs b/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs
index 86fb420db..f72acc924 100644
--- a/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs
+++ b/IRaCIS.Core.Application/Triggers/VisitTaskIsFrontTaskNeedSignButNotSignTrigger.cs
@@ -22,14 +22,13 @@ namespace IRaCIS.Core.Application.Triggers
private readonly IRepository _readingTaskQuestionAnswerRepository;
- private readonly IRepository _subjectAdditionalEvaluationResultRepository;
public VisitTaskIsFrontTaskNeedSignButNotSignTrigger(
IRepository visitTaskRepository, IRepository trialReadingCriterionRepository, IRepository trialReadingQuestionRepository
- , IRepository readingTaskQuestionAnswerRepository, IRepository subjectAdditionalEvaluationResultRepository)
+ , IRepository readingTaskQuestionAnswerRepository)
{
_trialReadingCriterionRepository = trialReadingCriterionRepository;
@@ -37,7 +36,6 @@ namespace IRaCIS.Core.Application.Triggers
_trialReadingQuestionRepository = trialReadingQuestionRepository;
_readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
- _subjectAdditionalEvaluationResultRepository = subjectAdditionalEvaluationResultRepository;
}
diff --git a/IRaCIS.Core.Domain/Allocation/PIAudit.cs b/IRaCIS.Core.Domain/Allocation/PIAudit.cs
index e4f83d6dd..f2afa8db4 100644
--- a/IRaCIS.Core.Domain/Allocation/PIAudit.cs
+++ b/IRaCIS.Core.Domain/Allocation/PIAudit.cs
@@ -35,6 +35,8 @@ namespace IRaCIS.Core.Domain.Models
public string NotAgreeReason { get; set; } = string.Empty;
+ public PIAuditState? PIAuditState { get; set; }
+
public string PIAuditImagePath { get; set; } = string.Empty;
diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs
deleted file mode 100644
index bb5b63628..000000000
--- a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-
-//--------------------------------------------------------------------
-// 此代码由T4模板自动生成 byzhouhang 20210918
-// 生成时间 2023-03-17 11:50:31
-// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
-using System;
-using IRaCIS.Core.Domain.Share;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-namespace IRaCIS.Core.Domain.Models
-{
- ///
- ///SubjectAdditionalEvaluationResult
- ///
- [Table("SubjectAdditionalEvaluationResult")]
- public class SubjectAdditionalEvaluationResult : Entity, IAuditUpdate, IAuditAdd
- {
-
-
- [JsonIgnore]
- [ForeignKey("TrialReadingQuestionId")]
- public ReadingQuestionTrial TrialReadingQuestion { get; set; }
-
-
- public Guid TrialReadingQuestionId { get; set; }
-
-
-
-
- public Guid SubjectId { get; set; }
-
-
- public Guid TrialReadingCriterionId { get; set; }
-
-
- public DateTime CreateTime { get; set; }
-
-
- public Guid CreateUserId { get; set; }
-
-
- public Guid UpdateUserId { get; set; }
-
-
- public DateTime UpdateTime { get; set; }
-
-
- public Guid? VisitTaskId { get; set; }
-
-
- public string Answer { get; set; }
-
- ///
- /// 附加评估答案翻译字典
- ///
- [Required]
- public string TranslateDictionaryCode { get; set; }=string.Empty;
-
- ///
- /// 是否是最终结果
- ///
- [Required]
- public bool IsFinalResult { get; set; }
-
- ///
- /// 最终结果
- ///
- [Required]
- public string FinalAnswer { get; set; }
-
- ///
- /// 最终结果翻字典
- ///
- [Required]
- public string FinalTranslateDictionaryCode { get; set; }
-
- }
-
-}
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs
index 7ead42443..37f656f98 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/CriterionNidusTrial.cs
@@ -15,11 +15,14 @@ namespace IRaCIS.Core.Domain.Models
[Table("CriterionNidusTrial")]
public class CriterionNidusTrial : Entity, IAuditAdd
{
-
- ///
+ [JsonIgnore]
+ [ForeignKey("CriterionId")]
+ public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
+
+ ///
/// CriterionId
///
- [Required]
+ [Required]
public Guid CriterionId { get; set; }
///
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
index cda0d91d1..36163fa6b 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs
@@ -264,9 +264,7 @@ namespace IRaCIS.Core.Domain.Models
public List ReadingQuestionTrialList = new List();
- [JsonIgnore]
- public List TrialCriterionAdditionalAssessmentTypeList { get; set; } = new List();
[JsonIgnore]
diff --git a/IRaCIS.Core.Domain/SQLFile/20230713删除表.sql b/IRaCIS.Core.Domain/SQLFile/20230713删除表.sql
index 20de530f0..8b5965d2e 100644
--- a/IRaCIS.Core.Domain/SQLFile/20230713删除表.sql
+++ b/IRaCIS.Core.Domain/SQLFile/20230713删除表.sql
@@ -1,6 +1,7 @@
--医生相关
DROP TABLE Attachment;
DROP TABLE Doctor;
+DROP TABLE DoctorPayInformation
DROP TABLE Postgraduate;
DROP TABLE Education;
DROP TABLE ResearchPublication;
@@ -9,6 +10,8 @@ DROP TABLE Vacation;
DROP TABLE DoctorCriterionFile;
DROP TABLE DoctorDictionary;
+DROP TABLE TrialExperienceCriteria
+
--费用相关
@@ -22,6 +25,10 @@ DROP TABLE TrialRevenuesPrice;
DROP TABLE TrialRevenuesPriceVerification;
DROP TABLE VolumeReward;
+--new
+DROP TABLE Payment
+DROP TABLE PaymentDetail
+
--工作量
DROP TABLE [Workload];
@@ -48,6 +55,11 @@ DROP TABLE SubjectCriteriaEvaluation;
DROP TABLE SubjectCriteriaEvaluationVisitFilter;
DROP TABLE SubjectCriteriaEvaluationVisitStudyFilter;
+--new
+DROP TABLE SubjectAdditionalEvaluationResult
+DROP TABLE TrialCriterionAdditionalAssessmentType
+
+
diff --git a/IRaCIS.Core.Domain/Visit/Subject.cs b/IRaCIS.Core.Domain/Visit/Subject.cs
index 9b1d0c066..dcece25c9 100644
--- a/IRaCIS.Core.Domain/Visit/Subject.cs
+++ b/IRaCIS.Core.Domain/Visit/Subject.cs
@@ -26,11 +26,6 @@ namespace IRaCIS.Core.Domain.Models
- [JsonIgnore]
-
- public List SubjectAdditionalEvaluationResult { get; set; }
-
-
[JsonIgnore]
public List ReadingTaskQuestionAnswerList { get; set; }
diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
index ae3bc93d8..eff31d601 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
@@ -249,10 +249,6 @@ namespace IRaCIS.Core.Infra.EFCore.Common
dicValueList = await _dbContext.Dictionary.Where(t => dicIdList.Contains(t.Id)).Select(t => t.Value).ToListAsync();
}
- // 附加评估
-
- var addtionalAssesementList = await _dbContext.TrialCriterionAdditionalAssessmentType.Where(t => t.TrialReadingCriterionId == entity.Id && t.IsSelected != null)
- .Select(t => new { t.AdditionalAssessmentType, t.IsSelected }).ToListAsync();
await InsertInspection(entity, type, x => new InspectionConvertDTO()
@@ -268,7 +264,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}, new
{
EvaluationResultTypes = dicValueList.Count > 0 ? string.Join(",", dicValueList) : string.Empty,
- AdditionalAssessmentTypeList = addtionalAssesementList
+
});
}
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index fd26a923c..849440fd9 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -260,10 +260,8 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet TrialClinicalDataSetCriterion { get; set; }
- public virtual DbSet TrialCriterionAdditionalAssessmentType { get; set; }
- public virtual DbSet SubjectAdditionalEvaluationResult { get; set; }
@@ -513,54 +511,54 @@ namespace IRaCIS.Core.Infra.EFCore
}
catch (UniqueConstraintException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null? ex.Message :ex.InnerException?.Message);
throw new DBSaveFailedException("该唯一键已经存在于数据库中。");
}
catch (TimeoutException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("数据库操作已经超时,请稍后重试。");
}
catch (CannotInsertNullException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("无法在非空列上插入空值。");
}
catch (MaxLengthExceededException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("字符串超过了数据库列的最大长度。");
}
catch (NumericOverflowException ex)
{
- _logger.LogError(ex.Message);
-
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("数值超过了数据类型的范围。");
}
catch (SyntaxErrorException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("SQL 查询中存在语法错误。");
}
catch (ReferenceConstraintException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("无法进行当前操作,当前数据不符合外键约束。");
}
catch (DbUpdateConcurrencyException ex)
{
- _logger.LogError(ex.Message);
+ _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
throw new DBSaveFailedException("SQL 事务失败,请检查环境。");
}
}
+
public async Task AddAudit()