From 9dc4d13d6ea40e4a16219208485794b28c18e147 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 1 Jun 2022 17:18:19 +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
---
.../Service/Reading/Dto/GetReadModuleDto.cs | 28 ++++++++++
.../Service/Reading/ReadModuleService.cs | 51 +++++++++++++++++++
2 files changed, 79 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
index 30f6acc46..18b5e569c 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
@@ -17,6 +17,34 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
+ public class ReadModuleAddDto
+ {
+ ///
+ /// 截止日期
+ ///
+ public DateTime? ExpirationDate { get; set; }
+
+ ///
+ /// 截止访视
+ ///
+ public Guid? ExpirationVisit { get; set; }
+
+ ///
+ /// 受试者ID
+ ///
+ public Guid SubjectId { get; set; }
+
+ ///
+ /// 是否加急
+ ///
+ public bool? IsUrgent { get; set; }
+
+ ///
+ /// 名称
+ ///
+ public string Name { get; set; }
+ }
+
public class ReadModuleAddOrEdit: ReadModule
{
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs
index b9750c22a..42d02f62e 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs
@@ -20,16 +20,19 @@ namespace IRaCIS.Application.Services
public IRepository _subjectVisitRepository;
private readonly IRepository _subjectRepository;
+ private readonly IRepository _visitstageRepository;
private readonly IRepository _readModuleRepository;
public ReadModuleService(IRepository subjectVisitRepository,
IRepository subjectRepository,
+ IRepository visitstageRepository,
IRepository readModuleRepository
)
{
_subjectVisitRepository = subjectVisitRepository;
this._subjectRepository = subjectRepository;
+ this._visitstageRepository = visitstageRepository;
this._readModuleRepository = readModuleRepository;
}
@@ -138,6 +141,54 @@ namespace IRaCIS.Application.Services
return GetReadModuleOutDto;
}
+
+
+ public async Task AddReadModule(ReadModuleAddDto dto)
+ {
+ var visits =await _subjectVisitRepository.Where(x => x.SubjectId == dto.SubjectId && x.InPlan).Select(x => new
+ {
+ x.Id,
+ x.LatestScanDate,
+ x.VisitNum,
+ }).ToListAsync();
+
+ if (dto.ExpirationDate != null)
+ {
+ visits = visits.Where(x => x.LatestScanDate <= dto.ExpirationDate.Value).ToList();
+ }
+
+ if (dto.ExpirationVisit != null)
+ {
+ var visitstage =await _visitstageRepository.FirstOrDefaultAsync(x => x.Id == dto.ExpirationVisit);
+ visits = visits.Where(x => x.VisitNum <= visitstage.VisitNum).ToList();
+ }
+
+ var visit = visits.OrderByDescending(x => x.VisitNum).FirstOrDefault();
+
+ if (visit != null)
+ {
+ await _readModuleRepository.AddAsync(new ReadModule()
+ {
+ SubjectId = dto.SubjectId,
+ ModuleType = ModuleTypeEnum.Read,
+ IsUrgent = dto.IsUrgent,
+ ModuleName = dto.Name,
+ SubjectVisitId = visit.Id,
+ Status = ReadModuleEnum.ImageRead,
+ });
+
+ var res = await _readModuleRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok(res);
+ }
+ else
+ {
+ return ResponseOutput.NotOk("No qualified visit was found ");
+ }
+
+
+ }
+
///
/// 新增或者修改
///