修改一版

Uat_Study
he 2022-05-30 14:55:48 +08:00
parent c6acbb21dc
commit 42d3ce58cc
10 changed files with 421 additions and 33 deletions

View File

@ -427,6 +427,86 @@
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto.PageIndex">
<summary>
页码
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto.PageSize">
<summary>
每页大小
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto.SortField">
<summary>
排序字段
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto.SortAsc">
<summary>
排序字段
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleResultDto.PageIndex">
<summary>
当前页索引
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleResultDto.PageSize">
<summary>
每页的记录条数
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleResultDto.TotalCount">
<summary>
数据总数
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleResultDto.MaxLength">
<summary>
最大长度
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleResultDto.CurrentPageData">
<summary>
数据
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.ExpirationVisit">
<summary>
截止访视
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.TrialId">
<summary>
项目ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.ReadingPeriodName">
<summary>
阅片期名称
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.PageIndex">
<summary>
页码
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.PageSize">
<summary>
每页大小
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.SortField">
<summary>
排序字段
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery.SortAsc">
<summary>
排序字段
</summary>
</member>
<member name="T:IRaCIS.Core.Application.Service.TrialExternalUserService">
<summary>
项目外部人员 录入流程相关
@ -2352,6 +2432,13 @@
<member name="M:IRaCIS.Application.Services.UserService.SendVerificationCode(System.String)">
<summary>发送验证码 修改邮箱(已经登陆修改) New </summary>
</member>
<member name="M:IRaCIS.Application.Services.UserService.VerifyCanInitSetUserNameAndPwd(System.Guid)">
<summary>
Result 为true 的时候 认为链接没有失效
</summary>
<param name="userId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.UserService.ResetPassword(System.Guid)">
<summary>
重置密码为 默认密码
@ -2440,6 +2527,27 @@
<param name="password"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadingPeriodSetService.AddOrUpdateReadingPeriodSet(IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetAddOrEdit)">
<summary>
新增或者修改
</summary>
<param name="addOrEditReadingPeriodSet"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadingPeriodSetService.GetReadingPeriodSetList(IRaCIS.Core.Application.Service.Reading.Dto.ReadingPeriodSetQuery)">
<summary>
分页获取
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadingPeriodSetService.DeleteReadingPeriodSet(System.Guid)">
<summary>
删除
</summary>
<param name="readingPeriodSetId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Application.Services.ReadModuleService.GetReadModule(IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto)">
<summary>
获取读片模块

View File

@ -9,11 +9,31 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public class GetReadModuleDto
{
public Guid TrialId { get; set; }
public Guid? TrialId { get; set; }
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; } = 1;
/// <summary>
/// 每页大小
/// </summary>
public int PageSize { get; set; } = 10;
/// <summary>
/// 排序字段
/// </summary>
public string? SortField { get; set; }
/// <summary>
/// 排序字段
/// </summary>
public bool SortAsc { get; set; } = true;
}
public class GetReadModuleOutDto: ReadModule
{
public class GetReadModuleOutDto : ReadModule
{
public string SubjectCode { get; set; }
@ -25,6 +45,37 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid? SiteId { get; set; }
}
public class GetReadModuleResultDto
{
/// <summary>
/// 当前页索引
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 每页的记录条数
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 数据总数
/// </summary>
public long TotalCount { get; set; } = 0;
/// <summary>
/// 最大长度
/// </summary>
public int MaxLength { get; set; }
/// <summary>
/// 数据
/// </summary>
public List<GetReadModuleDtoOut> CurrentPageData { get; set; }
}
public class GetReadModuleDtoOut
{

View File

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public class ReadingPeriodSetAddOrEdit : ReadingPeriodSet
{
}
public class ReadingPeriodSetView : ReadingPeriodSet
{
}
public class ReadingPeriodSetQuery
{
/// <summary>
/// 截止访视
/// </summary>
public decimal? ExpirationVisit { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public Guid? TrialId { get; set; }
/// <summary>
/// 阅片期名称
/// </summary>
public string? ReadingPeriodName { get; set; }
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; } = 1;
/// <summary>
/// 每页大小
/// </summary>
public int PageSize { get; set; } = 10;
/// <summary>
/// 排序字段
/// </summary>
public string? SortField { get; set; }
/// <summary>
/// 排序字段
/// </summary>
public bool SortAsc { get; set; } = true;
}
}

View File

@ -16,10 +16,14 @@ namespace IRaCIS.Application.Services
{
public IRepository<SubjectVisit> _subjectVisitRepository;
public ReadModuleService(IRepository<SubjectVisit> subjectVisitRepository
private readonly IRepository<Subject> _subjectRepository;
public ReadModuleService(IRepository<SubjectVisit> subjectVisitRepository,
IRepository<Subject> subjectRepository
)
{
_subjectVisitRepository = subjectVisitRepository;
this._subjectRepository = subjectRepository;
}
@ -27,35 +31,52 @@ namespace IRaCIS.Application.Services
/// 获取读片模块
/// </summary>
[HttpPost]
public async Task<List<GetReadModuleDtoOut>> GetReadModule(GetReadModuleDto dto)
public async Task<GetReadModuleResultDto> GetReadModule(GetReadModuleDto dto)
{
var visits = await _subjectVisitRepository.Where(x => x.TrialId == dto.TrialId).Include(x=>x.Subject).Include(x => x.Site)
.Select(x=>new GetReadModuleOutDto ()
{
CreateTime=x.CreateTime,
Id=x.Id,
SubjectId=x.SubjectId,
SubjectVisitId=x.Id,
IsUrgent=x.IsUrgent,
ModuleName= x.InPlan?"计划内访视":"计划外访视",
ModuleType= x.InPlan? ModuleTypeEnum.InPlanSubjectVisit: ModuleTypeEnum.OutPlanSubjectVisit,
SubjectCode=x.Subject.Code,
SiteCode=x.Site.SiteCode,
SiteId=x.Site.Id,
VisitName=x.VisitName,
}).ToListAsync();
var data = visits.GroupBy(x => new { x.SiteId, x.SubjectId, x.SiteCode, x.SubjectCode }).Select(x => new GetReadModuleDtoOut()
var subjectquery = _subjectRepository.WhereIf(dto.TrialId!=null, x => x.TrialId == dto.TrialId).Include(x => x.SubjectVisitList).Include(x=>x.Site)
.Select(x => new GetReadModuleDtoOut
{
SiteCode = x.Site.SiteCode,
SiteId = x.SiteId,
SubjectCode = x.Code,
SubjectId = x.Id,
Data=x.SubjectVisitList.Select(y=>new GetReadModuleOutDto()
{
CreateTime = y.CreateTime,
Id = y.Id,
SubjectId = x.Id,
SubjectVisitId = y.Id,
IsUrgent = x.IsUrgent,
ModuleName = y.InPlan ? "计划内访视" : "计划外访视",
ModuleType = y.InPlan ? ModuleTypeEnum.InPlanSubjectVisit : ModuleTypeEnum.OutPlanSubjectVisit,
SubjectCode = y.Subject.Code,
SiteCode = x.Site.SiteCode,
SiteId = x.Site.Id,
VisitName = y.VisitName,
}).ToList()
});
var pageList = await subjectquery.ToPagedListAsync(dto.PageIndex, dto.PageSize, dto.SortField == null ? "SiteCode" : dto.SortField,
dto.SortAsc);
GetReadModuleResultDto resultDto = new GetReadModuleResultDto()
{
CurrentPageData = pageList.CurrentPageData.ToList(),
PageSize = pageList.PageSize,
MaxLength = pageList.CurrentPageData.ToList().Max(x => x.Data.Count),
PageIndex = pageList.PageIndex,
TotalCount = pageList.TotalCount,
SiteCode = x.Key.SiteCode,
SiteId = x.Key.SiteId,
SubjectCode = x.Key.SubjectCode,
SubjectId = x.Key.SubjectId,
Data = x.ToList().OrderBy(y => y.ModuleType).ToList(),
}).ToList();
};
return data;
return resultDto;
}

View File

@ -0,0 +1,75 @@
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Service.WorkLoad.DTO;
using Microsoft.AspNetCore.Authorization;
using IRaCIS.Core.Application.Auth;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Share.Reading;
namespace IRaCIS.Application.Services
{
[ApiExplorerSettings(GroupName = "Reading")]
public class ReadingPeriodSetService : BaseService
{
public IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository<ReadingPeriodSet> _readingPeriodSetRepository;
public ReadingPeriodSetService(IRepository<SubjectVisit> subjectVisitRepository,
IRepository<ReadingPeriodSet> ReadingPeriodSetRepository
)
{
_subjectVisitRepository = subjectVisitRepository;
_readingPeriodSetRepository = ReadingPeriodSetRepository;
}
/// <summary>
/// 新增或者修改
/// </summary>
/// <param name="addOrEditReadingPeriodSet"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> AddOrUpdateReadingPeriodSet(ReadingPeriodSetAddOrEdit addOrEditReadingPeriodSet)
{
var entity = await _repository.InsertOrUpdateAsync<ReadingPeriodSet, ReadingPeriodSetAddOrEdit>(addOrEditReadingPeriodSet, true);
return ResponseOutput.Ok(entity.Id.ToString());
}
/// <summary>
/// 分页获取
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<ReadingPeriodSetView>> GetReadingPeriodSetList(ReadingPeriodSetQuery query)
{
var readquery =_readingPeriodSetRepository.AsQueryable()
.WhereIf(query.TrialId!=null,x=>x.TrialId==query.TrialId)
.WhereIf(query.ReadingPeriodName != null, x => x.ReadingPeriodName.Contains(query.ReadingPeriodName))
.ProjectTo<ReadingPeriodSetView>(_mapper.ConfigurationProvider);
var pageList= await readquery.ToPagedListAsync(query.PageIndex, query.PageSize, query.SortField == null ? "CreateTime" : query.SortField,
query.SortAsc);
return pageList;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="readingPeriodSetId"></param>
/// <returns></returns>
[HttpDelete("{readingPeriodSetId:guid}")]
public async Task<IResponseOutput> DeleteReadingPeriodSet(Guid readingPeriodSetId)
{
var success = await _repository.BatchDeleteAsync<ReadingPeriodSet>(t => t.Id == readingPeriodSetId);
return ResponseOutput.Result(success);
}
}
}

View File

@ -0,0 +1,21 @@
using AutoMapper;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models;
namespace IRaCIS.Core.Application.Service
{
public class ReadingConfig : Profile
{
public ReadingConfig()
{
CreateMap<ReadingPeriodSet, ReadingPeriodSetAddOrEdit>().ReverseMap();
CreateMap<ReadingPeriodSet, ReadingPeriodSetView>();
}
}
}

View File

@ -120,7 +120,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
foreach (var item in sv.StudyList)
{
num++;
dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{item.Modality} 在导入模板中不存在 不存在");
dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{item.Modality} 在导入模板中不存在");
}
dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致部分检查如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
@ -149,7 +149,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
{
dialogMsg.AppendLine($"核对EDC数据完全一致, 审核通过");
dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致部分检查如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
// dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致部分检查如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
dbSV.CheckState = CheckStateEnum.CVPassed;
dbSV.CheckPassedTime = DateTime.Now;
dbSV.CheckResult = "核对EDC数据完全一致";

View File

@ -53,4 +53,58 @@ namespace IRaCIS.Core.Domain.Share.Reading
/// </summary>
Site=1,
}
/// <summary>
/// 状态
/// </summary>
public enum ReadingPeriodStatus
{
/// <summary>
/// 全部
/// </summary>
None = 0,
/// <summary>
/// 已生效
/// </summary>
TakeEffect = 1,
/// <summary>
/// 已撤销
/// </summary>
Revocation=2,
}
/// <summary>
/// 阅片模块状态
/// </summary>
public enum ReadModuleEnum
{
/// <summary>
/// 影像上传
/// </summary>
ImageUpload=0,
/// <summary>
/// 影像质控
/// </summary>
ImageQuality = 1,
/// <summary>
/// 一致性核查及分配
/// </summary>
ConsistencyCheck = 2,
/// <summary>
/// 影像阅片
/// </summary>
ImageRead = 3,
/// <summary>
/// 阅片完成
/// </summary>
ReadComplete = 4,
}
}

View File

@ -43,7 +43,7 @@ namespace IRaCIS.Core.Domain.Models
/// <summary>
/// 状态
/// </summary>
public int? Status { get; set; }
public ReadModuleEnum? Status { get; set; }
/// <summary>
/// 创建时间

View File

@ -43,12 +43,12 @@ namespace IRaCIS.Core.Domain.Models
/// <summary>
/// 截止访视
/// </summary>
public decimal ExpirationVisit { get; set; }
public decimal? ExpirationVisit { get; set; }
/// <summary>
/// 状态
/// </summary>
public int? Status { get; set; }
public ReadingPeriodStatus? Status { get; set; }
/// <summary>
/// 创建时间