Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
commit
d9c46acb03
|
|
@ -67,8 +67,8 @@
|
||||||
"AuthorizationCode": "ExtImg@2022",
|
"AuthorizationCode": "ExtImg@2022",
|
||||||
"SiteUrl": "http://irc.extimaging.com/login",
|
"SiteUrl": "http://irc.extimaging.com/login",
|
||||||
"SystemShortName": "IRC",
|
"SystemShortName": "IRC",
|
||||||
"OrganizationName": "Extlmaging",
|
"OrganizationName": "ExtImaging",
|
||||||
"OrganizationNameCN": "Extlmaging",
|
"OrganizationNameCN": "ExtImaging",
|
||||||
"CompanyName": "Extensive Imaging",
|
"CompanyName": "Extensive Imaging",
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
"CompanyNameCN": "上海展影医疗科技有限公司",
|
||||||
"CompanyShortName": "Extensive Imaging",
|
"CompanyShortName": "Extensive Imaging",
|
||||||
|
|
|
||||||
|
|
@ -138,9 +138,9 @@
|
||||||
// 系统简称
|
// 系统简称
|
||||||
"SystemShortName": "IRC",
|
"SystemShortName": "IRC",
|
||||||
// 组织英文名称
|
// 组织英文名称
|
||||||
"OrganizationName": "Extlmaging",
|
"OrganizationName": "ExtImaging",
|
||||||
// 组织中文名称
|
// 组织中文名称
|
||||||
"OrganizationNameCN": "Extlmaging",
|
"OrganizationNameCN": "ExtImaging",
|
||||||
// 公司英文全称
|
// 公司英文全称
|
||||||
"CompanyName": "Extensive Imaging",
|
"CompanyName": "Extensive Imaging",
|
||||||
// 公司中文全称
|
// 公司中文全称
|
||||||
|
|
|
||||||
|
|
@ -81,8 +81,8 @@
|
||||||
"AuthorizationCode": "SHzyyl2021",
|
"AuthorizationCode": "SHzyyl2021",
|
||||||
"SiteUrl": "http://irc.test.extimaging.com/login",
|
"SiteUrl": "http://irc.test.extimaging.com/login",
|
||||||
|
|
||||||
"OrganizationName": "Extlmaging",
|
"OrganizationName": "ExtImaging",
|
||||||
"OrganizationNameCN": "Extlmaging",
|
"OrganizationNameCN": "ExtImaging",
|
||||||
"CompanyName": "Extensive Imaging",
|
"CompanyName": "Extensive Imaging",
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
"CompanyNameCN": "上海展影医疗科技有限公司",
|
||||||
"CompanyShortName": "Extensive Imaging",
|
"CompanyShortName": "Extensive Imaging",
|
||||||
|
|
|
||||||
|
|
@ -87,8 +87,8 @@
|
||||||
"SiteUrl": "http://irc.uat.extimaging.com/login",
|
"SiteUrl": "http://irc.uat.extimaging.com/login",
|
||||||
|
|
||||||
"SystemShortName": "IRC",
|
"SystemShortName": "IRC",
|
||||||
"OrganizationName": "Extlmaging",
|
"OrganizationName": "ExtImaging",
|
||||||
"OrganizationNameCN": "Extlmaging",
|
"OrganizationNameCN": "ExtImaging",
|
||||||
"CompanyName": "Extensive Imaging",
|
"CompanyName": "Extensive Imaging",
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
"CompanyNameCN": "上海展影医疗科技有限公司",
|
||||||
"CompanyShortName": "Extensive Imaging",
|
"CompanyShortName": "Extensive Imaging",
|
||||||
|
|
|
||||||
|
|
@ -1005,6 +1005,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public string VisitName { get; set; }
|
public string VisitName { get; set; }
|
||||||
|
|
||||||
|
public Guid SourceSubjectVisitId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public List<DicomStudyBasicInfo> DicomStudyList { get; set; } = new List<DicomStudyBasicInfo>();
|
public List<DicomStudyBasicInfo> DicomStudyList { get; set; } = new List<DicomStudyBasicInfo>();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
|
|
||||||
if (inQuery.IsImageSegmentLabel == true)
|
if (inQuery.IsImageSegmentLabel == true)
|
||||||
{
|
{
|
||||||
var querySV = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId)
|
var querySV = _subjectVisitRepository.WhereIf(inQuery.SubjectVisitId != null, t => t.Id == inQuery.SubjectVisitId)
|
||||||
.WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
|
.WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
|
||||||
.Select(u => new SubjectVisitMarkUploadDto()
|
.Select(u => new SubjectVisitMarkUploadDto()
|
||||||
{
|
{
|
||||||
|
|
@ -1248,6 +1248,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
var dicomStudyList = list.Where(item => item.DicomStudyList.Count > 0)
|
var dicomStudyList = list.Where(item => item.DicomStudyList.Count > 0)
|
||||||
.Select(item => new SubjectVisitMarkStudyDto
|
.Select(item => new SubjectVisitMarkStudyDto
|
||||||
{
|
{
|
||||||
|
SourceSubjectVisitId=item.SourceSubjectVisitId,
|
||||||
VisitTaskId = item.VisitTaskId,
|
VisitTaskId = item.VisitTaskId,
|
||||||
SubjectId = item.SubjectId,
|
SubjectId = item.SubjectId,
|
||||||
SubjectCode = item.SubjectCode,
|
SubjectCode = item.SubjectCode,
|
||||||
|
|
@ -1260,6 +1261,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
var noneStudyList = list.Where(item => item.NoneDicomStudyList.Count > 0)
|
var noneStudyList = list.Where(item => item.NoneDicomStudyList.Count > 0)
|
||||||
.Select(item => new SubjectVisitMarkStudyDto
|
.Select(item => new SubjectVisitMarkStudyDto
|
||||||
{
|
{
|
||||||
|
SourceSubjectVisitId = item.SourceSubjectVisitId,
|
||||||
VisitTaskId = item.VisitTaskId,
|
VisitTaskId = item.VisitTaskId,
|
||||||
SubjectId = item.SubjectId,
|
SubjectId = item.SubjectId,
|
||||||
SubjectCode = item.SubjectCode,
|
SubjectCode = item.SubjectCode,
|
||||||
|
|
@ -1433,7 +1435,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
var dirInfolist = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList)
|
var dirInfolist = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList)
|
||||||
.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
|
.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
|
||||||
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
|
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true)
|
||||||
.Where(t => inQuery.IsImageSegmentLabel == true ? t.ModalityForEdit == "XA" : true)
|
.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" : true)
|
||||||
.SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading))
|
.SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading))
|
||||||
.Select(t => new StudyDIRInfo()
|
.Select(t => new StudyDIRInfo()
|
||||||
{
|
{
|
||||||
|
|
@ -1540,6 +1542,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
from leftVisitTask in cc.DefaultIfEmpty()
|
from leftVisitTask in cc.DefaultIfEmpty()
|
||||||
select new ImageDownloadDto()
|
select new ImageDownloadDto()
|
||||||
{
|
{
|
||||||
|
TrialId=sv.TrialId,
|
||||||
|
SubjectId=sv.SubjectId,
|
||||||
|
TrialSiteCode=sv.TrialSite.TrialSiteCode,
|
||||||
|
VisitId=sv.Id,
|
||||||
|
|
||||||
SubjectCode = inQuery.SubjectCode,
|
SubjectCode = inQuery.SubjectCode,
|
||||||
VisitName = sv.VisitName,
|
VisitName = sv.VisitName,
|
||||||
TaskBlindName = leftVisitTask.TaskBlindName,
|
TaskBlindName = leftVisitTask.TaskBlindName,
|
||||||
|
|
@ -1596,7 +1603,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
}).ToList()
|
}).ToList()
|
||||||
,
|
,
|
||||||
|
|
||||||
NoneDicomStudyList = inQuery.IsImageSegmentLabel == null ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false)
|
NoneDicomStudyList = inQuery.IsImageSegmentLabel != false ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false)
|
||||||
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true)
|
.Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true)
|
||||||
.Where(t => t.IsReading)
|
.Where(t => t.IsReading)
|
||||||
.Select(nd => new DownloadNoneDicomStudyDto()
|
.Select(nd => new DownloadNoneDicomStudyDto()
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
|
|
||||||
CreateMap<SubjectVisit, SubjectVisitMarkStudyDto>()
|
CreateMap<SubjectVisit, SubjectVisitMarkStudyDto>()
|
||||||
|
.ForMember(d => d.SourceSubjectVisitId, u => u.MapFrom(u => u.Id))
|
||||||
.ForMember(d => d.SubjectCode, u => u.MapFrom(u => u.Subject.Code))
|
.ForMember(d => d.SubjectCode, u => u.MapFrom(u => u.Subject.Code))
|
||||||
.ForMember(d => d.DicomStudyList, u => u.MapFrom(s => s.StudyList))
|
.ForMember(d => d.DicomStudyList, u => u.MapFrom(s => s.StudyList))
|
||||||
.ForMember(d => d.NoneDicomStudyList, u => u.MapFrom(s => s.NoneDicomStudyList.Where(t => t.IsReading)));
|
.ForMember(d => d.NoneDicomStudyList, u => u.MapFrom(s => s.NoneDicomStudyList.Where(t => t.IsReading)));
|
||||||
|
|
|
||||||
|
|
@ -352,7 +352,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, } },
|
new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, } },
|
||||||
|
|
||||||
//垂直径乘积之和(SPD)
|
//垂直径乘积之和(SPD)
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetDecimalFun=GetSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetStringFun=GetSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
||||||
|
|
||||||
// 与基线相比SPD变化的百分比
|
// 与基线相比SPD变化的百分比
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
||||||
|
|
@ -1861,15 +1861,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<decimal> GetSPD(ReadingCalculateDto inDto)
|
public async Task<string> GetSPD(ReadingCalculateDto inDto)
|
||||||
{
|
{
|
||||||
decimal result = 0;
|
|
||||||
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
||||||
|
|
||||||
var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
|
var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
|
||||||
|
if (inDto.IsBaseLine && tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Count() == 0)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
decimal result = 0;
|
||||||
result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0());
|
result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0());
|
||||||
return result;
|
return result.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -352,7 +352,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, } },
|
new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, } },
|
||||||
|
|
||||||
//垂直径乘积之和(SPD)
|
//垂直径乘积之和(SPD)
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetDecimalFun=GetSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetStringFun=GetSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
||||||
|
|
||||||
// 与基线相比SPD变化的百分比
|
// 与基线相比SPD变化的百分比
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List<ComputationTrigger>(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}},
|
||||||
|
|
@ -1861,15 +1861,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<decimal> GetSPD(ReadingCalculateDto inDto)
|
public async Task<string> GetSPD(ReadingCalculateDto inDto)
|
||||||
{
|
{
|
||||||
decimal result = 0;
|
|
||||||
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
||||||
|
|
||||||
var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
|
var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
|
||||||
|
if (inDto.IsBaseLine && tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Count() == 0)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
decimal result = 0;
|
||||||
result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0());
|
result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0());
|
||||||
return result;
|
return result.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
var isImageFilter = false;
|
var isImageFilter = false;
|
||||||
var criterionModalitys = "";
|
var criterionModalitys = "";
|
||||||
if (visitTaskId != null)
|
if (visitTaskId != null && visitTaskId != Guid.Empty)
|
||||||
{
|
{
|
||||||
var info = await _visitTaskRepository.Where(t => t.Id == visitTaskId)
|
var info = await _visitTaskRepository.Where(t => t.Id == visitTaskId)
|
||||||
.Select(t => new { t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();
|
.Select(t => new { t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue