修改IR 页面设置 软删除和不读片

Test.EIImageViewer
{872297557@qq.com} 2022-11-29 16:04:50 +08:00
parent 57617d9cf5
commit 83e6226c22
8 changed files with 26 additions and 25 deletions

View File

@ -7179,10 +7179,9 @@
<param name="tpCode"></param>
<param name="key"></param>
</member>
<member name="M:IRaCIS.Core.Application.Services.SeriesService.List(System.Guid,System.String)">
<member name="M:IRaCIS.Core.Application.Services.SeriesService.List(System.Guid)">
<summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary>
<param name="studyId"> Dicom检查的Id </param>
<param name="tpCode"></param>
</member>
<member name="M:IRaCIS.Core.Application.Services.SeriesService.Preview(System.Guid)">
<summary> 指定资源Id渲染Dicom序列的Jpeg预览图像 </summary>

View File

@ -24,10 +24,9 @@ namespace IRaCIS.Core.Application.Contracts
public string Path { get; set; }
//public Guid CreateUserId { get; set; }
//public DateTime CreateTime { get; set; }
//public Guid UpdateUserId { get; set; }
//public DateTime UpdateTime { get; set; }
public bool IsDeleted { get; set; }
public bool IsReading { get; set; } = true;
}

View File

@ -30,6 +30,9 @@
public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; }
public bool IsDeleted { get; set; }
public bool IsReading { get; set; } = true;
public List<Guid> InstanceList { get; set; } = new List<Guid>();
public List<string> InstancePathList { get; set; } = new List<string>();

View File

@ -30,14 +30,13 @@ namespace IRaCIS.Core.Application.Services
//医生读片那一块有耦合,关键序列 这里暂时留存
/// <summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary>
/// <param name="studyId"> Dicom检查的Id </param>
/// <param name="tpCode"></param>
[HttpGet, Route("{studyId:guid}/{tpCode?}")]
public async Task<IResponseOutput<List<DicomSeriesWithLabelDTO>>> List(Guid studyId, string? tpCode)
[HttpGet, Route("{studyId:guid}")]
public async Task<IResponseOutput<List<DicomSeriesDTO>>> List(Guid studyId)
{
var seriesList = await _seriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber).
ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
.ProjectTo<DicomSeriesWithLabelDTO>(_mapper.ConfigurationProvider).ToListAsync();
.ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)

View File

@ -58,7 +58,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<DicomStudy, QAStudyInfoDTO>()
.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.StudyId, t => t.MapFrom(u => u.Id));
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id)
@ -74,7 +74,9 @@ namespace IRaCIS.Core.Application.Service
CreateMap<StudyStatusDetail, StudyStatusDetailDTO>();
CreateMap<DicomInstance, DicomInstanceDTO>();
CreateMap<DicomInstance, DicomInstanceDTO>()
.ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
.ForMember(o => o.IsReading, t => t.MapFrom(u => u.DicomSerie.IsReading));
CreateMap<DicomStudy, DicomStudyDTO>();
CreateMap<DicomSeries, DicomSeriesDTO>();

View File

@ -404,7 +404,6 @@ namespace IRaCIS.Core.Application.Contracts.DTO
public string BodyPartForEdit { get; set; } = String.Empty;
public string SeriesInstanceUid { get; set; } = String.Empty;
public int SeriesNumber { get; set; }
public DateTime? SeriesTime { get; set; }

View File

@ -1348,8 +1348,8 @@ namespace IRaCIS.Core.Application.Image.QA
//删除 软删除的物理文件
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
.Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
var instancePathList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
.Select(t => t.Path).ToListAsync();
//维护统一状态
dbSubjectVisit.ReadingStatus = ReadingStatusEnum.ConsistencyCheck;
@ -1385,12 +1385,15 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.ReadingStatus = trialConfig.IsImageConsistencyVerification ? ReadingStatusEnum.ConsistencyCheck : ReadingStatusEnum.TaskAllocate;
//删除影像
instanceIdList.ForEach(t =>
instancePathList.ForEach(path =>
{
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
var (physicalPath, relativePath) =
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
//var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
//var (physicalPath, relativePath) =
// FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
if (System.IO.File.Exists(physicalPath))
{
@ -1448,12 +1451,10 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.ReadingStatus = trialConfig.IsImageConsistencyVerification ? ReadingStatusEnum.ConsistencyCheck : ReadingStatusEnum.TaskAllocate;
//删除影像
instanceIdList.ForEach(t =>
instancePathList.ForEach(path =>
{
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
var(physicalPath, relativePath) =
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
var physicalPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, path);
if (System.IO.File.Exists(physicalPath))
{

View File

@ -56,11 +56,10 @@ namespace IRaCIS.Core.Domain.Models
public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; } = DateTime.Now;
public bool IsDeleted {get;set;}
public DateTime? DeletedTime { get; set; }
public Guid? DeleteUserId { get; set; }
public bool IsDeleted {get;set;}
public bool IsReading { get; set; } = true;
public string BodyPartForEdit { get; set; } = string.Empty;