非Dicom检查时间校验
This commit is contained in:
@@ -79,6 +79,33 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
|
||||
{
|
||||
var visitList = await _subjectVisitRepository.Where(t => t.SubjectId == addOrEditNoneDicomStudy.SubjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync();
|
||||
|
||||
var currentVisitNum = await _subjectVisitRepository.Where(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId).Select(t => t.VisitNum).FirstOrDefaultAsync();
|
||||
|
||||
if (addOrEditNoneDicomStudy.Id == null)
|
||||
{
|
||||
//更新验证的时候,排除自己
|
||||
visitList = visitList.Where(t => t.Id != addOrEditNoneDicomStudy.Id).ToList();
|
||||
}
|
||||
|
||||
//小于当前访视 最近的最早拍片日期
|
||||
var before = visitList.Where(u => u.VisitNum < currentVisitNum).Max(k => k.EarliestScanDate);
|
||||
|
||||
if (before != null && before > addOrEditNoneDicomStudy.ImageDate)
|
||||
{
|
||||
throw new BusinessValidationFailedException($"当前访视检查时间{addOrEditNoneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
|
||||
}
|
||||
|
||||
|
||||
//大于当前访视 最近的最晚拍片日期
|
||||
var after = visitList.Where(u => u.VisitNum > currentVisitNum).Min(k => k.LatestScanDate);
|
||||
|
||||
if (after != null && after < addOrEditNoneDicomStudy.ImageDate)
|
||||
{
|
||||
throw new BusinessValidationFailedException($"当前访视检查时间{addOrEditNoneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
|
||||
|
||||
}
|
||||
|
||||
NoneDicomStudy? optEntity = null;
|
||||
using (await _mutex.LockAsync())
|
||||
|
||||
Reference in New Issue
Block a user