diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 3e79fff0b..e8ac5c764 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1031,13 +1031,12 @@
-
+
IR 阅片页面获取下载检查的信息 会根据标准进行过滤检查,(后端要考虑到一致性分析 subjectCode的问题)
检查在访视下面,所以需要传递下载的访视Id,另外下载访视下面那些检查,就把访视下的对应的检查Id 丢到数组里就好
-
@@ -1047,6 +1046,20 @@
+
+
+ 影像下载成功回调
+
+
+
+
+
+
+ 项目影像下载监控列表
+
+
+
+
打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
@@ -4732,11 +4745,6 @@
文件路径
-
-
- 创建时间
-
-
创建人
@@ -14778,13 +14786,6 @@
影像阅片临床数据签名
-
-
- 一致性分析的临床数据
-
-
-
-
获取下拉菜单
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
index 2f0b41192..9f5dbfc37 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
@@ -221,7 +221,6 @@ namespace IRaCIS.Core.Application.ViewModel
public class AnalysisTaskView : ReadingTaskView
{
- public bool? IsSelfAnalysis { get; set; }
public int ConsistentClinicalDataCount { get; set; } = 0;
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index e480900e2..55193572a 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -965,7 +965,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
else
{
var taskQuery = _visitTaskRepository.Where(x => x.TrialId == inQuery.TrialId && x.DoctorUserId == _userInfo.Id && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId)
- // .Where(x=>x.Subject.ClinicalDataList.Any(c => c.IsSign && (c.ReadingId == x.SouceReadModuleId || c.ReadingId == x.SourceSubjectVisitId)))
.Where(x => !x.Subject.IsDeleted).Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign);
iRUnReadOut = new IRUnReadOutDto()
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index 27ced84d5..fcb0823f4 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -821,7 +821,7 @@ namespace IRaCIS.Core.Application.Service.Common
.WhereIf(inQuery.SubjectVisitId != null, t => t.SubjectId == inQuery.SubjectVisitId)
.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
.WhereIf(inQuery.IsDicom != null, t => t.IsDicom == inQuery.IsDicom)
- .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Uploader), t => t.Uploader.UserName.Contains(inQuery.Uploader))
+ .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Uploader), t => t.CreateUser.UserName.Contains(inQuery.Uploader))
.WhereIf(inQuery.IsSuccess != null, t => t.IsSuccess == inQuery.IsSuccess)
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.StudyCode), t => t.StudyCode.Contains(inQuery.StudyCode))
.Select(t => new UnionStudyMonitorExportDto()
@@ -838,7 +838,7 @@ namespace IRaCIS.Core.Application.Service.Common
IsDicom = t.IsDicom,
- Uploader = t.Uploader.UserName,
+ Uploader = t.CreateUser.UserName,
IP = t.IP,
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
index 7d82d7ec2..cb64cd532 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
@@ -1,4 +1,5 @@
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
+using IRaCIS.Core.Domain.Share;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@@ -551,6 +552,54 @@ namespace IRaCIS.Core.Application.Contracts
}
+ public class TrialImageDownloadView
+ {
+ public Guid TrialId { get; set; }
+
+ public string SubjectCode { get; set; }
+
+ public bool IsSuccess { get; set; }
+
+ public DateTime DownloadStartTime { get; set; }
+ public DateTime? DownloadEndTime { get; set; }
+
+ public string VisitName { get; set; }
+
+ public ImageType ImageType { get; set; }
+
+ public int NoneDicomStudyCount { get; set; }
+
+ public int DicomStudyCount { get; set; }
+
+ public int ImageCount { get; set; }
+ public long ImageSize { get; set; }
+
+
+ public string UserName { get; set; }
+
+ public string UserFullName { get; set; }
+ public DateTime CreateTime { get; set; }
+
+ }
+
+ public class TrialIamgeDownQuery:PageInput
+ {
+ [NotDefault]
+ public Guid TrialId { get; set; }
+
+ public string? SubjectCode { get; set; }
+
+ public ImageType? ImageType { get; set; }
+
+ public UserTypeEnum? UserType { get; set; }
+
+ public bool? IsSuccess { get; set; }
+
+ public DateTime? DownloadStartTime { get; set; }
+ public DateTime? DownloadEndTime { get; set; }
+
+ public string? IP { get; set; }
+ }
public class SubjectVisitTaskInfo
{
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
index 41d195d93..890a2c9bc 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs
@@ -49,7 +49,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
IRepository _readingQuestionCriterionTrialRepository,
IRepository _noneDicomStudyReposiotry,
IRepository _noneDicomStudyFileReposiotry,
- IDistributedLockProvider _distributedLockProvider) : BaseService, IDownloadAndUploadService
+ IDistributedLockProvider _distributedLockProvider,
+ IRepository _trialImageDownloadRepository,
+ IRepository _subjectRepository) : BaseService, IDownloadAndUploadService
{
@@ -220,9 +222,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}
-
-
-
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
public async Task PreArchiveDicomStudy(PriArchiveTaskStudyCommand preArchiveStudyCommand)
@@ -678,11 +677,14 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
var isQueryDicom = inQuery.DicomStudyIdList.Count > 0;
var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0;
+ var imageType = (isQueryDicom && isQueryNoneDicom) ? ImageType.DicomAndNoneDicom : (isQueryDicom ? ImageType.Dicom : ImageType.NoneDicom);
+
var query = from sv in _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId)
select new
{
+ TrialId = sv.TrialId,
SubjectCode = sv.Subject.Code,
VisitName = sv.VisitName,
@@ -719,14 +721,32 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{
file.FileName,
file.Path,
- file.FileType
+ file.FileType,
+ file.FileSize,
})
}).ToList()
};
var result = query.FirstOrDefault();
- return ResponseOutput.Ok(result);
+ var preDownloadInfo = new TrialImageDownload()
+ {
+ Id = NewId.NextSequentialGuid(),
+ TrialId = result.TrialId,
+ SubjectCode = result.SubjectCode,
+ IP = _userInfo.IP,
+ DownloadStartTime = DateTime.Now,
+ IsSuccess = false,
+ ImageType = imageType,
+ VisitName = string.Join(" | ", result.VisitName),
+ NoneDicomStudyCount = result.NoneDicomStudyList.Count(),
+ DicomStudyCount = result.StudyList.Count(),
+ ImageCount = result.StudyList.Sum(s => s.SeriesList.Sum(s => s.InstanceList.Count())) + result.NoneDicomStudyList.Sum(s => s.FileList.Count()),
+ ImageSize = result.StudyList.Sum(t => t.SeriesList.Sum(s => s.InstanceList.Sum(i => i.FileSize))) + result.NoneDicomStudyList.Sum(t => t.FileList.Sum(s => s.FileSize))
+ ?? 0
+ };
+ await _trialImageDownloadRepository.AddAsync(preDownloadInfo, true);
+ return ResponseOutput.Ok(result, preDownloadInfo.Id);
}
@@ -752,10 +772,10 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}
var query = _visitTaskRepository.Where(t => t.SubjectId == inQuery.SubjectId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId
- && t.SourceSubjectVisitId != null && t.DoctorUserId == doctorUserId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == isAnalysisCreate)
+ && t.SourceSubjectVisitId != null && t.DoctorUserId == doctorUserId && t.TaskState == TaskState.Effect)
.ProjectTo(_mapper.ConfigurationProvider);
-
+ //这里过滤是否是一致性分析的
var list = await query.Where(t => t.SubjectCode == inQuery.SubjectCode).ToListAsync();
foreach (var item in list)
@@ -817,17 +837,18 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
/// 检查在访视下面,所以需要传递下载的访视Id,另外下载访视下面那些检查,就把访视下的对应的检查Id 丢到数组里就好
///
///
- ///
///
[HttpPost]
- public async Task GetIRReadingDownloadStudyInfo(IRDownloadQuery inQuery, [FromServices] IRepository _subjectRepository)
+ public async Task GetIRReadingDownloadStudyInfo(IRDownloadQuery inQuery)
{
var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId)
- .Select(t => new { t.IsImageFilter, t.CriterionModalitys }).FirstNotNullAsync();
+ .Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.TrialId }).FirstNotNullAsync();
var isQueryDicom = inQuery.DicomStudyIdList.Count > 0;
var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0;
+ var imageType = (isQueryDicom && isQueryNoneDicom) ? ImageType.DicomAndNoneDicom : (isQueryDicom ? ImageType.Dicom : ImageType.NoneDicom);
+
var taskIdList = inQuery.SubjectVisitTaskList.Select(t => t.TaskId).ToList();
var subjectVisitIdList = inQuery.SubjectVisitTaskList.Select(t => t.SubjectVisitId).ToList();
@@ -856,7 +877,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
InstancePathList = z.DicomInstanceList.Select(k => new
{
- k.Path
+ k.Path,
+ k.FileSize
})
})
@@ -874,7 +896,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{
file.FileName,
file.Path,
- file.FileType
+ file.FileType,
+ file.FileSize
})
})
};
@@ -885,7 +908,25 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
- return ResponseOutput.Ok(result);
+ var preDownloadInfo = new TrialImageDownload()
+ {
+ Id = NewId.NextSequentialGuid(),
+ TrialId = info.TrialId,
+ SubjectCode = inQuery.SubjectCode,
+ IP=_userInfo.IP,
+ DownloadStartTime = DateTime.Now,
+ IsSuccess = false,
+ ImageType = imageType,
+ VisitName = string.Join(" | ", result.Select(t => t.VisitName).OrderBy(t => t).ToList()),
+ NoneDicomStudyCount = result.Sum(t => t.NoneDicomStudyList.Count()),
+ DicomStudyCount = result.Sum(t => t.StudyList.Count()),
+ ImageCount = result.Sum(t => t.StudyList.Sum(s => s.SeriesList.Sum(s => s.InstancePathList.Count())) + t.NoneDicomStudyList.Sum(s => s.FileList.Count())),
+ ImageSize = result.Sum(t => t.StudyList.Sum(t => t.SeriesList.Sum(s => s.InstancePathList.Sum(i => i.FileSize))) + t.NoneDicomStudyList.Sum(t => t.FileList.Sum(s => s.FileSize))
+ ) ?? 0
+ };
+
+ await _trialImageDownloadRepository.AddAsync(preDownloadInfo,true);
+ return ResponseOutput.Ok(result, preDownloadInfo.Id);
}
///
@@ -937,6 +978,40 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
+ ///
+ /// 影像下载成功回调
+ ///
+ ///
+ ///
+ public async Task DownloadImageSuccess(Guid trialImageDownloadId)
+ {
+ await _trialImageDownloadRepository.UpdatePartialFromQueryAsync(t => t.Id == trialImageDownloadId, u => new TrialImageDownload()
+ { DownloadEndTime = DateTime.Now, IsSuccess = true }, true);
+ return ResponseOutput.Ok();
+ }
+
+ ///
+ /// 项目影像下载监控列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetTrialDownloadList(TrialIamgeDownQuery inQuery)
+ {
+ var query = _trialImageDownloadRepository.Where(t => t.TrialId == inQuery.TrialId)
+ .WhereIf(inQuery.SubjectCode.IsNotNullOrEmpty(), t => t.SubjectCode.Contains(inQuery.SubjectCode))
+ .WhereIf(inQuery.IP.IsNotNullOrEmpty(), t => t.IP.Contains(inQuery.IP))
+ .WhereIf(inQuery.ImageType != null, t => t.ImageType == inQuery.ImageType)
+ .WhereIf(inQuery.UserType != null, t => t.CreateUser.UserTypeEnum == inQuery.UserType)
+ .WhereIf(inQuery.IsSuccess != null, t => t.IsSuccess == inQuery.IsSuccess)
+ .WhereIf(inQuery.DownloadStartTime != null, t => t.DownloadStartTime >= inQuery.DownloadStartTime)
+ .WhereIf(inQuery.DownloadEndTime != null, t => t.DownloadEndTime <= inQuery.DownloadEndTime)
+
+ .ProjectTo(_mapper.ConfigurationProvider);
+
+ return await query.ToPagedListAsync(inQuery);
+ }
+
#region 之前后端下载废弃
///
@@ -1361,9 +1436,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}
#endregion
-
-
-
#region 按照任务为维度 展示上传的列表 废弃
///
/// IR 影像上传任务列表 --old 20240903 界面调整,现在先废弃
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
index 9c7bc702c..a3eb2f0fe 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
@@ -411,7 +411,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
TrialSiteCode = t.Subject.TrialSite.TrialSiteCode,
- Uploader = t.Uploader.UserName,
+ Uploader = t.CreateUser.UserName,
UploadTime = t.CreateTime
@@ -493,7 +493,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
.WhereIf(inQuery.SubjectVisitId != null, t => t.SubjectId == inQuery.SubjectVisitId)
.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
.WhereIf(inQuery.IsDicom != null, t => t.IsDicom == inQuery.IsDicom)
- .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Uploader), t => t.Uploader.UserName.Contains(inQuery.Uploader))
+ .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Uploader), t => t.CreateUser.UserName.Contains(inQuery.Uploader))
.WhereIf(inQuery.IsSuccess != null, t => t.IsSuccess == inQuery.IsSuccess)
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.StudyCode), t => t.StudyCode.Contains(inQuery.StudyCode))
.Select(t => new UnionStudyMonitorModel()
@@ -514,7 +514,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
TrialSiteCode = t.Subject.TrialSite.TrialSiteCode,
- Uploader = t.Uploader.UserName,
+ Uploader = t.CreateUser.UserName,
UploadTime = t.CreateTime,
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs
index 78b0c12ea..6b0cf422a 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs
@@ -43,8 +43,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap().IncludeMembers(t => t.Subject, u => u.SubjectVisit)
.ForMember(d => d.SiteName, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteName))
- .ForMember(d => d.UploaderFirstName, u => u.MapFrom(s => s.Uploader.FirstName))
- .ForMember(d => d.UploaderLastName, u => u.MapFrom(s => s.Uploader.LastName))
+ .ForMember(d => d.UploaderFirstName, u => u.MapFrom(s => s.CreateUser.FirstName))
+ .ForMember(d => d.UploaderLastName, u => u.MapFrom(s => s.CreateUser.LastName))
.ForMember(d => d.UploadedTime, u => u.MapFrom(s => s.CreateTime));
CreateMap();
@@ -69,7 +69,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap()
.ForMember(o => o.IsCompleteClinicalData, t => t.MapFrom(u => !u.ReadingClinicalDataList.Any(x => x.ReadingClinicalDataPDFList.Count() == 0)))
.ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
- .ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName))
+ .ForMember(o => o.Uploader, t => t.MapFrom(u => u.CreateUser.LastName + " / " + u.CreateUser.FirstName))
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id))
.ForMember(o => o.IsHaveUploadFailed, t => t.MapFrom(u => u.DicomStudyMonitorList.Any(t => t.FailedFileCount > 0)))
.ForMember(o => o.Modalities, t => t.MapFrom(u => string.Join('、', u.SeriesList.Select(t => t.Modality).Distinct())));
@@ -143,7 +143,10 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.NoneDicomStudyList, u => u.MapFrom(s => s.SourceSubjectVisit.NoneDicomStudyList))
;
-
+ CreateMap()
+ .ForMember(d => d.UserFullName, u => u.MapFrom(s => s.CreateUser.FullName))
+ .ForMember(d => d.UserName, u => u.MapFrom(s => s.CreateUser.UserName));
+
}
}
diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
index 4e27834da..9bef9dc24 100644
--- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
+++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
@@ -1279,7 +1279,6 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsBaseLine { get; set; }
public bool IsUrgent { get; set; }
- public Guid? ClinicalDataSignUserId { get; set; }
public bool IsQCConfirmedReupload { get; set; }
diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
index 0806e360d..7420acff1 100644
--- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
@@ -536,7 +536,7 @@ namespace IRaCIS.Core.Application.Service
// 一致性核查文件
CreateMap()
- .ForMember(d => d.CreateUserName, u => u.MapFrom(t => t.User.FirstName + "/" + t.User.LastName));
+ .ForMember(d => d.CreateUserName, u => u.MapFrom(t => t.CreateUser.FullName));
//CRC 质疑列表
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
index 7d2d5a84e..2b1568116 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs
@@ -376,11 +376,11 @@ namespace IRaCIS.Application.Services
return ResponseOutput.Result(result);
}
- ///
- /// 一致性分析的临床数据
- ///
- ///
- ///
+ /////
+ ///// 一致性分析的临床数据
+ /////
+ /////
+ /////
//public async Task ReadClinicalDataSign(ReadingClinicalDataSignIndto inDto)
//{
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
index 00ac54b9e..180f9eee2 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
@@ -161,11 +161,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List TrialCriterionNameList { get; set; }
- ///
- /// 创建时间
- ///
- public DateTime CreateTime { get; set; }
-
///
/// 创建人
///
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index fe279c652..1cdb45816 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -337,7 +337,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap()
.ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
- .ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName))
+ .ForMember(o => o.Uploader, t => t.MapFrom(u => u.CreateUser.LastName + " / " + u.CreateUser.FirstName))
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id));
CreateMap()
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
index b72a4ea04..e03d132b2 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -132,7 +132,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
TrialSiteCode = dicomStudy.Subject.TrialSite.TrialSiteCode,
- Uploader = dicomStudy.Uploader.UserName,
+ Uploader = dicomStudy.CreateUser.UserName,
UploadTime = dicomStudy.CreateTime
};
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
index ed572a3c3..7666c65a7 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
@@ -191,8 +191,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
CreateMap()
- .ForMember(t => t.UserRealName, u => u.MapFrom(c => c.User.FullName))
- .ForMember(t => t.UserName, u => u.MapFrom(c => c.User.UserName));
+ .ForMember(t => t.UserRealName, u => u.MapFrom(c => c.CreateUser.FullName))
+ .ForMember(t => t.UserName, u => u.MapFrom(c => c.CreateUser.UserName));
diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs
index 7f2b67c54..3123ebec9 100644
--- a/IRaCIS.Core.Application/TestService.cs
+++ b/IRaCIS.Core.Application/TestService.cs
@@ -159,10 +159,10 @@ namespace IRaCIS.Application.Services
ConfirmUserId = confirm.ConfirmUserId,
ConfirmTime = confirm.ConfirmTime,
- RealName = confirm.User.FullName,
- UserName = confirm.User.UserName,
- UserTypeId = confirm.User.UserTypeId,
- UserTypeShortName = confirm.User.UserTypeRole.UserTypeShortName,
+ RealName = confirm.ConfirmUser.FullName,
+ UserName = confirm.ConfirmUser.UserName,
+ UserTypeId = confirm.ConfirmUser.UserTypeId,
+ UserTypeShortName = confirm.ConfirmUser.UserTypeRole.UserTypeShortName,
FullFilePath = sysDoc.Path
};
diff --git a/IRaCIS.Core.Application/Triggers/SubjectVisitCheckPassedTrigger.cs b/IRaCIS.Core.Application/Triggers/SubjectVisitCheckPassedTrigger.cs
index 505700b95..acf9923a2 100644
--- a/IRaCIS.Core.Application/Triggers/SubjectVisitCheckPassedTrigger.cs
+++ b/IRaCIS.Core.Application/Triggers/SubjectVisitCheckPassedTrigger.cs
@@ -65,40 +65,7 @@ namespace IRaCIS.Core.Application.Triggers
}
- }
- // 触发临床数据
- //if (context.ChangeType == ChangeType.Added)
- //{
- // var cRCClinicalDatas = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == context.Entity.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
-
- // .Select(x => new
- // {
- // x.Id,
- // x.ClinicalDataLevel,
- // }).ToListAsync();
-
- // List readingClinicals = new List();
- // readingClinicals.AddRange(
-
- // cRCClinicalDatas.WhereIf(!context.Entity.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Select(x => new ReadingClinicalData()
- // {
- // ClinicalDataTrialSetId = x.Id,
- // IsVisit = true,
- // SubjectId = context.Entity.SubjectId,
- // ReadingId = context.Entity.Id,
- // TrialId = context.Entity.TrialId
-
- // }).ToList()
-
- // );
-
-
- // await _readingClinicalDataRepository.AddRangeAsync(readingClinicals);
- // await _readingClinicalDataRepository.SaveChangesAsync();
-
- //}
-
-
+ }
}
}
}
\ No newline at end of file
diff --git a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs
index 0adc8f6e1..0dc2897ef 100644
--- a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs
+++ b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs
@@ -31,10 +31,6 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
public User RequestReReadingConfirmUser { get; set; }
-
- [JsonIgnore]
- public User CreateUser { get; set; }
-
[JsonIgnore]
public Trial Trial { get; set; }
diff --git a/IRaCIS.Core.Domain/BaseModel/Entity.cs b/IRaCIS.Core.Domain/BaseModel/Entity.cs
index 26c0b0fc9..854414413 100644
--- a/IRaCIS.Core.Domain/BaseModel/Entity.cs
+++ b/IRaCIS.Core.Domain/BaseModel/Entity.cs
@@ -31,7 +31,7 @@ namespace IRaCIS.Core.Domain.Models
#region 领域事件 仅仅允许通过提供的方法进行操作
-
+ [JsonIgnore]
private readonly List _domainEvents = [];
[JsonIgnore]
@@ -68,6 +68,10 @@ namespace IRaCIS.Core.Domain.Models
public Guid CreateUserId { get; set; }
public DateTime CreateTime { get; set; }
+
+ [ForeignKey("CreateUserId")]
+ [JsonIgnore]
+ public User CreateUser { get; set; }
}
public abstract class BaseAddDeleteAuditEntity : Entity, IAuditAdd, ISoftDelete
@@ -78,6 +82,10 @@ namespace IRaCIS.Core.Domain.Models
public Guid? DeleteUserId { get; set; }
public bool IsDeleted { get; set; }
public DateTime? DeletedTime { get; set; }
+
+ [ForeignKey("CreateUserId")]
+ [JsonIgnore]
+ public User CreateUser { get; set; }
}
public abstract class BaseFullAuditEntity : Entity, IAuditUpdate, IAuditAdd
@@ -86,6 +94,10 @@ namespace IRaCIS.Core.Domain.Models
public DateTime CreateTime { get; set; }
public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; }
+
+ [ForeignKey("CreateUserId")]
+ [JsonIgnore]
+ public User CreateUser { get; set; }
}
@@ -98,6 +110,10 @@ namespace IRaCIS.Core.Domain.Models
public DateTime CreateTime { get; set; }
public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; }
+
+ [ForeignKey("CreateUserId")]
+ [JsonIgnore]
+ public User CreateUser { get; set; }
}
@@ -108,6 +124,8 @@ namespace IRaCIS.Core.Domain.Models
public Guid CreateUserId { get; set; }
public DateTime CreateTime { get; set; }
+
+
}
public abstract class BaseAuditUpdateEntity : Entity, IAuditUpdate
diff --git a/IRaCIS.Core.Domain/Document/SystemDocConfirmedUser.cs b/IRaCIS.Core.Domain/Document/SystemDocConfirmedUser.cs
index c684334ef..13b1121ef 100644
--- a/IRaCIS.Core.Domain/Document/SystemDocConfirmedUser.cs
+++ b/IRaCIS.Core.Domain/Document/SystemDocConfirmedUser.cs
@@ -21,7 +21,7 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
[ForeignKey("ConfirmUserId")]
- public User User { get; set; }
+ public User ConfirmUser { get; set; }
#endregion
diff --git a/IRaCIS.Core.Domain/Image/DicomStudy.cs b/IRaCIS.Core.Domain/Image/DicomStudy.cs
index b22588a77..be3b91965 100644
--- a/IRaCIS.Core.Domain/Image/DicomStudy.cs
+++ b/IRaCIS.Core.Domain/Image/DicomStudy.cs
@@ -24,11 +24,6 @@ namespace IRaCIS.Core.Domain.Models
[ForeignKey("SubjectVisitId")]
public SubjectVisit SubjectVisit { get; set; }
-
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User Uploader { get; set; }
-
[JsonIgnore]
public List ReadingClinicalDataList { get; set; }
diff --git a/IRaCIS.Core.Domain/Image/DicomStudyMonitor.cs b/IRaCIS.Core.Domain/Image/DicomStudyMonitor.cs
index e3d7716da..896391437 100644
--- a/IRaCIS.Core.Domain/Image/DicomStudyMonitor.cs
+++ b/IRaCIS.Core.Domain/Image/DicomStudyMonitor.cs
@@ -37,9 +37,6 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
[ForeignKey("TrialId")]
public Trial Trial { get; set; }
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User Uploader { get; set; }
#endregion
diff --git a/IRaCIS.Core.Domain/Image/NoneDicomStudy.cs b/IRaCIS.Core.Domain/Image/NoneDicomStudy.cs
index cc952b815..84f13892f 100644
--- a/IRaCIS.Core.Domain/Image/NoneDicomStudy.cs
+++ b/IRaCIS.Core.Domain/Image/NoneDicomStudy.cs
@@ -27,11 +27,6 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
public Subject Subject { get; set; }
-
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User CreateUser { get; set; }
-
#endregion
diff --git a/IRaCIS.Core.Domain/Image/TaskStudy.cs b/IRaCIS.Core.Domain/Image/TaskStudy.cs
index 7cabd23e5..7d163196d 100644
--- a/IRaCIS.Core.Domain/Image/TaskStudy.cs
+++ b/IRaCIS.Core.Domain/Image/TaskStudy.cs
@@ -26,11 +26,6 @@ namespace IRaCIS.Core.Domain.Models
public Subject Subject { get; set; }
-
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User Uploader { get; set; }
-
#endregion
public Guid SeqId { get; set; }
diff --git a/IRaCIS.Core.Domain/Image/TrialImageDownload.cs b/IRaCIS.Core.Domain/Image/TrialImageDownload.cs
new file mode 100644
index 000000000..12b65c1fa
--- /dev/null
+++ b/IRaCIS.Core.Domain/Image/TrialImageDownload.cs
@@ -0,0 +1,50 @@
+using IRaCIS.Core.Domain.Models;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IRaCIS.Core.Domain.Models
+{
+ [Table("TrialImageDownload")]
+ public class TrialImageDownload : BaseFullAuditEntity
+ {
+ #region 导航属性
+ [JsonIgnore]
+ public Trial Trial { get; set; }
+
+ #endregion
+
+ public Guid TrialId { get; set; }
+
+ public string SubjectCode { get; set; }
+
+ public bool IsSuccess { get; set; }
+
+ public DateTime DownloadStartTime { get; set; }
+ public DateTime? DownloadEndTime { get; set; }
+
+ public string VisitName { get; set; }
+
+ public ImageType ImageType { get; set; }
+
+ public int NoneDicomStudyCount { get; set; }
+
+ public int DicomStudyCount { get; set; }
+
+ public int ImageCount { get; set; }
+ public long ImageSize { get; set; }
+
+ public string IP { get; set; }
+
+ }
+
+ public enum ImageType
+ {
+ Dicom = 1,
+ NoneDicom = 2,
+ DicomAndNoneDicom = 3
+ };
+}
diff --git a/IRaCIS.Core.Domain/Management/Notice/SystemNotice.cs b/IRaCIS.Core.Domain/Management/Notice/SystemNotice.cs
index 33fc437d5..25ea4b33a 100644
--- a/IRaCIS.Core.Domain/Management/Notice/SystemNotice.cs
+++ b/IRaCIS.Core.Domain/Management/Notice/SystemNotice.cs
@@ -24,8 +24,6 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
public List NoticeUserReadList { get; set; } = new List();
- [JsonIgnore]
- public User CreateUser { get; set; }
#endregion
diff --git a/IRaCIS.Core.Domain/Management/User.cs b/IRaCIS.Core.Domain/Management/User.cs
index c024f2824..89b77911a 100644
--- a/IRaCIS.Core.Domain/Management/User.cs
+++ b/IRaCIS.Core.Domain/Management/User.cs
@@ -16,17 +16,13 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
public List SystemDocConfirmedList { get; set; }
- [JsonIgnore]
- public List UserDoctors { get; set; } = new List();
+
[JsonIgnore]
public List UserTrials { get; set; } = new List();
[JsonIgnore]
public List VisitTaskList { get; set; }
- [JsonIgnore]
- [ForeignKey("DoctorId")]
- public Doctor Doctor { get; set; }
#endregion
diff --git a/IRaCIS.Core.Domain/Management/UserFeedBack.cs b/IRaCIS.Core.Domain/Management/UserFeedBack.cs
index d02c8c12e..b9006d951 100644
--- a/IRaCIS.Core.Domain/Management/UserFeedBack.cs
+++ b/IRaCIS.Core.Domain/Management/UserFeedBack.cs
@@ -25,11 +25,9 @@ namespace IRaCIS.Core.Domain.Models
public SubjectVisit SubjectVisit { get; set; }
[JsonIgnore]
public TrialSite TrialSite { get; set; }
- [JsonIgnore]
- public User CreateUser { get; set; }
+
[JsonIgnore]
-
public VisitTask VisitTask { get; set; }
[NotMapped]
diff --git a/IRaCIS.Core.Domain/QC/CheckChallengeDialog.cs b/IRaCIS.Core.Domain/QC/CheckChallengeDialog.cs
index 3dd8bc9a0..f956548f0 100644
--- a/IRaCIS.Core.Domain/QC/CheckChallengeDialog.cs
+++ b/IRaCIS.Core.Domain/QC/CheckChallengeDialog.cs
@@ -18,8 +18,6 @@ namespace IRaCIS.Core.Domain.Models
public Guid SubjectVisitId { get; set; }
- public User CreateUser { get; set; }
-
public UserTypeEnum UserTypeEnum { get; set; }
diff --git a/IRaCIS.Core.Domain/QC/ConsistencyCheckFile.cs b/IRaCIS.Core.Domain/QC/ConsistencyCheckFile.cs
index 89f04ad74..d49718324 100644
--- a/IRaCIS.Core.Domain/QC/ConsistencyCheckFile.cs
+++ b/IRaCIS.Core.Domain/QC/ConsistencyCheckFile.cs
@@ -11,9 +11,7 @@ namespace IRaCIS.Core.Domain.Models
public class InspectionFile : BaseAddAuditEntity
{
#region 导航属性
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User User { get; set; }
+
#endregion
public string FileName { get; set; } = string.Empty;
diff --git a/IRaCIS.Core.Domain/QC/QCChallenge.cs b/IRaCIS.Core.Domain/QC/QCChallenge.cs
index 86513fc7e..a74cc9901 100644
--- a/IRaCIS.Core.Domain/QC/QCChallenge.cs
+++ b/IRaCIS.Core.Domain/QC/QCChallenge.cs
@@ -9,9 +9,6 @@ namespace IRaCIS.Core.Domain.Models
{
#region 导航属性
[JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User CreateUser { get; set; }
- [JsonIgnore]
[ForeignKey("LatestReplyUserId")]
public User LatestReplyUser { get; set; }
[JsonIgnore]
diff --git a/IRaCIS.Core.Domain/QC/QCChallengeDialog.cs b/IRaCIS.Core.Domain/QC/QCChallengeDialog.cs
index b01a25b0f..253aab1a2 100644
--- a/IRaCIS.Core.Domain/QC/QCChallengeDialog.cs
+++ b/IRaCIS.Core.Domain/QC/QCChallengeDialog.cs
@@ -9,9 +9,6 @@ namespace IRaCIS.Core.Domain.Models
#region 导航属性
[JsonIgnore]
public QCChallenge QCChallenge { get; set; }
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User CreateUser { get; set; }
#endregion
public string TalkContent { get; set; } = string.Empty;
diff --git a/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicalReviewDialog.cs b/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicalReviewDialog.cs
index bfa14c86f..425608dcc 100644
--- a/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicalReviewDialog.cs
+++ b/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicalReviewDialog.cs
@@ -47,9 +47,6 @@ namespace IRaCIS.Core.Domain.Models
}
}
- [JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User CreateUser { get; set; }
#endregion
///
diff --git a/IRaCIS.Core.Domain/SQLFile/20230613.sql b/IRaCIS.Core.Domain/SQLFile/20230613.sql
deleted file mode 100644
index a5c0d9fd6..000000000
--- a/IRaCIS.Core.Domain/SQLFile/20230613.sql
+++ /dev/null
@@ -1,102 +0,0 @@
---同步重阅申请表结构后,再维护该字段
-
-UPDATE VisitTaskReReading
-SET TrialId = VisitTask.TrialId
-FROM VisitTaskReReading
-INNER JOIN VisitTask ON VisitTaskReReading.OriginalReReadingTaskId = VisitTask.Id;
-
-delete VisitTaskReReading where TrialId is NULL
-
-
---数据库列字符串列 长度
-SELECT t.name AS table_name,
- c.name AS column_name,
- d.name AS constraint_name,
- ty.Name as typeName,
- c.max_length as length
-FROM sys.tables t
-INNER JOIN sys.columns c ON c.object_id = t.object_id
-LEFT JOIN sys.default_constraints d ON d.parent_object_id = c.object_id AND d.parent_column_id = c.column_id
-INNER JOIN sys.types ty on ty.system_type_id = c.system_type_id
-AND ty.name in ('nvarchar', 'varchar', 'char', 'nchar')
-WHERE c.max_length < 100 AND c.max_length > 0
-
---带维护sql 的查询
-
-SELECT t.name AS table_name,
- c.name AS column_name,
- d.name AS constraint_name,
- ty.Name as typeName,
- c.max_length as length,
- 'ALTER TABLE ' + QUOTENAME(t.name) + ' DROP CONSTRAINT [' + d.name + ']' AS drop_constraint_sql,
- CASE WHEN c.max_length = -1 THEN 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(MAX)' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
- WHEN c.max_length > 0 AND c.max_length < 100 THEN 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(' + CAST(100 AS VARCHAR(10)) + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
- WHEN c.max_length = 8000 THEN 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' NVARCHAR(' + CAST(4000 AS VARCHAR(10)) + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
- ELSE 'ALTER TABLE ' + QUOTENAME(t.name) + ' ALTER COLUMN ' + QUOTENAME(c.name) + ' ' + ty.name + '(' + CAST(c.max_length AS VARCHAR(10)) + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END
- END AS AlterColumnSQL,
- 'ALTER TABLE ' + QUOTENAME(t.name) + ' ADD CONSTRAINT ' +'DF_'+t.name+ '_'+ c.name + ' DEFAULT ' + d.definition + ' FOR ' + QUOTENAME(c.name) AS add_constraint_sql
-FROM sys.tables t
-INNER JOIN sys.columns c ON c.object_id = t.object_id
-LEFT JOIN sys.default_constraints d ON d.parent_object_id = c.object_id AND d.parent_column_id = c.column_id
-INNER JOIN sys.types ty on ty.system_type_id = c.system_type_id
-AND ty.name in ('nvarchar', 'varchar', 'char', 'nchar')
-and (ty.name != 'nvarchar' or (ty.name = 'nvarchar' and (c.max_length = -1 or (c.max_length < 100 and c.max_length > 0))))
-
-
-
---修改默认约束名
-SELECT
- OBJECT_SCHEMA_NAME(dc.parent_object_id) AS schema_name,
- OBJECT_NAME(dc.parent_object_id) AS table_name,
- dc.name AS constraint_name,
- COL_NAME(dc.parent_object_id, dc.parent_column_id) AS column_name,
- CONCAT('EXEC sp_rename N''', dc.name, ''', N''DF_', OBJECT_NAME(dc.parent_object_id), '_', COL_NAME(dc.parent_object_id, dc.parent_column_id), '''') AS executable_sql
-FROM
- sys.default_constraints dc
-WHERE
- dc.is_system_named = 1 -- 只查询自动生成的系统默认约束
- AND dc.name NOT LIKE 'DF\[_%]\[_%]' ESCAPE '\'; -- 排除符合 "DF_表名_列名" 格式的约束名
-
- SELECT
- sys.tables.name AS table_name,
- sys.columns.name AS column_name,
- sys.default_constraints.name AS constraint_name,
- 'EXEC sp_rename N''' + sys.default_constraints.name + ''', N''DF_' + sys.tables.name + '_' + sys.columns.name + ''''
- AS executable_sql
-FROM sys.default_constraints
-INNER JOIN sys.tables ON sys.default_constraints.parent_object_id = sys.tables.object_id
-INNER JOIN sys.columns ON sys.default_constraints.parent_column_id = sys.columns.column_id AND sys.tables.object_id = sys.columns.object_id
-
-
- --修改主键
- SELECT
- OBJECT_NAME(i.object_id) AS '表名',
- COL_NAME(ic.object_id, ic.column_id) AS '列名',
- i.name AS '索引名',
- CONCAT('EXEC sp_rename ''', i.name, ''', ''PK_', OBJECT_NAME(i.object_id), '_',
- COL_NAME(ic.object_id, ic.column_id), '''')
- AS '修改索引名为 PK_表名_字段名',
- i.is_primary_key AS '是否主键'
-FROM
- sys.indexes i
-INNER JOIN
- sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
-WHERE
- (i.is_primary_key = 1 OR i.is_unique_constraint = 1)
- AND OBJECTPROPERTY(i.object_id, 'IsSystemTable') = 0
- AND OBJECTPROPERTY(i.object_id, 'IsMSShipped') = 0
- AND OBJECT_NAME(i.object_id) <> 'sysdiagrams';
-
-
-
----------------------------维护临床数据是否应用 之前默认都是应用 现在添加字段 把状态都改为应用
- update ClinicalDataTrialSet set IsApply=1
-
-
---维护 删除临床数据配置,导致删除阅片期问题
- delete ReadingClinicalData
-from ReadingClinicalData
-INNER JOIN ReadModule on ReadingClinicalData.ReadingId = ReadModule.Id
-
-
-where not EXISTS (select Id from TrialClinicalDataSetCriterion where ReadModule.TrialReadingCriterionId =TrialClinicalDataSetCriterion.TrialReadingCriterionId)
\ No newline at end of file
diff --git a/IRaCIS.Core.Domain/SQLFile/23231012.sql b/IRaCIS.Core.Domain/SQLFile/23231012.sql
deleted file mode 100644
index 79bd6d1e8..000000000
--- a/IRaCIS.Core.Domain/SQLFile/23231012.sql
+++ /dev/null
@@ -1,15 +0,0 @@
--- 查询指定 code 的记录及其父项
-SELECT *
-FROM Dictionary
-WHERE code = 'BusinessModule'
-
-UNION
-
--- 查询指定 code 的记录及其子项
-SELECT t.*
-FROM Dictionary t
-INNER JOIN (
- SELECT Id
- FROM Dictionary
- WHERE code = 'BusinessModule'
-) AS selected ON t.ParentId = selected.Id;
diff --git a/IRaCIS.Core.Domain/SQLFile/4.21号发布后维护.sql b/IRaCIS.Core.Domain/SQLFile/4.21号发布后维护.sql
deleted file mode 100644
index f21e13bd7..000000000
--- a/IRaCIS.Core.Domain/SQLFile/4.21号发布后维护.sql
+++ /dev/null
@@ -1,188 +0,0 @@
---- 1、变更的表名
-
---EXEC sp_rename 'old_table_name', 'new_table_name';
-EXEC sp_rename 'CriterionNidus', 'CriterionNidusSystem';
-EXEC sp_rename 'ReadingCriterionDictionary', 'ReadingSystemCriterionDictionary';
-
-
----- 2、处理发布环境的表数据拆分
-
---会直接创建表 CriterionNidusSystem_copy
- --SELECT *
- --INTO CriterionNidusSystem_copy
- --FROM CriterionNidusSystem
- --WHERE IsSystemCriterion = 0;
-
---创建CriterionNidusTrial 将数据迁移过来
-SELECT *
-INTO CriterionNidusTrial
-FROM CriterionNidusSystem
-WHERE IsSystemCriterion = 0;
-
-
-SELECT *
-INTO ReadingTrialCriterionDictionary
-FROM ReadingSystemCriterionDictionary
-WHERE IsSystemCriterion = 0;
-
-
------ 三、维护稽查数据
-select Count(*) from DataInspection where EntityName='CriterionNidus'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Add'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Update'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Deleted'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Add/IsTrial'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Add/IsTrial/Auto'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Update/IsTrial'
-select Count(*) from DataInspection where EntityName='CriterionNidus' and Identification='CriterionNidus/Deleted/IsTrial'
-
-
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/QuestionType'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/LesionType'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/OncologyAssessType'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/GlobalAssessType'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/QuestionType/IsTrial'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/LesionType/IsTrial'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/OncologyAssessType/IsTrial'
-select Count(*) from DataInspection where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/GlobalAssessType/IsTrial'
-
-
---系统 CriterionNidusSystem
-update DataInspection SET Identification='CriterionNidusSystem/Add', EntityName='CriterionNidusSystem' where EntityName='CriterionNidus' and Identification='CriterionNidus/Add'
-update DataInspection SET Identification='CriterionNidusSystem/Update' , EntityName='CriterionNidusSystem' where EntityName='CriterionNidus' and Identification='CriterionNidus/Update'
-update DataInspection SET Identification='CriterionNidusSystem/Deleted', EntityName='CriterionNidusSystem' where EntityName='CriterionNidus' and Identification='CriterionNidus/Deleted'
-
---项目 CriterionNidusTrial
-update DataInspection SET Identification='CriterionNidusTrial/Add' , EntityName='CriterionNidusTrial' where EntityName='CriterionNidus' and Identification='CriterionNidus/Add/IsTrial'
-update DataInspection SET Identification='CriterionNidusTrial/Add/Auto' , EntityName='CriterionNidusTrial' where EntityName='CriterionNidus' and Identification='CriterionNidus/Add/IsTrial/Auto'
-update DataInspection SET Identification='CriterionNidusTrial/Update' , EntityName='CriterionNidusTrial' where EntityName='CriterionNidus' and Identification='CriterionNidus/Update/IsTrial'
-update DataInspection SET Identification='CriterionNidusTrial/Deleted' , EntityName='CriterionNidusTrial' where EntityName='CriterionNidus' and Identification='CriterionNidus/Deleted/IsTrial'
-
---系统ReadingSystemCriterionDictionary
-update DataInspection SET Identification='ReadingSystemCriterionDictionary/Add/QuestionType', EntityName='ReadingSystemCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/QuestionType'
-update DataInspection SET Identification='ReadingSystemCriterionDictionary/Add/LesionType' , EntityName='ReadingSystemCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/LesionType'
-update DataInspection SET Identification='ReadingSystemCriterionDictionary/Add/OncologyAssessType', EntityName='ReadingSystemCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/OncologyAssessType'
-update DataInspection SET Identification='ReadingSystemCriterionDictionary/Add/GlobalAssessType', EntityName='ReadingSystemCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/GlobalAssessType'
-
---项目ReadingTrialCriterionDictionary
-update DataInspection SET Identification='ReadingTrialCriterionDictionary/Add/QuestionType', EntityName='ReadingTrialCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/QuestionType/IsTrial'
-update DataInspection SET Identification='ReadingTrialCriterionDictionary/Add/LesionType' , EntityName='ReadingTrialCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/LesionType/IsTrial'
-update DataInspection SET Identification='ReadingTrialCriterionDictionary/Add/OncologyAssessType', EntityName='ReadingTrialCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/OncologyAssessType/IsTrial'
-update DataInspection SET Identification='ReadingTrialCriterionDictionary/Add/GlobalAssessType', EntityName='ReadingTrialCriterionDictionary' where EntityName='ReadingCriterionDictionary' and Identification='ReadingCriterionDictionary/Add/GlobalAssessType/IsTrial'
-
-
-
---国际化indication 维护
-UPDATE Trial SET IndicationEnum = CASE
- WHEN Indication = '肺癌' THEN 0
- WHEN Indication = '实体瘤' THEN 1
- WHEN Indication = '淋巴瘤' THEN 2
- WHEN Indication = '乳腺癌' THEN 3
- WHEN Indication = '白血病' THEN 4
- WHEN Indication = '胃癌' THEN 5
- WHEN Indication = '肝癌' THEN 6
- WHEN Indication = '骨髓癌' THEN 7
- WHEN Indication = '肠癌' THEN 8
- WHEN Indication = '前列腺癌' THEN 9
- WHEN Indication = '肾癌' THEN 10
- WHEN Indication = '宫颈癌' THEN 11
- WHEN Indication = '头颈部癌' THEN 12
- WHEN Indication = '卵巢癌' THEN 13
- WHEN Indication = '胆癌' THEN 14
- WHEN Indication = '食管癌' THEN 15
- WHEN Indication = '腹膜癌' THEN 16
- WHEN Indication = '上皮癌' THEN 17
- WHEN Indication = '黑色素瘤' THEN 18
- WHEN Indication = '甲状腺癌' THEN 19
- WHEN Indication = '输卵管癌' THEN 20
- WHEN Indication = '胰腺癌' THEN 21
- WHEN Indication = '膀胱癌' THEN 22
- WHEN Indication = '鼻咽癌' THEN 23
- WHEN Indication = '胶质瘤' THEN 24
- WHEN Indication = '子宫癌' THEN 25
- WHEN Indication = '尿道癌' THEN 26
- WHEN Indication = '软组织肉瘤' THEN 27
- WHEN Indication = '神经内分泌瘤' THEN 28
- WHEN Indication = '睾丸癌' THEN 29
- WHEN Indication = '骨肉瘤' THEN 30
- WHEN Indication = '间皮瘤' THEN 31
- WHEN Indication = '绒毛膜病' THEN 32
- WHEN Indication = '胃肠道间质瘤' THEN 33
- WHEN Indication = '骨癌' THEN 34
- WHEN Indication = '脑瘤' THEN 35
- WHEN Indication = '胸腺瘤' THEN 36
- WHEN IndicationTypeId = '437a81b3-c5ad-49fd-82a1-8f441c4ba8da' THEN 37
- WHEN IndicationTypeId = '433d9801-5fa0-42bb-604b-08d9c1232c4f' THEN 38
- WHEN IndicationTypeId = 'a5fdd212-a716-4df4-604c-08d9c1232c4f' THEN 39
- ELSE IndicationEnum
- END;
-
- select DISTINCT IndicationEnum ,Indication from Trial
-
- update Trial set Indication='' where IndicationEnum not in (37,38,39)
-
-
--- 附加评估发布设置之前的默认值
-Update ReadingQuestionCriterionTrial set IsAdditionalAssessment=0,IsAutoCreate=1
-
---- 维护临床数据英文名称
-update clinicalDataSystemSet set clinicalDataSystemSet.ClinicalDataSetEnName=DictionaryChild.Value from Dictionary DictionaryChild
-inner join clinicalDataSystemSet on CONVERT(varchar(200),clinicalDataSystemSet.ClinicalDataSetEnum) =DictionaryChild.Code
-inner join Dictionary DictionaryParent on DictionaryParent.Id=DictionaryChild.ParentId
-where DictionaryParent.Code='ClinicalDataType'
-go
-
-
-update ClinicalDataTrialSet set ClinicalDataTrialSet.ClinicalDataSetEnName=clinicalDataSystemSet.ClinicalDataSetEnName from clinicalDataSystemSet
-inner join ClinicalDataTrialSet on ClinicalDataTrialSet.SystemClinicalDataSetId=clinicalDataSystemSet.Id
-
-
-
----------------维护项目器官表 将器官信息在项目表里面存冗余
-update OrganTrialInfo set
-OrganTrialInfo.PartEN=OrganInfo.PartEN ,
-OrganTrialInfo.Part=OrganInfo.Part,
-OrganTrialInfo.TULOC=OrganInfo.TULOC,
-OrganTrialInfo.TULOCEN=OrganInfo.TULOCEN,
-OrganTrialInfo.TULAT=OrganInfo.TULAT,
-OrganTrialInfo.TULATEN=OrganInfo.TULATEN,
-OrganTrialInfo.IsLymphNodes=OrganInfo.IsLymphNodes,
-OrganTrialInfo.IsCanEditPosition=OrganInfo.IsCanEditPosition,
-OrganTrialInfo.Classification=OrganInfo.Classification,
-OrganTrialInfo.ClassificationEN=OrganInfo.ClassificationEN,
-OrganTrialInfo.ShowOrder=OrganInfo.ShowOrder,
-OrganTrialInfo.OrganType=OrganInfo.OrganType
-from OrganInfo inner join OrganTrialInfo
-on OrganInfo.Id=OrganTrialInfo.OrganInfoId where OrganTrialInfo.OrganType is null
-
-
-
-
-update FrontAuditConfig set Identification='' where Identification is NULL
-
---新增字段
-
-ALTER TABLE [dbo].[Trial] ADD [AttendedReviewerTypes] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NOT NULL
-GO
-
-ALTER TABLE [dbo].[Trial] ADD [DeclarationTypes] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NOT NULL
-GO
-
-
---维护sql
-UPDATE Trial SET AttendedReviewerTypes = '|' + CAST(AttendedReviewerType AS VARCHAR(10)) + '|'
-
-update Trial set DeclarationTypes ='|' + (select Code from Dictionary where Id= Trial.DeclarationTypeId) + '|'
-
-
---验证sql
-select DISTINCT AttendedReviewerType ,AttendedReviewerTypes, DeclarationTypeId, Dictionary.Code,DeclarationTypes,Dictionary.[Value] from Trial inner join Dictionary on Trial.DeclarationTypeId=Dictionary.Id
-
-
-
-
-
-
-
-
diff --git a/IRaCIS.Core.Domain/SQLFile/Portal.sql b/IRaCIS.Core.Domain/SQLFile/Portal.sql
deleted file mode 100644
index de4ed4438..000000000
--- a/IRaCIS.Core.Domain/SQLFile/Portal.sql
+++ /dev/null
@@ -1,8 +0,0 @@
--- 20221223同步表数据
--- Dictionary FrontAuditConfig Menu UserType UserTypeMenu ReadingQuestionSystem ReadingTableQuestionSystem OrganInfo ReadingQuestionCriterionSystem TumorAssessment
--- 需要特别注意的表 CriterionNidus ReadingCriterionDictionary
-
-select * from CriterionNidus where IsSystemCriterion=1
-select * from ReadingCriterionDictionary where IsSystemCriterion=1
-delete CriterionNidus where IsSystemCriterion=1
-delete ReadingCriterionDictionary where IsSystemCriterion=1
diff --git a/IRaCIS.Core.Domain/SQLFile/Test.sql b/IRaCIS.Core.Domain/SQLFile/Test.sql
deleted file mode 100644
index cda90f2e8..000000000
--- a/IRaCIS.Core.Domain/SQLFile/Test.sql
+++ /dev/null
@@ -1,1060 +0,0 @@
------2022-05-27------------------------
-
-update DataInspection set BatchId=Id where BatchId is null
-
-update QCChallenge set Code=ChallengeCode
-
-update QCChallenge set ChallengeCode='Q'+ RIGHT('00000'+CAST( Code AS nvarchar(50)),5);
-
-
-
-
------2022-08-11------------------------
-
-update [dbo].[Site] set Code= convert(int,RIGHT(SiteCode,4))
-update Site set SiteName= substring(SiteName,1,charindex('医院',SiteName)+1),AliasName=substring(SiteName,charindex('医院',SiteName)+2,30) where SiteName like '%医院%医院'
-
-
-update Doctor set Physician='Chief Physician',PhysicianCN='主任医师' where RankId='dcbf4d1a-8373-4539-a0ae-1ba76d57bb48'
-update Doctor set Physician='Deputy Chief Physician',PhysicianCN='副主任医师' where RankId='3a6e3335-cea4-4803-a136-d6301883a937'
-update Doctor set RankOther='Professor',RankOtherCN='教授' where RankId='dcbf4d1a-8373-4539-a0ae-1ba76d57bb48'
-update Doctor set RankOther='Associate Professor',RankOtherCN='副教授' where RankId='3a6e3335-cea4-4803-a136-d6301883a937'
-update Doctor set Physician='Staff',PhysicianCN='医师' where RankId='82411c2e-9832-4c6f-a859-e3b6e796760d'
-
-
-update DataInspection set JsonDetail= replace(cast(JsonDetail as varchar(max)),'Insepection','CommonData')
-
-update ReadingClinicalData set FileCount=(select count(*) from ReadingClinicalDataPDF where ReadingClinicalDataId =ReadingClinicalData.Id)
-update NoneDicomStudy set FileCount=(select count(*) from NoneDicomStudyFile where NoneDicomStudyId =NoneDicomStudy.Id)
-
-
-update DataInspection set CreateUserName= (select UserName from [User] where [User].Id = DataInspection.CreateUserId)
-
-update DataInspection set RoleName=(select UserName from [User] INNER join UserType on [User].UserTypeId =UserType.Id where [User].Id=DataInspection.CreateUserId)
-
-update DataInspection set CreateUserRealName=(select LastName+' / '+FirstName from [User] where [User].Id=DataInspection.CreateUserId)
-
-
-update TrialDocUserTypeConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=SignFirstViewTime
-update SystemDocConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=SignFirstViewTime
-update TrialDocUserTypeConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=getdate() where SignFirstViewTime is null
-update SystemDocConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=getdate() where SignFirstViewTime is null
-update TrialDocUserTypeConfirmedUser set IsDeleted=0 where IsDeleted is null
-update SystemDocConfirmedUser set IsDeleted=0 where IsDeleted is null
-
-
-update EnrollReadingCategory set TrialReadingCriterionId= ISNUll((select top 1 Id from ReadingQuestionCriterionTrial where IsConfirm=1 and TrialId=Enroll.TrialId ) ,'00000000-0000-0000-0000-000000000000')
-FROM EnrollReadingCategory INNER JOIN Enroll ON (EnrollReadingCategory.EnrollId = Enroll.Id)
-
-update VisitTask set TrialReadingCriterionId=(select top 1 Id from ReadingQuestionCriterionTrial where IsConfirm=1 and TrialId=VisitTask.TrialId)
-select * from EnrollReadingCategory where TrialReadingCriterionId is null
-select * from VisitTask where TrialReadingCriterionId is null
-
-
- update Site set Site.Code = (select b.code2 from (select Id,row_number() over(order by Site.SiteName) code2 from Site) b where b.Id =Site.Id)
- update Site set SiteCode= 'S'+ RIGHT('0000'+CAST(Site.Code as varchar(10)),4)
-
- --不用同步
-update FrontAuditConfig set ValueCN='任务名称' where Value='TaskName' and ValueCN='访视/阅片期名称' and Code='TaskName'
-update FrontAuditConfig set ValueCN='任务盲态标识' where Value='TaskBlindName' and ValueCN='访视盲态名称' and Code='TaskBlindName'
-
- -----------------------------------------之前的-------------------------------------------------------------
-
-
-
---无序维护sql
-update VisitTask set TaskBlindName='Follow-up'
- from VisitTask
-INNER join ReadingQuestionCriterionTrial on VisitTask.TrialReadingCriterionId=ReadingQuestionCriterionTrial.Id
-INNER join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
- where SubjectVisit.IsBaseLine=0 and ReadingQuestionCriterionTrial.IsReadingTaskViewInOrder=0
-
-
--- 有序维护sql
-update VisitTask set TaskBlindName='Follow-up '+ cast(sv.rn as varchar)
- from VisitTask
-join ReadingQuestionCriterionTrial on VisitTask.TrialReadingCriterionId=ReadingQuestionCriterionTrial.Id
---join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
-join ( select Id SubjectVisitId, IsBaseLine, ROW_NUMBER() over( partition by SubjectId order by VisitNum asc )-1 rn,VisitNum from SubjectVisit where IsLostVisit=0) sv on VisitTask.SourceSubjectVisitId=sv.SubjectVisitId
-where sv.IsBaseLine=0 and ReadingQuestionCriterionTrial.IsReadingTaskViewInOrder=1
-
-update VisitTask set TaskBlindName='Baseline' from VisitTask
-join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where SubjectVisit.IsBaseLine=1
-
-
-
-
-----------------------------------------------修改 ----------------------------------------
-update Dictionary set code =0 where Id='15bb5529-a6fe-439f-5196-08da179a7080'
-update Dictionary set code =1 where Id='0628d7be-afba-4471-5197-08da179a7080'
-update Dictionary set code =2 where Id='41bfec4b-dbfb-401d-5198-08da179a7080'
-update Dictionary set code =-1 where Id='1fac678d-69b6-41c3-5199-08da179a7080'
-go
-
-
-update ReadingQuestionCriterionTrial set DigitPlaces=DigitPlaces-1 where DigitPlaces is not null
-update ReadingQuestionCriterionTrial set DigitPlaces=-1 where DigitPlaces=3
-
-
-
-
-
-
---阅片标准维护
-update DataInspection set ObjectRelationParentId3 = (select top 1 TrialReadingCriterionId from SubjectUser where Id =DataInspection.GeneralId) where EntityName='SubjectUser'
-update DataInspection set ObjectRelationParentId2 = (select top 1 TrialReadingCriterionId from ReadingPeriodSet where Id =DataInspection.GeneralId) where EntityName='ReadingPeriodSet'
-update DataInspection set ObjectRelationParentId2 = (select top 1 TrialReadingCriterionId from ReadModule where Id =DataInspection.GeneralId) where EntityName='ReadModule'
-update DataInspection set ObjectRelationParentId2 = (select top 1 TrialReadingCriterionId from TaskConsistentRule where Id =DataInspection.GeneralId) where EntityName='TaskConsistentRule'
-update DataInspection set ObjectRelationParentId3 = (select top 1 TrialReadingCriterionId from VisitTask where Id =DataInspection.GeneralId) where EntityName='VisitTask'
-
-update ReadingTableQuestionTrial set DictionaryCode='' where DictionaryCode is null
-
-
-
-
---维护RowInfo的OrderMark
-
-select * from ReadingTableAnswerRowInfo
-update ReadingTableAnswerRowInfo set ReadingTableAnswerRowInfo.OrderMark=ReadingQuestionTrial.OrderMark from ReadingQuestionTrial
-inner join ReadingTableAnswerRowInfo on ReadingTableAnswerRowInfo.QuestionId=ReadingQuestionTrial.Id
-
-
-
-delete ReadingTableQuestionAnswer where TableQuestionId in (select id from ReadingTableQuestionTrial where QuestionMark=3)
-go
-delete ReadingTableQuestionTrial where QuestionMark=3
-go
-delete ReadingTableQuestionSystem where QuestionMark=3
-go
-
-
-------------------------------------2022-12-13----------------------------
-update ReadingQuestionSystem set DefaultValue=''
-update ReadingQuestionTrial set DefaultValue=''
-
-----------删除之后要重新同步器官数据
-delete OrganInfo where SystemCriterionId='B0450000-9B8E-98FA-6658-08DA4DAB1FAC'
-delete OrganTrialInfo
- where (select count(1) as num from OrganInfo where OrganInfo.Id = OrganTrialInfo.OrganInfoId) = 0
-
-
-----2022-12-15
-Update Trial set BlindBaseLineName='Baseline',BlindFollowUpPrefix='Follow-up'
-update DataInspection set VisitTaskId = GeneralId where EntityName='VisitTask'
-
---2022-12-17 维护稽查数据
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('OriginalReReadingTaskId":"',JsonDetail)+26,36) where EntityName='VisitTaskReReading'
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='TaskMedicalReview'
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingOncologyTaskInfo'
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingMedicalReviewDialog'
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingTaskQuestionAnswer'
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingTableAnswerRowInfo'
-update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingMedicineQuestionAnswer'
-
-
-update DataInspection set SubjectVisitId=null where EntityName='ReadModule'
-update DataInspection set TrialReadingCriterionId=(select TrialReadingCriterionId from VisitTask where Id =VisitTaskId) where VisitTaskId is not null and TrialReadingCriterionId is null
-
-
-
---稽查bug 数据维护
-
-update DataInspection set TrialReadingCriterionId= substring(JsonDetail,CHARINDEX('TrialCriterionId":"',JsonDetail)+19 +
-( DATALENGTH( left( cast([JsonDetail] as VARCHAR(2500)) ,charindex('TrialCriterionId":"',JsonDetail)) )
- -LEN ( left( cast([JsonDetail] as VARCHAR(2500)) ,charindex('TrialCriterionId":"',JsonDetail)) )
-),36) where EntityName='ReadingTableQuestionTrial'
-update DataInspection set TrialReadingCriterionId= substring(JsonDetail,CHARINDEX('ReadingQuestionCriterionTrialId":"',JsonDetail)+34,36) where EntityName='ReadingQuestionTrial'
-update DataInspection set TrialReadingCriterionId= GeneralId where EntityName='ReadingQuestionCriterionTrial'
-
---维护临床数据状态
-update ReadingClinicalData set IsSign=1 where EXISTS(select * from SubjectVisit where Id=ReadingId and IsBaseLine=1 and IsConfirmedClinicalData=1) and IsSign=0
-update ReadingClinicalData set ReadingClinicalDataState=3 where IsSign=1 and ReadingClinicalDataState!=3
-
-
-
---20221223--发布生产开始
-
-
-
-update DataInspection set Identification='ReadingMedicineQuestionAnswer/Add' , ObjectTypeId='E8250000-3E2C-0016-8166-08DA7E8DFF90',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where EntityName='ReadingMedicineQuestionAnswer'
-update DataInspection set ObjectTypeId='A4100000-3E2C-0016-A716-08DA7E8DA9BD',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where Identification='ReadingMedicalReview/saveMedicalReviewInfo/TaskMedicalReview/Update'
-update DataInspection set Identification='ReadingMedicalReviewDialog/Add' , ObjectTypeId='D8270000-3E2C-0016-2A14-08DA3EDB77FD',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where EntityName='ReadingMedicalReviewDialog'
-
-update DataInspection set Identification='ReadingMedicalReviewDialog/Add/IR' from DataInspection INNER JOIN [User] on DataInspection.CreateUserId = [User].Id where DataInspection.EntityName='ReadingMedicalReviewDialog' and [User].UserTypeEnum=13
-update DataInspection set Identification='ReadingMedicalReviewDialog/Add/MIM' from DataInspection INNER JOIN [User] on DataInspection.CreateUserId = [User].Id where DataInspection.EntityName='ReadingMedicalReviewDialog' and [User].UserTypeEnum=14
-
-
-
----------修改 ReadingMedicineQuestionAnswer的VisitTaskId
-update ReadingMedicineQuestionAnswer set ReadingMedicineQuestionAnswer.VisitTaskId=TaskMedicalReview.VisitTaskId from TaskMedicalReview
-inner join ReadingMedicineQuestionAnswer on ReadingMedicineQuestionAnswer.TaskMedicalReviewId=TaskMedicalReview.id
-
-
-
-
-update frontAuditConfig set DictionaryCode ='' where Code='AuditState' and DictionaryCode='AuditState'
-
-----正式环境 修改TrialCode 错误的
-
-
-
-
-
-----------------------------2023-1-09
-
--- 修改Hospital 的SiteId
-update Hospital set Hospital.SiteId=Site.Id from Site
-inner join Hospital on Hospital.HospitalName=Site.SiteName
-
-
----2023 -1-10
---处理访视
- --基线
-update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
-
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=0
-
-
- update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
-
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=1
-
- --非基线
-update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =0
-
-
- update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =1
-
---处理裁判
-
-update VisitTask set IsNeedClinicalDataSign =0,IsClinicalDataSign=0 where VisitTask.ReadingCategory=4
-
---处理肿瘤学
-
-update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
- where VisitTask.ReadingCategory=5 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
- and IsNeedClinicalDataSign =0
-
- update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
- where VisitTask.ReadingCategory=5 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
- and IsNeedClinicalDataSign =1
-
---处理全局
-
-update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
- where VisitTask.ReadingCategory=2 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
- and IsNeedClinicalDataSign =0
-
-
-update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
- where VisitTask.ReadingCategory=2 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1 )
- and IsNeedClinicalDataSign=1
-
-
- -----处理 是否所有临床数据都签名的字段
---处理访视
- --基线
-update VisitTask set IsClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
-
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1)
- and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ( ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1 and UploadRole=1
- )
- =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1
- -- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署
- )
-
---处理基线脏数据
- update VisitTask set IsClinicalDataSign =0 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
-
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1)
- and (
- select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ( ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1 and UploadRole=1
- )
- !=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1
- -- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署
- )
-
-
-
- --非基线
-update VisitTask set IsClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
-
- -- 非基线 可能只有CRC 访视级别 PM 没有
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1)
- and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1 and UploadRole=1 )
- =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
-
- --维护错误数据
- update VisitTask set IsClinicalDataSign =0 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
- where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1
-
- -- 非基线 可能只有CRC 访视级别 PM 没有
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1)
- and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1 and UploadRole=1 )
- !=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
-
-
---处理肿瘤学
-
-update VisitTask set IsClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
- where VisitTask.ReadingCategory=5 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
- and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
- =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1)
-
-
-
---处理全局
-update VisitTask set IsClinicalDataSign =1 from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
- where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
-
- and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
- =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1)
-
- --维护脏数据
- update VisitTask set IsClinicalDataSign =0 from VisitTask
-
- --select VisitTask.Id as VisitTaskId ,Trial.Id, Trial.ExperimentName, VisitTask.TaskName,ReadingQuestionCriterionTrial.CriterionName,Subject.Code ,VisitTask.IsNeedClinicalDataSign,VisitTask.IsClinicalDataSign ,VisitTask.DoctorUserId from VisitTask
-inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
-inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
-inner join Subject on VisitTask.SubjectId=Subject.Id
-inner join Trial on VisitTask.TrialId=Trial.Id
- where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1
- and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
-
- and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1 )
- !=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
- where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1 and ClinicalDataLevel=2 )
-
-
- --处理字段 IsFrontTaskNeedSignButNotSign
-
- UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =1
-FROM [VisitTask] AS [v]
-WHERE EXISTS (
-
- SELECT 1
- FROM [VisitTask] AS [v0]
- where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and EXISTS(
- SELECT 1
- FROM [VisitTask] AS [v1]
- WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum]
-
- ) and [v0].[IsFrontTaskNeedSignButNotSign]=0 AND [v0].[Id] = [v].[Id] )
-
-
- UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =0
-FROM [VisitTask] AS [v]
-WHERE EXISTS (
-
- SELECT 1
- FROM [VisitTask] AS [v0]
- where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and not EXISTS(
- SELECT 1
- FROM [VisitTask] AS [v1]
- WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum]
-
- ) and [v0].[IsFrontTaskNeedSignButNotSign]=1 AND [v0].[Id] = [v].[Id] )
-
- update ReadingClinicalData set IsVisit=1 from ReadingClinicalData INNER JOIN ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId = ClinicalDataTrialSet.Id where ClinicalDataTrialSet.ClinicalDataLevel in (0,1) and ReadingClinicalData.IsVisit=0
- update VisitTask set IsClinicalDataSign=0 where IsNeedClinicalDataSign=0 and IsClinicalDataSign=1
-
- -- 判断 访视 和阅片期 是否有脏数据吧
---查询确认
-select V.SubjectId, V.SourceSubjectVisitId, V.TrialReadingCriterionId,V.IsSelfAnalysis, v.DoctorUserId,V.ArmEnum,Count(*) as EffectCount,max(v.CreateTime),max(v.Id) as Id from VisitTask V
-join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id
-where V.TaskState=0 and V.SourceSubjectVisitId is not null and ReadingQuestionCriterionTrial.ReadingType=2
-GROUP BY V.TrialId, V.SubjectId, V.SourceSubjectVisitId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum ,v.DoctorUserId
-HAVING Count(*)>1
-
---删除脏的多生成的任务
-delete VisitTask where Id in (select max(v.Id) as Id from VisitTask V
-join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id
-where V.TaskState=0 and V.SourceSubjectVisitId is not null and ReadingQuestionCriterionTrial.ReadingType=2
-GROUP BY V.TrialId, V.SubjectId, V.SourceSubjectVisitId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum ,v.DoctorUserId
-HAVING Count(*)>1)
-
-select V.TrialId, V.SubjectId, V.SouceReadModuleId, V.TrialReadingCriterionId,V.IsSelfAnalysis, V.ArmEnum,Count(*) as EffectCount,max(v.CreateTime),max(v.Id) as Id from VisitTask V
-join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id
-where V.TaskState=0 and V.SouceReadModuleId is not null and ReadingQuestionCriterionTrial.ReadingType=2
-GROUP BY V.TrialId, V.SubjectId, V.SouceReadModuleId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum
-HAVING Count(*)>2
-
-
-----2023年 开始
- -- 维护临床数据 先运行swagger 维护数据的方法
-
----------------------维护表格问题ID 2013-1-31
-update ReadingTableQuestionTrial set ReadingTableQuestionTrial.SystemTableQuestionId= ReadingTableQuestionSystem.Id from ReadingTableQuestionSystem
-inner join ReadingTableQuestionTrial on ReadingTableQuestionSystem.QuestionName=ReadingTableQuestionTrial.QuestionName
-inner join ReadingQuestionTrial on ReadingTableQuestionTrial.ReadingQuestionId=ReadingQuestionTrial.Id and ReadingQuestionTrial.ReadingQuestionSystemId=ReadingTableQuestionSystem.ReadingQuestionId
-
-where ReadingQuestionTrial.ReadingQuestionSystemId is not null and ReadingTableQuestionTrial.SystemTableQuestionId is null
-
-
-
--------------------维护访视任务 IsSelfAnalysis 为 null 的 ------------------------
-
- update VisitTask
- set RelatedVisitTaskIds= iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where
- vt.TrialId=VisitTask.TrialId and
- vt.SubjectId =VisitTask.SubjectId and
- vt.ArmEnum =VisitTask.ArmEnum and
- vt.DoctorUserId =VisitTask.DoctorUserId and
- vt.ReadingTaskState =2 and
- vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and
- vt.TaskState =0 and
- vt.VisitTaskNum <=VisitTask.VisitTaskNum and
- vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and
- vt.IsSelfAnalysis is null and
- vt.ReadingCategory = VisitTask.ReadingCategory
- FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where
- vt.TrialId=VisitTask.TrialId and
- vt.SubjectId =VisitTask.SubjectId and
- vt.ArmEnum =VisitTask.ArmEnum and
- vt.DoctorUserId =VisitTask.DoctorUserId and
- vt.ReadingTaskState =2 and
- vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and
- vt.TaskState =0 and
- vt.VisitTaskNum <=VisitTask.VisitTaskNum and
- vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and
- vt.IsSelfAnalysis is null and
- vt.ReadingCategory = VisitTask.ReadingCategory
- FOR XML PATH('')),1,1,'') +']') ,
-
- PastResultTaskIds=iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where
- vt.TrialId=VisitTask.TrialId and
- vt.SubjectId =VisitTask.SubjectId and
- vt.ArmEnum =VisitTask.ArmEnum and
- vt.DoctorUserId =VisitTask.DoctorUserId and
- vt.ReadingTaskState =2 and
- vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and
- vt.TaskState =0 and
- vt.VisitTaskNum InfluenceStudyList { get; set; } = new List();
diff --git a/IRaCIS.Core.Domain/Visit/VisitPlanInfluenceStudy.cs b/IRaCIS.Core.Domain/Visit/VisitPlanInfluenceStudy.cs
index d0173db02..aaf77f1f2 100644
--- a/IRaCIS.Core.Domain/Visit/VisitPlanInfluenceStudy.cs
+++ b/IRaCIS.Core.Domain/Visit/VisitPlanInfluenceStudy.cs
@@ -15,9 +15,6 @@ namespace IRaCIS.Core.Domain.Models
{
#region 导航属性
[JsonIgnore]
- [ForeignKey("CreateUserId")]
- public User CreateUser { get; set; }
- [JsonIgnore]
[ForeignKey("VisitPlanInfluenceStatId")]
public VisitPlanInfluenceStat VisitPlanInfluenceStat { get; set; }
[JsonIgnore]
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index d6673ef2e..bdf501aa4 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -527,6 +527,10 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet EnrollReadingCriterion { get; set; }
#endregion
+ public virtual DbSet TrialImageDownload { get; set; }
+
+
+
}
diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs
deleted file mode 100644
index 5fa1e61c3..000000000
--- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/StudyConfigration.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using IRaCIS.Core.Domain.Models;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Metadata.Builders;
-
-
-namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
-{
- //public class StudyConfigration : IEntityTypeConfiguration
- //{
-
- // ///
- // /// 一个外键,关联多个表 ReadingId
- // ///
- // ///
- // public void Configure(EntityTypeBuilder builder)
- // {
-
- // builder
- // .HasMany(s => s.ReadingClinicalDataList)
- // .WithOne(c => c.DicomStudy)
- // .HasForeignKey(s => new { s.StudyId })
- // .HasPrincipalKey(c => new { c.Id });
-
-
- // builder
- // .HasMany(s => s.ReadingConsistentClinicalDataList)
- // .WithOne(c => c.DicomStudy)
- // .HasForeignKey(s => new { s.StudyId })
- // .HasPrincipalKey(c => new { c.Id });
-
- // }
- //}
-
- //public class UserConfigration : IEntityTypeConfiguration
- //{
- // public void Configure(EntityTypeBuilder builder)
- // {
- // //对于阅片人来讲,会有很多任务
- // builder.HasMany(t => t.VisitTaskList).WithOne(t => t.DoctorUser).HasForeignKey(t => t.DoctorUserId).IsRequired(false);
- // }
- //}
-}
diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs
index 1fb1584fd..a71465dd8 100644
--- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs
+++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/SubjectConfigration.cs
@@ -1,17 +1,17 @@
using IRaCIS.Core.Domain.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
+using System.Reflection.Emit;
namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
{
public class SubjectConfigration : IEntityTypeConfiguration
- {
+ {
public void Configure(EntityTypeBuilder builder)
{
-
//不能同时配置一对多 和一对一 但是有时表要存储多的最新的 比如受试者 最新的访视 在这里要显示配置
- builder.HasOne(s => s.LatestSubjectVisit).WithMany().HasForeignKey(t => t.LatestSubjectVisitId);
+ builder.HasOne(s => s.LatestSubjectVisit).WithMany().HasForeignKey(t => t.LatestSubjectVisitId);
builder.HasOne(s => s.FinalSubjectVisit).WithMany().HasForeignKey(t => t.FinalSubjectVisitId);
builder.HasMany(s => s.SubjectVisitList).WithOne(sv => sv.Subject).HasForeignKey(t => t.SubjectId);
}
@@ -20,10 +20,8 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
{
public void Configure(EntityTypeBuilder builder)
{
-
//自身同时存在一对多 和一对一的关系,配置一对多的就可以,一对一 不用配置,有点奇怪
builder.HasMany(t => t.ChildList).WithOne(t => t.Parent).HasForeignKey(d => d.ParentId);
-
}
}
@@ -46,4 +44,50 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
builder.HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.ReplacedSubjectUser).HasForeignKey(t => t.ReplacedSubjectUserId);
}
}
+
+ public class UserConfigration : IEntityTypeConfiguration
+ {
+ public void Configure(EntityTypeBuilder builder)
+ {
+ //User 和VisitTask 存在一对多的关系 这里不显式配置就报错,why?
+ builder.HasMany(t => t.VisitTaskList).WithOne(t => t.DoctorUser).HasForeignKey(t => t.DoctorUserId);
+
+ //builder.HasOne(t => t.Doctor).WithOne(t => t.User);
+ }
+ }
+
+ public class SystemDocConfirmedUserConfigration : IEntityTypeConfiguration
+ {
+ public void Configure(EntityTypeBuilder builder)
+ {
+ #region 不用显示配置
+ //// 配置 CreateUser 关系
+ //builder.HasOne(s => s.CreateUser)
+ // .WithMany() // 假设 User 表没有对应的反向导航属性,如果有,填入属性名
+ // .HasForeignKey(s => s.CreateUserId);
+ ////.OnDelete(DeleteBehavior.Restrict); // 可根据业务需求调整删除行为
+ #endregion
+
+ // 配置 ConfirmUser 关系 (一个用户可以签名多个文档)
+ builder.HasOne(s => s.ConfirmUser) // ConfirmUser
+ .WithMany(t => t.SystemDocConfirmedList)
+ .HasForeignKey(s => s.ConfirmUserId);
+ //.OnDelete(DeleteBehavior.Restrict);
+ }
+ }
+
+ public class TrialUserConfigration : IEntityTypeConfiguration
+ {
+ //当一个实体,针对同一个类,有两个一对一导航属性,但是是不同的外键,一个外键是一对一,一个是一对多,那么需要显示配置一对多的关系
+ public void Configure(EntityTypeBuilder builder)
+ {
+ //TrialUser 和User 之间 一对多 (一个用户可以参与多个项目)
+ builder.HasOne(s => s.User)
+ .WithMany(t => t.UserTrials)
+ .HasForeignKey(s => s.UserId);
+
+ //TrialUser User 一对一 创建人
+ }
+ }
+
}
diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs
index c4f782f0c..98ccf65cd 100644
--- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs
+++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialUserConfigration.cs
@@ -5,8 +5,6 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
{
-
-
public class SubjectCriteriaEvaluationConfigration : IEntityTypeConfiguration
{
diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs
index 0e15a0649..2f355ef5e 100644
--- a/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs
+++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/VisitTaskConfigration.cs
@@ -25,8 +25,6 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
//subject 删除了,但是任务没删除,导致的查询问题
builder.HasQueryFilter(b => b.Subject.IsDeleted == false);
- //builder.HasOne(t => t.Subject).WithMany(s => s.SubjectVisitTaskList).HasForeignKey(t => t.SubjectId);
- //builder.HasMany(t => t.TaskMedicalReviewList).WithOne(t => t.VisitTask).HasForeignKey(t => t.VisitTaskId);
}
}
public class ReadingQuestionTrialConfigration : IEntityTypeConfiguration
diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs
index 6f49c3b84..3ec49f294 100644
--- a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs
+++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditEntityInterceptor.cs
@@ -96,8 +96,11 @@ public class AuditEntityInterceptor(IUserInfo _userInfo, ILogger 类型
public static bool IsNullOrEmpty(this IEnumerable enumerable)
diff --git a/IRaCIS.Core.Test/CodeFirstTest/CodeFirst使用说明 b/IRaCIS.Core.Test/CodeFirstTest/CodeFirst使用说明
index 78ded9bf4..7f0fbe6cd 100644
--- a/IRaCIS.Core.Test/CodeFirstTest/CodeFirst使用说明
+++ b/IRaCIS.Core.Test/CodeFirstTest/CodeFirst使用说明
@@ -3,12 +3,12 @@
https://www.cnblogs.com/cqpanda/p/16815263.html
- # dotnet ef migrations add ǩ -p Ŀ -c -o ǨļĿ¼
+ # dotnet ef migrations add Ǩ -p Ŀ -c ݿ -o ǨļĿ¼
1Ǩļ
dotnet ef migrations add Initial -p IRaCIS.Core.Test -c IRCContext -o CodeFirstTest/MSSQL/Migrations
- 2ղɵǨļ
+ 2ղɵǨļδµݿģ
dotnet ef migrations remove -p IRaCIS.Core.Test -c IRCContext
3Ǩļµݿ
@@ -17,7 +17,7 @@ https://www.cnblogs.com/cqpanda/p/16815263.html
4鿴Ǩ
dotnet ef migrations list -p IRaCIS.Core.Test -c IRCContext
- 5ijθµݿǨ
+ 5ijθµݿǨƣԶִdown
dotnet ef database update ijǨƵǰһǨ -p IRaCIS.Core.Test -c IRCContext