附加评估与提交

This commit is contained in:
2023-03-17 14:26:13 +08:00
parent 82070e9bbf
commit 08281d161f
22 changed files with 948 additions and 5 deletions
@@ -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
{
/// <summary> SubjectCriteriaEvaluationView 列表视图模型 </summary>
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; }
}
///<summary>SubjectCriteriaEvaluationQuery 列表查询参数模型</summary>
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; }
}
///<summary> SubjectCriteriaEvaluationAddOrEdit 列表查询参数模型</summary>
public class SubjectCriteriaEvaluationAddOrEdit
{
public Guid? Id { get; set; }
public Guid SubjectId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
public bool IsJoinEvaluation { get; set; }
}
}
@@ -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
{
/// <summary> SubjectCriteriaEvaluationVisitFilterView 列表视图模型 </summary>
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; }
}
///<summary>SubjectCriteriaEvaluationVisitFilterQuery 列表查询参数模型</summary>
public class SubjectCriteriaEvaluationVisitFilterQuery : PageInput
{
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
[NotDefault]
public Guid SubjectId { get; set; }
}
///<summary> SubjectCriteriaEvaluationVisitFilterAddOrEdit 列表查询参数模型</summary>
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; }
}
}
@@ -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
{
/// <summary> SubjectCriteriaEvaluationVisitStudyFilterView 列表视图模型 </summary>
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; }
}
///<summary>SubjectCriteriaEvaluationVisitStudyFilterQuery 列表查询参数模型</summary>
public class SubjectCriteriaEvaluationVisitStudyFilterQuery
{
}
///<summary> SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit 列表查询参数模型</summary>
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; }
}
}
@@ -0,0 +1,25 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2023-03-17 11:58:54
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Interfaces
{
/// <summary>
/// ISubjectCriteriaEvaluationService
/// </summary>
public interface ISubjectCriteriaEvaluationService
{
Task<PageOutput<SubjectCriteriaEvaluationView>> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery);
Task<IResponseOutput> AddOrUpdateSubjectCriteriaEvaluation(SubjectCriteriaEvaluationAddOrEdit addOrEditSubjectCriteriaEvaluation);
//Task<IResponseOutput> DeleteSubjectCriteriaEvaluation(Guid subjectCriteriaEvaluationId);
}
}
@@ -0,0 +1,25 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2023-03-17 11:57:18
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Interfaces
{
/// <summary>
/// ISubjectCriteriaEvaluationVisitFilterService
/// </summary>
public interface ISubjectCriteriaEvaluationVisitFilterService
{
Task<List<SubjectCriteriaEvaluationVisitFilterView>> GetSubjectCriteriaEvaluationVisitFilterList(SubjectCriteriaEvaluationVisitFilterQuery inQuery);
Task<IResponseOutput> AddOrUpdateSubjectCriteriaEvaluationVisitFilter(SubjectCriteriaEvaluationVisitFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitFilter);
Task<IResponseOutput> DeleteSubjectCriteriaEvaluationVisitFilter(Guid subjectCriteriaEvaluationVisitFilterId);
}
}
@@ -0,0 +1,25 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2023-03-17 11:57:18
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Interfaces
{
/// <summary>
/// ISubjectCriteriaEvaluationVisitStudyFilterService
/// </summary>
public interface ISubjectCriteriaEvaluationVisitStudyFilterService
{
Task<List<SubjectCriteriaEvaluationVisitStudyFilterView>> GetSubjectCriteriaEvaluationVisitStudyFilterList(SubjectCriteriaEvaluationVisitStudyFilterQuery inQuery);
Task<IResponseOutput> AddOrUpdateSubjectCriteriaEvaluationVisitStudyFilter(SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitStudyFilter);
Task<IResponseOutput> DeleteSubjectCriteriaEvaluationVisitStudyFilter(Guid subjectCriteriaEvaluationVisitStudyFilterId);
}
}
@@ -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
{
/// <summary>
/// SubjectCriteriaEvaluationService
/// </summary>
[ApiExplorerSettings(GroupName = "Trial")]
public class SubjectCriteriaEvaluationService : BaseService, ISubjectCriteriaEvaluationService
{
private readonly IRepository<SubjectCriteriaEvaluation> _subjectCriteriaEvaluationRepository;
private readonly IRepository<Subject> _subjectRepository;
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<SubjectCriteriaEvaluationVisitFilter> _subjectCriteriaEvaluationVisitFilterRepository;
public SubjectCriteriaEvaluationService(IRepository<SubjectCriteriaEvaluation> subjectCriteriaEvaluationRepository, IRepository<Subject> subjectRepository,
IRepository<SubjectCriteriaEvaluationVisitFilter> subjectCriteriaEvaluationVisitFilterRepository, IRepository<SubjectVisit> subjectVisitRepository)
{
_subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository;
_subjectRepository = subjectRepository;
_subjectCriteriaEvaluationVisitFilterRepository = subjectCriteriaEvaluationVisitFilterRepository;
_subjectVisitRepository = subjectVisitRepository;
}
/// <summary>
/// subject 某标准 是否评估列表
/// </summary>
/// <param name="inQuery"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<SubjectCriteriaEvaluationView>> 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;
}
/// <summary>
/// 添加 编辑 是否参与评估
/// </summary>
/// <param name="addOrEditSubjectCriteriaEvaluation"></param>
/// <returns></returns>
public async Task<IResponseOutput> AddOrUpdateSubjectCriteriaEvaluation(SubjectCriteriaEvaluationAddOrEdit addOrEditSubjectCriteriaEvaluation)
{
// 在此处拷贝automapper 映射
var entity = await _subjectCriteriaEvaluationRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluation, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
/// <summary>
/// 评估访视筛选列表
/// </summary>
/// <param name="inQuery"></param>
/// <returns></returns>
public async Task<List<SubjectCriteriaEvaluationVisitFilterView>> 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();
}
/// <summary>
/// 评估访视 判断结果 影像筛选状态 手动添加/编辑接口
/// </summary>
/// <param name="addOrEditSubjectCriteriaEvaluationVisitFilter"></param>
/// <returns></returns>
public async Task<IResponseOutput> AddOrUpdateSubjectCriteriaEvaluationVisitFilter(SubjectCriteriaEvaluationVisitFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitFilter)
{
// 在此处拷贝automapper 映射
//CreateMap<SubjectCriteriaEvaluationVisitFilter, SubjectCriteriaEvaluationVisitFilterView>();
// CreateMap< SubjectCriteriaEvaluationVisitFilter,SubjectCriteriaEvaluationVisitFilterAddOrEdit>().ReverseMap();
var entity = await _subjectCriteriaEvaluationVisitFilterRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluationVisitFilter, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
//[HttpDelete("{subjectCriteriaEvaluationId:guid}")]
// public async Task<IResponseOutput> DeleteSubjectCriteriaEvaluation(Guid subjectCriteriaEvaluationId)
//{
// var success = await _subjectCriteriaEvaluationRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationId,true);
// return ResponseOutput.Ok();
//}
}
}
@@ -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
{
/// <summary>
/// SubjectCriteriaEvaluationVisitFilterService
/// </summary>
[ ApiExplorerSettings(GroupName = "Test")]
public class SubjectCriteriaEvaluationVisitFilterService: BaseService
{
public SubjectCriteriaEvaluationVisitFilterService()
{
}
//[HttpDelete("{subjectCriteriaEvaluationVisitFilterId:guid}")]
// public async Task<IResponseOutput> DeleteSubjectCriteriaEvaluationVisitFilter(Guid subjectCriteriaEvaluationVisitFilterId)
//{
// var success = await _subjectCriteriaEvaluationVisitFilterRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationVisitFilterId,true);
// return ResponseOutput.Ok();
//}
}
}
@@ -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
{
/// <summary>
/// SubjectCriteriaEvaluationVisitStudyFilterService
/// </summary>
[ ApiExplorerSettings(GroupName = "Test")]
public class SubjectCriteriaEvaluationVisitStudyFilterService: BaseService, ISubjectCriteriaEvaluationVisitStudyFilterService
{
private readonly IRepository<SubjectCriteriaEvaluationVisitStudyFilter> _subjectCriteriaEvaluationVisitStudyFilterRepository;
public SubjectCriteriaEvaluationVisitStudyFilterService(IRepository<SubjectCriteriaEvaluationVisitStudyFilter> subjectCriteriaEvaluationVisitStudyFilterRepository)
{
_subjectCriteriaEvaluationVisitStudyFilterRepository = subjectCriteriaEvaluationVisitStudyFilterRepository;
}
public async Task<List<SubjectCriteriaEvaluationVisitStudyFilterView>> GetSubjectCriteriaEvaluationVisitStudyFilterList(SubjectCriteriaEvaluationVisitStudyFilterQuery inQuery)
{
var subjectCriteriaEvaluationVisitStudyFilterQueryable = _subjectCriteriaEvaluationVisitStudyFilterRepository
.ProjectTo<SubjectCriteriaEvaluationVisitStudyFilterView>(_mapper.ConfigurationProvider);
return await subjectCriteriaEvaluationVisitStudyFilterQueryable.ToListAsync();
}
public async Task<IResponseOutput> AddOrUpdateSubjectCriteriaEvaluationVisitStudyFilter(SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitStudyFilter)
{
// 在此处拷贝automapper 映射
//CreateMap<SubjectCriteriaEvaluationVisitStudyFilter, SubjectCriteriaEvaluationVisitStudyFilterView>();
// CreateMap< SubjectCriteriaEvaluationVisitStudyFilter,SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit>().ReverseMap();
var entity = await _subjectCriteriaEvaluationVisitStudyFilterRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluationVisitStudyFilter, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
[HttpDelete("{subjectCriteriaEvaluationVisitStudyFilterId:guid}")]
public async Task<IResponseOutput> DeleteSubjectCriteriaEvaluationVisitStudyFilter(Guid subjectCriteriaEvaluationVisitStudyFilterId)
{
var success = await _subjectCriteriaEvaluationVisitStudyFilterRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationVisitStudyFilterId,true);
return ResponseOutput.Ok();
}
}
}
@@ -244,7 +244,18 @@ namespace IRaCIS.Core.Application.Service
CreateMap<CriterionNidus, CriterionNidusAddOrEdit>().ReverseMap();
CreateMap<OrganInfoAddOrEdit, OrganInfo>();
CreateMap<OrganInfo, OrganInfoView>();
CreateMap<OrganInfo, OrganInfoView>();
#endregion
#region
//CreateMap<SubjectCriteriaEvaluation, SubjectCriteriaEvaluationView>()
// .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<SubjectCriteriaEvaluation, SubjectCriteriaEvaluationView>();
#endregion
}
}