From 08281d161fc14edcc6e02888a96f419f8a182c38 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 17 Mar 2023 14:26:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=84=E5=8A=A0=E8=AF=84=E4=BC=B0=E4=B8=8E?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 85 +++++++++ .../Fixed/CriterionAdditionalAssessment.cs | 4 +- .../DTO/SubjectCriteriaEvaluationViewModel.cs | 57 ++++++ ...tCriteriaEvaluationVisitFilterViewModel.cs | 54 ++++++ ...eriaEvaluationVisitStudyFilterViewModel.cs | 51 ++++++ .../ISubjectCriteriaEvaluationService.cs | 25 +++ ...ectCriteriaEvaluationVisitFilterService.cs | 25 +++ ...iteriaEvaluationVisitStudyFilterService.cs | 25 +++ .../SubjectCriteriaEvaluationService.cs | 164 ++++++++++++++++++ ...ectCriteriaEvaluationVisitFilterService.cs | 40 +++++ ...iteriaEvaluationVisitStudyFilterService.cs | 64 +++++++ .../Service/Reading/_MapConfig.cs | 13 +- .../Visit/DTO/ClinicalStudySubjects.cs | 3 + .../Service/Visit/SubjectService.cs | 2 + .../SubjectAdditionalEvaluationResult.cs | 93 ++++++++++ .../SubjectCriteriaEvaluation.cs | 72 ++++++++ .../SubjectCriteriaEvaluationVisitFilter.cs | 83 +++++++++ ...bjectCriteriaEvaluationVisitStudyFilter.cs | 82 +++++++++ .../ReadingQuestionTrial.cs | 1 + IRaCIS.Core.Domain/Visit/Subject.cs | 3 +- .../Context/IRaCISDBContext.cs | 5 + IRaCIS.Core.Test/DbHelper.ttinclude | 2 +- 22 files changed, 948 insertions(+), 5 deletions(-) create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitFilterService.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitStudyFilterService.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilterService.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilterService.cs create mode 100644 IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs create mode 100644 IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs create mode 100644 IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs create mode 100644 IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilter.cs diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 2d3f99514..0da22756f 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1941,6 +1941,49 @@ + + + SubjectCriteriaEvaluationService + + + + + subject 某标准 是否评估列表 + + + + + + + 添加 编辑 是否参与评估 + + + + + + + 评估访视筛选列表 + + + + + + + 评估访视 判断结果 影像筛选状态 手动添加/编辑接口 + + + + + + + SubjectCriteriaEvaluationVisitFilterService + + + + + SubjectCriteriaEvaluationVisitStudyFilterService + + 名称 @@ -6620,6 +6663,33 @@ 检查日期 + + SubjectCriteriaEvaluationView 列表视图模型 + + + SubjectCriteriaEvaluationQuery 列表查询参数模型 + + + SubjectCriteriaEvaluationAddOrEdit 列表查询参数模型 + + + SubjectCriteriaEvaluationVisitFilterView 列表视图模型 + + + SubjectCriteriaEvaluationVisitFilterQuery 列表查询参数模型 + + + SubjectCriteriaEvaluationVisitFilterAddOrEdit 列表查询参数模型 + + + SubjectCriteriaEvaluationVisitStudyFilterView 列表视图模型 + + + SubjectCriteriaEvaluationVisitStudyFilterQuery 列表查询参数模型 + + + SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit 列表查询参数模型 + DefaultShortcutKeyView 列表视图模型 @@ -7104,6 +7174,21 @@ ISystemNoticeService + + + ISubjectCriteriaEvaluationService + + + + + ISubjectCriteriaEvaluationVisitFilterService + + + + + ISubjectCriteriaEvaluationVisitStudyFilterService + + IOrganInfoService diff --git a/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs b/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs index d086ce9e1..fc614efb6 100644 --- a/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs +++ b/IRaCIS.Core.Application/Service/Fixed/CriterionAdditionalAssessment.cs @@ -42,8 +42,8 @@ namespace IRaCIS.Core.Application.Service IsJudgeQuestion=false, IsShowInDicom=false, GlobalReadingShowType=GlobalReadingShowType.NotShow, - QuestionEnName="存在脑转移", - QuestionName="Brain metastases present", + QuestionEnName="Brain metastases present", + QuestionName="存在脑转移", Type="radio", QuestionGenre=TableQuestionType.Dictionary, DataSource=DataSources.ManualEntry, diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs new file mode 100644 index 000000000..76e5c9c59 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationViewModel.cs @@ -0,0 +1,57 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:59:00 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- +using System; +using IRaCIS.Core.Domain.Share; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace IRaCIS.Core.Application.ViewModel +{ + /// SubjectCriteriaEvaluationView 列表视图模型 + public class SubjectCriteriaEvaluationView : SubjectCriteriaEvaluationAddOrEdit + { + + public DateTime? CreateTime { get; set; } + public Guid? CreateUserId { get; set; } + public Guid? UpdateUserId { get; set; } + public DateTime? UpdateTime { get; set; } + public bool IsImageFiltering { get; set; } + + + //public string AdditionalResult { get; set; } + + public string SubjectCode { get; set; } + + public string TrialSiteCode { get; set; } + public SubjectStatus SubjectStatus { get; set; } + } + + + + ///SubjectCriteriaEvaluationQuery 列表查询参数模型 + public class SubjectCriteriaEvaluationQuery : PageInput + { + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + public string SubjectCode { get; set; } = string.Empty; + + public string TrialSiteCode { get; set; } = string.Empty; + public SubjectStatus? SubjectStatus { get; set; } + } + + /// SubjectCriteriaEvaluationAddOrEdit 列表查询参数模型 + public class SubjectCriteriaEvaluationAddOrEdit + { + public Guid? Id { get; set; } + public Guid SubjectId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public bool IsJoinEvaluation { get; set; } + } + + +} + + diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs new file mode 100644 index 000000000..5bfdf2c67 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:58:25 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- +using System; +using IRaCIS.Core.Domain.Share; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace IRaCIS.Core.Application.ViewModel +{ + /// SubjectCriteriaEvaluationVisitFilterView 列表视图模型 + public class SubjectCriteriaEvaluationVisitFilterView: SubjectCriteriaEvaluationVisitFilterAddOrEdit + { + public DateTime? CreateTime { get; set; } + public Guid? CreateUserId { get; set; } + public Guid? UpdateUserId { get; set; } + public DateTime? UpdateTime { get; set; } + public bool IsGeneratedTask { get; set; } + + + public string VisitName { get; set; } + public DateTime? EarliestScanDate { get; set; } + public DateTime? LatestScanDate { get; set; } + } + + ///SubjectCriteriaEvaluationVisitFilterQuery 列表查询参数模型 + public class SubjectCriteriaEvaluationVisitFilterQuery : PageInput + { + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + + + [NotDefault] + public Guid SubjectId { get; set; } + } + + /// SubjectCriteriaEvaluationVisitFilterAddOrEdit 列表查询参数模型 + public class SubjectCriteriaEvaluationVisitFilterAddOrEdit + { + public Guid? Id { get; set; } + public Guid SubjectId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public Guid SubjectVisitId { get; set; } + public int ImageFilterState { get; set; } + public int ImageDeterminationResultState { get; set; } + //public bool IsGeneratedTask { get; set; } + } + + +} + + diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs new file mode 100644 index 000000000..42d0dbbd6 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:58:25 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- +using System; +using IRaCIS.Core.Domain.Share; +using System.Collections.Generic; +namespace IRaCIS.Core.Application.ViewModel +{ + /// SubjectCriteriaEvaluationVisitStudyFilterView 列表视图模型 + public class SubjectCriteriaEvaluationVisitStudyFilterView + { + public Guid Id { get; set; } + public Guid SubjectId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public DateTime CreateTime { get; set; } + public Guid CreateUserId { get; set; } + public Guid UpdateUserId { get; set; } + public DateTime UpdateTime { get; set; } + public Guid SubjectVisitId { get; set; } + public Guid StudyId { get; set; } + public Guid SeriesId { get; set; } + public bool IsConfirmed { get; set; } + } + + ///SubjectCriteriaEvaluationVisitStudyFilterQuery 列表查询参数模型 + public class SubjectCriteriaEvaluationVisitStudyFilterQuery + { + } + + /// SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit 列表查询参数模型 + public class SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit + { + public Guid Id { get; set; } + public Guid SubjectId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public DateTime CreateTime { get; set; } + public Guid CreateUserId { get; set; } + public Guid UpdateUserId { get; set; } + public DateTime UpdateTime { get; set; } + public Guid SubjectVisitId { get; set; } + public Guid StudyId { get; set; } + public Guid SeriesId { get; set; } + public bool IsConfirmed { get; set; } + } + + +} + + diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs new file mode 100644 index 000000000..d01e8532c --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationService.cs @@ -0,0 +1,25 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:58:54 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- + +using IRaCIS.Core.Application.ViewModel; +namespace IRaCIS.Core.Application.Interfaces +{ + /// + /// ISubjectCriteriaEvaluationService + /// + public interface ISubjectCriteriaEvaluationService + { + + + Task> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery); + + Task AddOrUpdateSubjectCriteriaEvaluation(SubjectCriteriaEvaluationAddOrEdit addOrEditSubjectCriteriaEvaluation); + + //Task DeleteSubjectCriteriaEvaluation(Guid subjectCriteriaEvaluationId); + + + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitFilterService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitFilterService.cs new file mode 100644 index 000000000..5bdebaa81 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitFilterService.cs @@ -0,0 +1,25 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:57:18 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- + +using IRaCIS.Core.Application.ViewModel; +namespace IRaCIS.Core.Application.Interfaces +{ + /// + /// ISubjectCriteriaEvaluationVisitFilterService + /// + public interface ISubjectCriteriaEvaluationVisitFilterService + { + + + Task> GetSubjectCriteriaEvaluationVisitFilterList(SubjectCriteriaEvaluationVisitFilterQuery inQuery); + + Task AddOrUpdateSubjectCriteriaEvaluationVisitFilter(SubjectCriteriaEvaluationVisitFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitFilter); + + Task DeleteSubjectCriteriaEvaluationVisitFilter(Guid subjectCriteriaEvaluationVisitFilterId); + + + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitStudyFilterService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitStudyFilterService.cs new file mode 100644 index 000000000..83da961a3 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/Interface/ISubjectCriteriaEvaluationVisitStudyFilterService.cs @@ -0,0 +1,25 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:57:18 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- + +using IRaCIS.Core.Application.ViewModel; +namespace IRaCIS.Core.Application.Interfaces +{ + /// + /// ISubjectCriteriaEvaluationVisitStudyFilterService + /// + public interface ISubjectCriteriaEvaluationVisitStudyFilterService + { + + + Task> GetSubjectCriteriaEvaluationVisitStudyFilterList(SubjectCriteriaEvaluationVisitStudyFilterQuery inQuery); + + Task AddOrUpdateSubjectCriteriaEvaluationVisitStudyFilter(SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitStudyFilter); + + Task DeleteSubjectCriteriaEvaluationVisitStudyFilter(Guid subjectCriteriaEvaluationVisitStudyFilterId); + + + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs new file mode 100644 index 000000000..5a807cc0a --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs @@ -0,0 +1,164 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:58:57 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- + +using IRaCIS.Core.Domain.Models; +using Microsoft.AspNetCore.Mvc; +using IRaCIS.Core.Application.Interfaces; +using IRaCIS.Core.Application.ViewModel; +namespace IRaCIS.Core.Application.Service +{ + /// + /// SubjectCriteriaEvaluationService + /// + [ApiExplorerSettings(GroupName = "Trial")] + public class SubjectCriteriaEvaluationService : BaseService, ISubjectCriteriaEvaluationService + { + + private readonly IRepository _subjectCriteriaEvaluationRepository; + private readonly IRepository _subjectRepository; + private readonly IRepository _subjectVisitRepository; + private readonly IRepository _subjectCriteriaEvaluationVisitFilterRepository; + + + public SubjectCriteriaEvaluationService(IRepository subjectCriteriaEvaluationRepository, IRepository subjectRepository, + IRepository subjectCriteriaEvaluationVisitFilterRepository, IRepository subjectVisitRepository) + { + _subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository; + _subjectRepository = subjectRepository; + _subjectCriteriaEvaluationVisitFilterRepository = subjectCriteriaEvaluationVisitFilterRepository; + _subjectVisitRepository = subjectVisitRepository; + } + + + /// + /// subject 某标准 是否评估列表 + /// + /// + /// + [HttpPost] + public async Task> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery) + { + + var subjectCriteriaEvaluationQueryable = from subject in _subjectRepository + .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectCode), t => t.Code.Contains(inQuery.SubjectCode)) + .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode)) + .WhereIf(inQuery.SubjectStatus != null, t => t.Status == inQuery.SubjectStatus) + + join subjectCriteriaEvaluation in _subjectCriteriaEvaluationRepository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) on subject.Id equals subjectCriteriaEvaluation.SubjectId into d + from subjectCriteriaEvaluation in d.DefaultIfEmpty() + + select new SubjectCriteriaEvaluationView() + { + SubjectCode = subject.Code, + SubjectId = subject.Id, + SubjectStatus = subject.Status, + TrialSiteCode = subject.TrialSite.TrialSiteCode, + + Id = subjectCriteriaEvaluation.Id, + TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + + IsImageFiltering=subjectCriteriaEvaluation.IsImageFiltering, + IsJoinEvaluation=subjectCriteriaEvaluation.IsJoinEvaluation, + }; + + + + + + var pageList = await subjectCriteriaEvaluationQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc); + + return pageList; + } + + + /// + /// 添加 编辑 是否参与评估 + /// + /// + /// + public async Task AddOrUpdateSubjectCriteriaEvaluation(SubjectCriteriaEvaluationAddOrEdit addOrEditSubjectCriteriaEvaluation) + { + // 在此处拷贝automapper 映射 + + var entity = await _subjectCriteriaEvaluationRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluation, true); + + return ResponseOutput.Ok(entity.Id.ToString()); + + } + + + + /// + /// 评估访视筛选列表 + /// + /// + /// + public async Task> GetSubjectCriteriaEvaluationVisitFilterList(SubjectCriteriaEvaluationVisitFilterQuery inQuery) + { + + + + + var subjectCriteriaEvaluationVisitFilterQueryable = from subjectVisit in _subjectVisitRepository.Where(t => t.SubjectId == inQuery.SubjectId) + + + join subjectCriteriaEvaluationVisitFilter in _subjectCriteriaEvaluationVisitFilterRepository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) on subjectVisit.Id equals subjectCriteriaEvaluationVisitFilter.SubjectVisitId into d + from subjectCriteriaEvaluationVisitFilter in d.DefaultIfEmpty() + + select new SubjectCriteriaEvaluationVisitFilterView() + { + VisitName = subjectVisit.VisitName, + SubjectVisitId = subjectVisit.Id, + SubjectId = subjectVisit.SubjectId, + TrialReadingCriterionId=inQuery.TrialReadingCriterionId, + LatestScanDate=subjectVisit.LatestScanDate, + EarliestScanDate=subjectVisit.LatestScanDate, + ImageDeterminationResultState= subjectCriteriaEvaluationVisitFilter.ImageDeterminationResultState, + ImageFilterState= subjectCriteriaEvaluationVisitFilter.ImageFilterState, + IsGeneratedTask=subjectCriteriaEvaluationVisitFilter.IsGeneratedTask, + + }; + + + + + + + + return await subjectCriteriaEvaluationVisitFilterQueryable.ToListAsync(); + } + + /// + /// 评估访视 判断结果 影像筛选状态 手动添加/编辑接口 + /// + /// + /// + public async Task AddOrUpdateSubjectCriteriaEvaluationVisitFilter(SubjectCriteriaEvaluationVisitFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitFilter) + { + // 在此处拷贝automapper 映射 + + + //CreateMap(); + // CreateMap< SubjectCriteriaEvaluationVisitFilter,SubjectCriteriaEvaluationVisitFilterAddOrEdit>().ReverseMap(); + + + var entity = await _subjectCriteriaEvaluationVisitFilterRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluationVisitFilter, true); + + return ResponseOutput.Ok(entity.Id.ToString()); + + } + + + //[HttpDelete("{subjectCriteriaEvaluationId:guid}")] + // public async Task DeleteSubjectCriteriaEvaluation(Guid subjectCriteriaEvaluationId) + //{ + // var success = await _subjectCriteriaEvaluationRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationId,true); + // return ResponseOutput.Ok(); + //} + + + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilterService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilterService.cs new file mode 100644 index 000000000..fb501ccdb --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilterService.cs @@ -0,0 +1,40 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:57:21 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- + +using IRaCIS.Core.Domain.Models; +using Microsoft.AspNetCore.Mvc; +using IRaCIS.Core.Application.Interfaces; +using IRaCIS.Core.Application.ViewModel; +namespace IRaCIS.Core.Application.Service +{ + /// + /// SubjectCriteriaEvaluationVisitFilterService + /// + [ ApiExplorerSettings(GroupName = "Test")] + public class SubjectCriteriaEvaluationVisitFilterService: BaseService + { + + + public SubjectCriteriaEvaluationVisitFilterService() + { + } + + + + + + + + //[HttpDelete("{subjectCriteriaEvaluationVisitFilterId:guid}")] + // public async Task DeleteSubjectCriteriaEvaluationVisitFilter(Guid subjectCriteriaEvaluationVisitFilterId) + //{ + // var success = await _subjectCriteriaEvaluationVisitFilterRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationVisitFilterId,true); + // return ResponseOutput.Ok(); + //} + + + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilterService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilterService.cs new file mode 100644 index 000000000..3fb530f78 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilterService.cs @@ -0,0 +1,64 @@ +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:57:21 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +//-------------------------------------------------------------------- + +using IRaCIS.Core.Domain.Models; +using Microsoft.AspNetCore.Mvc; +using IRaCIS.Core.Application.Interfaces; +using IRaCIS.Core.Application.ViewModel; +namespace IRaCIS.Core.Application.Service +{ + /// + /// SubjectCriteriaEvaluationVisitStudyFilterService + /// + [ ApiExplorerSettings(GroupName = "Test")] + public class SubjectCriteriaEvaluationVisitStudyFilterService: BaseService, ISubjectCriteriaEvaluationVisitStudyFilterService + { + + private readonly IRepository _subjectCriteriaEvaluationVisitStudyFilterRepository; + + public SubjectCriteriaEvaluationVisitStudyFilterService(IRepository subjectCriteriaEvaluationVisitStudyFilterRepository) + { + _subjectCriteriaEvaluationVisitStudyFilterRepository = subjectCriteriaEvaluationVisitStudyFilterRepository; + } + + + public async Task> GetSubjectCriteriaEvaluationVisitStudyFilterList(SubjectCriteriaEvaluationVisitStudyFilterQuery inQuery) + { + + + var subjectCriteriaEvaluationVisitStudyFilterQueryable = _subjectCriteriaEvaluationVisitStudyFilterRepository + .ProjectTo(_mapper.ConfigurationProvider); + + return await subjectCriteriaEvaluationVisitStudyFilterQueryable.ToListAsync(); + } + + + public async Task AddOrUpdateSubjectCriteriaEvaluationVisitStudyFilter(SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitStudyFilter) + { + // 在此处拷贝automapper 映射 + + + //CreateMap(); + // CreateMap< SubjectCriteriaEvaluationVisitStudyFilter,SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit>().ReverseMap(); + + + var entity = await _subjectCriteriaEvaluationVisitStudyFilterRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluationVisitStudyFilter, true); + + return ResponseOutput.Ok(entity.Id.ToString()); + + } + + + [HttpDelete("{subjectCriteriaEvaluationVisitStudyFilterId:guid}")] + public async Task DeleteSubjectCriteriaEvaluationVisitStudyFilter(Guid subjectCriteriaEvaluationVisitStudyFilterId) + { + var success = await _subjectCriteriaEvaluationVisitStudyFilterRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationVisitStudyFilterId,true); + return ResponseOutput.Ok(); + } + + + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index e6fd7af30..2824166c9 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -244,7 +244,18 @@ namespace IRaCIS.Core.Application.Service CreateMap().ReverseMap(); CreateMap(); - CreateMap(); + CreateMap(); + #endregion + + #region 附加评估 + //CreateMap() + // .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.subject.TrialSite.TrialSiteCode)) + // .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.subject.Code)) + // .ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.subject.Status)); + + CreateMap(); + + #endregion } } diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs b/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs index 61155ec1b..242c45f81 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/ClinicalStudySubjects.cs @@ -2,6 +2,7 @@ using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Domain.Share; using System.ComponentModel.DataAnnotations; +using Org.BouncyCastle.Bcpg.OpenPgp; namespace IRaCIS.Application.Contracts { @@ -80,6 +81,8 @@ namespace IRaCIS.Application.Contracts } + + public class SubjectQueryView: SubjectCommand { diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectService.cs index ad5c5892e..e6ba5f65d 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectService.cs @@ -159,5 +159,7 @@ namespace IRaCIS.Application.Services } + + } } diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs new file mode 100644 index 000000000..755f4cdd3 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectAdditionalEvaluationResult.cs @@ -0,0 +1,93 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:50:31 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///SubjectAdditionalEvaluationResult + /// + [Table("SubjectAdditionalEvaluationResult")] + public class SubjectAdditionalEvaluationResult : Entity, IAuditUpdate, IAuditAdd + { + + + /// + /// SubjectId + /// + [Required] + public Guid SubjectId { get; set; } + + /// + /// TrialReadingCriterionId + /// + [Required] + public Guid TrialReadingCriterionId { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + /// + /// UpdateUserId + /// + [Required] + public Guid UpdateUserId { get; set; } + + /// + /// UpdateTime + /// + [Required] + public DateTime UpdateTime { get; set; } + + /// + /// VisitTaskId + /// + public Guid? VisitTaskId { get; set; } + + /// + /// 附加评估答案 + /// + [Required] + public string Answer { get; set; } + + /// + /// 附加评估答案翻译字典 + /// + [Required] + public string TranslateDictionaryCode { get; set; } + + /// + /// 是否是最终结果 + /// + [Required] + public bool IsFinalResult { get; set; } + + /// + /// 最终结果 + /// + [Required] + public string FinalAnswer { get; set; } + + /// + /// 最终结果翻字典 + /// + [Required] + public string FinalTranslateDictionaryCode { get; set; } + + } + +} diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs new file mode 100644 index 000000000..7fc6a9ac6 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluation.cs @@ -0,0 +1,72 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:46:55 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///SubjectCriteriaEvaluation + /// + [Table("SubjectCriteriaEvaluation")] + public class SubjectCriteriaEvaluation : Entity, IAuditUpdate, IAuditAdd + { + [JsonIgnore] + public Subject subject { get; set; } + + /// + /// SubjectId + /// + [Required] + public Guid SubjectId { get; set; } + + /// + /// TrialReadingCriterionId + /// + [Required] + public Guid TrialReadingCriterionId { get; set; } + + /// + /// 是否参与评估 + /// + [Required] + public bool IsJoinEvaluation { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + /// + /// UpdateUserId + /// + [Required] + public Guid UpdateUserId { get; set; } + + /// + /// UpdateTime + /// + [Required] + public DateTime UpdateTime { get; set; } + + /// + /// 是否影像筛选 + /// + [Required] + public bool IsImageFiltering { get; set; } + + } + + +} diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs new file mode 100644 index 000000000..2ec1bbf2b --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs @@ -0,0 +1,83 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:51:12 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///SubjectCriteriaEvaluationVisitFilter + /// + [Table("SubjectCriteriaEvaluationVisitFilter")] + public class SubjectCriteriaEvaluationVisitFilter : Entity, IAuditUpdate, IAuditAdd + { + + + + /// + /// SubjectId + /// + [Required] + public Guid SubjectId { get; set; } + + /// + /// TrialReadingCriterionId + /// + [Required] + public Guid TrialReadingCriterionId { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + /// + /// UpdateUserId + /// + [Required] + public Guid UpdateUserId { get; set; } + + /// + /// UpdateTime + /// + [Required] + public DateTime UpdateTime { get; set; } + + /// + /// SubjectVisitId + /// + [Required] + public Guid SubjectVisitId { get; set; } + + /// + /// 影像筛选状态 + /// + [Required] + public int ImageFilterState { get; set; } + + /// + /// 影像判断结果 + /// + [Required] + public int ImageDeterminationResultState { get; set; } + + /// + /// 是否已生成任务 + /// + [Required] + public bool IsGeneratedTask { get; set; } + + } + +} diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilter.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilter.cs new file mode 100644 index 000000000..ab9ebfbdb --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitStudyFilter.cs @@ -0,0 +1,82 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-03-17 11:51:13 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///SubjectCriteriaEvaluationVisitStudyFilter + /// + [Table("SubjectCriteriaEvaluationVisitStudyFilter")] + public class SubjectCriteriaEvaluationVisitStudyFilter : Entity, IAuditUpdate, IAuditAdd + { + + + /// + /// SubjectId + /// + [Required] + public Guid SubjectId { get; set; } + + /// + /// TrialReadingCriterionId + /// + [Required] + public Guid TrialReadingCriterionId { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + /// + /// UpdateUserId + /// + [Required] + public Guid UpdateUserId { get; set; } + + /// + /// UpdateTime + /// + [Required] + public DateTime UpdateTime { get; set; } + + /// + /// SubjectVisitId + /// + [Required] + public Guid SubjectVisitId { get; set; } + + /// + /// StudyId + /// + [Required] + public Guid StudyId { get; set; } + + /// + /// SeriesId + /// + [Required] + public Guid SeriesId { get; set; } + + /// + /// 是否确认 + /// + [Required] + public bool IsConfirmed { get; set; } + + } + +} diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs index 74f92bf47..b6e5039cb 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs @@ -6,6 +6,7 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Collections.Generic; using System.Linq; +using IRaCIS.Core.Domain.Share.Reading; namespace IRaCIS.Core.Domain.Models { diff --git a/IRaCIS.Core.Domain/Visit/Subject.cs b/IRaCIS.Core.Domain/Visit/Subject.cs index 3fbd74f0d..0858a9fdf 100644 --- a/IRaCIS.Core.Domain/Visit/Subject.cs +++ b/IRaCIS.Core.Domain/Visit/Subject.cs @@ -25,8 +25,9 @@ namespace IRaCIS.Core.Domain.Models [JsonIgnore] public List ClinicalDataList { get; set; } - + [JsonIgnore] + public List SubjectCriteriaEvaluationList { get; set; } [JsonIgnore] [ForeignKey("FinalSubjectVisitId")] diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index f0c107a80..5fe987c43 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -270,6 +270,11 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet TrialCriterionAdditionalAssessmentType { get; set; } + public virtual DbSet SubjectCriteriaEvaluation { get; set; } + public virtual DbSet SubjectAdditionalEvaluationResult { get; set; } + public virtual DbSet SubjectCriteriaEvaluationVisitFilter { get; set; } + public virtual DbSet SubjectCriteriaEvaluationVisitStudyFilter { get; set; } + //public virtual DbSet TrialClinicalDataCriterion { get; set; } diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude index cc63dbf70..e1c821df4 100644 --- a/IRaCIS.Core.Test/DbHelper.ttinclude +++ b/IRaCIS.Core.Test/DbHelper.ttinclude @@ -4,7 +4,7 @@ public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"; public static readonly string DbDatabase = "IRaCIS_New_Tet"; //ַ,ƴ - public static readonly string TableName = "TrialCriterionAdditionalAssessmentType"; + public static readonly string TableName = "SubjectCriteriaEvaluation"; //ļ service Ƿҳ } #>