From e17a33a16ffe74fed4da3695feb92fecde067d6e Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Mar 2024 17:18:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=20=E4=B8=B4=E5=BA=8A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs index e65a83799..622018b28 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs @@ -441,8 +441,8 @@ namespace IRaCIS.Core.Application.Contracts #endregion public int? TotalCount => TrialWaitSignDocCount + SysWaitSignDocCount - + PM_SiteSurveryCount + PM_CheckCount + PM_ReviewerSelectCount + PM_ReReadingApprovalCount + PM_ClinicalDataCount - + CRC_ImageSubmitCount + CRC_ImageQuestionCount + CRC_CheckQuestionCount + CRC_ImageReUploadCount + CRC_ClinicalDataTobeDoneCount + CRC_ClinialDataTobeConfirmCount + + PM_SiteSurveryCount + PM_CheckCount + PM_ReviewerSelectCount + PM_ReReadingApprovalCount /*+ PM_ClinicalDataCount*/ + + CRC_ImageSubmitCount + CRC_ImageQuestionCount + CRC_CheckQuestionCount + CRC_ImageReUploadCount /*+ CRC_ClinicalDataTobeDoneCount + CRC_ClinialDataTobeConfirmCount*/ + SPM_SiteSurveryCount + SPM_ReviewerApprovalCount + SPM_ReReadingApprovalCount + IQC_IamgeQCCount + IQC_QCQuestionCount + IR_IamgeWaitReadingCount + IR_MedicalReviewCount From 04925638387a4456bc13d971f8b71a62bc2c9cdb Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 8 Mar 2024 09:21:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=BB=E9=99=A2=20site?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Institution/HospitalService.cs | 34 +++++++++++++------ .../Service/Institution/SiteService.cs | 17 +++++++++- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Institution/HospitalService.cs b/IRaCIS.Core.Application/Service/Institution/HospitalService.cs index 6ce0a8f22..e315983ed 100644 --- a/IRaCIS.Core.Application/Service/Institution/HospitalService.cs +++ b/IRaCIS.Core.Application/Service/Institution/HospitalService.cs @@ -3,19 +3,22 @@ using IRaCIS.Application.Contracts; using IRaCIS.Core.Infra.EFCore; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Infrastructure; +using Microsoft.Data.Sqlite; namespace IRaCIS.Application.Services { - [ ApiExplorerSettings(GroupName = "Institution")] + [ApiExplorerSettings(GroupName = "Institution")] public class HospitalService : BaseService, IHospitalService { private readonly IRepository _hospitalRepository; private readonly IRepository _doctorRepository; + private readonly IRepository _siteRepository; - public HospitalService(IRepository hospitalRepository, IRepository doctorRepository) + public HospitalService(IRepository hospitalRepository, IRepository doctorRepository, IRepository siteRepository) { _hospitalRepository = hospitalRepository; - this._doctorRepository = doctorRepository; + _doctorRepository = doctorRepository; + _siteRepository = siteRepository; } /// 获取所有医院列表 @@ -38,15 +41,26 @@ namespace IRaCIS.Application.Services var exp1 = new EntityVerifyExp() { VerifyExp = x => x.SiteId == hospitalCommand.SiteId && hospitalCommand.SiteId != null, - //---已经存在同名的医院,请确认。 + //---当前中心已经添加到其他医院了。 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()); - + } @@ -69,12 +83,12 @@ namespace IRaCIS.Application.Services /// 分页获取医院列表 [HttpPost] - public async Task> GetHospitalPageList(HospitalQueryDTO hospitalSearchModel) + public async Task> GetHospitalPageList(HospitalQueryDTO hospitalSearchModel) { var hospitalQueryable = _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.Province != null, t => t.Province.Contains(hospitalSearchModel.Province!) || t.HospitalNameCN.Contains(hospitalSearchModel.Province!)) .ProjectTo(_mapper.ConfigurationProvider); diff --git a/IRaCIS.Core.Application/Service/Institution/SiteService.cs b/IRaCIS.Core.Application/Service/Institution/SiteService.cs index 9d77f48ed..79c43f703 100644 --- a/IRaCIS.Core.Application/Service/Institution/SiteService.cs +++ b/IRaCIS.Core.Application/Service/Institution/SiteService.cs @@ -4,6 +4,7 @@ using IRaCIS.Core.Infra.EFCore; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Domain.Share; using Medallion.Threading; +using IRaCIS.Core.Domain.Models; namespace IRaCIS.Application.Services { @@ -13,12 +14,14 @@ namespace IRaCIS.Application.Services private readonly IRepository _siteRepository; private readonly IRepository _trialSiteUserRepository; private readonly IDistributedLockProvider _distributedLockProvider; + private readonly IRepository _hospitalRepository; - public SiteService(IRepository siteRepository, IRepository trialSiteUserRepository, IDistributedLockProvider distributedLockProvider) + public SiteService(IRepository siteRepository, IRepository trialSiteUserRepository, IDistributedLockProvider distributedLockProvider, IRepository hospitalRepository) { _siteRepository = siteRepository; _trialSiteUserRepository = trialSiteUserRepository; _distributedLockProvider = distributedLockProvider; + _hospitalRepository= hospitalRepository; } /// 分页获取研究中心列表 @@ -72,6 +75,18 @@ namespace IRaCIS.Application.Services 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()); }