修改一版
parent
c6acbb21dc
commit
42d3ce58cc
|
@ -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>
|
||||
获取读片模块
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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>();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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数据,完全一致";
|
||||
|
|
|
@ -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,
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int? Status { get; set; }
|
||||
public ReadModuleEnum? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
|
|
|
@ -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>
|
||||
/// 创建时间
|
||||
|
|
Loading…
Reference in New Issue