From 83e6226c22ed811620e6e24d8d2c586786211b5f Mon Sep 17 00:00:00 2001
From: "{872297557@qq.com}" <872297557@qq.com>
Date: Tue, 29 Nov 2022 16:04:50 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9IR=20=20=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E8=AE=BE=E7=BD=AE=20=E8=BD=AF=E5=88=A0=E9=99=A4=E5=92=8C?=
=?UTF-8?q?=E4=B8=8D=E8=AF=BB=E7=89=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 3 +--
.../ImageAndDoc/DTO/DicomInstanceModel.cs | 7 +++----
.../ImageAndDoc/DTO/DicomSeriesModel.cs | 3 +++
.../Service/ImageAndDoc/SeriesService.cs | 7 +++----
.../Service/ImageAndDoc/_MapConfig.cs | 6 ++++--
.../Service/QC/DTO/QARecordViewModel.cs | 1 -
.../Service/QC/QCOperationService.cs | 21 ++++++++++---------
IRaCIS.Core.Domain/Image/DicomSeries.cs | 3 +--
8 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index a7bc009a0..aa0e76004 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -7179,10 +7179,9 @@
-
+
指定资源Id,获取Dicom检查所属序列信息列表
Dicom检查的Id
-
指定资源Id,渲染Dicom序列的Jpeg预览图像
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs
index b8832e089..cbede37f9 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomInstanceModel.cs
@@ -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;
}
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
index bdea84a78..be345a98e 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
@@ -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 InstanceList { get; set; } = new List();
public List InstancePathList { get; set; } = new List();
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs
index e581bcb83..215fefc09 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/SeriesService.cs
@@ -30,14 +30,13 @@ namespace IRaCIS.Core.Application.Services
//医生读片那一块有耦合,关键序列 这里暂时留存
/// 指定资源Id,获取Dicom检查所属序列信息列表
/// Dicom检查的Id
- ///
- [HttpGet, Route("{studyId:guid}/{tpCode?}")]
- public async Task>> List(Guid studyId, string? tpCode)
+ [HttpGet, Route("{studyId:guid}")]
+ public async Task>> 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(_mapper.ConfigurationProvider).ToListAsync();
+ .ProjectTo(_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)
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs
index c2b67ffd1..66b395a1f 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs
@@ -58,7 +58,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.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();
- CreateMap();
+ CreateMap()
+ .ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
+ .ForMember(o => o.IsReading, t => t.MapFrom(u => u.DicomSerie.IsReading));
CreateMap();
CreateMap();
diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs
index 3171fa5e7..ddefcce0c 100644
--- a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs
+++ b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs
@@ -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; }
diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
index cb5864e42..167991d9e 100644
--- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs
@@ -1348,8 +1348,8 @@ namespace IRaCIS.Core.Application.Image.QA
//删除 软删除的物理文件
- var instanceIdList = await _repository.Where(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(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))
{
diff --git a/IRaCIS.Core.Domain/Image/DicomSeries.cs b/IRaCIS.Core.Domain/Image/DicomSeries.cs
index 7971e61e0..094c4f623 100644
--- a/IRaCIS.Core.Domain/Image/DicomSeries.cs
+++ b/IRaCIS.Core.Domain/Image/DicomSeries.cs
@@ -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;