修改一版
parent
1cc7afa7d0
commit
2ad979bee9
|
@ -456,7 +456,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
public async Task<IResponseOutput> deleteNoneDicomStudyFile(DataInspectionDto<IDDto> opt)
|
public async Task<IResponseOutput> deleteNoneDicomStudyFile(DataInspectionDto<IDDto> opt)
|
||||||
{
|
{
|
||||||
var fun = _noneDicomStudyService.DeleteNoneDicomStudyFile;
|
var fun = _noneDicomStudyService.DeleteNoneDicomStudyFile;
|
||||||
opt.AuditInfo.GeneralId = opt.OptCommand.Id;
|
//opt.AuditInfo.GeneralId = opt.OptCommand.Id;
|
||||||
return await _inspectionService.Enforcement(opt.OptCommand.Id, opt.AuditInfo, opt.SignInfo, fun);
|
return await _inspectionService.Enforcement(opt.OptCommand.Id, opt.AuditInfo, opt.SignInfo, fun);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,10 +77,12 @@
|
||||||
<PackageReference Include="MailKit" Version="3.2.0" />
|
<PackageReference Include="MailKit" Version="3.2.0" />
|
||||||
<PackageReference Include="MediatR" Version="10.0.1" />
|
<PackageReference Include="MediatR" Version="10.0.1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="6.0.3" />
|
<PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="6.0.3" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
|
||||||
<PackageReference Include="MimeKit" Version="3.2.0" />
|
<PackageReference Include="MimeKit" Version="3.2.0" />
|
||||||
<PackageReference Include="MiniExcel" Version="1.24.3" />
|
<PackageReference Include="MiniExcel" Version="1.24.3" />
|
||||||
<PackageReference Include="My.Extensions.Localization.Json" Version="3.0.0" />
|
<PackageReference Include="My.Extensions.Localization.Json" Version="3.0.0" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
|
<PackageReference Include="Nito.AsyncEx" Version="5.1.2" />
|
||||||
<PackageReference Include="Panda.DynamicWebApi" Version="1.2.0" />
|
<PackageReference Include="Panda.DynamicWebApi" Version="1.2.0" />
|
||||||
<PackageReference Include="Quartz" Version="3.4.0" />
|
<PackageReference Include="Quartz" Version="3.4.0" />
|
||||||
<PackageReference Include="SharpCompress" Version="0.31.0" />
|
<PackageReference Include="SharpCompress" Version="0.31.0" />
|
||||||
|
|
|
@ -196,7 +196,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
/// 日期类型
|
/// 日期类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
public string DateType { get; set; }
|
public string DateType { get; set; }=string.Empty;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ using IRaCIS.Core.Infra.EFCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using IRaCIS.Core.Application.Service.Inspection.Interface;
|
using IRaCIS.Core.Application.Service.Inspection.Interface;
|
||||||
using IRaCIS.Core.Application.Service.Inspection.DTO;
|
using IRaCIS.Core.Application.Service.Inspection.DTO;
|
||||||
|
using Nito.AsyncEx;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Contracts
|
namespace IRaCIS.Core.Application.Contracts
|
||||||
{
|
{
|
||||||
|
@ -28,6 +29,10 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
private readonly IInspectionService _inspectionService;
|
private readonly IInspectionService _inspectionService;
|
||||||
private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository;
|
private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository;
|
||||||
|
|
||||||
|
|
||||||
|
private readonly AsyncLock _mutex = new AsyncLock();
|
||||||
|
|
||||||
|
|
||||||
public NoneDicomStudyService(IRepository<NoneDicomStudy> noneDicomStudyRepository,
|
public NoneDicomStudyService(IRepository<NoneDicomStudy> noneDicomStudyRepository,
|
||||||
IHttpContextAccessor httpContext,
|
IHttpContextAccessor httpContext,
|
||||||
IWebHostEnvironment hostEnvironment,
|
IWebHostEnvironment hostEnvironment,
|
||||||
|
@ -57,44 +62,50 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
[TypeFilter(typeof(TrialResourceFilter))]
|
[TypeFilter(typeof(TrialResourceFilter))]
|
||||||
public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
|
public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
|
||||||
{
|
{
|
||||||
var entity = await _noneDicomStudyRepository.InsertOrUpdateAsync(addOrEditNoneDicomStudy, false);
|
using (await _mutex.LockAsync())
|
||||||
|
|
||||||
if (_repository.Entry(entity).State == Microsoft.EntityFrameworkCore.EntityState.Added)
|
|
||||||
{
|
{
|
||||||
entity.Code = _noneDicomStudyRepository.Where(t => t.TrialId == addOrEditNoneDicomStudy.TrialId).Select(t => t.Code).DefaultIfEmpty().Max() + 1;
|
|
||||||
|
var entity = await _noneDicomStudyRepository.InsertOrUpdateAsync(addOrEditNoneDicomStudy, false);
|
||||||
|
|
||||||
|
if (_repository.Entry(entity).State == Microsoft.EntityFrameworkCore.EntityState.Added)
|
||||||
|
{
|
||||||
|
entity.Code = _noneDicomStudyRepository.Where(t => t.TrialId == addOrEditNoneDicomStudy.TrialId).Select(t => t.Code).DefaultIfEmpty().Max() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.StudyCode = "NST" + entity.Code.ToString("D5");
|
||||||
|
await _repository.SaveChangesAsync();
|
||||||
|
|
||||||
|
var svTime = _repository.Where<SubjectVisit>(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId).Select(t => new
|
||||||
|
{
|
||||||
|
DicomStudyMinStudyTime = t.StudyList.Min(t => (DateTime?)t.StudyTime),
|
||||||
|
DicomStudyMaxStudyTime = t.StudyList.Max(t => (DateTime?)t.StudyTime),
|
||||||
|
NoneDicomStudyMinStudyTime = t.NoneDicomStudyList.Min(t => (DateTime?)t.ImageDate),
|
||||||
|
NoneDicomStudyMaxStudyTime = t.NoneDicomStudyList.Max(t => (DateTime?)t.ImageDate)
|
||||||
|
}).FirstOrDefault().IfNullThrowException();
|
||||||
|
|
||||||
|
var minArray = new DateTime?[] { svTime.DicomStudyMinStudyTime, svTime.NoneDicomStudyMinStudyTime, addOrEditNoneDicomStudy.ImageDate };
|
||||||
|
var maxArray = new DateTime?[] { svTime.DicomStudyMaxStudyTime, svTime.NoneDicomStudyMaxStudyTime, addOrEditNoneDicomStudy.ImageDate };
|
||||||
|
|
||||||
|
await _repository.BatchUpdateAsync<SubjectVisit>(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId, u => new SubjectVisit()
|
||||||
|
{
|
||||||
|
VisitExecuted = VisitExecutedEnum.Executed,
|
||||||
|
|
||||||
|
EarliestScanDate = minArray.Min(),
|
||||||
|
|
||||||
|
LatestScanDate = maxArray.Max()
|
||||||
|
});
|
||||||
|
|
||||||
|
await _repository.SaveChangesAsync();
|
||||||
|
|
||||||
|
NoneDicomStudyAddReturnDto noneDicom = new NoneDicomStudyAddReturnDto()
|
||||||
|
{
|
||||||
|
StudyCode = entity.StudyCode,
|
||||||
|
Id = entity.Id
|
||||||
|
};
|
||||||
|
return ResponseOutput.Ok(noneDicom);
|
||||||
}
|
}
|
||||||
|
|
||||||
entity.StudyCode = "NST" + entity.Code.ToString("D5");
|
|
||||||
await _repository.SaveChangesAsync();
|
|
||||||
|
|
||||||
var svTime = _repository.Where<SubjectVisit>(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId).Select(t => new
|
|
||||||
{
|
|
||||||
DicomStudyMinStudyTime = t.StudyList.Min(t => (DateTime?)t.StudyTime),
|
|
||||||
DicomStudyMaxStudyTime = t.StudyList.Max(t => (DateTime?)t.StudyTime),
|
|
||||||
NoneDicomStudyMinStudyTime = t.NoneDicomStudyList.Min(t => (DateTime?)t.ImageDate),
|
|
||||||
NoneDicomStudyMaxStudyTime = t.NoneDicomStudyList.Max(t => (DateTime?)t.ImageDate)
|
|
||||||
}).FirstOrDefault().IfNullThrowException();
|
|
||||||
|
|
||||||
var minArray = new DateTime?[] { svTime.DicomStudyMinStudyTime, svTime.NoneDicomStudyMinStudyTime, addOrEditNoneDicomStudy.ImageDate };
|
|
||||||
var maxArray = new DateTime?[] { svTime.DicomStudyMaxStudyTime, svTime.NoneDicomStudyMaxStudyTime, addOrEditNoneDicomStudy.ImageDate };
|
|
||||||
|
|
||||||
await _repository.BatchUpdateAsync<SubjectVisit>(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId, u => new SubjectVisit()
|
|
||||||
{
|
|
||||||
VisitExecuted = VisitExecutedEnum.Executed,
|
|
||||||
|
|
||||||
EarliestScanDate = minArray.Min(),
|
|
||||||
|
|
||||||
LatestScanDate = maxArray.Max()
|
|
||||||
});
|
|
||||||
|
|
||||||
await _repository.SaveChangesAsync();
|
|
||||||
|
|
||||||
NoneDicomStudyAddReturnDto noneDicom = new NoneDicomStudyAddReturnDto()
|
|
||||||
{
|
|
||||||
StudyCode= entity.StudyCode,
|
|
||||||
Id= entity.Id
|
|
||||||
};
|
|
||||||
return ResponseOutput.Ok(noneDicom);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue