From 08354e00b0c2015a3280ed54237f5e996c007502 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 17 Nov 2022 16:35:51 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9path?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 43 +++++++++++
.../Service/Visit/SubjectVisitService.cs | 73 +++++++++++--------
2 files changed, 85 insertions(+), 31 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index b897a0700..cefe7600d 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1251,6 +1251,49 @@
+
+
+ 删除病灶获取起始病灶序号
+
+
+
+
+
+ 获取阅片报告
+
+
+
+
+
+
+ 将上一次的病灶信息添加到这一次
+
+
+
+
+
+
+ 测试计算
+
+
+
+
+
+
+
+ 计算任务
+
+
+
+
+
+
+ 自动计算
+
+
+
+
+
自动计算 并修改值
diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
index d3e0467be..fd72bfbfe 100644
--- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs
@@ -72,9 +72,9 @@ namespace IRaCIS.Core.Application.Services
var verifyExp3 = new EntityVerifyExp()
{
- VerifyExp = t => t.SubjectId == svCommand.SubjectId && t.VisitName==svCommand.VisitName,
+ VerifyExp = t => t.SubjectId == svCommand.SubjectId && t.VisitName == svCommand.VisitName,
VerifyMsg = "该受试者的访视计划中已经包含一个具有相同访视名称的访视。"
-
+
};
svCommand.BlindName = "B" + ((int)(svCommand.VisitNum * 10)).ToString("D3");
@@ -95,13 +95,13 @@ namespace IRaCIS.Core.Application.Services
}
}
- dbBeforeEntity = await _subjectVisitRepository.InsertFromDTOAsync(svCommand, false, verifyExp1, verifyExp2,verifyExp3);
+ dbBeforeEntity = await _subjectVisitRepository.InsertFromDTOAsync(svCommand, false, verifyExp1, verifyExp2, verifyExp3);
}
else
{
dbBeforeEntity = await _subjectVisitRepository.UpdateFromDTOAsync(svCommand, false, false, verifyExp1, verifyExp2, verifyExp3);
-
+
if (svCommand.PDState != dbBeforeEntity.PDState && dbBeforeEntity.SubmitState == SubmitStateEnum.Submitted)
{
@@ -151,7 +151,7 @@ namespace IRaCIS.Core.Application.Services
[Authorize(Policy = IRaCISPolicy.PM_IQC)]
public async Task SetSubjectVisitUrgent(Guid subjectVisitId, bool isUrgent)
{
- await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { IsUrgent = isUrgent },true);
+ await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { IsUrgent = isUrgent }, true);
return ResponseOutput.Ok();
}
@@ -176,8 +176,8 @@ namespace IRaCIS.Core.Application.Services
return ResponseOutput.NotOk("当前访视已经被设置为另一访视的上一访视,不允许删除。");
}
- await _subjectVisitRepository.DeleteFromQueryAsync(s => s.Id == id,true);
-
+ await _subjectVisitRepository.DeleteFromQueryAsync(s => s.Id == id, true);
+
return ResponseOutput.Ok();
}
@@ -205,7 +205,7 @@ namespace IRaCIS.Core.Application.Services
var studyIds = studyList.Select(t => t.StudyId).ToList();
var instanceList = await _repository.Where(t => studyIds.Contains(t.StudyId))
- .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber }).ToListAsync();
+ .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber,t.Path }).ToListAsync();
foreach (var t in studyList)
{
@@ -215,7 +215,15 @@ namespace IRaCIS.Core.Application.Services
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
- t.SeriesList.ForEach(series => series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList());
+ t.SeriesList.ForEach(series =>
+ {
+ series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
+
+ series.InstancePathList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Path).ToList();
+
+ }
+
+ );
//设置为阅片与否 不更改数据库检查 的instance数量 和 SeriesCount 所以这里要实时统计
t.SeriesCount = t.SeriesList.Count();
@@ -245,28 +253,28 @@ namespace IRaCIS.Core.Application.Services
var taskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
-
- if(taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
+
+ if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
{
-
+
var thisStudyIds = thisRowinfo.Select(x => x.StudyId).ToList();
- var thisSeriesIdIds = thisRowinfo.Where(x=>x.SeriesId!=null).Select(x => x.SeriesId).ToList();
- if (thisRowinfo.Count>0)
+ var thisSeriesIdIds = thisRowinfo.Where(x => x.SeriesId != null).Select(x => x.SeriesId).ToList();
+ if (thisRowinfo.Count > 0)
{
- var thisVisitTaskStudy= await _repository.Where(t => thisStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
+ var thisVisitTaskStudy = await _repository.Where(t => thisStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
{
InstanceCount = k.InstanceCount,
-
+
SeriesCount = k.SeriesCount,
-
+
StudyId = k.Id,
- IsCriticalSequence=true,
+ IsCriticalSequence = true,
}).FirstOrDefaultAsync();
if (thisVisitTaskStudy != null)
{
- var item = await _repository.Where(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
+ var item = await _repository.Where(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
ThenBy(s => s.SeriesTime)
.ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
@@ -287,10 +295,10 @@ namespace IRaCIS.Core.Application.Services
result.Add(thisVisitTaskStudy);
}
-
+
}
}
-
+
var studyList = await _repository.Where(t => t.TrialId == indto.TrialId && t.SubjectVisitId == indto.SujectVisitId).Select(k => new VisitStudyDTO()
{
@@ -299,20 +307,23 @@ namespace IRaCIS.Core.Application.Services
SeriesCount = k.SeriesCount,
StudyCode = k.StudyCode,
StudyId = k.Id,
-
+
}).ToListAsync();
var studyIds = studyList.Select(t => t.StudyId).ToList();
var instanceList = await _repository.Where(t => studyIds.Contains(t.StudyId))
- .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber }).ToListAsync();
+ .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber,t.Path }).ToListAsync();
foreach (var t in studyList)
{
- t.SeriesList = await _repository.Where(s => s.StudyId == t.StudyId&&s.IsReading).OrderBy(s => s.SeriesNumber).
+ t.SeriesList = await _repository.Where(s => s.StudyId == t.StudyId && s.IsReading).OrderBy(s => s.SeriesNumber).
ThenBy(s => s.SeriesTime)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
- t.SeriesList.ForEach(series => series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList());
+ t.SeriesList.ForEach(series => {
+ series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
+ series.InstancePathList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Path).ToList();
+ });
//设置为阅片与否 不更改数据库检查 的instance数量 和 SeriesCount 所以这里要实时统计
t.SeriesCount = t.SeriesList.Count();
@@ -329,11 +340,11 @@ namespace IRaCIS.Core.Application.Services
{
InstanceCount = x.FileCount,
StudyId = x.Id,
- Modalities=x.Modality,
- SeriesCount=1,
- StudyCode=x.StudyCode,
+ Modalities = x.Modality,
+ SeriesCount = 1,
+ StudyCode = x.StudyCode,
IsDicom = false,
-
+
}).ToList();
foreach (var item in noDicomStudyList)
@@ -359,9 +370,9 @@ namespace IRaCIS.Core.Application.Services
}
- if (studyList==null||studyList.Count == 0)
+ if (studyList == null || studyList.Count == 0)
{
- studyList=new List();
+ studyList = new List();
}
studyList.AddRange(noDicomStudyList);