From 24aa7167b7ad2529530cdba7de6c6cb7e34956ee Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 27 May 2022 17:19:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Swagger/SwaggerSetup.cs | 1 + .../IRaCIS.Core.Application.xml | 5 ++ .../Service/Reading/Dto/GetReadModuleDto.cs | 37 +++++++++++ .../Service/Reading/ReadModuleService.cs | 66 +++++++++++++++++++ IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 39 +++++++++++ IRaCIS.Core.Domain/Reading/ReadModule.cs | 62 +++++++++++++++++ 6 files changed, 210 insertions(+) create mode 100644 IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs create mode 100644 IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs create mode 100644 IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs create mode 100644 IRaCIS.Core.Domain/Reading/ReadModule.cs diff --git a/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs index 09096b726..bb909cccd 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs @@ -24,6 +24,7 @@ namespace IRaCIS.Core.API { //此处的Name 是控制器上分组的名称 Title是界面的大标题 //分组 + options.SwaggerDoc("Reviewer", new OpenApiInfo {Title = "医生模块",Version = "Reviewer", }); options.SwaggerDoc("Trial", new OpenApiInfo { Title = "项目模块", Version = "Trial" }); options.SwaggerDoc("Enroll", new OpenApiInfo { Title = "入组模块", Version = "Enroll" }); diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 5375f2026..05f2395dc 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2431,6 +2431,11 @@ + + + 添加或更新项目医生项目价格 + + Dashboard统计、全局工作量统计、入组两个维度统计(按照项目、按照人) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs new file mode 100644 index 000000000..04dc40d20 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs @@ -0,0 +1,37 @@ +using IRaCIS.Core.Domain.Share.Reading; +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 GetReadModuleDto + { + public Guid TrialId { get; set; } + } + + public class GetReadModuleOutDto: ReadModule + { + public string SubjectCode { get; set; } + + public string SiteCode { get; set; } + + public Guid? SiteId { get; set; } + } + + + public class GetReadModuleDtoOut + { + public string SubjectCode { get; set; } + + public string SiteCode { get; set; } + + public Guid? SiteId { get; set; } + + public Guid? SubjectId { get; set; } + + public List Data { get; set; } + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs new file mode 100644 index 000000000..171c2eb28 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs @@ -0,0 +1,66 @@ +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 ReadModuleService : BaseService + { + + public IRepository _subjectVisitRepository; + public ReadModuleService(IRepository subjectVisitRepository + ) + { + _subjectVisitRepository = subjectVisitRepository; + } + + + /// + /// 添加或更新项目医生项目价格 + /// + [HttpPost] + public async Task> 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, + }).ToListAsync(); + + var data = visits.GroupBy(x => new { x.SiteId, x.SubjectId, x.SiteCode, x.SubjectCode }).Select(x => new GetReadModuleDtoOut() + { + + 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; + } + + + + + + + } +} diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs new file mode 100644 index 000000000..6191647a6 --- /dev/null +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Domain.Share.Reading +{ + /// + /// 模块枚举 + /// + public enum ModuleTypeEnum + { + /// + /// 计划内访视 + /// + InPlanSubjectVisit=0, + + /// + /// 计划外访视 + /// + OutPlanSubjectVisit = 1, + + /// + /// 阅片期 + /// + Read = 2, + + /// + /// 裁判 + /// + Referee = 3, + + /// + /// 肿瘤学 + /// + Oncology = 4, + } +} diff --git a/IRaCIS.Core.Domain/Reading/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadModule.cs new file mode 100644 index 000000000..706bdfcd7 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/ReadModule.cs @@ -0,0 +1,62 @@ + + +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using IRaCIS.Core.Domain.Share.Reading; + +namespace IRaCIS.Core.Domain.Models +{ + /// + ///ReadModule + /// + [Table("ReadModule")] + public class ReadModule : Entity, IAuditAdd + { + + /// + /// 受试者ID + /// + public Guid? SubjectId { get; set; } + + /// + /// 模块类型 + /// + public ModuleTypeEnum ModuleType { get; set; } + + /// + /// 模块名称 + /// + public string ModuleName { get; set; } + + /// + /// 是否加急 + /// + public bool? IsUrgent { get; set; } + + /// + /// 访视ID + /// + public Guid? SubjectVisitId { get; set; } + + /// + /// 状态 + /// + public int? Status { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + + /// + /// 创建人 + /// + public Guid CreateUserId { get; set; } + + } + + + +}