Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1e9efd6d40 | |||
| 80d78cb989 | |||
| 681ba17e37 | |||
| 3385b65967 | |||
| d6045ef7e7 | |||
| f66829ca62 | |||
| 471ea524b7 | |||
| 34e9269916 | |||
| 29d50fdd2d | |||
| 9f19dfceac |
@@ -69,7 +69,7 @@ public class FileUploadRecordAddOrEdit
|
|||||||
public interface IFileUploadRecordService
|
public interface IFileUploadRecordService
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
Task<IResponseOutput> AddOrUpdateFileUploadRecord(FileUploadRecordAddOrEdit addOrEditFileUploadRecord);
|
Task<IResponseOutput> AddOrUpdateFileUploadRecord(FileUploadRecordAddOrEdit addOrEditFileUploadRecord);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -89,6 +89,7 @@ public class FileUploadRecordService(IRepository<FileUploadRecord> _fileUploadRe
|
|||||||
|
|
||||||
public async Task<IResponseOutput> AddOrUpdateFileUploadRecord(FileUploadRecordAddOrEdit addOrEditFileUploadRecord)
|
public async Task<IResponseOutput> AddOrUpdateFileUploadRecord(FileUploadRecordAddOrEdit addOrEditFileUploadRecord)
|
||||||
{
|
{
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
|
||||||
addOrEditFileUploadRecord.IP = _userInfo.IP;
|
addOrEditFileUploadRecord.IP = _userInfo.IP;
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"RemoteNew": "Server=101.132.193.237,1433;Database=Prod_IRC_pidr_restore_new;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
"RemoteNew": "Server=101.132.193.237,1433;Database=Prod_IRC_pidr_restore;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
||||||
"Hangfire": "Server=101.132.193.237,1433;Database=irc_Hangfire_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
"Hangfire": "Server=101.132.193.237,1433;Database=irc_Hangfire_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
||||||
//"RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
|
//"RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
|
||||||
//"Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
|
//"Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
|
||||||
@@ -44,11 +44,11 @@
|
|||||||
"RegionId": "cn-shanghai",
|
"RegionId": "cn-shanghai",
|
||||||
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
||||||
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
||||||
"AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
|
"AccessKeyId": "LTAI5tFUCCmz5TwghZHsj45Y",
|
||||||
"AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
|
"AccessKeySecret": "8evrBy1fVfzJG25i67Jm0xqn9Xcw2T",
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
|
"RoleArn": "acs:ram::1078130221702011:role/uat-oss-access",
|
||||||
"BucketName": "zy-irc-store",
|
"BucketName": "tl-med-irc-event-store",
|
||||||
"ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
|
"ViewEndpoint": "https://tl-med-rc-event-cache.oss-cn-shanghai.aliyuncs.com",
|
||||||
"Region": "oss-cn-shanghai",
|
"Region": "oss-cn-shanghai",
|
||||||
"DurationSeconds": 7200
|
"DurationSeconds": 7200
|
||||||
},
|
},
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"OpenUserComplexPassword": true,
|
"OpenUserComplexPassword": true,
|
||||||
"OpenSignDocumentBeforeWork": true,
|
"OpenSignDocumentBeforeWork": true,
|
||||||
|
|
||||||
"OpenLoginLimit": true,
|
"OpenLoginLimit": false,
|
||||||
"LoginMaxFailCount": 5,
|
"LoginMaxFailCount": 5,
|
||||||
"LoginFailLockMinutes": 30,
|
"LoginFailLockMinutes": 30,
|
||||||
"AutoLoginOutMinutes": 120,
|
"AutoLoginOutMinutes": 120,
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
},
|
},
|
||||||
"ObjectStoreService": {
|
"ObjectStoreService": {
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
"ObjectStoreUse": "AliyunOSS",
|
||||||
"IsOpenStoreSync": true,
|
"IsOpenStoreSync": false,
|
||||||
"ApiDeployRegion": "CN",
|
"ApiDeployRegion": "CN",
|
||||||
"SyncConfigList": [
|
"SyncConfigList": [
|
||||||
{
|
{
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
"Target": "AliyunOSS",
|
"Target": "AliyunOSS",
|
||||||
"UploadRegion": "US",
|
"UploadRegion": "US",
|
||||||
"TargetRegion": "CN",
|
"TargetRegion": "CN",
|
||||||
"IsOpenSync": true
|
"IsOpenSync": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"AliyunOSS": {
|
"AliyunOSS": {
|
||||||
|
|||||||
+6
-6
@@ -37,13 +37,13 @@ public class TrialGlobalLimitActionFilter(IFusionCache _fusionCache, IUserInfo _
|
|||||||
|
|
||||||
#region 特殊用户类型拦截
|
#region 特殊用户类型拦截
|
||||||
// 用户类型检查
|
// 用户类型检查
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA && _userInfo.RequestUrl.ToLower() != "TrialDocument/userConfirm".ToLower())
|
//if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA && _userInfo.RequestUrl.ToLower() != "TrialDocument/userConfirm".ToLower())
|
||||||
{
|
//{
|
||||||
//对不起,您的账户没有操作权限
|
// //对不起,您的账户没有操作权限
|
||||||
context.Result = new JsonResult(ResponseOutput.NotOk(I18n.T("TrialResource_NoAccessPermission")));
|
// context.Result = new JsonResult(ResponseOutput.NotOk(I18n.T("TrialResource_NoAccessPermission")));
|
||||||
|
|
||||||
return;
|
// return;
|
||||||
}
|
//}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -47,12 +47,12 @@ public class TrialGlobalLimitEndpointFilter(IFusionCache _fusionCache, IUserInfo
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region 特殊用户类型拦截
|
#region 特殊用户类型拦截
|
||||||
// 用户类型检查
|
//// 用户类型检查
|
||||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA && _userInfo.RequestUrl.ToLower() != "TrialDocument/userConfirm".ToLower())
|
//if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA && _userInfo.RequestUrl.ToLower() != "TrialDocument/userConfirm".ToLower())
|
||||||
{
|
//{
|
||||||
//对不起,您的账户没有操作权限
|
// //对不起,您的账户没有操作权限
|
||||||
return Results.Json(ResponseOutput.NotOk(I18n.T("TrialResource_NoAccessPermission")));
|
// return Results.Json(ResponseOutput.NotOk(I18n.T("TrialResource_NoAccessPermission")));
|
||||||
}
|
//}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3284,6 +3284,20 @@
|
|||||||
批次Id
|
批次Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.Inspection.InspectionService.getInspectionById(IRaCIS.Core.Application.Service.Inspection.DTO.InspectionDto)">
|
||||||
|
<summary>
|
||||||
|
根据Id获取稽查记录
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.Inspection.InspectionService.SetJsonDetail(IRaCIS.Core.Application.Service.Inspection.DTO.InspectionDto)">
|
||||||
|
<summary>
|
||||||
|
设置稽查记录JsonDetail
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.Inspection.InspectionService.SetTrialShowInspection(IRaCIS.Core.Application.Service.Inspection.DTO.SetTrialShowInspection)">
|
<member name="M:IRaCIS.Core.Application.Service.Inspection.InspectionService.SetTrialShowInspection(IRaCIS.Core.Application.Service.Inspection.DTO.SetTrialShowInspection)">
|
||||||
<summary>
|
<summary>
|
||||||
设置项目稽查配置
|
设置项目稽查配置
|
||||||
@@ -10218,6 +10232,11 @@
|
|||||||
问题分类
|
问题分类
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetFilterTableQuestionInDto.QuestionClassify">
|
||||||
|
<summary>
|
||||||
|
问题分类
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.SetOncologyQuestion.EvaluationResult">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.SetOncologyQuestion.EvaluationResult">
|
||||||
<summary>
|
<summary>
|
||||||
评估结果
|
评估结果
|
||||||
@@ -15001,6 +15020,13 @@
|
|||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetFilterTableQuestion(IRaCIS.Core.Application.Service.Reading.Dto.GetFilterTableQuestionInDto)">
|
||||||
|
<summary>
|
||||||
|
获取单个表格问题及答案 过滤问题
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetCustomTableQuestionAnswer(IRaCIS.Core.Application.Service.Reading.Dto.GetCustomTableQuestionAnswerInDto)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetCustomTableQuestionAnswer(IRaCIS.Core.Application.Service.Reading.Dto.GetCustomTableQuestionAnswerInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取自定义问题以及答案
|
获取自定义问题以及答案
|
||||||
|
|||||||
@@ -119,11 +119,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
var subjectCode = string.Empty;
|
var subjectCode = string.Empty;
|
||||||
var subjectId = inQuery.SubjectId;
|
var subjectId = inQuery.SubjectId;
|
||||||
bool? isIRImageDownloaded = null;
|
bool? isIRImageDownloaded = true;
|
||||||
|
|
||||||
if(inQuery.VisitTaskId != null)
|
if(inQuery.VisitTaskId != null)
|
||||||
{
|
{
|
||||||
isIRImageDownloaded= _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => t.IsIRImageDownloaded).FirstOrDefault();
|
//isIRImageDownloaded= _visitTaskRepository.Where(t => t.Id == inQuery.VisitTaskId).Select(t => t.IsIRImageDownloaded).FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (criterionInfo.IsReadingTaskViewInOrder == ReadingOrder.Random)
|
if (criterionInfo.IsReadingTaskViewInOrder == ReadingOrder.Random)
|
||||||
@@ -228,7 +228,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
|
|
||||||
var query = _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.SourceSubjectVisit.CheckState == CheckStateEnum.CVPassed
|
var query = _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.SourceSubjectVisit.CheckState == CheckStateEnum.CVPassed
|
||||||
&& t.DoctorUserId == _userInfo.UserRoleId && t.TaskState == TaskState.Effect)
|
/* && t.DoctorUserId == _userInfo.UserRoleId*/ && t.TaskState == TaskState.Effect)
|
||||||
//满足 有序,或者随机只看到当前任务的dicom 非dicom检查
|
//满足 有序,或者随机只看到当前任务的dicom 非dicom检查
|
||||||
.WhereIf(criterionInfo.IsReadingTaskViewInOrder != ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null, t => t.Id == inQuery.VisitTaskId)
|
.WhereIf(criterionInfo.IsReadingTaskViewInOrder != ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null, t => t.Id == inQuery.VisitTaskId)
|
||||||
.Select(u => new SubjectImageUploadDTO()
|
.Select(u => new SubjectImageUploadDTO()
|
||||||
@@ -391,9 +391,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var addEntity = await _studyMonitorRepository.AddAsync(studyMonitor, true);
|
//var addEntity = await _studyMonitorRepository.AddAsync(studyMonitor, true);
|
||||||
|
|
||||||
return ResponseOutput.Ok(addEntity.Id);
|
return ResponseOutput.Ok(Guid.NewGuid());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -580,25 +580,25 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
var trialId = incommand.TrialId;
|
var trialId = incommand.TrialId;
|
||||||
|
|
||||||
|
|
||||||
var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == incommand.StudyMonitorId);
|
//var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == incommand.StudyMonitorId);
|
||||||
studyMonitor.UploadFinishedTime = DateTime.Now;
|
//studyMonitor.UploadFinishedTime = DateTime.Now;
|
||||||
studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
//studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
||||||
studyMonitor.FailedFileCount = incommand.FailedFileCount;
|
//studyMonitor.FailedFileCount = incommand.FailedFileCount;
|
||||||
studyMonitor.IsSuccess = incommand.FailedFileCount == 0;
|
//studyMonitor.IsSuccess = incommand.FailedFileCount == 0;
|
||||||
studyMonitor.RecordPath = incommand.RecordPath;
|
//studyMonitor.RecordPath = incommand.RecordPath;
|
||||||
studyMonitor.FileSize = incommand.Study.SeriesList.SelectMany(t => t.InstanceList).Sum(t => t.FileSize);
|
//studyMonitor.FileSize = incommand.Study.SeriesList.SelectMany(t => t.InstanceList).Sum(t => t.FileSize);
|
||||||
|
|
||||||
var studyId = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString(), visiTaskId.ToString());
|
var studyId = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString(), visiTaskId.ToString());
|
||||||
var findStudy = await _taskStudyRepository.FirstOrDefaultAsync(t => t.Id == studyId);
|
var findStudy = await _taskStudyRepository.FirstOrDefaultAsync(t => t.Id == studyId);
|
||||||
|
|
||||||
|
|
||||||
studyMonitor.StudyId = studyId;
|
//studyMonitor.StudyId = studyId;
|
||||||
studyMonitor.StudyCode = findStudy?.StudyCode ?? "";
|
//studyMonitor.StudyCode = findStudy?.StudyCode ?? "";
|
||||||
|
|
||||||
studyMonitor.IsDicomReUpload = findStudy != null;
|
//studyMonitor.IsDicomReUpload = findStudy != null;
|
||||||
|
|
||||||
//上传
|
//上传
|
||||||
if (studyMonitor.IsDicomReUpload == false)
|
if (findStudy == null)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@@ -640,7 +640,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
await _taskStudyRepository.AddAsync(study);
|
await _taskStudyRepository.AddAsync(study);
|
||||||
|
|
||||||
|
|
||||||
studyMonitor.StudyCode = study.StudyCode;
|
//studyMonitor.StudyCode = study.StudyCode;
|
||||||
|
|
||||||
|
|
||||||
foreach (var seriesItem in incommand.Study.SeriesList)
|
foreach (var seriesItem in incommand.Study.SeriesList)
|
||||||
@@ -689,9 +689,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//重传的时候也要赋值检查Id
|
////重传的时候也要赋值检查Id
|
||||||
studyMonitor.StudyId = findStudy.Id;
|
//studyMonitor.StudyId = findStudy.Id;
|
||||||
studyMonitor.StudyCode = findStudy.StudyCode;
|
//studyMonitor.StudyCode = findStudy.StudyCode;
|
||||||
|
|
||||||
//特殊处理逻辑
|
//特殊处理逻辑
|
||||||
findStudy.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Union(findStudy.Modalities.Split("、", StringSplitOptions.RemoveEmptyEntries)).Distinct());
|
findStudy.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Union(findStudy.Modalities.Split("、", StringSplitOptions.RemoveEmptyEntries)).Distinct());
|
||||||
@@ -708,9 +708,12 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
TaskSeries dicomSeries = await _taskSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId);
|
TaskSeries dicomSeries = await _taskSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId);
|
||||||
|
|
||||||
|
var isNewSeries = false;
|
||||||
//判断重复
|
//判断重复
|
||||||
if (dicomSeries == null)
|
if (dicomSeries == null)
|
||||||
{
|
{
|
||||||
|
isNewSeries = true;
|
||||||
|
|
||||||
var series = _mapper.Map<TaskSeries>(seriesItem);
|
var series = _mapper.Map<TaskSeries>(seriesItem);
|
||||||
|
|
||||||
series.Id = seriesId;
|
series.Id = seriesId;
|
||||||
@@ -736,6 +739,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
//找到该序列已经存在的instanceId
|
//找到该序列已经存在的instanceId
|
||||||
var existInstanceIdList = _taskInstanceRepository.Where(t => t.SeriesId == dicomSeries.Id).Select(t => t.Id).ToList();
|
var existInstanceIdList = _taskInstanceRepository.Where(t => t.SeriesId == dicomSeries.Id).Select(t => t.Id).ToList();
|
||||||
|
|
||||||
|
|
||||||
foreach (var instanceItem in seriesItem.InstanceList)
|
foreach (var instanceItem in seriesItem.InstanceList)
|
||||||
{
|
{
|
||||||
var insntance = _mapper.Map<TaskInstance>(instanceItem);
|
var insntance = _mapper.Map<TaskInstance>(instanceItem);
|
||||||
@@ -755,9 +759,20 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
await _taskInstanceRepository.AddAsync(insntance);
|
await _taskInstanceRepository.AddAsync(insntance);
|
||||||
|
|
||||||
dicomSeries.InstanceCount++;
|
if (isNewSeries == false)
|
||||||
|
{
|
||||||
|
dicomSeries.InstanceCount++;
|
||||||
|
}
|
||||||
findStudy.InstanceCount++;
|
findStudy.InstanceCount++;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//更新,需要删除缓存,并更新路径
|
||||||
|
|
||||||
|
await _oSSService.DeleteFromPrefix(insntance.Path, true);
|
||||||
|
|
||||||
|
await _taskInstanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == instanceId, u => new TaskInstance() { Path = insntance.Path });
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加
|
// 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加
|
||||||
@@ -1053,7 +1068,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var query = from u in _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId
|
var query = from u in _visitTaskRepository.Where(t => t.SubjectId == subjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId
|
||||||
&& t.SourceSubjectVisit.CheckState == CheckStateEnum.CVPassed && t.DoctorUserId == doctorUserId && t.TaskState == TaskState.Effect)
|
&& t.SourceSubjectVisit.CheckState == CheckStateEnum.CVPassed /*&& t.DoctorUserId == doctorUserId*/ && t.TaskState == TaskState.Effect)
|
||||||
//满足 有序,或者随机只看到当前任务的dicom 非dicom检查
|
//满足 有序,或者随机只看到当前任务的dicom 非dicom检查
|
||||||
.WhereIf(info.IsReadingTaskViewInOrder != ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null, t => t.Id == inQuery.VisitTaskId)
|
.WhereIf(info.IsReadingTaskViewInOrder != ReadingOrder.SubjectRandom && inQuery.VisitTaskId != null, t => t.Id == inQuery.VisitTaskId)
|
||||||
join ns in _noneDicomStudyReposiotry.Where(t => t.SubjectId == subjectId).WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|"))
|
join ns in _noneDicomStudyReposiotry.Where(t => t.SubjectId == subjectId).WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|"))
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using FellowOakDicom;
|
using DocumentFormat.OpenXml.InkML;
|
||||||
|
using FellowOakDicom;
|
||||||
using FellowOakDicom.Imaging;
|
using FellowOakDicom.Imaging;
|
||||||
using FellowOakDicom.IO.Buffer;
|
using FellowOakDicom.IO.Buffer;
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
@@ -67,6 +68,80 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class DeleteImagePathCommand
|
||||||
|
{
|
||||||
|
public string Path { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IResponseOutput> DeleteImageCache(DeleteImagePathCommand incommand)
|
||||||
|
{
|
||||||
|
await _oSSService.DeleteFromPrefix(incommand.Path, true);
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IResponseOutput> GetAnonymizeInfo(Guid visitTaskId, Guid? subjectVisitId)
|
||||||
|
{
|
||||||
|
|
||||||
|
Guid svId = Guid.Empty;
|
||||||
|
|
||||||
|
if (subjectVisitId != null)
|
||||||
|
{
|
||||||
|
svId = subjectVisitId.Value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
svId = (Guid)_visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => t.SourceSubjectVisitId).FirstOrDefault();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 写入dicom 固定的信息,以及组织路径的信息 以及匿名化的信息
|
||||||
|
var otherData = GetSaveToDicomInfo(svId);
|
||||||
|
|
||||||
|
var anonymizeList = _fusionCache.GetOrSetAsync(CacheKeys.SystemAnonymization, _ => CacheHelper.GetSystemAnonymizationListAsync(_systemAnonymizationRepository), TimeSpan.FromDays(7)).Result;
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(new
|
||||||
|
{
|
||||||
|
DicomStoreInfo = otherData,
|
||||||
|
AnonymizeFixedList = anonymizeList.Where(t => t.IsFixed).ToList(),
|
||||||
|
AnonymizeNotFixedList = anonymizeList.Where(t => t.IsFixed == false).ToList()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IResponseOutput> UpdateModality(Guid seriesId, string modality, bool isCRCReplace,
|
||||||
|
[FromServices] IRepository<TaskSeries> _taskSeriesRepository,
|
||||||
|
[FromServices] IRepository<TaskStudy> _taskStudyRepository
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (isCRCReplace)
|
||||||
|
{
|
||||||
|
await _dicomSeriesRepository.BatchUpdateNoTrackingAsync(t => t.Id == seriesId, u => new DicomSeries() { Modality = modality });
|
||||||
|
|
||||||
|
var studyId = _dicomSeriesRepository.Where(t => t.Id == seriesId).Select(t => t.StudyId).FirstOrDefault();
|
||||||
|
|
||||||
|
//处理Modality
|
||||||
|
var seriesModalityList = _dicomStudyRepository.Where(t => t.Id == studyId).SelectMany(u => u.SeriesList.Select(t => t.Modality)).Distinct();
|
||||||
|
string ModaliyStr = string.Join('、', seriesModalityList.ToList());
|
||||||
|
|
||||||
|
await _dicomStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == studyId, u => new DicomStudy() { Modalities = ModaliyStr });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _taskSeriesRepository.BatchUpdateNoTrackingAsync(t => t.Id == seriesId, u => new TaskSeries() { Modality = modality });
|
||||||
|
|
||||||
|
|
||||||
|
var studyId = _taskSeriesRepository.Where(t => t.Id == seriesId).Select(t => t.StudyId).FirstOrDefault();
|
||||||
|
|
||||||
|
//处理Modality
|
||||||
|
var seriesModalityList = _taskStudyRepository.Where(t => t.Id == studyId).SelectMany(u => u.SeriesList.Select(t => t.Modality)).Distinct();
|
||||||
|
string ModaliyStr = string.Join('、', seriesModalityList.ToList());
|
||||||
|
|
||||||
|
await _taskStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == studyId, u => new TaskStudy() { Modalities = ModaliyStr });
|
||||||
|
|
||||||
|
}
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private static async Task<bool> TryWriteMergedDicomAsync(Func<Task<Stream>> sourceFactory, Stream output)
|
private static async Task<bool> TryWriteMergedDicomAsync(Func<Task<Stream>> sourceFactory, Stream output)
|
||||||
{
|
{
|
||||||
@@ -581,9 +656,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var addEntity = await _studyMonitorRepository.AddAsync(studyMonitor, true);
|
//var addEntity = await _studyMonitorRepository.AddAsync(studyMonitor, true);
|
||||||
|
|
||||||
return ResponseOutput.Ok(addEntity.Id);
|
return ResponseOutput.Ok(Guid.NewGuid());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -644,20 +719,20 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
{
|
{
|
||||||
var trialId = incommand.TrialId;
|
var trialId = incommand.TrialId;
|
||||||
|
|
||||||
var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == incommand.StudyMonitorId);
|
//var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == incommand.StudyMonitorId);
|
||||||
studyMonitor.UploadFinishedTime = DateTime.Now;
|
//studyMonitor.UploadFinishedTime = DateTime.Now;
|
||||||
studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
//studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
||||||
studyMonitor.FailedFileCount = incommand.FailedFileCount;
|
//studyMonitor.FailedFileCount = incommand.FailedFileCount;
|
||||||
studyMonitor.IsSuccess = incommand.FailedFileCount == 0;
|
//studyMonitor.IsSuccess = incommand.FailedFileCount == 0;
|
||||||
studyMonitor.RecordPath = incommand.RecordPath;
|
//studyMonitor.RecordPath = incommand.RecordPath;
|
||||||
studyMonitor.FileSize = incommand.Study.SeriesList.SelectMany(t => t.InstanceList).Sum(t => t.FileSize);
|
//studyMonitor.FileSize = incommand.Study.SeriesList.SelectMany(t => t.InstanceList).Sum(t => t.FileSize);
|
||||||
|
|
||||||
var studyId = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
|
var studyId = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
|
||||||
var findStudy = await _dicomStudyRepository.FirstOrDefaultAsync(t => t.Id == studyId);
|
var findStudy = await _dicomStudyRepository.FirstOrDefaultAsync(t => t.Id == studyId);
|
||||||
|
|
||||||
studyMonitor.StudyId = studyId;
|
//studyMonitor.StudyId = studyId;
|
||||||
studyMonitor.StudyCode = findStudy?.StudyCode ?? "";
|
//studyMonitor.StudyCode = findStudy?.StudyCode ?? "";
|
||||||
studyMonitor.IsDicomReUpload = findStudy != null;
|
//studyMonitor.IsDicomReUpload = findStudy != null;
|
||||||
|
|
||||||
|
|
||||||
if (incommand.Study.SeriesList.SelectMany(t => t.InstanceList).Count() == 0)
|
if (incommand.Study.SeriesList.SelectMany(t => t.InstanceList).Count() == 0)
|
||||||
@@ -668,7 +743,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
}
|
}
|
||||||
|
|
||||||
//上传
|
//上传
|
||||||
if (studyMonitor.IsDicomReUpload == false)
|
if ((findStudy != null) == false)
|
||||||
{
|
{
|
||||||
var addStudy = _mapper.Map<DicomStudy>(incommand.Study);
|
var addStudy = _mapper.Map<DicomStudy>(incommand.Study);
|
||||||
|
|
||||||
@@ -713,7 +788,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
studyMonitor.StudyCode = addStudy.StudyCode;
|
//studyMonitor.StudyCode = addStudy.StudyCode;
|
||||||
|
|
||||||
|
|
||||||
foreach (var seriesItem in incommand.Study.SeriesList)
|
foreach (var seriesItem in incommand.Study.SeriesList)
|
||||||
@@ -772,9 +847,14 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
|
|
||||||
DicomSeries dicomSeries = await _dicomSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId);
|
DicomSeries dicomSeries = await _dicomSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId);
|
||||||
|
|
||||||
|
|
||||||
|
var isNewSeries = false;
|
||||||
|
|
||||||
//判断重复
|
//判断重复
|
||||||
if (dicomSeries == null)
|
if (dicomSeries == null)
|
||||||
{
|
{
|
||||||
|
isNewSeries = true;
|
||||||
|
|
||||||
var series = _mapper.Map<DicomSeries>(seriesItem);
|
var series = _mapper.Map<DicomSeries>(seriesItem);
|
||||||
|
|
||||||
series.Id = seriesId;
|
series.Id = seriesId;
|
||||||
@@ -790,29 +870,53 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||||||
//新的序列 那么 检查的序列数量+1
|
//新的序列 那么 检查的序列数量+1
|
||||||
findStudy.SeriesCount += 1;
|
findStudy.SeriesCount += 1;
|
||||||
}
|
}
|
||||||
else
|
//else
|
||||||
{
|
//{
|
||||||
//该序列掉了instance
|
// //该序列掉了instance
|
||||||
dicomSeries.InstanceCount += seriesItem.InstanceList.Count;
|
// dicomSeries.InstanceCount += seriesItem.InstanceList.Count;
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
//找到该序列已经存在的instanceId
|
||||||
|
var existInstanceIdList = _dicomInstanceRepository.Where(t => t.SeriesId == dicomSeries.Id).Select(t => t.Id).ToList();
|
||||||
|
|
||||||
foreach (var instanceItem in seriesItem.InstanceList)
|
foreach (var instanceItem in seriesItem.InstanceList)
|
||||||
{
|
{
|
||||||
var insntance = _mapper.Map<DicomInstance>(instanceItem);
|
var insntance = _mapper.Map<DicomInstance>(instanceItem);
|
||||||
insntance.Id = IdentifierHelper.CreateGuid(insntance.StudyInstanceUid, insntance.SeriesInstanceUid, insntance.SopInstanceUid, trialId.ToString());
|
insntance.Id = IdentifierHelper.CreateGuid(insntance.StudyInstanceUid, insntance.SeriesInstanceUid, insntance.SopInstanceUid, trialId.ToString());
|
||||||
insntance.StudyId = findStudy.Id;
|
|
||||||
insntance.SeriesId = dicomSeries.Id;
|
|
||||||
|
|
||||||
insntance.TrialId = incommand.TrialId;
|
if (!existInstanceIdList.Any(t => t == insntance.Id))
|
||||||
insntance.SubjectId = incommand.SubjectId;
|
{
|
||||||
insntance.SubjectVisitId = incommand.SubjectVisitId;
|
insntance.StudyId = findStudy.Id;
|
||||||
|
insntance.SeriesId = dicomSeries.Id;
|
||||||
|
|
||||||
|
insntance.TrialId = incommand.TrialId;
|
||||||
|
insntance.SubjectId = incommand.SubjectId;
|
||||||
|
insntance.SubjectVisitId = incommand.SubjectVisitId;
|
||||||
|
|
||||||
|
await _dicomInstanceRepository.AddAsync(insntance);
|
||||||
|
|
||||||
|
if (isNewSeries == false)
|
||||||
|
{
|
||||||
|
dicomSeries.InstanceCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
findStudy.InstanceCount++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//更新,需要删除缓存,并更新路径
|
||||||
|
|
||||||
|
await _oSSService.DeleteFromPrefix(insntance.Path, true);
|
||||||
|
|
||||||
|
await _dicomInstanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == insntance.Id, u => new DicomInstance() { Path = insntance.Path });
|
||||||
|
}
|
||||||
|
|
||||||
await _dicomInstanceRepository.AddAsync(insntance);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加
|
//// 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加
|
||||||
findStudy.InstanceCount += seriesItem.InstanceList.Count;
|
//findStudy.InstanceCount += seriesItem.InstanceList.Count;
|
||||||
|
|
||||||
|
|
||||||
if (incommand.Study.RadionuclideTotalDose != string.Empty
|
if (incommand.Study.RadionuclideTotalDose != string.Empty
|
||||||
|
|||||||
@@ -449,6 +449,12 @@ namespace IRaCIS.Core.Application.Service.Inspection.DTO
|
|||||||
public List<GetTrialShowInspectionOutDto> Children { get; set; }
|
public List<GetTrialShowInspectionOutDto> Children { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class InspectionDto
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public string? JsonDetail { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class SetTrialShowInspection
|
public class SetTrialShowInspection
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,6 +27,39 @@ namespace IRaCIS.Core.Application.Service.Inspection
|
|||||||
IRepository<FrontAuditConfig> _frontAuditConfigRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IInspectionService
|
IRepository<FrontAuditConfig> _frontAuditConfigRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IInspectionService
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据Id获取稽查记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IResponseOutput> getInspectionById(InspectionDto inDto)
|
||||||
|
{
|
||||||
|
var dataInspection = await _dataInspectionRepository.Where(x=>x.Id==inDto.Id).Select(x=> new InspectionDto()
|
||||||
|
{
|
||||||
|
Id=x.Id,
|
||||||
|
JsonDetail = x.JsonDetail,
|
||||||
|
|
||||||
|
}).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(dataInspection);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置稽查记录JsonDetail
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IResponseOutput> SetJsonDetail(InspectionDto inDto)
|
||||||
|
{
|
||||||
|
await _dataInspectionRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.Id, u => new DataInspection() { JsonDetail = inDto.JsonDetail });
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(inDto);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置项目稽查配置
|
/// 设置项目稽查配置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -168,6 +168,19 @@ namespace IRaCIS.Core.Application.Service
|
|||||||
.Where(t => t.UserTypeId == _userInfo.UserTypeId && (t.Menu.MenuType == "M" || t.Menu.MenuType == "C") && t.Menu.IsEnable)
|
.Where(t => t.UserTypeId == _userInfo.UserTypeId && (t.Menu.MenuType == "M" || t.Menu.MenuType == "C") && t.Menu.IsEnable)
|
||||||
.ProjectTo<MenuTreeNode>(_mapper.ConfigurationProvider).ToListAsync();
|
.ProjectTo<MenuTreeNode>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA)
|
||||||
|
{
|
||||||
|
var otherGuid = new List<Guid>() { Guid.Parse("41d2bcbe-4ae2-4158-856e-08da0661d17d"), Guid.Parse("5acebe02-99de-4e39-f090-08da0c7fe82c") };
|
||||||
|
|
||||||
|
var otherlist = await _userTypeMenuRepository
|
||||||
|
.Where(t => otherGuid.Contains(t.MenuId) && (t.Menu.MenuType == "M" || t.Menu.MenuType == "C") && t.Menu.IsEnable)
|
||||||
|
.ProjectTo<MenuTreeNode>(_mapper.ConfigurationProvider).Distinct().ToListAsync();
|
||||||
|
|
||||||
|
menuFunctionlist.AddRange(otherlist);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var list = menuFunctionlist!.ToTree((root, child) => child!.ParentId == Guid.Empty,
|
var list = menuFunctionlist!.ToTree((root, child) => child!.ParentId == Guid.Empty,
|
||||||
(root, child) => child!.ParentId == root!.MenuId,
|
(root, child) => child!.ParentId == root!.MenuId,
|
||||||
(child, datalist) =>
|
(child, datalist) =>
|
||||||
|
|||||||
+17
-17
@@ -1074,28 +1074,28 @@ namespace IRaCIS.Core.Application.Service
|
|||||||
/// <exception cref="BusinessValidationFailedException"></exception>
|
/// <exception cref="BusinessValidationFailedException"></exception>
|
||||||
private async Task VerifyTaskIsSign(Guid visitTaskid)
|
private async Task VerifyTaskIsSign(Guid visitTaskid)
|
||||||
{
|
{
|
||||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskid).FirstNotNullAsync();
|
//var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskid).FirstNotNullAsync();
|
||||||
|
|
||||||
if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned))
|
//if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned))
|
||||||
{
|
//{
|
||||||
throw new BusinessValidationFailedException(_localizer["ReadingImage_BeSigned"]);
|
// throw new BusinessValidationFailedException(_localizer["ReadingImage_BeSigned"]);
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.TaskState != TaskState.Effect))
|
//if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.TaskState != TaskState.Effect))
|
||||||
{
|
//{
|
||||||
throw new BusinessValidationFailedException(_localizer["ReadingImage_Beinvalid"]);
|
// throw new BusinessValidationFailedException(_localizer["ReadingImage_Beinvalid"]);
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (await _visitTaskRepository.AnyAsync(x => x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
|
//if (await _visitTaskRepository.AnyAsync(x => x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
|
||||||
&& x.IsAnalysisCreate && taskInfo.IsAnalysisCreate
|
//&& x.IsAnalysisCreate && taskInfo.IsAnalysisCreate
|
||||||
&& x.SubjectId == taskInfo.SubjectId && x.TaskState == TaskState.Effect &&
|
//&& x.SubjectId == taskInfo.SubjectId && x.TaskState == TaskState.Effect &&
|
||||||
((x.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed && x.DoctorUserId == taskInfo.DoctorUserId) || x.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
//((x.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed && x.DoctorUserId == taskInfo.DoctorUserId) || x.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed)
|
||||||
|
|
||||||
))
|
//))
|
||||||
{
|
//{
|
||||||
throw new BusinessValidationFailedException(_localizer["ReadingImage_PresenceReview"]);
|
// throw new BusinessValidationFailedException(_localizer["ReadingImage_PresenceReview"]);
|
||||||
}
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class AuditEntityInterceptor(IUserInfo _userInfo,
|
|||||||
AuditEntities(eventData.Context);
|
AuditEntities(eventData.Context);
|
||||||
|
|
||||||
//IRC稽查 放在savechange 之前 不影响之前的逻辑
|
//IRC稽查 放在savechange 之前 不影响之前的逻辑
|
||||||
IRCDataInspection(eventData.Context);
|
//IRCDataInspection(eventData.Context);
|
||||||
|
|
||||||
//return result;
|
//return result;
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ public class AuditEntityInterceptor(IUserInfo _userInfo,
|
|||||||
AuditEntities(eventData.Context);
|
AuditEntities(eventData.Context);
|
||||||
|
|
||||||
//IRC稽查 放在savechange 之前 不影响之前的逻辑
|
//IRC稽查 放在savechange 之前 不影响之前的逻辑
|
||||||
IRCDataInspection(eventData.Context);
|
//IRCDataInspection(eventData.Context);
|
||||||
|
|
||||||
//return result;
|
//return result;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user