修改site 和hospital 以及增加字段
continuous-integration/drone/push Build is passing Details

Uat_Study^2
hang 2024-05-20 14:34:35 +08:00
parent 3d656dfa17
commit 5d0dca121f
6 changed files with 71 additions and 27 deletions

View File

@ -3,7 +3,7 @@ using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Application.Contracts namespace IRaCIS.Application.Contracts
{ {
public class SiteDTO: SiteCommand public class SiteDTO : SiteCommand
{ {
} }
@ -35,6 +35,9 @@ namespace IRaCIS.Application.Contracts
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public string SiteName { get; set; } = String.Empty; public string SiteName { get; set; } = String.Empty;
public string SiteNameCN { get; set; } = String.Empty;
public string City { get; set; } = String.Empty; public string City { get; set; } = String.Empty;
public string Province { get; set; } = string.Empty; public string Province { get; set; } = string.Empty;

View File

@ -3,18 +3,20 @@ using IRaCIS.Application.Contracts;
using IRaCIS.Core.Infra.EFCore; using IRaCIS.Core.Infra.EFCore;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure;
using Microsoft.Data.Sqlite;
namespace IRaCIS.Application.Services namespace IRaCIS.Application.Services
{ {
[ ApiExplorerSettings(GroupName = "Institution")] [ApiExplorerSettings(GroupName = "Institution")]
public class HospitalService : BaseService, IHospitalService public class HospitalService : BaseService, IHospitalService
{ {
private readonly IRepository<Hospital> _hospitalRepository; private readonly IRepository<Hospital> _hospitalRepository;
private readonly IRepository<Site> _siteRepository;
public HospitalService(IRepository<Hospital> hospitalRepository ) public HospitalService(IRepository<Hospital> hospitalRepository, IRepository<Site> siteRepository)
{ {
_hospitalRepository = hospitalRepository; _hospitalRepository = hospitalRepository;
_siteRepository = siteRepository;
} }
/// <summary> 获取所有医院列表 </summary> /// <summary> 获取所有医院列表 </summary>
@ -37,13 +39,24 @@ namespace IRaCIS.Application.Services
var exp1 = new EntityVerifyExp<Hospital>() var exp1 = new EntityVerifyExp<Hospital>()
{ {
VerifyExp = x => x.SiteId == hospitalCommand.SiteId && hospitalCommand.SiteId != null, VerifyExp = x => x.SiteId == hospitalCommand.SiteId && hospitalCommand.SiteId != null,
//---已经存在同名的医院,请确认 //---当前中心已经添加到其他医院了
VerifyMsg = _localizer["Hospital_SiteAdded"] VerifyMsg = _localizer["Hospital_SiteAdded"]
}; };
var hospital = await _hospitalRepository.InsertOrUpdateAsync(hospitalCommand, true, exp,exp1); var hospital = await _hospitalRepository.InsertOrUpdateAsync(hospitalCommand, true, exp, exp1);
//手动解绑医院与site的关系
if (hospitalCommand.SiteId == null && hospital.SiteId != null)
{
await _siteRepository.BatchUpdateNoTrackingAsync(t => t.Id == hospital.SiteId, u => new Site() { HospitalId = null });
}
//手动绑
if (hospitalCommand.SiteId != null)
{
await _siteRepository.BatchUpdateNoTrackingAsync(t => t.Id == hospitalCommand.SiteId, u => new Site() { HospitalId = hospital.Id });
}
return ResponseOutput.Ok(hospital.Id.ToString()); return ResponseOutput.Ok(hospital.Id.ToString());
} }
@ -55,11 +68,6 @@ namespace IRaCIS.Application.Services
public async Task<IResponseOutput> DeleteHospital(Guid hospitalId) public async Task<IResponseOutput> DeleteHospital(Guid hospitalId)
{ {
//if (_userRepository.Find().Any(t => t.OrganizationId == hospitalId))
//{
// return ResponseOutput.NotOk("该医院下存在用户,暂时无法删除。");
//}
var success = await _hospitalRepository.BatchDeleteNoTrackingAsync(x => x.Id == hospitalId); var success = await _hospitalRepository.BatchDeleteNoTrackingAsync(x => x.Id == hospitalId);
return ResponseOutput.Result(success); return ResponseOutput.Result(success);
@ -72,7 +80,7 @@ namespace IRaCIS.Application.Services
var hospitalQueryable = var hospitalQueryable =
_hospitalRepository _hospitalRepository
.WhereIf(hospitalSearchModel.HospitalName!=null, t => t.HospitalName.Contains(hospitalSearchModel.HospitalName!) || t.HospitalNameCN.Contains(hospitalSearchModel.HospitalName!)) .WhereIf(hospitalSearchModel.HospitalName != null, t => t.HospitalName.Contains(hospitalSearchModel.HospitalName!) || t.HospitalNameCN.Contains(hospitalSearchModel.HospitalName!))
.WhereIf(hospitalSearchModel.City != null, t => t.City.Contains(hospitalSearchModel.City!) || t.HospitalNameCN.Contains(hospitalSearchModel.City!)) .WhereIf(hospitalSearchModel.City != null, t => t.City.Contains(hospitalSearchModel.City!) || t.HospitalNameCN.Contains(hospitalSearchModel.City!))
.WhereIf(hospitalSearchModel.Province != null, t => t.Province.Contains(hospitalSearchModel.Province!) || t.HospitalNameCN.Contains(hospitalSearchModel.Province!)) .WhereIf(hospitalSearchModel.Province != null, t => t.Province.Contains(hospitalSearchModel.Province!) || t.HospitalNameCN.Contains(hospitalSearchModel.Province!))
.ProjectTo<HospitalDTO>(_mapper.ConfigurationProvider); .ProjectTo<HospitalDTO>(_mapper.ConfigurationProvider);

View File

@ -4,6 +4,7 @@ using IRaCIS.Core.Infra.EFCore;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using Medallion.Threading; using Medallion.Threading;
using IRaCIS.Core.Domain.Models;
namespace IRaCIS.Application.Services namespace IRaCIS.Application.Services
{ {
@ -13,12 +14,14 @@ namespace IRaCIS.Application.Services
private readonly IRepository<Site> _siteRepository; private readonly IRepository<Site> _siteRepository;
private readonly IRepository<TrialSiteUser> _trialSiteUserRepository; private readonly IRepository<TrialSiteUser> _trialSiteUserRepository;
private readonly IDistributedLockProvider _distributedLockProvider; private readonly IDistributedLockProvider _distributedLockProvider;
private readonly IRepository<Hospital> _hospitalRepository;
public SiteService(IRepository<Site> siteRepository, IRepository<TrialSiteUser> trialSiteUserRepository, IDistributedLockProvider distributedLockProvider) public SiteService(IRepository<Site> siteRepository, IRepository<TrialSiteUser> trialSiteUserRepository, IDistributedLockProvider distributedLockProvider, IRepository<Hospital> hospitalRepository)
{ {
_siteRepository = siteRepository; _siteRepository = siteRepository;
_trialSiteUserRepository = trialSiteUserRepository; _trialSiteUserRepository = trialSiteUserRepository;
_distributedLockProvider = distributedLockProvider; _distributedLockProvider = distributedLockProvider;
_hospitalRepository = hospitalRepository;
} }
/// <summary> 分页获取研究中心列表 </summary> /// <summary> 分页获取研究中心列表 </summary>
@ -72,6 +75,18 @@ namespace IRaCIS.Application.Services
var site = await _siteRepository.InsertOrUpdateAsync(siteCommand, true, exp); var site = await _siteRepository.InsertOrUpdateAsync(siteCommand, true, exp);
//手动解绑医院与site的关系
if (siteCommand.HospitalId == null && site.HospitalId != null)
{
await _hospitalRepository.BatchUpdateNoTrackingAsync(t => t.Id == site.HospitalId, u => new Hospital() { SiteId = null });
}
//手动绑
if (siteCommand.HospitalId != null)
{
await _hospitalRepository.BatchUpdateNoTrackingAsync(t => t.Id == siteCommand.HospitalId, u => new Hospital() { SiteId = site.Id });
}
return ResponseOutput.Ok(site.Id.ToString()); return ResponseOutput.Ok(site.Id.ToString());
} }

View File

@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using static IRaCIS.Core.Domain.Models.ReadingQuestionTrial;
namespace IRaCIS.Core.Application.Service.Reading.Dto namespace IRaCIS.Core.Application.Service.Reading.Dto
{ {
@ -1044,6 +1045,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<string> RelevanceValueList { get; set; } public List<string> RelevanceValueList { get; set; }
public List<CalculateInfo> CalculateQuestionList { get; set; } public List<CalculateInfo> CalculateQuestionList { get; set; }
public AssessmentResultType AssessmentResultEnum { get; set; }
} }
public class ReadingQuestionSystemView public class ReadingQuestionSystemView
@ -1984,6 +1986,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<string> ParentTriggerValueList { get; set; } public List<string> ParentTriggerValueList { get; set; }
public List<string> RelevanceValueList { get; set; } public List<string> RelevanceValueList { get; set; }
public AssessmentResultType AssessmentResultEnum { get; set; }
} }
public class GetSystemCriterionSelectDto public class GetSystemCriterionSelectDto

View File

@ -41,7 +41,7 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore] [JsonIgnore]
public List<TrialEmailNoticeUser> TrialEmailNoticeUserList { get; set; } = new List<TrialEmailNoticeUser>(); public List<TrialEmailNoticeUser> TrialEmailNoticeUserList { get; set; } = new List<TrialEmailNoticeUser>();
[JsonIgnore]
public List<TrialEmailBlackUser> TrialEmailBlackUserList { get; set; } = new List<TrialEmailBlackUser>(); public List<TrialEmailBlackUser> TrialEmailBlackUserList { get; set; } = new List<TrialEmailBlackUser>();

View File

@ -266,6 +266,10 @@ namespace IRaCIS.Core.Domain.Models
/// </summary> /// </summary>
public Guid? GroupId { get; set; } public Guid? GroupId { get; set; }
public AssessmentResultType AssessmentResultEnum { get; set; }
[JsonIgnore] [JsonIgnore]
[ForeignKey("GroupId")] [ForeignKey("GroupId")]
public ReadingQuestionTrial GroupInfo { get; set; } public ReadingQuestionTrial GroupInfo { get; set; }
@ -290,6 +294,16 @@ namespace IRaCIS.Core.Domain.Models
public List<ReadingTableQuestionTrial> ReadingTableQuestionTrialList { get; set; } public List<ReadingTableQuestionTrial> ReadingTableQuestionTrialList { get; set; }
public enum AssessmentResultType
{
//没有特殊标记
None=0,
//评估结果
AssessmentResult = 1,
}
[NotMapped] [NotMapped]
public List<string> ParentTriggerValueList public List<string> ParentTriggerValueList
{ {